Skip to content

Commit a0f1007

Browse files
committed
Added "Open service configuration" button
Signed-off-by: Seb Julliand <[email protected]>
1 parent 41e1331 commit a0f1007

File tree

5 files changed

+34
-24
lines changed

5 files changed

+34
-24
lines changed

src/api/debug/server.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,4 +156,8 @@ export async function stopServer() {
156156
}
157157
}
158158
return true;
159+
}
160+
161+
export function getServiceConfigurationFile(){
162+
return path.posix.join(serverDirectory, "DebugService.env");
159163
}

src/locale/ids/da.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,5 +382,6 @@ export const da: Locale = {
382382
'start.debug.service.failed': 'Failed to start debug service: {0}',
383383
'stop.debug.service.task': 'Stopping debug service...',
384384
'stop.debug.service.succeeded': 'Debug service stopped.',
385-
'stop.debug.service.failed': 'Failed to stop debug service: {0}'
385+
'stop.debug.service.failed': 'Failed to stop debug service: {0}',
386+
'open.service.configuration': 'Open configuration'
386387
};

src/locale/ids/en.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,5 +382,6 @@ export const en: Locale = {
382382
'start.debug.service.failed': 'Failed to start debug service: {0}',
383383
'stop.debug.service.task': 'Stopping debug service...',
384384
'stop.debug.service.succeeded': 'Debug service stopped.',
385-
'stop.debug.service.failed': 'Failed to stop debug service: {0}'
385+
'stop.debug.service.failed': 'Failed to stop debug service: {0}',
386+
'open.service.configuration': 'Open configuration'
386387
};

src/locale/ids/fr.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,5 +382,6 @@ export const fr: Locale = {
382382
'start.debug.service.failed': 'Échec du démarrage du service de débogage: {0}',
383383
'stop.debug.service.task': 'Arrêt du service de débogage...',
384384
'stop.debug.service.succeeded': 'Service de débogage arrêté.',
385-
'stop.debug.service.failed': 'Échec de l\'arrêt du service de débogage: {0}'
385+
'stop.debug.service.failed': 'Échec de l\'arrêt du service de débogage: {0}',
386+
'open.service.configuration': 'Ouvrir la configuration'
386387
};

src/webviews/debugger/index.ts

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { readFileSync } from "fs";
22
import vscode from "vscode";
3-
import { CustomUI, Field, Page, Section } from "../../api/CustomUI";
3+
import { Button, CustomUI, Field, Page, Section } from "../../api/CustomUI";
44
import IBMiContent from "../../api/IBMiContent";
55
import { Tools } from "../../api/Tools";
66
import { isManaged } from "../../api/debug";
77
import { getLocalCertPath, getRemoteCertificateDirectory, localClientCertExists, readRemoteCertificate, remoteServerCertificateExists, setup } from "../../api/debug/certificates";
8-
import { DebugJob, getDebugServerJob, getDebugServiceJob, startServer, startService, stopServer, stopService } from "../../api/debug/server";
8+
import { DebugJob, getDebugServerJob, getDebugServiceJob, getServiceConfigurationFile, startServer, startService, stopServer, stopService } from "../../api/debug/server";
99
import { instance } from "../../instantiate";
1010
import { t } from "../../locale";
1111

@@ -69,27 +69,27 @@ export async function openDebugStatusPanel() {
6969
<li>${t("listening.on.port")}: ${debbuggerInfo.server.job.port}</li>`
7070
: ""
7171
}
72-
</ul>`);
73-
addStartStopButtons("server", summary, debbuggerInfo.server !== undefined);
72+
</ul>`)
73+
.addButtons(...getStartStopButtons("server", debbuggerInfo.server !== undefined))
7474

75-
//Debug Service summary
76-
summary.addHorizontalRule()
75+
//Debug Service summary
76+
.addHorizontalRule()
7777
.addParagraph(/* html */`
78-
<h4>${t("debug.service")} ${debbuggerInfo.service ? "✅" : "❌"}</h4>
79-
<ul>
80-
<li>${t("status")}: ${debbuggerInfo.service ? t("online") : t("offline")} </li>
81-
${debbuggerInfo.service ? /* html */ `
82-
<li>${t("job")}: ${debbuggerInfo.service.job.name}</li>
83-
<li>${t("listening.on.port")}: ${debbuggerInfo.service.job.port}</li>
84-
`
78+
<h4>${t("debug.service")} ${debbuggerInfo.service ? "✅" : "❌"}</h4>
79+
<ul>
80+
<li>${t("status")}: ${debbuggerInfo.service ? t("online") : t("offline")} </li>
81+
${debbuggerInfo.service ? /* html */ `
82+
<li>${t("job")}: ${debbuggerInfo.service.job.name}</li>
83+
<li>${t("listening.on.port")}: ${debbuggerInfo.service.job.port}</li>
84+
`
8585
: ""
8686
}
87-
</ul>`);
87+
</ul>`)
8888

89-
if (debbuggerInfo.certificate.remoteExists) {
90-
//Can't start the service without a certificate
91-
addStartStopButtons("service", summary, debbuggerInfo.service !== undefined);
92-
}
89+
.addButtons(
90+
...(debbuggerInfo.certificate.remoteExists ? getStartStopButtons("service", debbuggerInfo.service !== undefined) : []),
91+
{ id: "service.openConfig", label: t("open.service.configuration") }
92+
);
9393

9494
//Certificates summary
9595
const certificatesMatch = certificateMatchStatus(debbuggerInfo.certificate);
@@ -139,12 +139,12 @@ export async function openDebugStatusPanel() {
139139
}
140140
}
141141

142-
function addStartStopButtons(target: "server" | "service", section: Section, running: boolean) {
143-
section.addButtons(
142+
function getStartStopButtons(target: "server" | "service", running: boolean): (Button | undefined)[] {
143+
return [
144144
running ? undefined : { id: `${target}.start`, label: t("start") },
145145
running ? { id: `${target}.restart`, label: t("restart") } : undefined,
146146
running ? { id: `${target}.stop`, label: t("stop") } : undefined
147-
);
147+
];
148148
}
149149

150150
async function readActiveJob(content: IBMiContent, job: DebugJob) {
@@ -242,6 +242,9 @@ async function handleServiceAction(action: string): Promise<boolean> {
242242
}
243243
case "downloadCertificate":
244244
return await vscode.commands.executeCommand(`code-for-ibmi.debug.setup.local`);
245+
case "openConfig":
246+
vscode.commands.executeCommand("code-for-ibmi.openEditable", getServiceConfigurationFile());
247+
return false;
245248
}
246249
}
247250

0 commit comments

Comments
 (0)