From 38c05f6714edcc1e32f23a536733868872766ef1 Mon Sep 17 00:00:00 2001 From: Arno Kaimbacher Date: Wed, 5 Nov 2025 15:38:28 +0100 Subject: [PATCH] fix: Update TablePersons components for improved event handling and layout consistency --- resources/js/Components/CardBox.vue | 2 +- resources/js/Components/TablePersons.vue | 121 +++++++++++------- resources/js/Pages/Editor/Dataset/Edit.vue | 2 +- resources/js/Pages/Submitter/Dataset/Edit.vue | 17 ++- 4 files changed, 84 insertions(+), 58 deletions(-) diff --git a/resources/js/Components/CardBox.vue b/resources/js/Components/CardBox.vue index c2d200e..dbdee01 100644 --- a/resources/js/Components/CardBox.vue +++ b/resources/js/Components/CardBox.vue @@ -67,7 +67,7 @@ const submit = (e) => { {{ title }} - diff --git a/resources/js/Components/TablePersons.vue b/resources/js/Components/TablePersons.vue index c119d8c..9bae518 100644 --- a/resources/js/Components/TablePersons.vue +++ b/resources/js/Components/TablePersons.vue @@ -46,8 +46,8 @@ const dragEnabled = ref(props.canReorder); // Name type options const nameTypeOptions = { - 'Personal': 'Personal', - 'Organizational': 'Org' + Personal: 'Personal', + Organizational: 'Org', }; // Computed properties @@ -111,9 +111,10 @@ const removeAuthor = (index: number) => { const actualIndex = perPage.value * currentPage.value + index; const person = items.value[actualIndex]; - const displayName = person.name_type === 'Organizational' - ? person.last_name || person.email - : `${person.first_name || ''} ${person.last_name || person.email}`.trim(); + const displayName = + person.name_type === 'Organizational' + ? person.last_name || person.email + : `${person.first_name || ''} ${person.last_name || person.email}`.trim(); if (confirm(`Are you sure you want to remove ${displayName}?`)) { items.value.splice(actualIndex, 1); @@ -128,12 +129,12 @@ const removeAuthor = (index: number) => { const updatePerson = (index: number, field: keyof Person, value: any) => { const actualIndex = perPage.value * currentPage.value + index; const person = items.value[actualIndex]; - + // Handle name_type change - clear first_name if switching to Organizational if (field === 'name_type' && value === 'Organizational') { person.first_name = ''; } - + (person as any)[field] = value; emit('person-updated', actualIndex, person); }; @@ -178,7 +179,10 @@ const perPageOptions = [