From 17499bd071503dd56bb014b09e98c377b0a84797 Mon Sep 17 00:00:00 2001 From: puri-ph4tt Date: Wed, 13 Dec 2023 10:05:23 +0700 Subject: [PATCH 1/8] fix: get icon condition --- Services/client/src/components/FileIcon.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Services/client/src/components/FileIcon.vue b/Services/client/src/components/FileIcon.vue index 7c524a5..6d13678 100644 --- a/Services/client/src/components/FileIcon.vue +++ b/Services/client/src/components/FileIcon.vue @@ -15,7 +15,10 @@ function getIcon(mimeType: string | undefined, fileName: string | undefined) { const extension = mime.getExtension(mimeType) - if (extension) return mimeFileMapping[mimeType].icon + if (extension && mimeFileMapping[mimeType]) { + return mimeFileMapping[mimeType].icon + } + if (fileName && fileName.includes('.')) return 'mdi-file-outline' return 'mdi-file-question-outline' @@ -26,7 +29,9 @@ function getColor(mimeType: string | undefined, fileName: string | undefined) { const extension = mime.getExtension(mimeType) - if (extension) return mimeFileMapping[mimeType].color + if (extension && mimeFileMapping[mimeType]) { + return mimeFileMapping[mimeType].color + } if (fileName && fileName.includes('.')) return 'blue-11' return 'grey-5' From b98f7d5980065209fddd95810e0f77bf9a38fe04 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Wed, 13 Dec 2023 10:29:07 +0700 Subject: [PATCH 2/8] fix: edit file info on search should change --- .../modules/01_user/components/SearchBar.vue | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Services/client/src/modules/01_user/components/SearchBar.vue b/Services/client/src/modules/01_user/components/SearchBar.vue index f76e1e8..c4b35dd 100644 --- a/Services/client/src/modules/01_user/components/SearchBar.vue +++ b/Services/client/src/modules/01_user/components/SearchBar.vue @@ -3,6 +3,7 @@ import { ref, watch } from 'vue' import { storeToRefs } from 'pinia' import axiosClient from '@/services/HttpService' import mime from 'mime' +import io from 'socket.io-client' import type { StorageFile } from '@/stores/storage' import { useSearchDataStore } from '@/stores/searched-data' @@ -14,6 +15,7 @@ import AdvancedSearch from '@/modules/01_user/components/AdvancedSearch.vue' const loaderStore = useLoader() const { isFilePreview } = storeToRefs(useFileInfoStore()) const { + foundFile, isSearch, isAdvSearchCall, isActFoundFile, @@ -39,6 +41,24 @@ const props = defineProps<{ mode: 'admin' | 'user' }>() +const socket = io(import.meta.env.VITE_API_HOST) + +socket.on('FileUpdate', (data: StorageFile) => + replaceSearchItem(data.pathname, data), +) +socket.on('FileUpload', (data: StorageFile) => + replaceSearchItem(data.pathname, data), +) +socket.on('FileUpdateMove', (data: { from: StorageFile; to: StorageFile }) => + replaceSearchItem(data.from.pathname, data.to), +) + +function replaceSearchItem(pathname: string, data: StorageFile) { + const idx = foundFile.value.findIndex((v) => v.pathname === pathname) + + if (idx !== -1) foundFile.value[idx] = data +} + async function submitSearch() { isFilePreview.value = false if (searchData.value.value.trim() !== '') { From 2beee080bc743e9c8ed4fb08b5ff75ca05ef7ed4 Mon Sep 17 00:00:00 2001 From: puri-ph4tt Date: Wed, 13 Dec 2023 10:41:53 +0700 Subject: [PATCH 3/8] fix: module view icon --- Services/client/src/components/FileSearched.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Services/client/src/components/FileSearched.vue b/Services/client/src/components/FileSearched.vue index a7b062b..f11740d 100644 --- a/Services/client/src/components/FileSearched.vue +++ b/Services/client/src/components/FileSearched.vue @@ -180,8 +180,8 @@ onMounted(() => {
Date: Wed, 13 Dec 2023 10:52:51 +0700 Subject: [PATCH 4/8] fix: reset on click outside to close --- Services/client/src/components/FileForm.vue | 4 +++- Services/client/src/components/FolderForm.vue | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Services/client/src/components/FileForm.vue b/Services/client/src/components/FileForm.vue index afc0e62..ef52ceb 100644 --- a/Services/client/src/components/FileForm.vue +++ b/Services/client/src/components/FileForm.vue @@ -112,7 +112,9 @@ const file = ref() class="q-pa-md" side="right" tabindex="0" - v-click-outside="() => $emit('update:open', false)" + v-click-outside=" + () => ($emit('update:open', false), reset(), (file = undefined)) + " :width="300" :breakpoint="500" :model-value="open" diff --git a/Services/client/src/components/FolderForm.vue b/Services/client/src/components/FolderForm.vue index 1383dd2..35a4c9a 100644 --- a/Services/client/src/components/FolderForm.vue +++ b/Services/client/src/components/FolderForm.vue @@ -54,7 +54,7 @@ onUnmounted(() => window.addEventListener('keydown', keydown)) class="q-pa-md" side="right" tabindex="0" - v-click-outside="() => $emit('update:open', false)" + v-click-outside="() => ($emit('update:open', false), reset())" :width="300" :breakpoint="500" :model-value="open" From 1ee05205057cb51bcd2b4de50ef67e5ec1e98dc9 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:07:48 +0700 Subject: [PATCH 5/8] feat: alert on folder exist --- Services/client/src/stores/storage.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Services/client/src/stores/storage.ts b/Services/client/src/stores/storage.ts index 9e1367c..3059a98 100644 --- a/Services/client/src/stores/storage.ts +++ b/Services/client/src/stores/storage.ts @@ -357,7 +357,17 @@ const useStorage = defineStore('storageStore', () => { async function createFolder(name: string, path: string = currentInfo.path) { loader.show() - await api.post(constructUrl(path, true), { name }) + if ( + folder.value[consistantPath(path)]?.findIndex((v) => v.name === name) !== + -1 + ) { + error.set({ + title: 'แจ้งเตือน', + msg: `พบชื่อ \"${name}\" ซ้ำในระบบ`, + }) + } else { + await api.post(constructUrl(path, true), { name }) + } loader.hide() } async function editFolder(name: string, path: string) { From 0a81ff4ffa5ca7a618127068828738d73f044a60 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:08:21 +0700 Subject: [PATCH 6/8] fix: alert on folder delete and goto root --- Services/client/src/stores/storage.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Services/client/src/stores/storage.ts b/Services/client/src/stores/storage.ts index 3059a98..d63b7e4 100644 --- a/Services/client/src/stores/storage.ts +++ b/Services/client/src/stores/storage.ts @@ -281,13 +281,14 @@ const useStorage = defineStore('storageStore', () => { } if ( - currentInfo.path !== consistantPath(arr) && - currentInfo.path.length > consistantPath(arr).length && + currentInfo.path.length >= consistantPath(arr).length && currentInfo.path.startsWith(consistantPath(arr)) ) { - error.title = 'แจ้งเตือน' - error.msg = 'ข้อมูลที่คุณกำลังเข้าถึงอยู่ถูกลบ' - error.show() + error.set({ + title: 'แจ้งเตือน', + msg: 'ข้อมูลที่คุณกำลังเข้าถึงอยู่ถูกลบ', + }) + goto() } }) socket.on('FileUpload', (data: StorageFile) => { From 6d789e2a9d3154bbc5d101d7a55e4e4d42fd8608 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:21:13 +0700 Subject: [PATCH 7/8] fix: typo --- Services/client/src/components/FileForm.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Services/client/src/components/FileForm.vue b/Services/client/src/components/FileForm.vue index ef52ceb..03b3859 100644 --- a/Services/client/src/components/FileForm.vue +++ b/Services/client/src/components/FileForm.vue @@ -143,7 +143,7 @@ const file = ref()
- อัพโหลดไฟล์ + อัปโหลดไฟล์ Date: Wed, 13 Dec 2023 11:36:13 +0700 Subject: [PATCH 8/8] chore: wording --- Services/client/src/components/FileForm.vue | 2 +- Services/client/src/components/UploadExistDialog.vue | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Services/client/src/components/FileForm.vue b/Services/client/src/components/FileForm.vue index 03b3859..7c60608 100644 --- a/Services/client/src/components/FileForm.vue +++ b/Services/client/src/components/FileForm.vue @@ -159,7 +159,7 @@ const file = ref() :error="!!error.fileExist || !!error.fileName2Long" :error-message=" error.fileExist - ? 'พบไฟล์ในระบบ ข้อมูลในระบบจะถูกเขียนทับ' + ? 'พบไฟล์ชื่อซ้ำในระบบ ไฟล์ชื่อนี้ภายในระบบจะถูกเขียนทับ' : error.fileName2Long ? 'ไม่สามารถเพิ่มไฟล์ที่ชื่อยาวเกิน 85 ตัวอักษรได้' : '' diff --git a/Services/client/src/components/UploadExistDialog.vue b/Services/client/src/components/UploadExistDialog.vue index 3fdfd81..1d99ec1 100644 --- a/Services/client/src/components/UploadExistDialog.vue +++ b/Services/client/src/components/UploadExistDialog.vue @@ -24,9 +24,9 @@ defineEmits(['update:notification', 'confirm', 'cancel'])
ยืนยันการเพิ่มข้อมูล

- พบข้อมูลในระบบ หากดำเนินการต่อ - ข้อมูลที่มีอยู่จะถูกแทนที่ด้วยข้อมูลใหม่ - ต้องการยืนยันการเพิ่มข้อมูลนี้หรือไม่ + พบไฟล์ชื่อซ้ำในระบบ หากดำเนินการต่อ + ไฟล์ที่มีอยู่จะถูกแทนที่ด้วยไฟล์ใหม่ + ต้องการยืนยันการอัปโหลดไฟล์นี้หรือไม่