diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ad176d..8805d93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,24 @@ die Versionierung [Semantic Versioning](https://semver.org/lang/de/). ## [Unreleased] +### Geändert + +- **Neue Navigation**: unten Start, Katalog, Sammlung, Wünsche und in der + Mitte ein +-Stein mit allen Wegen zu einem neuen Set (Scannen, aus Link, + Lego-Nummer, von Hand). +- **„Mehr" statt Konto-Menü und Verwaltungsreitern**: Konto, Design, + Sammler, Einladungen, Erinnerungen, Hersteller, Themen, Standorte und + Export/Import als Kacheln in Gruppen, oben rechts hinter den Initialen. +- **„Für wen?" in der Kopfzeile**: Bei mehreren Sammlern wird das Kind einmal + oben gewählt und gilt für Startseite, Katalog und Sammlung. Jedes Gerät + merkt sich die Wahl; ein `?sammler=` im Link hat weiterhin Vorrang. + +### Behoben + +- Mitglieder (nicht Admin) kamen nicht an Sammler, Hersteller, Themen und + Standorte heran, obwohl sie diese pflegen dürfen: Der Eintrag + „Verwaltung" stand nur im Menü des Administrators. + ### Hinzugefügt - **Set aus einem Link übernehmen**, für alle Hersteller: Amazon, idealo, diff --git a/CLAUDE.md b/CLAUDE.md index 19ca94f..5639be8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -63,6 +63,8 @@ Bild-URLs, die der Nutzer selbst hinterlegt hat. | `src/lib/reminder-job.ts`, `src/lib/mailer.ts` | Versand und Zeitplan | | `src/lib/export.ts` | Export und Import des gesamten Bestands | | `src/lib/money.ts`, `src/lib/format.ts` | Cent-Umrechnung, dd.MM.yyyy | +| `src/components/layout/more-items.ts` | Eintraege der Seite „Mehr" (Konto, Design, Stammdaten), auch Titel der Verwaltungsseiten | +| `src/lib/collector-choice.ts` | Aktiver Sammler: `?sammler=` vor Cookie aus dem Umschalter „Fuer wen?" | | `src/lib/link-import.ts` | Set-Daten aus Link und Seite lesen (rein, testbar) | | `src/lib/safe-fetch.ts`, `src/lib/net-guard.ts` | Abruf fremder URLs nur an oeffentliche Adressen | | `src/lib/design.ts`, `src/app/designs.css` | Designs: Namen und Cookie bzw. Tokens je `data-design` | diff --git a/QUICKSTART.md b/QUICKSTART.md index ac6e172..a9646e5 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -144,16 +144,16 @@ tut. ## 7. Passkey hinterlegen -Unter **Konto → Passkeys → Passkey hinzufügen**. Ab dann meldest du dich per +Unter **Mehr → Konto & Passkeys → Passkey hinzufügen** (das Kästchen mit deinen Initialen oben rechts). Ab dann meldest du dich per Fingerabdruck, Gesichtserkennung oder Geräte-PIN an. Für jedes Gerät ein eigener Passkey – Handy, Tablet, Laptop. ## 8. Loslegen -1. **Verwaltung → Hersteller**: Lego, Playmobil, Cobi … anlegen. -2. **Verwaltung → Themen**: „City", „Technic", „Novelmore" … -3. **Verwaltung → Standorte**: „Regal Kinderzimmer", „Kiste Keller 3" … -4. **Katalog → Set anlegen**: Setnummer, Name, Bild. +1. **Mehr → Hersteller**: Lego, Playmobil, Cobi … anlegen. +2. **Mehr → Themen**: „City", „Technic", „Novelmore" … +3. **Mehr → Standorte**: „Regal Kinderzimmer", „Kiste Keller 3" … +4. **+ in der Navigation → Von Hand**: Setnummer, Name, Bild. 5. Auf der Set-Seite **„Zur Sammlung hinzufügen"**, wenn das Set da ist. 6. **Katalog → Filter „Fehlt noch"**: Kachel lange drücken, mehrere auswählen, **„Zur Wunschliste hinzufügen"**. diff --git a/docs/ANLEITUNG.md b/docs/ANLEITUNG.md index 8d259c8..87a7531 100644 --- a/docs/ANLEITUNG.md +++ b/docs/ANLEITUNG.md @@ -63,7 +63,21 @@ Die Startseite zeigt auf einen Blick, wo die Sammlung steht: | **Abkürzungen** | Direkt zu den fehlenden Sets, zu den Wunschlisten oder zu einem neuen Set | Unten am Bildschirmrand liegt die Navigation – auf dem Handy mit dem Daumen -erreichbar. Der aktive Bereich sitzt auf einer kleinen Platte. +erreichbar: **Start, Katalog, Sammlung, Wünsche** und in der Mitte der rote +**+-Stein**. Der aktive Bereich sitzt auf einer kleinen Platte. + +![Das Plus-Menü](bilder/26-plus-menue.png) + +Das **+** bündelt alle Wege, wie ein Set in den Katalog kommt: Strichcode +scannen, aus einem Link übernehmen, Lego-Nummer holen oder von Hand eintragen. + +![Die Mehr-Seite](bilder/27-mehr.png) + +Alles, was man nicht täglich braucht, liegt hinter dem Kästchen mit deinen +Initialen oben rechts – der Seite **Mehr**: Konto und Passkeys, Design, +Sammler, Einladungen, Erinnerungen, Hersteller, Themen, Standorte sowie +Export und Import. Was nur der Administrator darf, sehen Mitglieder dort gar +nicht erst. Sets ohne Bild bekommen einen farbigen Platzhalter mit der Setnummer. Jeder Hersteller hat seine eigene Farbe – Lego gelb, Playmobil blau, Cobi grün. @@ -74,8 +88,9 @@ Hersteller hat seine eigene Farbe – Lego gelb, Playmobil blau, Cobi grün. ![Hersteller verwalten](bilder/03-verwaltung-hersteller.png) -Bevor du Sets anlegst, brauchst du mindestens einen **Hersteller**. Zu finden -über das Konto-Menü oben rechts → **Verwaltung**. +Bevor du Sets von Hand anlegst, brauchst du mindestens einen **Hersteller**. +Zu finden unter **Mehr → Hersteller**. Der Lego-Import und die Übernahme aus +einem Link legen fehlende Hersteller selbst an. Drei Arten von Stammdaten: @@ -117,7 +132,7 @@ Die Kacheln zeigen auf einen Blick: - **„Auf Wunschliste"** – steht auf mindestens einer Liste - Setnummer, Hersteller, Thema, Jahr und UVP -Mit **„Set anlegen"** oben rechts kommt ein neues Set dazu. Pflicht sind nur +Über das **+** in der Navigation kommt ein neues Set dazu. Pflicht sind nur Hersteller, Setnummer und Name; alles andere kannst du nachtragen. Ein Bild lädst du entweder hoch (es wird verkleinert und lokal gespeichert) oder du hinterlegst eine Bild-URL. @@ -286,7 +301,7 @@ zweites Mal. ![Konto und Passkeys](bilder/16-konto-passkeys.png) -Unter **Konto → Passkeys → Passkey hinzufügen** hinterlegst du Fingerabdruck, +Unter **Mehr → Konto & Passkeys → Passkey hinzufügen** hinterlegst du Fingerabdruck, Gesichtserkennung oder die Geräte-PIN als Anmeldung. Danach reicht auf der Anmeldeseite ein Tipp auf „Mit Passkey anmelden" – auf vielen Geräten schlägt der Browser den Passkey sogar von selbst vor. @@ -310,7 +325,7 @@ Sets von Hand einzutippen ist der langsame Weg. Es gibt drei schnellere. ### Aus einem Link übernehmen – für alle Hersteller -Auf **Katalog → Set anlegen** steht das Feld „Aus einem Link übernehmen". +Über **+ → Aus Link** landest du im Feld „Aus einem Link übernehmen". Dort passt jeder Link zu einem Set hinein: Amazon, idealo, geizhals, der Shop des Herstellers oder eine Set-Datenbank wie [Brickfact](https://brickfact.com) (Lego) und @@ -340,7 +355,7 @@ Katalog, kommt statt des Formulars ein Link zum vorhandenen Eintrag. ![Lego-Import](bilder/17-lego-import.png) -Auf **Katalog → Set anlegen** steht oben das Feld für den Import. Setnummer +Über **+ → Lego-Nummer** landest du im Feld für den Import. Setnummer von der Packung eintippen, „Holen" – und Name, Jahr, Teile, Minifiguren und Thema stehen drin. Das Bild wird **lokal gespeichert**, funktioniert also auch weiter, wenn die Quelle es irgendwann austauscht. Fehlen Hersteller oder @@ -393,7 +408,7 @@ der Sammlung stimmt damit, ohne dass du daran denken musst. Die Registrierung ist nach dem ersten Konto geschlossen – sonst könnte sich jeder, der die Adresse kennt, ein Konto anlegen. Für den zweiten Elternteil -gibt es deshalb **Verwaltung → Einladungen**: +gibt es deshalb **Mehr → Einladungen**: 1. „Einladung erstellen", optional an eine E-Mail-Adresse gebunden, mit Rolle und Gültigkeit. @@ -411,7 +426,7 @@ zusätzlich einladen und Daten exportieren. ![Daten](bilder/20-daten.png) -Unter **Verwaltung → Daten** gibt es drei Downloads: +Unter **Mehr → Export & Import** gibt es drei Downloads: | | Wofür | |---|---| @@ -471,14 +486,16 @@ Sammler. Ein Set, das nur die Schwester hat, fällt für den Bruder wieder unter > vorher. Erst der zweite Sammler schaltet all das frei – und dann willst du > es auch. -Anlegen unter **Verwaltung → Sammler**. Jeder bekommt einen Namen und eine +Anlegen unter **Mehr → Sammler**. Jeder bekommt einen Namen und eine Farbe zur Unterscheidung. ![Nach Sammler filtern](bilder/22-sammler-filter.png) -Danach steht in Katalog und Sammlung oben ein Umschalter. „Alle zusammen" -zeigt den Haushalt als Ganzes, ein Name zeigt genau dessen Sicht – inklusive -der Frage, was **diesem** Kind noch fehlt. +Danach steht oben unter dem Logo der Umschalter **„Für wen?"**. „Alle" +zeigt den Haushalt als Ganzes, ein Name zeigt genau dessen Sicht – auf der +Startseite, im Katalog und in der Sammlung, inklusive der Frage, was +**diesem** Kind noch fehlt. Die Wahl merkt sich jedes Gerät: Das Tablet im +Kinderzimmer öffnet direkt bei Max. Beim Hinzufügen zur Sammlung fragt die App jetzt, wer das Set bekommt. Und beim Anlegen einer Wunschliste, für wen sie ist: Das bestimmt, wessen Sammlung @@ -486,7 +503,7 @@ als „hat er schon" zählt und wann ein Wunsch automatisch als erfüllt gilt. > Die Umstellung einer bestehenden Instanz macht nichts kaputt: Beim Update > entsteht ein Sammler namens „Sammlung", dem alles Vorhandene gehört. -> Umbenennen unter **Verwaltung → Sammler**, fertig. +> Umbenennen unter **Mehr → Sammler**, fertig. --- @@ -534,7 +551,7 @@ SMTP_FROM=Bricktrack REMINDER_DAYS_BEFORE=14 ``` -Unter **Verwaltung → Erinnerungen** kannst du die Verbindung prüfen, dir eine +Unter **Mehr → Erinnerungen** kannst du die Verbindung prüfen, dir eine Testnachricht schicken und die Prüfung sofort auslösen, statt auf die nächste Stunde zu warten. Dort steht auch, welche Listen einen Termin haben und wie viel dort noch offen ist. @@ -583,7 +600,7 @@ Haken dran, habt ihr es schon. ![Startseite im Design Nachtblau](bilder/25-design-nachtblau.png) -Unter **Konto → Design** gibt es sechs Looks zur Auswahl: +Unter **Mehr → Design** gibt es sechs Looks zur Auswahl: | Design | | |---|---| diff --git a/docs/bilder/02-start.png b/docs/bilder/02-start.png index 05d013f..a31b215 100644 Binary files a/docs/bilder/02-start.png and b/docs/bilder/02-start.png differ diff --git a/docs/bilder/03-verwaltung-hersteller.png b/docs/bilder/03-verwaltung-hersteller.png index a416427..0c47d64 100644 Binary files a/docs/bilder/03-verwaltung-hersteller.png and b/docs/bilder/03-verwaltung-hersteller.png differ diff --git a/docs/bilder/04-katalog.png b/docs/bilder/04-katalog.png index 881d0c9..e5754d6 100644 Binary files a/docs/bilder/04-katalog.png and b/docs/bilder/04-katalog.png differ diff --git a/docs/bilder/05-fehlende-sets.png b/docs/bilder/05-fehlende-sets.png index 3539d31..7a30e61 100644 Binary files a/docs/bilder/05-fehlende-sets.png and b/docs/bilder/05-fehlende-sets.png differ diff --git a/docs/bilder/06-mehrfachauswahl.png b/docs/bilder/06-mehrfachauswahl.png index c05e66e..a1a5d20 100644 Binary files a/docs/bilder/06-mehrfachauswahl.png and b/docs/bilder/06-mehrfachauswahl.png differ diff --git a/docs/bilder/07-wunschliste-dialog.png b/docs/bilder/07-wunschliste-dialog.png index d423f4f..e9c0b7c 100644 Binary files a/docs/bilder/07-wunschliste-dialog.png and b/docs/bilder/07-wunschliste-dialog.png differ diff --git a/docs/bilder/08-set-detail.png b/docs/bilder/08-set-detail.png index 883e022..c6f37a8 100644 Binary files a/docs/bilder/08-set-detail.png and b/docs/bilder/08-set-detail.png differ diff --git a/docs/bilder/09-sammlung.png b/docs/bilder/09-sammlung.png index bb83224..2a51200 100644 Binary files a/docs/bilder/09-sammlung.png and b/docs/bilder/09-sammlung.png differ diff --git a/docs/bilder/10-wunschlisten.png b/docs/bilder/10-wunschlisten.png index fdcef8b..365c6b1 100644 Binary files a/docs/bilder/10-wunschlisten.png and b/docs/bilder/10-wunschlisten.png differ diff --git a/docs/bilder/11-wunschliste-bearbeiten.png b/docs/bilder/11-wunschliste-bearbeiten.png index 6584a66..7df65fb 100644 Binary files a/docs/bilder/11-wunschliste-bearbeiten.png and b/docs/bilder/11-wunschliste-bearbeiten.png differ diff --git a/docs/bilder/13-reservieren.png b/docs/bilder/13-reservieren.png index 26043cc..14719b0 100644 Binary files a/docs/bilder/13-reservieren.png and b/docs/bilder/13-reservieren.png differ diff --git a/docs/bilder/15-wunschliste-reserviert.png b/docs/bilder/15-wunschliste-reserviert.png index e39df29..2f10dea 100644 Binary files a/docs/bilder/15-wunschliste-reserviert.png and b/docs/bilder/15-wunschliste-reserviert.png differ diff --git a/docs/bilder/16-konto-passkeys.png b/docs/bilder/16-konto-passkeys.png index c9c58bd..327f2b7 100644 Binary files a/docs/bilder/16-konto-passkeys.png and b/docs/bilder/16-konto-passkeys.png differ diff --git a/docs/bilder/17-lego-import.png b/docs/bilder/17-lego-import.png index 5007027..71bb513 100644 Binary files a/docs/bilder/17-lego-import.png and b/docs/bilder/17-lego-import.png differ diff --git a/docs/bilder/18-fehlteile.png b/docs/bilder/18-fehlteile.png index 2f03d9d..1090dd5 100644 Binary files a/docs/bilder/18-fehlteile.png and b/docs/bilder/18-fehlteile.png differ diff --git a/docs/bilder/19-einladungen.png b/docs/bilder/19-einladungen.png index f234a94..2f7bb0f 100644 Binary files a/docs/bilder/19-einladungen.png and b/docs/bilder/19-einladungen.png differ diff --git a/docs/bilder/20-daten.png b/docs/bilder/20-daten.png index 4735899..ca0ea90 100644 Binary files a/docs/bilder/20-daten.png and b/docs/bilder/20-daten.png differ diff --git a/docs/bilder/21-sammler.png b/docs/bilder/21-sammler.png index 454c589..fa759c9 100644 Binary files a/docs/bilder/21-sammler.png and b/docs/bilder/21-sammler.png differ diff --git a/docs/bilder/22-sammler-filter.png b/docs/bilder/22-sammler-filter.png index e75cf38..0f03f1d 100644 Binary files a/docs/bilder/22-sammler-filter.png and b/docs/bilder/22-sammler-filter.png differ diff --git a/docs/bilder/23-preise.png b/docs/bilder/23-preise.png index 32dea35..61a434d 100644 Binary files a/docs/bilder/23-preise.png and b/docs/bilder/23-preise.png differ diff --git a/docs/bilder/24-erinnerungen.png b/docs/bilder/24-erinnerungen.png index 06a4476..d7bb26b 100644 Binary files a/docs/bilder/24-erinnerungen.png and b/docs/bilder/24-erinnerungen.png differ diff --git a/docs/bilder/25-design-nachtblau.png b/docs/bilder/25-design-nachtblau.png index 334ddd2..9f92040 100644 Binary files a/docs/bilder/25-design-nachtblau.png and b/docs/bilder/25-design-nachtblau.png differ diff --git a/docs/bilder/26-plus-menue.png b/docs/bilder/26-plus-menue.png new file mode 100644 index 0000000..dd9be03 Binary files /dev/null and b/docs/bilder/26-plus-menue.png differ diff --git a/docs/bilder/27-mehr.png b/docs/bilder/27-mehr.png new file mode 100644 index 0000000..0e65a1d Binary files /dev/null and b/docs/bilder/27-mehr.png differ