@@ -136,9 +136,14 @@ export async function serverActions(): Promise<void> {
136136 const classRef = `/csp/documatic/%25CSP.Documatic.cls?LIBRARY=${ nsEncoded } ${
137137 classname ? "&CLASSNAME=" + classnameEncoded : ""
138138 } `;
139+ const soapWizardPath = "/isc/studio/templates/%25ZEN.Template.AddInWizard.SOAPWizard.cls" ;
139140 let extraLinks = 0 ;
141+ let hasSOAPWizard = false ;
140142 for ( const title in links ) {
141143 const rawLink = String ( links [ title ] ) ;
144+ if ( rawLink . includes ( soapWizardPath ) ) {
145+ hasSOAPWizard = true ;
146+ }
142147 // Skip link if it requires a classname and we don't currently have one
143148 if ( classname == "" && ( rawLink . includes ( "${classname}" ) || rawLink . includes ( "${classnameEncoded}" ) ) ) {
144149 continue ;
@@ -183,6 +188,13 @@ export async function serverActions(): Promise<void> {
183188 label : "Open Class Reference" + ( classname ? ` for ${ classname } ` : "" ) ,
184189 detail : serverUrl + classRef ,
185190 } ) ;
191+ if ( ! hasSOAPWizard ) {
192+ actions . push ( {
193+ id : "openSOAPWizard" ,
194+ label : "Open SOAP Wizard" ,
195+ detail : `${ serverUrl } ${ soapWizardPath } ?$NAMESPACE=${ nsEncoded } ` ,
196+ } ) ;
197+ }
186198 if (
187199 ! vscode . window . activeTextEditor ||
188200 vscode . window . activeTextEditor . document . uri . scheme === FILESYSTEM_SCHEMA ||
@@ -211,14 +223,19 @@ export async function serverActions(): Promise<void> {
211223 switch ( action . id ) {
212224 case "openPortal" : {
213225 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 } ` ) ) ;
216227 break ;
217228 }
218229 case "openClassReference" : {
219230 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+ ) ;
222239 break ;
223240 }
224241 case "openDockerTerminal" : {
0 commit comments