diff --git a/resources/js/components/FilesView/OptionUpload.vue b/resources/js/components/FilesView/OptionUpload.vue index 4bfdfb61..09d3bc5c 100644 --- a/resources/js/components/FilesView/OptionUpload.vue +++ b/resources/js/components/FilesView/OptionUpload.vue @@ -10,7 +10,7 @@ {{ title }} - + @@ -30,6 +30,11 @@ export default { emmitFiles(e) { this.$uploadFiles(e.target.files) }, + emmitFolder(e) { + this.$store.commit('UPDATE_UPLOADING_FOLDER_STATE', true) + + this.$uploadFiles(e.target.files) + }, }, } diff --git a/resources/js/store/modules/fileBrowser.js b/resources/js/store/modules/fileBrowser.js index fb55ea79..aac371b8 100644 --- a/resources/js/store/modules/fileBrowser.js +++ b/resources/js/store/modules/fileBrowser.js @@ -103,13 +103,9 @@ const actions = { getFolderTree: ({ commit, getters }) => { return new Promise((resolve, reject) => { // Get route - let route = undefined - - if (getters.sharedDetail) { - route = `/api/browse/navigation/${router.currentRoute.params.token}` - } else { - route = '/api/browse/navigation' - } + let route = getters.sharedDetail + ? `/api/browse/navigation/${router.currentRoute.params.token}` + : '/api/browse/navigation' axios .get(route + getters.sorting.URI) diff --git a/resources/js/store/modules/fileFunctions.js b/resources/js/store/modules/fileFunctions.js index b29a11b6..7177ec23 100644 --- a/resources/js/store/modules/fileFunctions.js +++ b/resources/js/store/modules/fileFunctions.js @@ -6,6 +6,7 @@ import Vue from 'vue' const defaultState = { processingPopup: undefined, + isUploadingFolder: false, isProcessingFile: false, filesInQueueUploaded: 0, filesInQueueTotal: 0, @@ -107,8 +108,8 @@ const actions = { } }, 10) - if (Vue.prototype.$isThisRoute(router.currentRoute, ['Public'])) dispatch('getFolderTree') - else dispatch('getAppData') + // Refresh folder tree navigation + dispatch('getFolderTree') }) .catch((error) => { events.$emit('alert:open', { @@ -200,11 +201,17 @@ const actions = { if (!getters.fileQueue.length) { commit('CLEAR_UPLOAD_PROGRESS') - // Reload folder tree - dispatch('getFolderTree') + // Reload File data after folder uploading is finished + if (getters.isUploadingFolder) { - // Reload files after upload is done - Vue.prototype.$getDataByLocation() + // Reload files after upload is done + Vue.prototype.$getDataByLocation() + + // Reload folder tree + dispatch('getFolderTree') + + commit('UPDATE_UPLOADING_FOLDER_STATE', false) + } } } }) @@ -323,19 +330,13 @@ const actions = { .then(() => { itemsToDelete.forEach((data) => { // If is folder, update app data - if (data.type === 'folder') { - if (data.id === getters.currentFolder.data.id) { - if (Vue.prototype.$isThisRoute(router.currentRoute, ['Public'])) { - dispatch('browseShared') - } else { - dispatch('getFolder') - } - } + if (data.type === 'folder' && (getters.currentFolder && data.id === getters.currentFolder.data.id)) { + router.back() } }) - if (Vue.prototype.$isThisRoute(router.currentRoute, ['Public'])) dispatch('getFolderTree') - else dispatch('getAppData') + // Refresh folder tree navigation + dispatch('getFolderTree') }) //.catch(() => Vue.prototype.$isSomethingWrong()) }, @@ -375,6 +376,9 @@ const actions = { } const mutations = { + UPDATE_UPLOADING_FOLDER_STATE(state, status) { + state.isUploadingFolder = status + }, PROCESSING_POPUP(state, status) { state.processingPopup = status }, @@ -407,6 +411,7 @@ const getters = { filesInQueueUploaded: (state) => state.filesInQueueUploaded, filesInQueueTotal: (state) => state.filesInQueueTotal, uploadingProgress: (state) => state.uploadingProgress, + isUploadingFolder: (state) => state.isUploadingFolder, isProcessingFile: (state) => state.isProcessingFile, processingPopup: (state) => state.processingPopup, fileQueue: (state) => state.fileQueue,