浏览代码

Improve handling of file deletion

Steven Silvester 8 年之前
父节点
当前提交
9d3ef5fd0d
共有 2 个文件被更改,包括 10 次插入9 次删除
  1. 8 7
      packages/filebrowser/src/listing.ts
  2. 2 2
      packages/filebrowser/src/utils.ts

+ 8 - 7
packages/filebrowser/src/listing.ts

@@ -358,13 +358,13 @@ class DirListing extends Widget {
         names.push(item.name);
       }
     });
-    let message = `Permanently delete these ${names.length} files?`;
+    let message = `Are you sure you want to permanently delete the ${names.length} files/folders selected?`;
     if (names.length === 1) {
-      message = `Permanently delete file "${names[0]}"?`;
+      message = `Are you sure you want to permanently delete: ${names[0]}?`;
     }
     if (names.length) {
       return showDialog({
-        title: 'Delete file?',
+        title: 'Delete',
         body: message,
         buttons: [Dialog.cancelButton(), Dialog.warnButton({ label: 'DELETE'})]
       }).then(result => {
@@ -1193,11 +1193,12 @@ class DirListing extends Widget {
     const promises: Promise<void>[] = [];
     const basePath = this._model.path;
     for (let name of names) {
-      promises.push(this._model.manager.deleteFile(name, basePath));
+      let promise = this._model.manager.deleteFile(name, basePath).catch(err => {
+        utils.showErrorMessage('Delete Failed', err);
+      });
+      promises.push(promise);
     }
-    return Promise.all(promises).catch(error => {
-      utils.showErrorMessage('Delete file', error);
-    });
+    return Promise.all(promises).then(() => undefined);
   }
 
   /**

+ 2 - 2
packages/filebrowser/src/utils.ts

@@ -29,11 +29,11 @@ const CONTENTS_MIME = 'application/x-jupyter-icontents';
  * An error message dialog to show in the filebrowser widget.
  */
 export
-function showErrorMessage(title: string, error: Error): Promise<void> {
+function showErrorMessage(title: string, error: any): Promise<void> {
   console.error(error);
   let options = {
     title: title,
-    body: error.message || `File ${title}`,
+    body: error.throwError || error.message || `File ${title}`,
     buttons: [Dialog.okButton()],
     okText: 'DISMISS'
   };