[ARVADOS-WORKBENCH2] updated: 2.1.0-151-g7437e0b4

Git user git at public.arvados.org
Mon Jan 11 16:00:06 UTC 2021


Summary of changes:
 cypress/integration/delete-multiple-files.spec.js  | 75 ++++++++++++++++++++++
 .../collection-service/collection-service.test.ts  | 69 ++++++++++++++++++++
 .../collection-service/collection-service.ts       | 22 +++++--
 .../collection-panel-files-actions.ts              |  5 +-
 4 files changed, 163 insertions(+), 8 deletions(-)
 create mode 100644 cypress/integration/delete-multiple-files.spec.js
 create mode 100644 src/services/collection-service/collection-service.test.ts

       via  7437e0b4a85480fc6ca977488a5bb501e7fa1e3e (commit)
       via  d50bc0acaab286ec7c639c2bb52280a2e3099a67 (commit)
       via  d5db24f8cfa26d546596b99e644e37c72b6b1fae (commit)
       via  a293a23fa93855c9c6e180bfd77880b794c24673 (commit)
       via  36d0bf2c656c5ff79c94216a8bfbed015bc84f7e (commit)
      from  07f6b3436c07bba13c33d66862c9d6d65aef3d24 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 7437e0b4a85480fc6ca977488a5bb501e7fa1e3e
Merge: 07f6b343 d50bc0ac
Author: Daniel Kutyła <daniel.kutyla at contractors.roche.com>
Date:   Mon Jan 11 16:58:44 2021 +0100

    Merge branch '17016-delete-single-file-deletes-whole-collection'
    closes #17016
    
    Arvados-DCO-1.1-Signed-off-by: Daniel Kutyła <daniel.kutyla at contractors.roche.com>

diff --cc src/services/collection-service/collection-service.ts
index 04c01a11,5ae03b89..c46c3e27
--- a/src/services/collection-service/collection-service.ts
+++ b/src/services/collection-service/collection-service.ts
@@@ -44,16 -36,25 +44,26 @@@ export class CollectionService extends 
      }
  
      async deleteFiles(collectionUuid: string, filePaths: string[]) {
-         if (collectionUuid === "" || filePaths.length === 0) { return; }
-         for (const path of filePaths) {
-             const splittedPath = path.split('/');
-             if (collectionUuid) {
-                 await this.webdavClient.delete(`c=${collectionUuid}/${splittedPath[1]}`);
-             } else {
+         const sortedUniquePaths = Array.from(new Set(filePaths))
+             .sort((a, b) => a.length - b.length)
+             .reduce((acc, currentPath) => {
+                 const parentPathFound = acc.find((parentPath) => currentPath.indexOf(`${parentPath}/`) > -1);
+ 
+                 if (!parentPathFound) {
+                     return [...acc, currentPath];
+                 }
+ 
+                 return acc;
+             }, []);
+ 
+         for (const path of sortedUniquePaths) {
+             if (path.indexOf(collectionUuid) === -1) {
                  await this.webdavClient.delete(`c=${collectionUuid}${path}`);
+             } else {
+                 await this.webdavClient.delete(`c=${path}`);
              }
          }
 +        await this.update(collectionUuid, { preserveVersion: true });
      }
  
      async uploadFiles(collectionUuid: string, files: File[], onProgress?: UploadProgress) {
diff --cc src/store/collection-panel/collection-panel-files/collection-panel-files-actions.ts
index 80d61ea0,373ee04e..c7a3bdc5
--- a/src/store/collection-panel/collection-panel-files/collection-panel-files-actions.ts
+++ b/src/store/collection-panel/collection-panel-files/collection-panel-files-actions.ts
@@@ -42,12 -42,13 +42,13 @@@ export const loadCollectionFiles = (uui
              const mapped = mapTreeValues(services.collectionService.extendFileURL)(sorted);
              dispatch(collectionPanelFilesAction.SET_COLLECTION_FILES(mapped));
              dispatch(progressIndicatorActions.STOP_WORKING(COLLECTION_PANEL_LOAD_FILES));
 -        }).catch(e => {
 +        }).catch(() => {
              dispatch(progressIndicatorActions.STOP_WORKING(COLLECTION_PANEL_LOAD_FILES));
              dispatch(snackbarActions.OPEN_SNACKBAR({
 -                message: `Error getting file list: ${e.errors[0]}`,
 +                message: `Error getting file list`,
                  hideDuration: 2000,
-                 kind: SnackbarKind.ERROR }));
+                 kind: SnackbarKind.ERROR
+             }));
          });
      };
  

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list