Skip to content

Commit 4bde19c

Browse files
committed
refactor openDriveDialogPlugin
1 parent 332cb5f commit 4bde19c

File tree

1 file changed

+30
-62
lines changed

1 file changed

+30
-62
lines changed

src/plugins/driveDialogPlugin.ts

Lines changed: 30 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ import { ITranslator } from '@jupyterlab/translation';
77
import { addJupyterLabThemeChangeListener } from '@jupyter/web-components';
88
import { Dialog, showDialog } from '@jupyterlab/apputils';
99

10-
import { DriveListModel, DriveListView, IDrive } from './drivelistmanager';
10+
import { DriveListModel, DriveListView } from './drivelistmanager';
1111
import { driveBrowserIcon } from '../icons';
12-
import { CommandIDs } from '../token';
12+
import { CommandIDs, IDriveInfo } from '../token';
13+
import { getDrivesList, getExcludedDrives } from '../requests';
1314

1415
export const openDriveDialogPlugin: JupyterFrontEndPlugin<void> = {
1516
id: 'jupyter-drives:widget',
16-
description: 'Open a dialog to select drives to be added in the filebrowser.',
17+
description: 'Open a dialog to managed listed drives in the filebrowser.',
1718
requires: [IFileBrowserFactory, ITranslator],
1819
autoStart: true,
1920
activate: (
@@ -25,68 +26,29 @@ export const openDriveDialogPlugin: JupyterFrontEndPlugin<void> = {
2526
const { commands } = app;
2627
const { tracker } = factory;
2728
const trans = translator.load('jupyter_drives');
28-
const selectedDrivesModelMap = new Map<IDrive[], DriveListModel>();
29+
const selectedDrivesModelMap = new Map<
30+
Partial<IDriveInfo>[],
31+
DriveListModel
32+
>();
2933

30-
let selectedDrives: IDrive[] = [
31-
{
32-
name: 'CoconutDrive',
33-
url: '/coconut/url'
34-
}
35-
];
36-
37-
const availableDrives: IDrive[] = [
38-
{
39-
name: 'CoconutDrive',
40-
url: '/coconut/url'
41-
},
42-
{
43-
name: 'PearDrive',
44-
url: '/pear/url'
45-
},
46-
{
47-
name: 'StrawberryDrive',
48-
url: '/strawberrydrive/url'
49-
},
50-
{
51-
name: 'BlueberryDrive',
52-
url: '/blueberrydrive/url'
53-
},
54-
{
55-
name: '',
56-
url: '/mydrive/url'
57-
},
58-
{
59-
name: 'RaspberryDrive',
60-
url: '/raspberrydrive/url'
61-
},
34+
let selectedDrives: Partial<IDriveInfo>[] = [];
35+
getDrivesList().then((drives: IDriveInfo[]) => {
36+
selectedDrives = drives.map((drive: IDriveInfo) => ({
37+
name: drive.name,
38+
region: drive.region
39+
}));
40+
});
6241

63-
{
64-
name: 'PineAppleDrive',
65-
url: ''
66-
},
42+
let availableDrives: Partial<IDriveInfo>[] = [];
43+
getExcludedDrives().then((drives: IDriveInfo[]) => {
44+
availableDrives = drives.map((drive: IDriveInfo) => ({
45+
name: drive.name,
46+
region: drive.region
47+
}));
48+
});
6749

68-
{ name: 'PomeloDrive', url: '/https://pomelodrive/url' },
69-
{
70-
name: 'OrangeDrive',
71-
url: ''
72-
},
73-
{
74-
name: 'TomatoDrive',
75-
url: ''
76-
},
77-
{
78-
name: '',
79-
url: 'superDrive/url'
80-
},
81-
{
82-
name: 'AvocadoDrive',
83-
url: ''
84-
}
85-
];
8650
let model = selectedDrivesModelMap.get(selectedDrives);
8751

88-
//const model = new DriveListModel(availableDrives, selectedDrives);
89-
9052
commands.addCommand(CommandIDs.openDrivesDialog, {
9153
execute: args => {
9254
const widget = tracker.currentWidget;
@@ -109,8 +71,14 @@ export const openDriveDialogPlugin: JupyterFrontEndPlugin<void> = {
10971
},
11072

11173
icon: driveBrowserIcon.bindprops({ stylesheet: 'menuItem' }),
112-
caption: trans.__('Add drives to filebrowser.'),
113-
label: trans.__('Add Drives To Filebrowser')
74+
caption: trans.__('Manage drives listed in filebrowser.'),
75+
label: trans.__('Manage listed drives')
76+
});
77+
78+
app.contextMenu.addItem({
79+
command: CommandIDs.openDrivesDialog,
80+
selector: '#drive-file-browser.jp-SidePanel',
81+
rank: 100
11482
});
11583
}
11684
};

0 commit comments

Comments
 (0)