Commit graph

170 commits

Author SHA1 Message Date
sarahgarcin1
0f8192eceb css narrative
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 25s
2026-02-27 13:50:51 +01:00
sarahgarcin1
68d23440e2 fix après changement de nom des champs 2
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 22s
2026-02-27 12:57:21 +01:00
sarahgarcin1
25fc60ebe9 fix après changement de nom des champs
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
2026-02-27 12:51:47 +01:00
sarahgarcin1
153e75c0a9 merge + ajout des boutons sur les tuiles page projet + css page narrative
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 25s
2026-02-27 12:24:35 +01:00
isUnknown
ea277917f7 template projet --> project
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
2026-02-26 17:35:24 +01:00
isUnknown
64daeb546c revert(ci): restore original deploy.yml
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
The real fix was in .gitignore (dist → /dist) so panel/dist
is now properly tracked. The CI workarounds are no longer needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 17:25:32 +01:00
isUnknown
d3feb11628 fix(ci): assemble dist/ from public/ before FTP deploy
npm run build only outputs assets/dist/ (Vite JS/CSS).
Add an explicit step to copy kirby/, vendor/, site/, assets/fonts+svg
and index.php from public/ into dist/ so the FTP mirrors have
the correct source. Also removes the wrong panel/ workaround.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 17:18:54 +01:00
isUnknown
bb1a48f3d6 fix(ci): exclude kirby/panel/dist from FTP --delete
The panel/dist is compiled by Kirby and not in the repo.
The mirror --delete was wiping it on every deploy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 17:13:25 +01:00
isUnknown
76dee1b074 fix: align content field names with blueprints, fix API field calls
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
Content .txt files:
- narrative.txt (×4): Introduction → Intro
- chapter.txt (×3): Text → Body
- geoformat.txt: Intro → Text
- map.txt: move Text content into Intro field

narrative.json.php:
- parseChapter: $chapter->text() → $chapter->body()
- parseMarker: $marker->text() → $marker->body()
- parseMap: $map->text() → $map->intro()
- narrative root: $page->introduction() → $page->intro()

Also commits Kirby content directory rename (1_cohesion-des-mondes → cohesion-des-mondes)
and new _drafts content.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 17:09:51 +01:00
isUnknown
f3c7132044 refactor: simplify ElementPopup with flat refs and style descriptors
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 22s
Flatten ref({ value }) to simple ref(), replace 9 updateX functions with
a generic updateProp driven by descriptor arrays, and loop over descriptors
in generatePreviewCss/loadValuesFromStylesheet/applyAllStyles. Remove
trivial passthrough computed properties. (-123 lines)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:47:58 +01:00
isUnknown
69d5ebe7ed refactor: extract shared patterns from popup/settings components
- Create useColoris composable (shared Coloris init across 4 files)
- Create useLinkedSpacing composable (linked margin/padding logic from TextSettings)
- Create BasePopup component (shared popup shell, CSS editor, inheritance button)
- Add watchProp helper in ElementPopup (12 watchers → 12 compact lines)
- Use extractSpacing for @page margin parsing in PagePopup and PageSettings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:35:45 +01:00
isUnknown
0c682c78c0 rename parseCarte → parseMap, fix marker icon size, remove testing checklist
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:10:14 +01:00
isUnknown
41fbe71a1f feat: render full map content (image, intro, markers) in PagedJS
- Fix template check 'carte' → 'map' so map subpages are served by API
- Add parseMarker() and enrich parseCarte() with static image, intro, markers
- Include map children in parseGeoformat() alongside chapters
- Resolve map block references in chapters to full carte data
- Update narrative store flattening with new carte fields
- Replace MapBlock placeholder with full carte rendering (title, image, tags, intro, markers with icons and blocks)
- Add default marker-pin.svg for markers without custom icon

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:00:28 +01:00
isUnknown
9d80845335 improve map blueprint layout 2026-02-26 11:37:54 +01:00
isUnknown
d07522ae7f map blueprint : layout and field text -> intro 2026-02-26 11:35:30 +01:00
isUnknown
45a41e5d89 coverLabel : add " 2026-02-26 11:30:32 +01:00
isUnknown
033023f6ef refactor: move coverFiles to plugin as page/file methods
Replace GeoformatPage model with a plugin registering coverFiles as a
pageMethod (available on all pages) and coverLabel as a fileMethod to
display "Carte [title]" for map children files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 11:30:32 +01:00
isUnknown
c8c544e427 merge 2026-02-26 11:30:25 +01:00
isUnknown
c5cc94bf5d feat: add geoformat page model with coverFiles method
Expose combined files (page files + map children files) for the cover
field query in the geoformat blueprint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 11:29:07 +01:00
isUnknown
9482dfa08c refactor: restructure blueprints with tabs and shared fields
Reorganize narrative, geoformat, chapter, project and map blueprints
to use tabs layout. Add shared blueprint fields and files tab partials.
Update map block query for new page hierarchy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 11:29:07 +01:00
isUnknown
ffcb1a9f2e rename: chapitre/projet templates to chapter/project
Standardize French template names to English across blueprints,
content files, PHP templates, Vue components and Pinia stores.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 11:29:07 +01:00
sarahgarcin1
99a924010f page projet.php
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 22s
2026-02-26 09:11:39 +01:00
sarahgarcin1
95efcac454 merge
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
2026-02-24 19:49:50 +01:00
sarahgarcin1
f6032f717d narrative web version 2026-02-24 19:47:30 +01:00
isUnknown
9ea02b2465 fix: capture map image immediately on "Définir le cadrage" click
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
Save map data directly via API instead of emit('input') to avoid
draft state. Capture image, clear flag, then reload — the panel
shows the correct image in a single reload.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:26:40 +01:00
isUnknown
e806f6ac48 disable: mark font selector and pattern field as upcoming features
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
Both use field--view-only styling with disabled inputs and
"Fonctionnalité à venir" tooltip. Italic checkbox remains active.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:08:08 +01:00
isUnknown
5d43a772bc fix: target p instead of body for font-style italic in TextSettings
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:03:50 +01:00
isUnknown
9f62d3ae5d feat: add custom page format with editable width/height fields
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 20s
Keep only A4/A5 + "Personnalisé" option. Width/height fields use same
layout as margin fields and are editable only in custom mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:51:00 +01:00
isUnknown
b808e22274 fix: target p instead of body for text background-color in TextSettings
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:44:12 +01:00
isUnknown
b5b495d478 disable: comment out em/rem unit options, keep only px and mm for print
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 20s
Margins: px + mm only. Font sizes: px only.
em/rem buttons are commented out, not deleted, for potential future use.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:16:54 +01:00
isUnknown
de3bb2a274 fix: convert values when switching CSS units to preserve visual size
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
Previously, changing unit (e.g. mm → px) kept the numeric value unchanged,
causing visual changes. Now values are converted through a px pivot unit
so the rendered size stays the same.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:08:30 +01:00
isUnknown
342a6eccf1 fix: update Coloris color swatches in TextSettings after loading custom styles
Dispatch input events on color inputs after syncFromStore so Coloris
updates its ::before pseudo-element swatches with loaded values.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:02:33 +01:00
isUnknown
f760e1942a fix: race condition on custom styles loading + misc cleanup
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 22s
Guard watcher-triggered renders in usePreviewRenderer until first
explicit render completes, preventing premature renders with default
styles. Also: disable Contenu tab, update content/blueprints, add
global disabled button styles, minor formatting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:53:55 +01:00
isUnknown
59dfa18ec7 disable: comment out PagePopup and page hover/highlight feature
Keep the code aside for potential re-activation later.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:37:07 +01:00
isUnknown
9ed028a560 git : track content
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 21s
2026-02-12 15:58:44 +01:00
isUnknown
51532d41d9 Map plugin : remove map static image plugin
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 18s
2026-02-06 12:06:32 +01:00
isUnknown
208d46ff28 refactor: one PHP file per route with subdirectories
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 19s
Properly organize routes following design-to-pack pattern:
- routes/markers/get.php
- routes/markers/create.php
- routes/markers/update.php
- routes/markers/delete.php
- routes/position/update.php
- routes/image/capture.php
- routes/image/check-flag.php
- routes/image/clear-flag.php

Each route in its own file for better maintainability.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 11:58:54 +01:00
isUnknown
590c842072 refactor: split API routes into separate files
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 15s
Reorganize routes following design-to-pack pattern:
- routes/markers.php: CRUD operations for markers
- routes/position.php: Position update (single mode)
- routes/image.php: Image capture and regeneration flag management

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 11:55:55 +01:00
isUnknown
9193ac8900 feat: implement automatic static map image generation
- Add html-to-image for capturing map container with markers
- Auto-generate map image on page/marker save via hooks
- Use flag system (.regenerate-map-image) to trigger generation on Panel reload
- Create file using Kirby API for proper indexing
- Add mapStaticImage field in blueprint to display generated image
- Wait for map to be fully loaded before capture
- Capture entire container (map + custom markers)
- Filter MapLibre controls from capture

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 11:48:20 +01:00
isUnknown
1d74105910 update CI workflow
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 16s
2026-02-06 09:21:22 +01:00
isUnknown
3465ee5b2a update CI workflow
Some checks failed
Deploy / Build and Deploy to Production (push) Has been cancelled
2026-02-06 09:21:14 +01:00
isUnknown
5531aebc04 feat: add map framing save button and prevent initial load save
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 17s
- Add "Définir le cadrage" button in multi mode to save current map
  center and zoom as default framing
- Add getCurrentZoom() method in MapPreview to retrieve current zoom level
- Fix: prevent automatic save on initial load with isInitialLoad flag
  to avoid marking page as modified when loading existing data
- Style: dark button theme for save framing button

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 09:20:12 +01:00
isUnknown
8e67431622 fix: use title-based slugs for new markers
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 20s
Generate marker slugs from title (e.g., "marqueur-2") instead of
timestamp-based slugs (e.g., "marker-1770362950"). Also fix panelUrl
generation to use Kirby's panel URL method.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 08:47:28 +01:00
isUnknown
575534d182 feat: display custom marker icons on parent map
API now returns iconUrl and iconSize for each marker, allowing custom
marker icons defined in marker.yml to be displayed on the map-editor
field of the parent map page.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 08:28:49 +01:00
isUnknown
68d3142126 fix: marker title displayed immediately on creation
- Return title directly instead of reading from page object
- Prevents showing identifier/slug before reload
- New markers now display "Marqueur [index]" immediately in list
- Also return num directly for consistency

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-29 16:27:06 +01:00
isUnknown
75d3b557fe plugin : search input color
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 18s
2026-01-29 16:21:12 +01:00
isUnknown
b19635f324 feat: add custom marker icons with configurable size
- Add markerIcon files field to marker.yml for custom JPG/PNG/SVG icons
- Add markerIconSize range field (20-500px, default 40px) with unit display
- Layout icon fields side-by-side (50/50 width) in marker blueprint
- Add markerIconUrl prop in index.php to auto-detect uploaded icon
- Add markerIconSize prop in index.php to read size from page data
- Update MapPreview.vue to display custom images instead of default pins
- Set icon dimensions dynamically based on markerIconSize value
- Icon size updates on save/reload (reactive implementation deferred)
- Remove custom tiles background functionality (not needed)

Note: Custom icons show uploaded image, may have white background on
transparent PNGs depending on image processing. Size is non-reactive
and requires save + reload to update in preview.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-29 16:14:33 +01:00
isUnknown
925e98aea7 refactor: use Kirby page title for markers and add button tooltips
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 19s
- Remove custom title field from marker.yml blueprint
- Use default Kirby page title for marker names in MarkerList
- Add French tooltips to MarkerList buttons (Ajouter, Modifier, Supprimer)
- API already uses page title via $marker->title()->value()

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-29 15:17:17 +01:00
isUnknown
bad465406d fix: resolve marker positioning bug and integrate Kirby design system
All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 17s
- Fix marker positioning issue where markers would glide and misalign during zoom
- Implement two-wrapper structure to isolate CSS transforms from MapLibre positioning
- Outer .custom-marker: MapLibre handles positioning via translate3d()
- Inner .marker-inner: Visual transforms (rotate, scale) isolated from MapLibre
- Remove debug console.log statements
- Integrate Kirby design system in MarkerList and GeocodeSearch components
- Use Kirby CSS variables (--input-color-back, --color-border, etc.)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-29 15:10:32 +01:00
isUnknown
63dc136309 change help message 2026-01-29 14:35:51 +01:00