@@ -136,9 +136,14 @@ export async function serverActions(): Promise<void> {
136
136
const classRef = `/csp/documatic/%25CSP.Documatic.cls?LIBRARY=${ nsEncoded } ${
137
137
classname ? "&CLASSNAME=" + classnameEncoded : ""
138
138
} `;
139
+ const soapWizardPath = "/isc/studio/templates/%25ZEN.Template.AddInWizard.SOAPWizard.cls" ;
139
140
let extraLinks = 0 ;
141
+ let hasSOAPWizard = false ;
140
142
for ( const title in links ) {
141
143
const rawLink = String ( links [ title ] ) ;
144
+ if ( rawLink . includes ( soapWizardPath ) ) {
145
+ hasSOAPWizard = true ;
146
+ }
142
147
// Skip link if it requires a classname and we don't currently have one
143
148
if ( classname == "" && ( rawLink . includes ( "${classname}" ) || rawLink . includes ( "${classnameEncoded}" ) ) ) {
144
149
continue ;
@@ -183,6 +188,13 @@ export async function serverActions(): Promise<void> {
183
188
label : "Open Class Reference" + ( classname ? ` for ${ classname } ` : "" ) ,
184
189
detail : serverUrl + classRef ,
185
190
} ) ;
191
+ if ( ! hasSOAPWizard ) {
192
+ actions . push ( {
193
+ id : "openSOAPWizard" ,
194
+ label : "Open SOAP Wizard" ,
195
+ detail : `${ serverUrl } ${ soapWizardPath } ?$NAMESPACE=${ nsEncoded } ` ,
196
+ } ) ;
197
+ }
186
198
if (
187
199
! vscode . window . activeTextEditor ||
188
200
vscode . window . activeTextEditor . document . uri . scheme === FILESYSTEM_SCHEMA ||
@@ -211,14 +223,19 @@ export async function serverActions(): Promise<void> {
211
223
switch ( action . id ) {
212
224
case "openPortal" : {
213
225
const token = await getCSPToken ( api , portalPath ) ;
214
- const urlString = `${ serverUrl } ${ portalPath } &CSPCHD=${ token } ` ;
215
- vscode . env . openExternal ( vscode . Uri . parse ( urlString ) ) ;
226
+ vscode . env . openExternal ( vscode . Uri . parse ( `${ serverUrl } ${ portalPath } &CSPCHD=${ token } ` ) ) ;
216
227
break ;
217
228
}
218
229
case "openClassReference" : {
219
230
const token = await getCSPToken ( api , classRef ) ;
220
- const urlString = `${ serverUrl } ${ classRef } &CSPCHD=${ token } ` ;
221
- vscode . env . openExternal ( vscode . Uri . parse ( urlString ) ) ;
231
+ vscode . env . openExternal ( vscode . Uri . parse ( `${ serverUrl } ${ classRef } &CSPCHD=${ token } ` ) ) ;
232
+ break ;
233
+ }
234
+ case "openSOAPWizard" : {
235
+ const token = await getCSPToken ( api , soapWizardPath ) ;
236
+ vscode . env . openExternal (
237
+ vscode . Uri . parse ( `${ serverUrl } ${ soapWizardPath } ?$NAMESPACE=${ nsEncoded } &CSPCHD=${ token } ` )
238
+ ) ;
222
239
break ;
223
240
}
224
241
case "openDockerTerminal" : {
0 commit comments