refactor(vue): update ArrangementConfigurator and ArrangementDialog to use label_id

This commit is contained in:
Thorsten Bus 2026-05-04 00:28:49 +02:00
parent b88ae3e918
commit c714f30647
2 changed files with 17 additions and 5 deletions

View file

@ -67,7 +67,16 @@ watch(
watch( watch(
selectedArrangement, selectedArrangement,
(arrangement) => { (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 }, { immediate: true },
) )
@ -157,7 +166,7 @@ function saveArrangement() {
`/arrangements/${selectedArrangement.value.id}`, `/arrangements/${selectedArrangement.value.id}`,
{ {
groups: arrangementGroups.value.map((group, index) => ({ groups: arrangementGroups.value.map((group, index) => ({
song_group_id: group.id, label_id: group.id,
order: index + 1, order: index + 1,
})), })),
}, },

View file

@ -170,8 +170,11 @@ watch(
return return
} }
const arr = localArrangements.value.find((a) => a.id === Number(id)) const arr = localArrangements.value.find((a) => a.id === Number(id))
if (arr?.groups?.length) { const arrGroups = arr?.groups ?? (arr?.arrangement_groups
arrangementGroups.value = arr.groups.map((g, i) => ({ ...g, _uid: `${g.id}-${i}-${Date.now()}` })) ? 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 { } else {
// Fallback: show all available groups in order (Master) // 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()}` })) 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}`, `/arrangements/${currentArrangement.value.id}`,
{ {
groups: arrangementGroups.value.map((group, index) => ({ groups: arrangementGroups.value.map((group, index) => ({
song_group_id: group.id, label_id: group.id,
order: index + 1, order: index + 1,
})), })),
}, },