From 427eae96417bd4597f14517bcd8969a933bf4bec Mon Sep 17 00:00:00 2001 From: vegard Date: Wed, 18 Mar 2026 00:26:17 +0000 Subject: [PATCH] Pakkevelger: UI for ny samling med pakker eller manuelt trait-valg (oppgave 13.3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ny side /collection/new med: - 13 forhåndsdefinerte pakker (nettmagasin, podcaststudio, redaksjon osv.) som kort-grid med ikon, beskrivelse og trait-liste - Manuelt trait-valg med hele trait-katalogen kategorisert i 9 grupper - Oppsummering med valgte traits og opprett-knapp - Navigerer til /collection/[id] etter opprettelse Knapp «Ny samling» lagt til i mottak-headeren. Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/src/routes/+page.svelte | 6 + .../src/routes/collection/new/+page.svelte | 457 ++++++++++++++++++ tasks.md | 3 +- 3 files changed, 464 insertions(+), 2 deletions(-) create mode 100644 frontend/src/routes/collection/new/+page.svelte diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index 090588c..dd66464 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -346,6 +346,12 @@ > Graf + + Ny samling + + + + + {#if mode === 'select'} + +
+ {#each packages as pkg (pkg.id)} + + {/each} +
+ {:else} + +
+ {#each traitCatalog as category (category.label)} +
+

+ {category.label} +

+
+ {#each category.traits as trait (trait)} + + {/each} +
+
+ {/each} +
+ {/if} + + + {#if activeTraitCount > 0} +
+
+

+ {#if mode === 'select' && selectedPackage} + Pakke: {selectedPackage.name} + {:else} + Egendefinert samling + {/if} + ({activeTraitCount} traits) +

+
+
+ {#each Object.keys(activeTraits) as trait (trait)} + + {trait} + + {/each} +
+ + {#if error} +
+ {error} +
+ {/if} + + +
+ {/if} + {/if} + + diff --git a/tasks.md b/tasks.md index 5563c03..f92953b 100644 --- a/tasks.md +++ b/tasks.md @@ -132,8 +132,7 @@ Uavhengige faser kan fortsatt plukkes. - [x] 13.1 Trait-metadata på samlingsnoder: maskinrommet validerer `metadata.traits`-objektet ved `create_node` og `update_node` for samlingsnoder. Avvis ukjente trait-navn. Ref: `docs/primitiver/traits.md`. - [x] 13.2 Trait-aware frontend: samlingssider leser `traits` fra metadata og rendrer kun aktive komponenter. Dynamisk komponent-lasting basert på trait-liste. -- [~] 13.3 Pakkevelger: UI for å opprette ny samling med forhåndsdefinert pakke (nettmagasin, podcaststudio, redaksjon osv.) eller manuelt valg av traits. - > Påbegynt: 2026-03-18T00:21 +- [x] 13.3 Pakkevelger: UI for å opprette ny samling med forhåndsdefinert pakke (nettmagasin, podcaststudio, redaksjon osv.) eller manuelt valg av traits. - [ ] 13.4 Trait-administrasjon: admin-UI for å legge til/fjerne traits på eksisterende samlinger med konfigurasjon per trait. ## Fase 14: Publisering