From 522e062a367df4800214bd5b17bc16cf6bbcbcde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20T=C3=A4kker?= Date: Sat, 7 Mar 2026 14:44:47 +0100 Subject: [PATCH] Got lyrics editing working for PATCH --- app/components/Admin/ModalForm.vue | 73 +++++++++++++++++++++++++----- app/pages/admin/songs.vue | 14 ++++-- app/ui/Input.vue | 25 +++++++++- 3 files changed, 94 insertions(+), 18 deletions(-) diff --git a/app/components/Admin/ModalForm.vue b/app/components/Admin/ModalForm.vue index adadc00..14b174e 100644 --- a/app/components/Admin/ModalForm.vue +++ b/app/components/Admin/ModalForm.vue @@ -1,8 +1,6 @@ diff --git a/app/pages/admin/songs.vue b/app/pages/admin/songs.vue index 1473c54..45d57e2 100644 --- a/app/pages/admin/songs.vue +++ b/app/pages/admin/songs.vue @@ -63,6 +63,8 @@ const modalFields: Field[] = [ type: "search-select", fetchOptions: albumFetchOptions, }, + { key: "lyrics.text", label: "Lyrics", type: "textarea", rows: 6 }, + { key: "lyrics.synced", label: "Synced lyrics", type: "checkbox" }, ] const showModal = ref(false) @@ -73,7 +75,10 @@ const save = async (value: any) => { try { await cfetch("/admin/track", { method: "PATCH", - data: value, + data: { + ...value, + lyrics: JSON.stringify(value.lyrics), + }, params: { id: value._id }, forceFormData: true, }) @@ -88,7 +93,10 @@ const save = async (value: any) => { try { await cfetch("/admin/track", { method: "POST", - data: value, + data: { + ...value, + lyrics: JSON.stringify(value.lyrics), + }, }) toast.show("Song added successfully", "success") @@ -137,8 +145,6 @@ const show = (id?: string) => { showModal.value = true } - -watch(data, () => console.log(data))