Skip to content

Commit 0f85ce3

Browse files
authored
Add SOAP Wizard to Server Actions menu (#1107)
1 parent 9210b9e commit 0f85ce3

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

docs/Configuration.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,7 @@ An example links configuration looks like this:
247247
```json
248248
"objectscript.conn": {
249249
"links": {
250-
"Portal Explorer": "${serverUrl}/csp/sys/exp/%25CSP.UI.Portal.ClassList.zen?$NAMESPACE=${ns}",
251-
"SOAP Wizard": "${serverUrl}/isc/studio/templates/%25ZEN.Template.AddInWizard.SOAPWizard.cls?$NAMESPACE=${ns}"
250+
"Portal Explorer": "${serverUrl}/csp/sys/exp/%25CSP.UI.Portal.ClassList.zen?$NAMESPACE=${ns}"
252251
},
253252
}
254253
```

src/commands/serverActions.ts

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)