Fixed Document Upload
This commit is contained in:
@@ -13,15 +13,21 @@ const {type, elementId} = props
|
|||||||
|
|
||||||
const dataStore = useDataStore()
|
const dataStore = useDataStore()
|
||||||
const profileStore = useProfileStore()
|
const profileStore = useProfileStore()
|
||||||
const tags = dataStore.getDocumentTags
|
|
||||||
|
|
||||||
const uploadModalOpen = ref(false)
|
const uploadModalOpen = ref(false)
|
||||||
const uploadInProgress = ref(false)
|
const uploadInProgress = ref(false)
|
||||||
const fileUploadFormData = ref({
|
const fileUploadFormData = ref({
|
||||||
tags: ["Dokument"],
|
|
||||||
project: null,
|
project: null,
|
||||||
tenant: profileStore.currentTenant
|
tenant: profileStore.currentTenant
|
||||||
})
|
})
|
||||||
|
const availableTags = ref([])
|
||||||
|
const selectedTags = ref([])
|
||||||
|
const setup = async () => {
|
||||||
|
availableTags.value = await useSupabaseSelect("filetags")
|
||||||
|
}
|
||||||
|
|
||||||
|
setup()
|
||||||
|
|
||||||
|
|
||||||
const openModal = () => {
|
const openModal = () => {
|
||||||
uploadModalOpen.value = true
|
uploadModalOpen.value = true
|
||||||
@@ -33,7 +39,7 @@ const uploadFiles = async () => {
|
|||||||
let fileData = fileUploadFormData.value
|
let fileData = fileUploadFormData.value
|
||||||
fileData[type] = elementId
|
fileData[type] = elementId
|
||||||
|
|
||||||
await dataStore.uploadFiles(fileData, document.getElementById("fileUploadInput").files,true)
|
await useFiles().uploadFiles(fileData, document.getElementById("fileUploadInput").files,selectedTags.value,true)
|
||||||
|
|
||||||
uploadModalOpen.value = false;
|
uploadModalOpen.value = false;
|
||||||
uploadInProgress.value = false;
|
uploadInProgress.value = false;
|
||||||
@@ -44,7 +50,7 @@ const uploadFiles = async () => {
|
|||||||
<USlideover
|
<USlideover
|
||||||
v-model="uploadModalOpen"
|
v-model="uploadModalOpen"
|
||||||
>
|
>
|
||||||
<UCard :ui="{ ring: '', divide: 'divide-y divide-gray-100 dark:divide-gray-800' }">
|
<UCard :ui="{ ring: '', divide: 'divide-y divide-gray-100 dark:divide-gray-800' }" class="h-full">
|
||||||
<template #header>
|
<template #header>
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<h3 class="text-base font-semibold leading-6 text-gray-900 dark:text-white">
|
<h3 class="text-base font-semibold leading-6 text-gray-900 dark:text-white">
|
||||||
@@ -76,13 +82,15 @@ const uploadFiles = async () => {
|
|||||||
>
|
>
|
||||||
<USelectMenu
|
<USelectMenu
|
||||||
multiple
|
multiple
|
||||||
|
option-attribute="name"
|
||||||
|
value-attribute="id"
|
||||||
searchable
|
searchable
|
||||||
searchable-placeholder="Suchen..."
|
searchable-placeholder="Suchen..."
|
||||||
:options="tags"
|
:options="availableTags"
|
||||||
v-model="fileUploadFormData.tags"
|
v-model="selectedTags"
|
||||||
>
|
>
|
||||||
<template #label>
|
<template #label>
|
||||||
<span v-if="fileUploadFormData.tags.length > 0">{{fileUploadFormData.tags.join(", ")}}</span>
|
<span v-if="selectedTags.length > 0">{{selectedTags.map(i => availableTags.find(x => x.id === i).name).join(", ")}}</span>
|
||||||
<span v-else>Keine Tags ausgewählt</span>
|
<span v-else>Keine Tags ausgewählt</span>
|
||||||
</template>
|
</template>
|
||||||
</USelectMenu>
|
</USelectMenu>
|
||||||
|
|||||||
Reference in New Issue
Block a user