X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f5c0cb11102a006cda59711f29458b7569b9a21f..4f5fdd49c0c9866fbb613c6c82641d686b0b8ad5:/src/store/collection-panel/collection-panel-files/collection-panel-files-actions.ts diff --git 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 index f214fd2f7b..99ab6829fa 100644 --- 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 @@ -11,10 +11,9 @@ import { snackbarActions } from "../../snackbar/snackbar-actions"; import { dialogActions } from '../../dialog/dialog-actions'; import { getNodeValue } from "~/models/tree"; import { filterCollectionFilesBySelection } from './collection-panel-files-state'; -import { startSubmit, initialize, stopSubmit, reset } from 'redux-form'; -import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service"; +import { startSubmit, stopSubmit, reset } from 'redux-form'; import { getDialog } from "~/store/dialog/dialog-reducer"; -import { resetPickerProjectTree } from '~/store/project-tree-picker/project-tree-picker-actions'; +import { getFileFullPath } from "~/services/collection-service/collection-service-files-response"; export const collectionPanelFilesAction = unionize({ SET_COLLECTION_FILES: ofType(), @@ -45,7 +44,8 @@ export const removeCollectionFiles = (filePaths: string[]) => export const removeCollectionsSelectedFiles = () => (dispatch: Dispatch, getState: () => RootState) => { - const paths = filterCollectionFilesBySelection(getState().collectionPanelFiles, true).map(file => file.id); + const paths = filterCollectionFilesBySelection(getState().collectionPanelFiles, true) + .map(getFileFullPath); dispatch(removeCollectionFiles(paths)); }; @@ -103,16 +103,19 @@ export const renameFile = (newName: string) => const dialog = getDialog(getState().dialog, RENAME_FILE_DIALOG); const currentCollection = getState().collectionPanel.item; if (dialog && currentCollection) { - dispatch(startSubmit(RENAME_FILE_DIALOG)); - const oldPath = dialog.data.id; - const newPath = dialog.data.id.replace(dialog.data.name, newName); - try { - await services.collectionService.moveFile(currentCollection.uuid, oldPath, newPath); - dispatch(loadCollectionFiles(currentCollection.uuid)); - dispatch(dialogActions.CLOSE_DIALOG({ id: RENAME_FILE_DIALOG })); - dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'File name changed.', hideDuration: 2000 })); - } catch (e) { - dispatch(stopSubmit(RENAME_FILE_DIALOG, { name: 'Could not rename the file' })); + const file = getNodeValue(dialog.data.id)(getState().collectionPanelFiles); + if (file) { + dispatch(startSubmit(RENAME_FILE_DIALOG)); + const oldPath = getFileFullPath(file); + const newPath = getFileFullPath({ ...file, name: newName }); + try { + await services.collectionService.moveFile(currentCollection.uuid, oldPath, newPath); + dispatch(loadCollectionFiles(currentCollection.uuid)); + dispatch(dialogActions.CLOSE_DIALOG({ id: RENAME_FILE_DIALOG })); + dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'File name changed.', hideDuration: 2000 })); + } catch (e) { + dispatch(stopSubmit(RENAME_FILE_DIALOG, { name: 'Could not rename the file' })); + } } } };