From 174f2a2c1f18d2be848c717fb20c5f6145612ea2 Mon Sep 17 00:00:00 2001 From: Peter Papp Date: Fri, 27 Aug 2021 10:05:20 +0200 Subject: [PATCH] api resource refactoring part 2 --- public/mix-manifest.json | 22 +++++++++++++-- .../js/components/FilesView/FileBrowser.vue | 4 +-- .../components/Others/FilePreviewDetail.vue | 19 ++++++++----- resources/js/helpers/functionHelpers.js | 2 +- resources/js/store/modules/fileFunctions.js | 28 +++++++++++++------ .../Controllers/UploadFileController.php | 9 ++++-- src/Domain/Files/Resources/FileResource.php | 1 + 7 files changed, 61 insertions(+), 24 deletions(-) diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 860ce10e..3fd18534 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -212,7 +212,7 @@ "/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~chunks/share~cd83f396.js": "/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~chunks/share~cd83f396.js?id=537cbf03cc03f01380c4", "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/settings-subscription~chunks/shared~f23e39b6.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/settings-subscription~chunks/shared~f23e39b6.js?id=5216516ba11c29601c91", "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/shared/single-f~222c7501.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/shared/single-f~222c7501.js?id=546e98c6fc4cdd36e616", - "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.js?id=aef71525addb9d3b83fd", + "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.js?id=986b019e23295114496e", "/chunks/files~chunks/shared/files.js": "/chunks/files~chunks/shared/files.js?id=5e3e9744678568ca2f0c", "/chunks/team-folders.06f03f5764345d4a21ae.hot-update.js": "/chunks/team-folders.06f03f5764345d4a21ae.hot-update.js", "/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~7a7e849f.js": "/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~7a7e849f.js?id=84e471b380a972e986e6", @@ -257,5 +257,23 @@ "/js/main.7b0ef05ce2fd1b14f906.hot-update.js": "/js/main.7b0ef05ce2fd1b14f906.hot-update.js", "/js/main.3ddd10693cfa7c583e89.hot-update.js": "/js/main.3ddd10693cfa7c583e89.hot-update.js", "/js/main.91e88a521ed74d7f84da.hot-update.js": "/js/main.91e88a521ed74d7f84da.hot-update.js", - "/js/main.589af031992d24fa8329.hot-update.js": "/js/main.589af031992d24fa8329.hot-update.js" + "/js/main.589af031992d24fa8329.hot-update.js": "/js/main.589af031992d24fa8329.hot-update.js", + "/js/main.8ed8c51b87f4e3228448.hot-update.js": "/js/main.8ed8c51b87f4e3228448.hot-update.js", + "/js/main.9eb9d6c579880963fbb2.hot-update.js": "/js/main.9eb9d6c579880963fbb2.hot-update.js", + "/js/main.2e6a3f498c137f8566ff.hot-update.js": "/js/main.2e6a3f498c137f8566ff.hot-update.js", + "/js/main.0144bca285fd01bf273f.hot-update.js": "/js/main.0144bca285fd01bf273f.hot-update.js", + "/js/main.5611145e4ec3b5ba9a53.hot-update.js": "/js/main.5611145e4ec3b5ba9a53.hot-update.js", + "/js/main.d11ea93fca09b64b52a0.hot-update.js": "/js/main.d11ea93fca09b64b52a0.hot-update.js", + "/js/main.8d577355dae96f66f9ff.hot-update.js": "/js/main.8d577355dae96f66f9ff.hot-update.js", + "/js/main.3b1fcac28f946027e141.hot-update.js": "/js/main.3b1fcac28f946027e141.hot-update.js", + "/js/main.95a110e048a721efe8d8.hot-update.js": "/js/main.95a110e048a721efe8d8.hot-update.js", + "/js/main.2737e6b019e8ecbe742f.hot-update.js": "/js/main.2737e6b019e8ecbe742f.hot-update.js", + "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.fb5f917a7c76b878c93e.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.fb5f917a7c76b878c93e.hot-update.js", + "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.c1245c367d3f94e62018.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.c1245c367d3f94e62018.hot-update.js", + "/js/main.c40233aa0fe28a95fa0b.hot-update.js": "/js/main.c40233aa0fe28a95fa0b.hot-update.js", + "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.c3c522e32157abbcec59.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.c3c522e32157abbcec59.hot-update.js", + "/js/main.ab10910fe063d675001a.hot-update.js": "/js/main.ab10910fe063d675001a.hot-update.js", + "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.67dbc41f14111befc449.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.67dbc41f14111befc449.hot-update.js", + "/js/main.742b35a7325a1164ece6.hot-update.js": "/js/main.742b35a7325a1164ece6.hot-update.js", + "/js/main.c17fbc0fc4ce44a45291.hot-update.js": "/js/main.c17fbc0fc4ce44a45291.hot-update.js" } diff --git a/resources/js/components/FilesView/FileBrowser.vue b/resources/js/components/FilesView/FileBrowser.vue index 2904aca1..7a5e155f 100644 --- a/resources/js/components/FilesView/FileBrowser.vue +++ b/resources/js/components/FilesView/FileBrowser.vue @@ -174,15 +174,13 @@ }, dragFinish(data, event) { - if (event.dataTransfer.items.length == 0) { + if (event.dataTransfer.items.length === 0) { // Prevent to drop on file or image if (data.data.type !== 'folder' || this.draggingId === data) return //Prevent move selected folder to folder if in beteewn selected folders if (this.clipboard.find(item => item === data && this.clipboard.length > 1)) return - // Move folder to new parent - //Move item if is not included in selected items if (!this.clipboard.includes(this.draggingId)) { this.$store.dispatch('moveItem', {to_item: data, noSelectedItem: this.draggingId}) diff --git a/resources/js/components/Others/FilePreviewDetail.vue b/resources/js/components/Others/FilePreviewDetail.vue index 7b256bc6..d93d1f8b 100644 --- a/resources/js/components/Others/FilePreviewDetail.vue +++ b/resources/js/components/Others/FilePreviewDetail.vue @@ -1,9 +1,9 @@ @@ -15,11 +15,16 @@ export default { name: 'FilePreview', computed: { - ...mapGetters(['clipboard']), + ...mapGetters([ + 'clipboard' + ]), + singleFile() { + return this.clipboard[0] + }, canBePreview() { - return this.clipboard[0] && ! includes([ + return this.singleFile && ! includes([ 'folder', 'file' - ], this.clipboard[0].type) + ], this.singleFile.data.type) } }, } diff --git a/resources/js/helpers/functionHelpers.js b/resources/js/helpers/functionHelpers.js index d97f78a5..6b72a047 100644 --- a/resources/js/helpers/functionHelpers.js +++ b/resources/js/helpers/functionHelpers.js @@ -96,7 +96,7 @@ const FunctionHelpers = { // Push items to file queue [...files].map(item => { this.$store.commit('ADD_FILES_TO_QUEUE', { - folder_id: store.getters.currentFolder.data.id ? store.getters.currentFolder.data.id : '', + folder_id: store.getters.currentFolder ? store.getters.currentFolder.data.id : '', file: item, }) }); diff --git a/resources/js/store/modules/fileFunctions.js b/resources/js/store/modules/fileFunctions.js index dfc91328..fc33f037 100644 --- a/resources/js/store/modules/fileFunctions.js +++ b/resources/js/store/modules/fileFunctions.js @@ -58,9 +58,16 @@ const actions = { ? `/api/editor/move/${router.currentRoute.params.token}` : '/api/move' + let moveToId = undefined + + if (to_item.data) + moveToId = to_item.data.id + else if (to_item.id) + moveToId = to_item.id + axios .post(route, { - to_id: to_item.id ? to_item.id : null, + to_id: moveToId, items: itemsToMove }) .then(() => { @@ -170,7 +177,7 @@ const actions = { resolve(response) // Proceed if was returned database record - if (response.data.id) { + if (response.data.data.id) { commit('PROCESSING_FILE', false) @@ -178,18 +185,18 @@ const actions = { commit('SHIFT_FROM_FILE_QUEUE') // Check if user is in uploading folder, if yes, than show new file - if (response.data.folder_id === getters.currentFolder.data.id) { + if ((! getters.currentFolder && !response.data.data.attributes.folder_id) || response.data.data.attributes.folder_id === getters.currentFolder.data.id) { // Add uploaded item into view commit('ADD_NEW_ITEMS', response.data) - - // Reset file progress - commit('UPLOADING_FILE_PROGRESS', 0) - - // Increase count in files in queue uploaded for 1 - commit('INCREASE_FILES_IN_QUEUE_UPLOADED') } + // Reset file progress + commit('UPLOADING_FILE_PROGRESS', 0) + + // Increase count in files in queue uploaded for 1 + commit('INCREASE_FILES_IN_QUEUE_UPLOADED') + // Start uploading next file if file queue is not empty if (getters.fileQueue.length) { Vue.prototype.$handleUploading(getters.fileQueue[0]) @@ -218,6 +225,9 @@ const actions = { } } + console.log(error.response); + console.log(error.response.status); + events.$emit('alert:open', { emoji: '😬😬😬', title: messages[error.response.status]['title'], diff --git a/src/Domain/Files/Controllers/UploadFileController.php b/src/Domain/Files/Controllers/UploadFileController.php index 425c79e0..7215bec5 100644 --- a/src/Domain/Files/Controllers/UploadFileController.php +++ b/src/Domain/Files/Controllers/UploadFileController.php @@ -5,6 +5,8 @@ use Domain\Files\Models\File; use App\Http\Controllers\Controller; use Domain\Files\Requests\UploadRequest; use Domain\Files\Actions\UploadFileAction; +use Domain\Files\Resources\FileResource; +use Illuminate\Http\Response; use Support\Demo\Actions\FakeUploadFileAction; class UploadFileController extends Controller @@ -20,11 +22,14 @@ class UploadFileController extends Controller */ public function __invoke( UploadRequest $request, - ) { + ): Response|array { + if (is_demo_account('howdy@hi5ve.digital')) { return ($this->fakeUploadFile)($request); } - return ($this->uploadFiles)($request); + $file = ($this->uploadFiles)($request); + + return response(new FileResource($file), 201); } } diff --git a/src/Domain/Files/Resources/FileResource.php b/src/Domain/Files/Resources/FileResource.php index 76be286a..fe8d7a0f 100644 --- a/src/Domain/Files/Resources/FileResource.php +++ b/src/Domain/Files/Resources/FileResource.php @@ -28,6 +28,7 @@ class FileResource extends JsonResource 'file_url' => $this->file_url, 'thumbnail' => $this->thumbnail, 'metadata' => $this->metadata, + 'folder_id' => $this->folder_id, 'updated_at' => format_date( set_time_by_user_timezone($this->updated_at), __t('time') ),