|
1 | 1 | import * as vscode from "vscode"; |
2 | | -import { config } from "../extension"; |
| 2 | +import { config, workspaceState } from "../extension"; |
| 3 | +import { currentWorkspaceFolder } from "../utils"; |
3 | 4 |
|
4 | 5 | export async function serverActions(): Promise<void> { |
5 | | - const conn = config("conn"); |
6 | | - const connInfo = `${conn.host}:${conn.port}[${conn.ns}]`; |
7 | | - const serverUrl = `${conn.https ? "https" : "http"}://${conn.host}:${conn.port}`; |
8 | | - const portalUrl = `${serverUrl}/csp/sys/UtilHome.csp?$NAMESPACE=${conn.ns}`; |
9 | | - const classRef = `${serverUrl}/csp/documatic/%25CSP.Documatic.cls?LIBRARY=${conn.ns}`; |
| 6 | + const { active, host, ns, https, port: defaultPort, username, password } = config("conn"); |
| 7 | + const workspaceFolder = currentWorkspaceFolder(); |
| 8 | + const port = workspaceState.get(workspaceFolder + ":port", defaultPort); |
| 9 | + const connInfo = `${host}:${port}[${ns}]`; |
| 10 | + const serverUrl = `${https ? "https" : "http"}://${host}:${port}`; |
| 11 | + const portalUrl = `${serverUrl}/csp/sys/UtilHome.csp?$NAMESPACE=${ns}`; |
| 12 | + const classRef = `${serverUrl}/csp/documatic/%25CSP.Documatic.cls?LIBRARY=${ns}`; |
| 13 | + const iris = workspaceState.get(workspaceFolder + ":iris", false); |
| 14 | + const auth = iris |
| 15 | + ? `&IRISUsername=${username}&IRISPassword=${password}` |
| 16 | + : `&CacheUserName=${username}&CachePassword=${password}`; |
10 | 17 | return vscode.window |
11 | 18 | .showQuickPick( |
12 | 19 | [ |
@@ -36,14 +43,14 @@ export async function serverActions(): Promise<void> { |
36 | 43 | } |
37 | 44 | switch (action.id) { |
38 | 45 | case "toggleConnection": { |
39 | | - return vscode.workspace.getConfiguration().update("objectscript.conn.active", !conn.active); |
| 46 | + return vscode.workspace.getConfiguration().update("objectscript.conn.active", !active); |
40 | 47 | } |
41 | 48 | case "openPortal": { |
42 | | - vscode.env.openExternal(vscode.Uri.parse(portalUrl)); |
| 49 | + vscode.env.openExternal(vscode.Uri.parse(portalUrl + auth)); |
43 | 50 | break; |
44 | 51 | } |
45 | 52 | case "openClassReference": { |
46 | | - vscode.env.openExternal(vscode.Uri.parse(classRef)); |
| 53 | + vscode.env.openExternal(vscode.Uri.parse(classRef + auth)); |
47 | 54 | break; |
48 | 55 | } |
49 | 56 | } |
|
0 commit comments