|
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