16592: Restores 'Rename' action. Adds support for baseURL w/o trailing slash. 16592-renaming-fix
authorLucas Di Pentima <lucas@di-pentima.com.ar>
Wed, 23 Sep 2020 21:14:46 +0000 (18:14 -0300)
committerLucas Di Pentima <lucas@di-pentima.com.ar>
Wed, 23 Sep 2020 21:14:46 +0000 (18:14 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas@di-pentima.com.ar>

src/common/webdav.ts
src/views-components/context-menu/action-sets/collection-files-item-action-set.ts

index b2f43348a8d95105a62bc7c20ea520d59907c95d..17032768fd00436ef92cb4b63d156d0456ddc442 100644 (file)
@@ -42,14 +42,24 @@ export class WebDAV {
         this.request({
             ...config, url,
             method: 'COPY',
-            headers: { ...config.headers, Destination: this.defaults.baseURL + destination }
+            headers: {
+                ...config.headers,
+                Destination: this.defaults.baseURL
+                    ? this.defaults.baseURL.replace(/\/+$/, '') + '/' + destination.replace(/^\/+/, '')
+                    : destination
+            }
         })
 
     move = (url: string, destination: string, config: WebDAVRequestConfig = {}) =>
         this.request({
             ...config, url,
             method: 'MOVE',
-            headers: { ...config.headers, Destination: this.defaults.baseURL + destination }
+            headers: {
+                ...config.headers,
+                Destination: this.defaults.baseURL
+                    ? this.defaults.baseURL.replace(/\/+$/, '') + '/' + destination.replace(/^\/+/, '')
+                    : destination
+            }
         })
 
     delete = (url: string, config: WebDAVRequestConfig = {}) =>
index 2ded3736b2130b2709667018ddb51d17ff2c7d75..b900d1864dd3490710cb39a061caff1b548417cb 100644 (file)
@@ -3,9 +3,9 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { ContextMenuActionSet } from "../context-menu-action-set";
-import { RemoveIcon } from "~/components/icon/icon";
+import { RemoveIcon, RenameIcon } from "~/components/icon/icon";
 import { DownloadCollectionFileAction } from "../actions/download-collection-file-action";
-import { openFileRemoveDialog } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { openFileRemoveDialog, openRenameFileDialog } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
 import { CollectionFileViewerAction } from '~/views-components/context-menu/actions/collection-file-viewer-action';
 
 
@@ -21,14 +21,13 @@ export const readOnlyCollectionFilesItemActionSet: ContextMenuActionSet = [[
 ]];
 
 export const collectionFilesItemActionSet: ContextMenuActionSet = readOnlyCollectionFilesItemActionSet.concat([[
-    // FIXME: This isn't working. Maybe something related to WebDAV?
-    // {
-    //     name: "Rename",
-    //     icon: RenameIcon,
-    //     execute: (dispatch, resource) => {
-    //         dispatch<any>(openRenameFileDialog({ name: resource.name, id: resource.uuid }));
-    //     }
-    // },
+    {
+        name: "Rename",
+        icon: RenameIcon,
+        execute: (dispatch, resource) => {
+            dispatch<any>(openRenameFileDialog({ name: resource.name, id: resource.uuid }));
+        }
+    },
     {
         name: "Remove",
         icon: RemoveIcon,