From b779006cd74cd7a7d03f29bee8f3f80460f3e71a Mon Sep 17 00:00:00 2001 From: Csaky Date: Wed, 28 Feb 2024 16:36:35 -0800 Subject: [PATCH] More refactoring for the file details page components use models to to pass current and latest versionId's extend action to fetchMetadata/tags for all versions in one shot --- .../src/components/object/ObjectAccess.vue | 13 +- .../components/object/ObjectFileDetails.vue | 145 ++++++++---------- .../src/components/object/ObjectMetadata.vue | 23 +-- frontend/src/components/object/ObjectTag.vue | 25 ++- .../src/components/object/ObjectVersion.vue | 61 ++------ frontend/src/store/versionStore.ts | 46 ++---- .../options/GetVersionMetadataOptions.ts | 3 +- .../types/options/GetVersionTaggingOptions.ts | 3 +- .../src/views/detail/DetailObjectsView.vue | 28 +++- 9 files changed, 146 insertions(+), 201 deletions(-) diff --git a/frontend/src/components/object/ObjectAccess.vue b/frontend/src/components/object/ObjectAccess.vue index a3a10707..0ff959f5 100644 --- a/frontend/src/components/object/ObjectAccess.vue +++ b/frontend/src/components/object/ObjectAccess.vue @@ -1,6 +1,6 @@ diff --git a/frontend/src/components/object/ObjectFileDetails.vue b/frontend/src/components/object/ObjectFileDetails.vue index 2d18c2c8..6e229d9d 100644 --- a/frontend/src/components/object/ObjectFileDetails.vue +++ b/frontend/src/components/object/ObjectFileDetails.vue @@ -1,6 +1,6 @@ diff --git a/frontend/src/components/object/ObjectMetadata.vue b/frontend/src/components/object/ObjectMetadata.vue index 195c6466..008ab5f8 100644 --- a/frontend/src/components/object/ObjectMetadata.vue +++ b/frontend/src/components/object/ObjectMetadata.vue @@ -10,22 +10,19 @@ import { Permissions } from '@/utils/constants'; import type { Ref } from 'vue'; import type { ObjectMetadataTagFormType } from '@/components/object/ObjectMetadataTagForm.vue'; -import type { Metadata } from '@/types'; // Props type Props = { editable?: boolean; objectId: string; - versionId?: string; }; const props = withDefaults(defineProps(), { - editable: true, - versionId: undefined + editable: true }); // Emits -const emit = defineEmits(['on-file-uploaded']); +const emit = defineEmits(['on-metadata-success']); // Store const metadataStore = useMetadataStore(); @@ -38,9 +35,7 @@ const { getMetadataByObjectId } = storeToRefs(metadataStore); // State const obj = computed(() => objectStore.getObject(props.objectId)); -const objectMetadata: Ref = computed(() => - props.versionId ? getMetadataByVersionId.value(props.versionId) : getMetadataByObjectId.value(props.objectId) -); +const versionId = defineModel('versionId'); const editing: Ref = ref(false); const formData: Ref = ref({ filename: '' @@ -61,15 +56,15 @@ const confirmUpdate = (values: ObjectMetadataTagFormType) => { const showModal = () => { formData.value.filename = obj.value?.name ?? ''; - formData.value.metadata = objectMetadata.value?.metadata; + formData.value.metadata = ( + versionId.value ? getMetadataByVersionId.value(versionId.value) : getMetadataByObjectId.value(props.objectId) + )?.metadata; editing.value = true; }; const submitModal = async (values: ObjectMetadataTagFormType) => { - await metadataStore.replaceMetadata(props.objectId, values.metadata ?? [], props.versionId); - emit('on-file-uploaded'); - + await metadataStore.replaceMetadata(props.objectId, values.metadata ?? [], versionId.value); closeModal(); }; @@ -84,7 +79,7 @@ const closeModal = () => {

Metadata

{ - -