@jupyterlab/settingeditor-extension 4.4.0-alpha.0 → 4.4.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,45 @@
1
+ import { ITranslator } from '@jupyterlab/translation';
2
+ import { ReactWidget } from '@jupyterlab/ui-components';
3
+ /**
4
+ * A namespace for ImportSettings.
5
+ */
6
+ declare namespace ImportSettings {
7
+ /**
8
+ * The props for the ImportSettings component.
9
+ */
10
+ interface IOptions {
11
+ importedSettings: string[];
12
+ handleImport: (settings: string[]) => void;
13
+ translator: ITranslator;
14
+ }
15
+ /**
16
+ * The props for the ImportSettings DialogBox body.
17
+ */
18
+ interface IDialogBodyBodyOptions {
19
+ successMessage: string;
20
+ failureMessage?: string;
21
+ failedSettings?: string[];
22
+ }
23
+ }
24
+ /**
25
+ * A widget for importing settings with checkboxes.
26
+ */
27
+ export declare class ImportSettingsWidget extends ReactWidget {
28
+ /**
29
+ * Constructs a new ImportSettingsWidget.
30
+ *
31
+ * @param importedSettings - The settings to display.
32
+ * @param handleImport - A callback for handling imports.
33
+ */
34
+ constructor(options: ImportSettings.IOptions);
35
+ render(): JSX.Element;
36
+ private importedSettings;
37
+ private handleImport;
38
+ private translator;
39
+ }
40
+ export declare class ImportSettingsDialogBodyWidget extends ReactWidget {
41
+ private _props;
42
+ constructor(_props: ImportSettings.IDialogBodyBodyOptions);
43
+ render(): JSX.Element;
44
+ }
45
+ export {};
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright (c) Jupyter Development Team.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { ReactWidget } from '@jupyterlab/ui-components';
6
+ import React, { useState } from 'react';
7
+ const SettingsImport = (props) => {
8
+ const trans = props.translator.load('jupyterlab');
9
+ const [checkedStates, setCheckedStates] = useState(props.importedSettings.reduce((acc, key) => {
10
+ acc[key] = true;
11
+ return acc;
12
+ }, {}));
13
+ const handleCheckboxChange = (key, isChecked) => {
14
+ const updatedStates = { ...checkedStates, [key]: isChecked };
15
+ setCheckedStates(updatedStates);
16
+ };
17
+ return (React.createElement("div", { className: "jp-SettingsImport-container" },
18
+ React.createElement("div", { className: "jp-SettingsImport-header" },
19
+ React.createElement("span", { className: "jp-SettingsImport-title" }, trans.__('Select settings sections to import')),
20
+ React.createElement("button", { className: "jp-Button jp-mod-styled jp-mod-accept", onClick: () => {
21
+ props.handleImport(Object.keys(checkedStates).filter(key => !checkedStates[key]));
22
+ } }, trans.__('Import'))),
23
+ React.createElement("div", { className: "jp-SettingsImport-list" }, props.importedSettings.map(key => (React.createElement("label", { key: key, className: "jp-SettingsImport-item" },
24
+ React.createElement("span", { className: "jp-SettingsImport-itemKey" }, key),
25
+ React.createElement("input", { type: "checkbox", checked: checkedStates[key], onChange: e => handleCheckboxChange(key, e.target.checked), className: "jp-SettingsImport-checkbox" })))))));
26
+ };
27
+ /**
28
+ * A widget for importing settings with checkboxes.
29
+ */
30
+ export class ImportSettingsWidget extends ReactWidget {
31
+ /**
32
+ * Constructs a new ImportSettingsWidget.
33
+ *
34
+ * @param importedSettings - The settings to display.
35
+ * @param handleImport - A callback for handling imports.
36
+ */
37
+ constructor(options) {
38
+ const { importedSettings, handleImport, translator } = options;
39
+ super();
40
+ this.importedSettings = importedSettings;
41
+ this.handleImport = handleImport;
42
+ this.addClass('jp-SettingsImport-widget');
43
+ this.translator = translator;
44
+ }
45
+ render() {
46
+ return (React.createElement(SettingsImport, { importedSettings: this.importedSettings, handleImport: this.handleImport, translator: this.translator }));
47
+ }
48
+ }
49
+ const ImportSettingsDialogBody = (props) => {
50
+ return (React.createElement("div", null,
51
+ React.createElement("div", null, props.successMessage),
52
+ props.failureMessage && (React.createElement("div", null,
53
+ React.createElement("br", null),
54
+ React.createElement("div", null, props.failureMessage),
55
+ props.failedSettings &&
56
+ props.failedSettings.map((setting, index) => (React.createElement("div", { key: index }, setting)))))));
57
+ };
58
+ export class ImportSettingsDialogBodyWidget extends ReactWidget {
59
+ constructor(_props) {
60
+ super();
61
+ this._props = _props;
62
+ }
63
+ render() {
64
+ return React.createElement(ImportSettingsDialogBody, { ...this._props });
65
+ }
66
+ }
67
+ //# sourceMappingURL=importSettingsWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importSettingsWidget.js","sourceRoot":"","sources":["../src/importSettingsWidget.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAwBxC,MAAM,cAAc,GAAG,CAAC,KAA8B,EAAe,EAAE;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAA6B,CAC9B,CACF,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,SAAkB,EAAE,EAAE;QAC/D,MAAM,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC;QAC7D,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,6BAA6B;QAC1C,6BAAK,SAAS,EAAC,0BAA0B;YACvC,8BAAM,SAAS,EAAC,yBAAyB,IACtC,KAAK,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAC1C;YACP,gCACE,SAAS,EAAC,uCAAuC,EACjD,OAAO,EAAE,GAAG,EAAE;oBACZ,KAAK,CAAC,YAAY,CAChB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAC9D,CAAC;gBACJ,CAAC,IAEA,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CACZ,CACL;QACN,6BAAK,SAAS,EAAC,wBAAwB,IACpC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACjC,+BAAO,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,wBAAwB;YACjD,8BAAM,SAAS,EAAC,2BAA2B,IAAE,GAAG,CAAQ;YACxD,+BACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAC1D,SAAS,EAAC,4BAA4B,GACtC,CACI,CACT,CAAC,CACE,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IACnD;;;;;OAKG;IACH,YAAY,OAAgC;QAC1C,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAC/D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,CACL,oBAAC,cAAc,IACb,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,GAC3B,CACH,CAAC;IACJ,CAAC;CAKF;AAED,MAAM,wBAAwB,GAAG,CAC/B,KAA4C,EAC/B,EAAE;IACf,OAAO,CACL;QACE,iCAAM,KAAK,CAAC,cAAc,CAAO;QAChC,KAAK,CAAC,cAAc,IAAI,CACvB;YACE,+BAAM;YACN,iCAAM,KAAK,CAAC,cAAc,CAAO;YAChC,KAAK,CAAC,cAAc;gBACnB,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3C,6BAAK,GAAG,EAAE,KAAK,IAAG,OAAO,CAAO,CACjC,CAAC,CACA,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,8BAA+B,SAAQ,WAAW;IAC7D,YAAoB,MAA6C;QAC/D,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAuC;IAEjE,CAAC;IAED,MAAM;QACJ,OAAO,oBAAC,wBAAwB,OAAK,IAAI,CAAC,MAAM,GAAI,CAAC;IACvD,CAAC;CACF"}
package/lib/index.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * @module settingeditor-extension
8
8
  */
9
9
  import { ILabStatus, ILayoutRestorer } from '@jupyterlab/application';
10
- import { ICommandPalette, MainAreaWidget, WidgetTracker } from '@jupyterlab/apputils';
10
+ import { Dialog, ICommandPalette, MainAreaWidget, showDialog, showErrorMessage, WidgetTracker } from '@jupyterlab/apputils';
11
11
  import { IEditorServices } from '@jupyterlab/codeeditor';
12
12
  import { CommandToolbarButton, IFormRendererRegistry, launchIcon, Toolbar, ToolbarButton } from '@jupyterlab/ui-components';
13
13
  import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
@@ -16,7 +16,8 @@ import { IPluginManager } from '@jupyterlab/pluginmanager';
16
16
  import { ISettingRegistry } from '@jupyterlab/settingregistry';
17
17
  import { IStateDB } from '@jupyterlab/statedb';
18
18
  import { ITranslator } from '@jupyterlab/translation';
19
- import { downloadIcon, saveIcon, settingsIcon, undoIcon } from '@jupyterlab/ui-components';
19
+ import { downloadIcon, fileUploadIcon, saveIcon, settingsIcon, undoIcon } from '@jupyterlab/ui-components';
20
+ import { ImportSettingsDialogBodyWidget, ImportSettingsWidget } from './importSettingsWidget';
20
21
  /**
21
22
  * The command IDs used by the setting editor.
22
23
  */
@@ -27,6 +28,7 @@ var CommandIDs;
27
28
  CommandIDs.revert = 'settingeditor:revert';
28
29
  CommandIDs.save = 'settingeditor:save';
29
30
  CommandIDs.exportSettings = 'settingeditor:export';
31
+ CommandIDs.importSettings = 'settingeditor:import';
30
32
  })(CommandIDs || (CommandIDs = {}));
31
33
  /**
32
34
  * The default setting editor extension.
@@ -75,6 +77,9 @@ function activate(app, registry, state, translator, editorRegistry, status, rest
75
77
  shell.add(tracker.currentWidget, 'main', { type: 'Settings' });
76
78
  }
77
79
  shell.activateById(tracker.currentWidget.id);
80
+ if (args.query) {
81
+ tracker.currentWidget.content.updateQuery(args.query);
82
+ }
78
83
  return;
79
84
  }
80
85
  const key = plugin.id;
@@ -99,7 +104,15 @@ function activate(app, registry, state, translator, editorRegistry, status, rest
99
104
  commands,
100
105
  id: CommandIDs.exportSettings,
101
106
  icon: downloadIcon,
102
- label: trans.__('Export Settings')
107
+ label: trans.__('Export'),
108
+ caption: trans.__('Export settings to a JSON file')
109
+ }));
110
+ editor.toolbar.addItem('import-settings', new CommandToolbarButton({
111
+ commands,
112
+ id: CommandIDs.importSettings,
113
+ icon: fileUploadIcon,
114
+ label: trans.__('Import'),
115
+ caption: trans.__('Import settings from a JSON file')
103
116
  }));
104
117
  editor.toolbar.addItem('spacer', Toolbar.createSpacerItem());
105
118
  if (pluginManager) {
@@ -293,6 +306,86 @@ function activateJSON(app, registry, editorServices, state, rendermime, status,
293
306
  label: trans.__('Export Settings'),
294
307
  icon: downloadIcon
295
308
  });
309
+ commands.addCommand(CommandIDs.importSettings, {
310
+ execute: () => {
311
+ const fileInput = document.createElement('input');
312
+ fileInput.type = 'file';
313
+ fileInput.accept = '.json'; // Accept only JSON files
314
+ const JSON_INDENTATION = 4; // Indentation for the JSON file to be uploaded
315
+ fileInput.addEventListener('change', async (event) => {
316
+ var _a;
317
+ const file = (_a = event.target.files) === null || _a === void 0 ? void 0 : _a[0];
318
+ if (!file) {
319
+ return;
320
+ }
321
+ try {
322
+ const fileContent = await file.text();
323
+ const importedSettings = JSON.parse(fileContent);
324
+ // Validate the JSON structure
325
+ if (typeof importedSettings !== 'object' ||
326
+ Array.isArray(importedSettings)) {
327
+ throw new Error('Invalid settings file format');
328
+ }
329
+ const errorUploading = [];
330
+ const applySettings = async (settings) => {
331
+ var _a;
332
+ const settingsEntries = Object.entries(importedSettings);
333
+ for (const [pluginId, pluginSettings] of settingsEntries) {
334
+ if (typeof pluginSettings === 'object' &&
335
+ !Array.isArray(pluginSettings)) {
336
+ try {
337
+ await registry.upload(pluginId, JSON.stringify(pluginSettings, undefined, JSON_INDENTATION));
338
+ }
339
+ catch (error) {
340
+ console.warn(`Failed to save settings for ${pluginId}:`, error);
341
+ errorUploading.push(pluginId);
342
+ }
343
+ }
344
+ else {
345
+ console.warn(`Invalid settings for plugin ${pluginId}. Skipping.`);
346
+ }
347
+ }
348
+ (_a = app.shell.currentWidget) === null || _a === void 0 ? void 0 : _a.close();
349
+ if (settingsEntries.length) {
350
+ const successCount = settingsEntries.length - errorUploading.length;
351
+ const successMessage = trans.__(`Imported settings across ${successCount} ${successCount === 1 ? 'category' : 'categories'} successfully.`);
352
+ const failureMessage = errorUploading.length
353
+ ? trans.__(`Failed to upload settings for the following ${errorUploading.length} ${errorUploading.length === 1 ? 'plugin' : 'plugins'}`)
354
+ : '';
355
+ const body = new ImportSettingsDialogBodyWidget({
356
+ successMessage,
357
+ failureMessage,
358
+ failedSettings: errorUploading
359
+ });
360
+ await showDialog({
361
+ title: trans.__('Settings Imported'),
362
+ body,
363
+ buttons: [Dialog.okButton()]
364
+ });
365
+ }
366
+ };
367
+ const settingsKeys = Object.keys(importedSettings);
368
+ const content = new ImportSettingsWidget({
369
+ importedSettings: settingsKeys,
370
+ handleImport: applySettings,
371
+ translator: translator
372
+ });
373
+ const widget = new MainAreaWidget({ content });
374
+ widget.title.label = trans.__('Import Settings');
375
+ widget.title.icon = fileUploadIcon;
376
+ app.shell.add(widget, 'main');
377
+ app.shell.activateById(widget.id);
378
+ }
379
+ catch (error) {
380
+ await showErrorMessage('Failed to import settings', error);
381
+ }
382
+ });
383
+ // Trigger the file input
384
+ fileInput.click();
385
+ },
386
+ label: trans.__('Import Settings'),
387
+ icon: fileUploadIcon
388
+ });
296
389
  /**
297
390
  * Collect user settings from the registry.
298
391
  */
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/settingeditor-extension",
3
- "version": "4.4.0-alpha.0",
3
+ "version": "4.4.0-alpha.2",
4
4
  "description": "JupyterLab - Setting Editor Extension",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -37,17 +37,18 @@
37
37
  "watch": "tsc -b --watch"
38
38
  },
39
39
  "dependencies": {
40
- "@jupyterlab/application": "^4.4.0-alpha.0",
41
- "@jupyterlab/apputils": "^4.5.0-alpha.0",
42
- "@jupyterlab/codeeditor": "^4.4.0-alpha.0",
43
- "@jupyterlab/pluginmanager": "^4.4.0-alpha.0",
44
- "@jupyterlab/rendermime": "^4.4.0-alpha.0",
45
- "@jupyterlab/settingeditor": "^4.4.0-alpha.0",
46
- "@jupyterlab/settingregistry": "^4.4.0-alpha.0",
47
- "@jupyterlab/statedb": "^4.4.0-alpha.0",
48
- "@jupyterlab/translation": "^4.4.0-alpha.0",
49
- "@jupyterlab/ui-components": "^4.4.0-alpha.0",
50
- "@lumino/disposable": "^2.1.3"
40
+ "@jupyterlab/application": "^4.4.0-alpha.2",
41
+ "@jupyterlab/apputils": "^4.5.0-alpha.2",
42
+ "@jupyterlab/codeeditor": "^4.4.0-alpha.2",
43
+ "@jupyterlab/pluginmanager": "^4.4.0-alpha.2",
44
+ "@jupyterlab/rendermime": "^4.4.0-alpha.2",
45
+ "@jupyterlab/settingeditor": "^4.4.0-alpha.2",
46
+ "@jupyterlab/settingregistry": "^4.4.0-alpha.2",
47
+ "@jupyterlab/statedb": "^4.4.0-alpha.2",
48
+ "@jupyterlab/translation": "^4.4.0-alpha.2",
49
+ "@jupyterlab/ui-components": "^4.4.0-alpha.2",
50
+ "@lumino/disposable": "^2.1.3",
51
+ "react": "^18.2.0"
51
52
  },
52
53
  "devDependencies": {
53
54
  "rimraf": "~5.0.5",
@@ -0,0 +1,145 @@
1
+ /*
2
+ * Copyright (c) Jupyter Development Team.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+
6
+ import { ITranslator } from '@jupyterlab/translation';
7
+ import { ReactWidget } from '@jupyterlab/ui-components';
8
+ import React, { useState } from 'react';
9
+
10
+ /**
11
+ * A namespace for ImportSettings.
12
+ */
13
+ namespace ImportSettings {
14
+ /**
15
+ * The props for the ImportSettings component.
16
+ */
17
+ export interface IOptions {
18
+ importedSettings: string[];
19
+ handleImport: (settings: string[]) => void;
20
+ translator: ITranslator;
21
+ }
22
+ /**
23
+ * The props for the ImportSettings DialogBox body.
24
+ */
25
+ export interface IDialogBodyBodyOptions {
26
+ successMessage: string;
27
+ failureMessage?: string;
28
+ failedSettings?: string[];
29
+ }
30
+ }
31
+
32
+ const SettingsImport = (props: ImportSettings.IOptions): JSX.Element => {
33
+ const trans = props.translator.load('jupyterlab');
34
+ const [checkedStates, setCheckedStates] = useState<Record<string, boolean>>(
35
+ props.importedSettings.reduce(
36
+ (acc, key) => {
37
+ acc[key] = true;
38
+ return acc;
39
+ },
40
+ {} as Record<string, boolean>
41
+ )
42
+ );
43
+
44
+ const handleCheckboxChange = (key: string, isChecked: boolean) => {
45
+ const updatedStates = { ...checkedStates, [key]: isChecked };
46
+ setCheckedStates(updatedStates);
47
+ };
48
+
49
+ return (
50
+ <div className="jp-SettingsImport-container">
51
+ <div className="jp-SettingsImport-header">
52
+ <span className="jp-SettingsImport-title">
53
+ {trans.__('Select settings sections to import')}
54
+ </span>
55
+ <button
56
+ className="jp-Button jp-mod-styled jp-mod-accept"
57
+ onClick={() => {
58
+ props.handleImport(
59
+ Object.keys(checkedStates).filter(key => !checkedStates[key])
60
+ );
61
+ }}
62
+ >
63
+ {trans.__('Import')}
64
+ </button>
65
+ </div>
66
+ <div className="jp-SettingsImport-list">
67
+ {props.importedSettings.map(key => (
68
+ <label key={key} className="jp-SettingsImport-item">
69
+ <span className="jp-SettingsImport-itemKey">{key}</span>
70
+ <input
71
+ type="checkbox"
72
+ checked={checkedStates[key]}
73
+ onChange={e => handleCheckboxChange(key, e.target.checked)}
74
+ className="jp-SettingsImport-checkbox"
75
+ />
76
+ </label>
77
+ ))}
78
+ </div>
79
+ </div>
80
+ );
81
+ };
82
+
83
+ /**
84
+ * A widget for importing settings with checkboxes.
85
+ */
86
+ export class ImportSettingsWidget extends ReactWidget {
87
+ /**
88
+ * Constructs a new ImportSettingsWidget.
89
+ *
90
+ * @param importedSettings - The settings to display.
91
+ * @param handleImport - A callback for handling imports.
92
+ */
93
+ constructor(options: ImportSettings.IOptions) {
94
+ const { importedSettings, handleImport, translator } = options;
95
+ super();
96
+ this.importedSettings = importedSettings;
97
+ this.handleImport = handleImport;
98
+ this.addClass('jp-SettingsImport-widget');
99
+ this.translator = translator;
100
+ }
101
+
102
+ render(): JSX.Element {
103
+ return (
104
+ <SettingsImport
105
+ importedSettings={this.importedSettings}
106
+ handleImport={this.handleImport}
107
+ translator={this.translator}
108
+ />
109
+ );
110
+ }
111
+
112
+ private importedSettings: string[];
113
+ private handleImport: (settings: string[]) => void;
114
+ private translator: ITranslator;
115
+ }
116
+
117
+ const ImportSettingsDialogBody = (
118
+ props: ImportSettings.IDialogBodyBodyOptions
119
+ ): JSX.Element => {
120
+ return (
121
+ <div>
122
+ <div>{props.successMessage}</div>
123
+ {props.failureMessage && (
124
+ <div>
125
+ <br />
126
+ <div>{props.failureMessage}</div>
127
+ {props.failedSettings &&
128
+ props.failedSettings.map((setting, index) => (
129
+ <div key={index}>{setting}</div>
130
+ ))}
131
+ </div>
132
+ )}
133
+ </div>
134
+ );
135
+ };
136
+
137
+ export class ImportSettingsDialogBodyWidget extends ReactWidget {
138
+ constructor(private _props: ImportSettings.IDialogBodyBodyOptions) {
139
+ super();
140
+ }
141
+
142
+ render(): JSX.Element {
143
+ return <ImportSettingsDialogBody {...this._props} />;
144
+ }
145
+ }
package/src/index.ts CHANGED
@@ -14,8 +14,11 @@ import {
14
14
  JupyterFrontEndPlugin
15
15
  } from '@jupyterlab/application';
16
16
  import {
17
+ Dialog,
17
18
  ICommandPalette,
18
19
  MainAreaWidget,
20
+ showDialog,
21
+ showErrorMessage,
19
22
  WidgetTracker
20
23
  } from '@jupyterlab/apputils';
21
24
  import { IEditorServices } from '@jupyterlab/codeeditor';
@@ -31,21 +34,23 @@ import {
31
34
  IJSONSettingEditorTracker,
32
35
  ISettingEditorTracker
33
36
  } from '@jupyterlab/settingeditor/lib/tokens';
34
- import type {
35
- JsonSettingEditor,
36
- SettingsEditor
37
- } from '@jupyterlab/settingeditor';
37
+ import { JsonSettingEditor, SettingsEditor } from '@jupyterlab/settingeditor';
38
38
  import { IPluginManager } from '@jupyterlab/pluginmanager';
39
39
  import { ISettingRegistry } from '@jupyterlab/settingregistry';
40
40
  import { IStateDB } from '@jupyterlab/statedb';
41
41
  import { ITranslator } from '@jupyterlab/translation';
42
42
  import {
43
43
  downloadIcon,
44
+ fileUploadIcon,
44
45
  saveIcon,
45
46
  settingsIcon,
46
47
  undoIcon
47
48
  } from '@jupyterlab/ui-components';
48
49
  import { IDisposable } from '@lumino/disposable';
50
+ import {
51
+ ImportSettingsDialogBodyWidget,
52
+ ImportSettingsWidget
53
+ } from './importSettingsWidget';
49
54
 
50
55
  /**
51
56
  * The command IDs used by the setting editor.
@@ -60,6 +65,8 @@ namespace CommandIDs {
60
65
  export const save = 'settingeditor:save';
61
66
 
62
67
  export const exportSettings = 'settingeditor:export';
68
+
69
+ export const importSettings = 'settingeditor:import';
63
70
  }
64
71
 
65
72
  type SettingEditorType = 'ui' | 'json';
@@ -119,12 +126,15 @@ function activate(
119
126
  });
120
127
  }
121
128
 
122
- const openUi = async (args: { query: string }) => {
129
+ const openUi = async (args: { query?: string }) => {
123
130
  if (tracker.currentWidget && !tracker.currentWidget.isDisposed) {
124
131
  if (!tracker.currentWidget.isAttached) {
125
132
  shell.add(tracker.currentWidget, 'main', { type: 'Settings' });
126
133
  }
127
134
  shell.activateById(tracker.currentWidget.id);
135
+ if (args.query) {
136
+ tracker.currentWidget.content.updateQuery(args.query);
137
+ }
128
138
  return;
129
139
  }
130
140
 
@@ -155,7 +165,19 @@ function activate(
155
165
  commands,
156
166
  id: CommandIDs.exportSettings,
157
167
  icon: downloadIcon,
158
- label: trans.__('Export Settings')
168
+ label: trans.__('Export'),
169
+ caption: trans.__('Export settings to a JSON file')
170
+ })
171
+ );
172
+
173
+ editor.toolbar.addItem(
174
+ 'import-settings',
175
+ new CommandToolbarButton({
176
+ commands,
177
+ id: CommandIDs.importSettings,
178
+ icon: fileUploadIcon,
179
+ label: trans.__('Import'),
180
+ caption: trans.__('Import settings from a JSON file')
159
181
  })
160
182
  );
161
183
 
@@ -384,6 +406,112 @@ function activateJSON(
384
406
  icon: downloadIcon
385
407
  });
386
408
 
409
+ commands.addCommand(CommandIDs.importSettings, {
410
+ execute: () => {
411
+ const fileInput = document.createElement('input');
412
+ fileInput.type = 'file';
413
+ fileInput.accept = '.json'; // Accept only JSON files
414
+ const JSON_INDENTATION = 4; // Indentation for the JSON file to be uploaded
415
+
416
+ fileInput.addEventListener('change', async event => {
417
+ const file = (event.target as HTMLInputElement).files?.[0];
418
+ if (!file) {
419
+ return;
420
+ }
421
+
422
+ try {
423
+ const fileContent = await file.text();
424
+ const importedSettings = JSON.parse(fileContent);
425
+
426
+ // Validate the JSON structure
427
+ if (
428
+ typeof importedSettings !== 'object' ||
429
+ Array.isArray(importedSettings)
430
+ ) {
431
+ throw new Error('Invalid settings file format');
432
+ }
433
+ const errorUploading: string[] = [];
434
+ const applySettings = async (settings: string[]) => {
435
+ const settingsEntries = Object.entries(importedSettings);
436
+ for (const [pluginId, pluginSettings] of settingsEntries) {
437
+ if (
438
+ typeof pluginSettings === 'object' &&
439
+ !Array.isArray(pluginSettings)
440
+ ) {
441
+ try {
442
+ await registry.upload(
443
+ pluginId,
444
+ JSON.stringify(pluginSettings, undefined, JSON_INDENTATION)
445
+ );
446
+ } catch (error) {
447
+ console.warn(
448
+ `Failed to save settings for ${pluginId}:`,
449
+ error
450
+ );
451
+ errorUploading.push(pluginId);
452
+ }
453
+ } else {
454
+ console.warn(
455
+ `Invalid settings for plugin ${pluginId}. Skipping.`
456
+ );
457
+ }
458
+ }
459
+
460
+ app.shell.currentWidget?.close();
461
+
462
+ if (settingsEntries.length) {
463
+ const successCount =
464
+ settingsEntries.length - errorUploading.length;
465
+ const successMessage = trans.__(
466
+ `Imported settings across ${successCount} ${
467
+ successCount === 1 ? 'category' : 'categories'
468
+ } successfully.`
469
+ );
470
+ const failureMessage = errorUploading.length
471
+ ? trans.__(
472
+ `Failed to upload settings for the following ${
473
+ errorUploading.length
474
+ } ${errorUploading.length === 1 ? 'plugin' : 'plugins'}`
475
+ )
476
+ : '';
477
+
478
+ const body = new ImportSettingsDialogBodyWidget({
479
+ successMessage,
480
+ failureMessage,
481
+ failedSettings: errorUploading
482
+ });
483
+
484
+ await showDialog({
485
+ title: trans.__('Settings Imported'),
486
+ body,
487
+ buttons: [Dialog.okButton()]
488
+ });
489
+ }
490
+ };
491
+
492
+ const settingsKeys = Object.keys(importedSettings);
493
+ const content = new ImportSettingsWidget({
494
+ importedSettings: settingsKeys,
495
+ handleImport: applySettings,
496
+ translator: translator
497
+ });
498
+ const widget = new MainAreaWidget<ImportSettingsWidget>({ content });
499
+ widget.title.label = trans.__('Import Settings');
500
+ widget.title.icon = fileUploadIcon;
501
+ app.shell.add(widget, 'main');
502
+ app.shell.activateById(widget.id);
503
+ } catch (error) {
504
+ await showErrorMessage('Failed to import settings', error);
505
+ }
506
+ });
507
+
508
+ // Trigger the file input
509
+ fileInput.click();
510
+ },
511
+ label: trans.__('Import Settings'),
512
+ icon: fileUploadIcon
513
+ });
514
+
387
515
  /**
388
516
  * Collect user settings from the registry.
389
517
  */