The Personal-views manager's detail pane becomes editable instead of read-only: - Captured filters render as REMOVABLE chips. Removing one prunes the set and writes it straight back to the stored view (PATCH filters), via the same live-row builders (useActiveFilters / buildPlexActiveFilters) that already compute the pruned snapshot — so the modal and the live chip row can't drift. The prune is wrapped in useUndoable + the shared UndoToolbar, so undo/redo re-persist the same way. The undoable draft is the single source of truth for the chip row, so a chip-prune refetch never clobbers the history. - A "Save current" button beside Apply stores the module's currently-applied filters INTO the view (the live→stored inverse of Apply). Disabled when the view already equals the live filters (it's the active one). On save the draft re-seeds to the saved snapshot and clears the stale undo history. - Rename gains a visible commit affordance: a check button beside the name input that enables once the name changes (Enter and blur still commit). Provider gains two methods mirroring `rename`: updateFilters(id, filters) and saveCurrent(id). One shared provider serves feed + plex, so both get it. PATCH filters was already supported end-to-end — FE-only. New i18n: views.saveCurrent / saveCurrentHint / saveCurrentUpToDate (HU+EN). Tests: 5 new in PersonalViewsModal.dom.test.tsx (chip-remove persists, undo re-persists, save-current fires + disables when up-to-date, rename commit).
28 lines
1.1 KiB
JSON
28 lines
1.1 KiB
JSON
{
|
|
"save": "Save current view",
|
|
"namePlaceholder": "View name",
|
|
"saveAction": "Save",
|
|
"cancel": "Cancel",
|
|
"empty": "No saved views yet. Apply some filters, then save them.",
|
|
"apply": "Apply this view",
|
|
"makeDefault": "Set as default (loads on start)",
|
|
"isDefault": "Default view — loads on start",
|
|
"rename": "Rename",
|
|
"delete": "Delete",
|
|
"deleteConfirm": "Delete the saved view “{{name}}”?",
|
|
"reorder": "Drag to reorder",
|
|
"actionFailed": "Couldn't update your saved views — please try again.",
|
|
"reorderFailed": "Couldn't save the new order — please try again.",
|
|
"saved": "Saved views",
|
|
"manage": "Manage views…",
|
|
"manageTitle": "Personal views",
|
|
"capturedFilters": "Captured filters",
|
|
"capturedNone": "No filters — matches every video.",
|
|
"default": "Default",
|
|
"saveCurrent": "Save current",
|
|
"saveCurrentHint": "Overwrite this view with the filters currently applied",
|
|
"saveCurrentUpToDate": "This view already matches the current filters",
|
|
"selectPrompt": "Select a view to see and edit it.",
|
|
"modified": "Modified — the current filters differ from this saved view."
|
|
}
|