From c714f30647dadabe1a14feb66185313e64cde9cc Mon Sep 17 00:00:00 2001 From: Thorsten Bus Date: Mon, 4 May 2026 00:28:49 +0200 Subject: [PATCH] refactor(vue): update ArrangementConfigurator and ArrangementDialog to use label_id --- resources/js/Components/ArrangementConfigurator.vue | 13 +++++++++++-- resources/js/Components/ArrangementDialog.vue | 9 ++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/resources/js/Components/ArrangementConfigurator.vue b/resources/js/Components/ArrangementConfigurator.vue index 066f42b..98adeca 100644 --- a/resources/js/Components/ArrangementConfigurator.vue +++ b/resources/js/Components/ArrangementConfigurator.vue @@ -67,7 +67,16 @@ watch( watch( selectedArrangement, (arrangement) => { - arrangementGroups.value = arrangement?.groups?.map((group) => ({ ...group })) ?? [] + if (arrangement?.groups) { + arrangementGroups.value = arrangement.groups.map((group) => ({ ...group })) + } else if (arrangement?.arrangement_groups) { + arrangementGroups.value = arrangement.arrangement_groups + .map((ag) => props.availableGroups.find((g) => g.id === ag.label_id)) + .filter(Boolean) + .map((g) => ({ ...g })) + } else { + arrangementGroups.value = [] + } }, { immediate: true }, ) @@ -157,7 +166,7 @@ function saveArrangement() { `/arrangements/${selectedArrangement.value.id}`, { groups: arrangementGroups.value.map((group, index) => ({ - song_group_id: group.id, + label_id: group.id, order: index + 1, })), }, diff --git a/resources/js/Components/ArrangementDialog.vue b/resources/js/Components/ArrangementDialog.vue index a1941c4..8ded1cb 100644 --- a/resources/js/Components/ArrangementDialog.vue +++ b/resources/js/Components/ArrangementDialog.vue @@ -170,8 +170,11 @@ watch( return } const arr = localArrangements.value.find((a) => a.id === Number(id)) - if (arr?.groups?.length) { - arrangementGroups.value = arr.groups.map((g, i) => ({ ...g, _uid: `${g.id}-${i}-${Date.now()}` })) + const arrGroups = arr?.groups ?? (arr?.arrangement_groups + ? arr.arrangement_groups.map((ag) => props.availableGroups.find((g) => g.id === ag.label_id)).filter(Boolean) + : []) + if (arrGroups.length) { + arrangementGroups.value = arrGroups.map((g, i) => ({ ...g, _uid: `${g.id}-${i}-${Date.now()}` })) } else { // Fallback: show all available groups in order (Master) arrangementGroups.value = props.availableGroups.map((g, i) => ({ ...g, slides: g.slides ?? [], _uid: `${g.id}-master-${i}-${Date.now()}` })) @@ -323,7 +326,7 @@ function saveArrangement() { `/arrangements/${currentArrangement.value.id}`, { groups: arrangementGroups.value.map((group, index) => ({ - song_group_id: group.id, + label_id: group.id, order: index + 1, })), },