Bouton Archives dans la barre de filtres de la frise.
Panneau latéral listant les fiches supprimées avec aperçu complet.
Restauration recrée la fiche dans la frise.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Table NocoDB Versions (Type, RecordId, Snapshot, Label).
Snapshots auto avant chaque modification de fiche frise et de texte rédigé.
Archive avant suppression de fiche. Panneau latéral avec aperçu et restauration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Card shows clickable domain link with external-link icon
- Modal shows "Ouvrir le lien" under URL field
- Auto-generates thumbnail from YouTube/Vimeo URLs when no image uploaded
- Card rendering switched from innerHTML to DOM methods
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add portrait upload (reuses ressource-upload endpoint)
- Card shows portrait image, truncated description, scene count badge
- Modal shows full detail + scene list grouped by acte with links
- Removes long scene list from card preview
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove hero height slider (unnecessary UI element)
- Use innerText instead of textContent for description save/restore
to preserve line breaks in "Ce qu'on veut / ne veut pas" items
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Binder en flex column pour que la légende apparaisse
- Vue active sauvegardée dans localStorage, restaurée au chargement
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Légende en bas du Binder (points colorés + labels)
- CSS statuts alignés sur NocoDB (Validée, À étudier, Abandonnée, En conflit)
- Suppression référence Germe/Posée dans le code
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix parseHTML commentaires (attributs perdus au rechargement)
- Statut: Posée → Validée, Germe supprimé (17 fiches migrées)
- Bouton "+" pour ajouter un personnage directement depuis le formulaire
- Zone "Après l'histoire" sur la frise (couleur prune)
- Icône frise harmonisée (symbole plat)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Nouvelle section frise avec couleur prune (#8a6a8a)
- CSS light + dark theme
- Option ajoutée dans NocoDB
- Icône frise: sablier emoji remplacé par symbole plat
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Grip handle (⠿) appears on hover, drag to reorder cards.
Separate from image repositioning (which uses direct mousedown on image).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Phrase + Tags side by side (2 columns)
- Moodboard full width
- Synopsis full width
- On veut / On ne veut pas as separate cards (2 columns)
- Moodboard images: drag to reposition in any direction (2D)
- Double-click to replace image, single-click to upload on empty
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove type system (ambiance/epoque/rythme/genre/theme).
Tags are now plain strings. Old format auto-migrated.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove category/label system, replace with free text captions
- Click image area to upload, caption editable below
- Images uploaded as files to server (same as hero, avoids NocoDB limit)
- Wider cards (160px min), cleaner layout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use background-image instead of background shorthand to prevent
background-size: cover from being reset when toggling dark/light.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
NocoDB LongText field has ~95KB limit, hero image is ~456KB base64.
New approach: POST /api/hero-upload saves image as file in /public/uploads/,
NocoDB stores only the path. Docker volume configured for persistence.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collaborative annotation system:
- Select text + click "Commenter" → enter author (E/M) + comment
- Highlighted text with author-colored underline (green=Etienne, terra=Myriam)
- Click highlighted passage → popup shows comment, author, date
- Delete comment from popup
- Comments stored as marks in HTML (no separate table needed)
- Custom TipTap Mark extension loaded via esm.sh
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
TipTap 2.x is ESM-only, no UMD on CDN. Use esm.sh to serve
ES modules from npm, expose as window globals.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Phase 1 of Solution 3 (Scrivener-inspired writing environment):
- Binder panel: scenes grouped by act, status indicators, word counts
- TipTap rich text editor with toolbar (bold, italic, headings, lists, blockquote)
- Auto-save after 1.5s of inactivity
- New NocoDB table "Contenu" (SceneId, Texte, Mots)
- API routes: GET/PUT /api/contenu/:sceneId, GET /api/contenu (word counts)
- Total word count in binder footer
- Navigation: Vision / Frise / Rédaction
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace Inspirations with Moodboard (image cards with labels)
- Tags and Moodboard on same row (two columns)
- Ce qu'on veut/ne veut pas: items now support title + expandable
description (click "développer" to add detail text)
- Backwards compatible: old plain-string list items auto-migrate
- Fix hero-meta default height to 400px
- Moodboard images resized to 400px, JPEG 0.8 quality
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Image base64 stored in hero-image section (raw), position/height
in hero-meta section (small JSON). Fixes save failure caused by
oversized JSON payload when wrapping base64 inside JSON.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Click and drag the hero image vertically to adjust framing
- Height slider appears on hover below the banner
- Position (Y%) and height saved to NocoDB as JSON
- Backwards compatible with legacy base64-only format
- Upload button moved to top-right controls overlay
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Hauteur 280px (était 180px)
- Clic sur la bannière ouvre un sélecteur de fichier
- Image redimensionnée (max 1600px) et stockée en base64 dans NocoDB
- Indicateur "Cliquer pour changer l'image" au survol
- Texte reste éditable (clic ne déclenche pas l'upload)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Nouvelle table NocoDB Vision (9 sections : trois-mots, phrase, synopsis, tags, listes, inspirations)
- Routes API /api/vision GET + PATCH dans server.js
- Frontend : contenteditable sur les champs texte, sauvegarde auto au blur
- Tags, listes et inspirations : ajout/suppression/édition en place
- Indicateur "Enregistré" discret en bas à droite
- Variable NOCODB_VISION_TABLE_ID ajoutée
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Myriam doit découvrir la page et se sentir invitée à écrire
son propre contenu — pas lire un synopsis qu'elle n'a pas validé.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>