feat(web): settings view for roots and policies
Own route beside library and queues. Roots edit kind, audience, path and their policy; policies get a form over the real fields — size bands as number inputs, score and source weights as numbers, resolution preference and audio/HDR rules as validated lists. Delete arms before firing; a 409 from a referenced policy or occupied root surfaces its message.
This commit is contained in:
+6
-1
@@ -52,6 +52,7 @@ import {
|
||||
searchTitles,
|
||||
type TmdbMovie,
|
||||
} from "./search";
|
||||
import { settingsMain } from "./settings";
|
||||
import "./style.css";
|
||||
|
||||
const POLL_MS = 15_000;
|
||||
@@ -207,7 +208,8 @@ function main() {
|
||||
const releases = releasesMain();
|
||||
const library = libraryMain(board, releases, views);
|
||||
const queues = queuesMain(board, releases, views);
|
||||
views.push(library, queues);
|
||||
const settings = settingsMain(board, views);
|
||||
views.push(library, queues, settings);
|
||||
const search = searchMain(board, releases, views);
|
||||
// a removed title must not survive on the surface the deck opened over
|
||||
releases.setRemoved((parent) => {
|
||||
@@ -244,6 +246,9 @@ function main() {
|
||||
case "queues":
|
||||
queues.open();
|
||||
break;
|
||||
case "settings":
|
||||
settings.open();
|
||||
break;
|
||||
case "search":
|
||||
search.restore(route.query);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user