diff --git a/frontend/src/stores/seriesBrowse.js b/frontend/src/stores/seriesBrowse.js index adb796c..a55e1dc 100644 --- a/frontend/src/stores/seriesBrowse.js +++ b/frontend/src/stores/seriesBrowse.js @@ -27,5 +27,22 @@ export const useSeriesBrowseStore = defineStore('seriesBrowse', () => { return load() } - return { series, sort, artistId, loading, error, load, setSort } + // A series IS a Tag(kind=series); deleting it removes the series structure + // (pages/chapters cascade) via the shared admin tag-delete. Splice the card + // out for instant feedback rather than reloading the whole grid. + async function remove(id) { + await api.delete(`/api/admin/tags/${id}`) + series.value = series.value.filter(s => s.id !== id) + } + + // Reflect an in-place rename (PATCH /api/tags/) without a full reload. + function applyRename(id, name) { + const row = series.value.find(s => s.id === id) + if (row) row.name = name + } + + return { + series, sort, artistId, loading, error, + load, setSort, remove, applyRename, + } }) diff --git a/frontend/src/views/SeriesView.vue b/frontend/src/views/SeriesView.vue index cb3e754..d726df3 100644 --- a/frontend/src/views/SeriesView.vue +++ b/frontend/src/views/SeriesView.vue @@ -15,6 +15,12 @@
+ series: tag and add images.
+
+ No series match “{{ query }}”. +
@@ -48,6 +60,27 @@ mdi-alert-outline gap + + + + + Rename + + + Delete + + +

{{ s.name }}

@@ -73,6 +106,38 @@
+ + + + + + + Delete “{{ deleteTarget.name }}”? + +

+ Removes the series and its chapter/page ordering. The images + themselves are kept — only the series grouping is deleted. +

+ {{ deleteError }} +
+ + + Cancel + Delete series + +
+
+
@@ -140,10 +205,11 @@