Skip to content

Commit d22b5ee

Browse files
Fix bug with the toolbar and the error message related to setFilter and update index.ts and drivelistmanager to be able to add and remove panels containing drive filebrowsers for drives selected in the dialog.
1 parent b03aaf3 commit d22b5ee

File tree

4 files changed

+125
-172
lines changed

4 files changed

+125
-172
lines changed

schema/widget.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"jupyter.lab.toolbars": {
3-
"FileBrowser": [
3+
"DrivePanel": [
44
{
55
"name": "new-directory",
66
"command": "filebrowser:create-new-directory",

src/contents.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ export class Drive implements Contents.IDrive {
337337
const data = await response.json();*/
338338

339339
const data = drive1Contents;
340-
Contents.validateContentsModel(data);
340+
//Contents.validateContentsModel(data);
341341
return data;
342342
}
343343

src/drivelistmanager.tsx

Lines changed: 17 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ import {
1111
import { useState } from 'react';
1212
import { Drive } from './contents';
1313
import { DocumentRegistry } from '@jupyterlab/docregistry';
14-
import { SidePanel } from '@jupyterlab/ui-components';
15-
import { FileBrowser } from '@jupyterlab/filebrowser';
16-
import { ILayoutRestorer, JupyterFrontEnd } from '@jupyterlab/application';
14+
//import { SidePanel } from '@jupyterlab/ui-components';
15+
//import { FileBrowser } from '@jupyterlab/filebrowser';
16+
//import { ILayoutRestorer, JupyterFrontEnd } from '@jupyterlab/application';
1717

1818
interface IProps {
1919
model: DriveListModel;
@@ -157,7 +157,6 @@ export function DriveListManagerComponent(props: IProps) {
157157
};
158158

159159
const updateSelectedDrives = (item: string, isName: boolean) => {
160-
console.log('you have clicked on add drive button');
161160
updatedSelectedDrives = [...props.model.selectedDrives];
162161
let pickedDrive = new Drive();
163162

@@ -174,14 +173,21 @@ export function DriveListManagerComponent(props: IProps) {
174173
}
175174
});
176175

177-
const checkDrive = isDriveAlreadySelected(
178-
pickedDrive,
179-
updatedSelectedDrives
180-
);
181-
if (checkDrive === false) {
182-
updatedSelectedDrives.push(pickedDrive);
176+
if (pickedDrive.status === 'active') {
177+
if (
178+
isDriveAlreadySelected(pickedDrive, updatedSelectedDrives) === false
179+
) {
180+
updatedSelectedDrives.push(pickedDrive);
181+
console.log(`Drive filebrowser is added for ${pickedDrive.name} drive`);
182+
} else {
183+
console.warn(
184+
`There is already a drive filebrowser for ${pickedDrive.name} drive`
185+
);
186+
}
183187
} else {
184-
console.warn('The selected drive is already in the list');
188+
console.warn(
189+
`The selected drive ${pickedDrive.name} is inactive and cannot be mounted`
190+
);
185191
}
186192

187193
setSelectedDrives(updatedSelectedDrives);
@@ -264,53 +270,6 @@ export class DriveListModel extends VDomModel {
264270
setSelectedDrives(selectedDrives: Drive[]) {
265271
this.selectedDrives = selectedDrives;
266272
}
267-
async sendConnectionRequest(selectedDrives: Drive[]): Promise<boolean> {
268-
const lastAddedDrive = selectedDrives[selectedDrives.length - 1];
269-
let response: boolean;
270-
console.log('Checking the status of selected drive ', lastAddedDrive.name);
271-
if (lastAddedDrive.status === 'active') {
272-
response = true;
273-
} else {
274-
console.warn('The selected drive is inactive');
275-
response = false;
276-
}
277-
/*requestAPI('send_connectionRequest', {
278-
method: 'POST'
279-
})
280-
.then(data => {
281-
console.log('data:', data);
282-
return data;
283-
})
284-
.catch(reason => {
285-
console.error(
286-
`The jupyter_drive server extension appears to be missing.\n${reason}`
287-
);
288-
return;
289-
});*/
290-
return response;
291-
}
292-
293-
async addPanel(
294-
drive: Drive,
295-
panel: SidePanel,
296-
filebrowser: FileBrowser,
297-
app: JupyterFrontEnd,
298-
restorer: ILayoutRestorer | null
299-
): Promise<boolean> {
300-
let response: boolean;
301-
if (drive.name === 'active') {
302-
response = true;
303-
panel.addWidget(filebrowser);
304-
//app.shell.add(panel, 'left', { rank: 102 });
305-
if (restorer) {
306-
restorer.add(panel, drive.name + '-browser');
307-
}
308-
} else {
309-
response = false;
310-
console.warn('The selected drive is inactive');
311-
}
312-
return response;
313-
}
314273
}
315274

316275
export class DriveListView extends VDomRenderer<DriveListModel> {

0 commit comments

Comments
 (0)