Skip to content

Commit 2e97723

Browse files
committed
wip
1 parent d95e164 commit 2e97723

File tree

12 files changed

+813
-169
lines changed

12 files changed

+813
-169
lines changed

arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -367,16 +367,15 @@ export class ArduinoFrontendContribution
367367
}
368368
const { clangdUri, cliUri, lsUri, fwuploaderUri } =
369369
await this.executableService.list();
370-
const [clangdPath, cliPath, lsPath, cliConfigPath, fwuploaderPath] =
371-
await Promise.all([
372-
this.fileService.fsPath(new URI(clangdUri)),
373-
this.fileService.fsPath(new URI(cliUri)),
374-
this.fileService.fsPath(new URI(lsUri)),
375-
this.fileService.fsPath(
376-
new URI(await this.configService.getCliConfigFileUri())
377-
),
378-
this.fileService.fsPath(new URI(fwuploaderUri)),
379-
]);
370+
const [clangdPath, cliPath, lsPath, cliConfigPath] = await Promise.all([
371+
this.fileService.fsPath(new URI(clangdUri)),
372+
this.fileService.fsPath(new URI(cliUri)),
373+
this.fileService.fsPath(new URI(lsUri)),
374+
this.fileService.fsPath(
375+
new URI(await this.configService.getCliConfigFileUri())
376+
),
377+
this.fileService.fsPath(new URI(fwuploaderUri)),
378+
]);
380379
this.languageServerFqbn = await Promise.race([
381380
new Promise<undefined>((_, reject) =>
382381
setTimeout(

arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,13 @@ import {
242242
UploadFirmwareDialog,
243243
UploadFirmwareDialogProps,
244244
UploadFirmwareDialogWidget,
245-
} from './dialogs/upload-firmware-dialog';
245+
} from './dialogs/firmware-uploader/upload-firmware-dialog';
246+
import {
247+
UploadCertificateDialog,
248+
UploadCertificateDialogProps,
249+
UploadCertificateDialogWidget,
250+
} from './dialogs/certificate-uploader/upload-certificate-dialog';
251+
import { UploadCertificate } from './contributions/upload-certificate';
246252

247253
const ElementQueries = require('css-element-queries/src/ElementQueries');
248254

@@ -578,6 +584,7 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
578584
Contribution.configure(bind, Debug);
579585
Contribution.configure(bind, Sketchbook);
580586
Contribution.configure(bind, UploadFirmware);
587+
Contribution.configure(bind, UploadCertificate);
581588
Contribution.configure(bind, BoardSelection);
582589
Contribution.configure(bind, OpenRecentSketch);
583590
Contribution.configure(bind, Help);
@@ -726,4 +733,9 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
726733
bind(UploadFirmwareDialogProps).toConstantValue({
727734
title: 'UploadFirmware',
728735
});
736+
bind(UploadCertificateDialogWidget).toSelf().inSingletonScope();
737+
bind(UploadCertificateDialog).toSelf().inSingletonScope();
738+
bind(UploadCertificateDialogProps).toConstantValue({
739+
title: 'UploadCertificate',
740+
});
729741
});
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import { inject, injectable } from 'inversify';
2+
import {
3+
Command,
4+
MenuModelRegistry,
5+
CommandRegistry,
6+
Contribution,
7+
} from './contribution';
8+
import { ArduinoMenus } from '../menu/arduino-menus';
9+
import { UploadCertificateDialog } from '../dialogs/certificate-uploader/upload-certificate-dialog';
10+
11+
@injectable()
12+
export class UploadCertificate extends Contribution {
13+
@inject(UploadCertificateDialog)
14+
protected readonly dialog: UploadCertificateDialog;
15+
16+
protected dialogOpened = false;
17+
18+
registerCommands(registry: CommandRegistry): void {
19+
registry.registerCommand(UploadCertificate.Commands.OPEN, {
20+
execute: async () => {
21+
try {
22+
this.dialogOpened = true;
23+
await this.dialog.open();
24+
} finally {
25+
this.dialogOpened = false;
26+
}
27+
},
28+
isEnabled: () => !this.dialogOpened,
29+
});
30+
}
31+
32+
registerMenus(registry: MenuModelRegistry): void {
33+
registry.registerMenuAction(ArduinoMenus.TOOLS__FIRMWARE_UPLOADER_GROUP, {
34+
commandId: UploadCertificate.Commands.OPEN.id,
35+
label: UploadCertificate.Commands.OPEN.label,
36+
order: '1',
37+
});
38+
}
39+
}
40+
41+
export namespace UploadCertificate {
42+
export namespace Commands {
43+
export const OPEN: Command = {
44+
id: 'arduino-upload-certificate-open',
45+
label: 'Upload SSL Root Certificates',
46+
category: 'Arduino',
47+
};
48+
}
49+
}

arduino-ide-extension/src/browser/contributions/upload-firmware.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
Contribution,
77
} from './contribution';
88
import { ArduinoMenus } from '../menu/arduino-menus';
9-
import { UploadFirmwareDialog } from '../dialogs/upload-firmware-dialog';
9+
import { UploadFirmwareDialog } from '../dialogs/firmware-uploader/upload-firmware-dialog';
1010

1111
@injectable()
1212
export class UploadFirmware extends Contribution {

0 commit comments

Comments
 (0)