Commit Graph
26 Commits
Author SHA1 Message Date
m038andClaude Opus 4.8 aa5d34717e feat(post-form): U1 — shared create/edit form + published field + owner_username
One /post form now drives both create and edit (KTD1, Alt B): cache-on-save
toggles add-page-by-form's overwrite_mode per submit — 'edit' when the new hidden
edit_path field is filled (write back in place, stable URL), 'false' when empty
(fresh dated folder via slug_field). add-page-by-form stays stock (no fork);
the toggle lives in cache-on-save, which reads edit_path and mutates the /post
page header's pageconfig before add-page-by-form's onFormProcessed runs.

- post-form.md: overwrite_mode:false (create-safe fallback), hidden edit_path,
  authoritative published toggle (default on), removed the static
  pagefrontmatter.published so the field wins on every submit (KTD3).
- cache-on-save.php: editPathFromForm + setOverwriteMode helpers.
- site.yaml: owner_username (single source of truth for the KTD8 owner gate).

Verified against the 2.0.4 container: create writes a fresh dated folder with
published:true/false as a real boolean (V1, V2); edit writes in place with the
slug/URL unchanged; save-as-draft-on-create works.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H1FrCYNq6RXdGYbn5PFrhM
2026-07-04 23:31:25 +02:00
m038andClaude Opus 4.8 b8a7bedcda config: track API plugin functional config so it deploys
The API plugin's enabled/route/session_enabled/cors/rate_limit config
lived only in the untracked user/plugins/api/api.yaml, so a fresh install
(prod) had no working /api — Admin2, which authenticates via /api/v1,
could not log in. Move the functional config into the tracked override
user/config/plugins/api.yaml (merged over the plugin defaults). Secrets
(JWT) stay in the gitignored api-private.php; the auto-generated
popularity salt is intentionally not committed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Np4cMQLF77i664CAQXySzU
2026-07-04 22:16:45 +02:00
m038andClaude Opus 4.8 2e32a8559c config: migrate strict_mode to Twig 3 compat flags for Grav 2.0
Grav 2.0's schema migration replaces the 1.7-era twig_compat with
twig2_compat/twig3_compat. Matching the repo to what the upgraded server
already generated so a content reset doesn't revert it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Np4cMQLF77i664CAQXySzU
2026-07-04 20:13:18 +02:00
m038andClaude Opus 4.8 c4e9b2f6bf config: switch GPM release channel testing -> stable
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Np4cMQLF77i664CAQXySzU
2026-07-04 16:38:28 +02:00
m038 d7e3162f55 (Grav GitSync) Automatic Commit from m038 2026-06-21 15:51:01 +00:00
m038andClaude Sonnet 4.6 fa29888578 chore: ignore git-sync.yaml and security.yaml
Both files are server-specific: git-sync.yaml contains an encrypted
token, security.yaml holds Grav nonces/salts. Neither should roam
across environments.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 17:25:22 +02:00
m038andClaude Sonnet 4.6 6486d377b2 chore: commit config drift from CMS usage
accounts/mischa.yaml: pagesViewMode set to tree via Admin UI
config/site.yaml: active_trip updated from demo to us-canada-mex-2024

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 15:10:49 +02:00
m038 cf364bc298 feat: add blueprints for active_trip/travelling config, tagline, featured fields 2026-06-21 01:36:00 +02:00
m038andClaude Sonnet 4.6 63a826fc8e chore: switch active trip to italy-2026-demo, remove japan-korea-2026
- active_trip: italy-2026-demo in site.yaml (was japan-korea-2026)
- post-form.md parent updated to /trips/italy-2026-demo/dailies
- Remove japan-korea-2026 trip pages (no real trip exists)
- Remove stale old italy-2026-demo entries/stories/GPX from git tracking
  (these were leftover from before the demo-source approach)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-20 22:00:37 +02:00
m038 8f87155c1d feat(demo): add story 1 — Sorano: Rock and Time 2026-06-20 21:19:57 +02:00
m038 075a8fa9d4 fix: restore system media types in media.yaml; gpx was silently overriding all built-in types 2026-06-20 18:31:48 +02:00
m038 035c92f293 feat: home page routing — real / route, new nav (Home + Past Trips) 2026-06-19 15:34:12 +02:00
m038andClaude Sonnet 4.6 64b7fcc166 feat: Grav 2.0 compat — flex accounts/pages, api.super permission
- accounts.type: flex (required by admin2 API)
- pages.type: flex (required for admin2 pages API)
- Add access.api.super + api.access to mischa account (admin2 uses api.* permissions, not admin.*)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 13:02:25 +02:00
m038 86997cb878 feat: add GPX route rendering to trip map via leaflet-gpx
Adds leaflet-gpx@2.1.2 CDN script to map template, collects *.gpx
media files from the trip page, and renders them as teal polylines
beneath entry pins. Also fixes user/config/media.yaml to use the
required types: key so Grav's Media class correctly discovers .gpx
files. Map remains functional when no GPX files are present.
2026-06-19 01:38:36 +02:00
m038 2a32917568 refactor: rename tracker to dailies (URL slug), keep nav label as Journal 2026-06-19 01:24:43 +02:00
m038 24acae2a85 feat: restructure pages under trips/japan-korea-2026 entity
- Create trips/japan-korea-2026/{tracker,map,stats,stories} hierarchy
- Move 8 entry folders from 01.tracker into trips/.../01.tracker/
- Add active_trip: japan-korea-2026 to site.yaml
- Whitelist GPX file type in media.yaml
2026-06-19 01:19:41 +02:00
m038andClaude Sonnet 4.6 3a79fe2cc7 fix: use ISO date format for page date storage
Changes dateformat.default from 'd M Y' to 'Y-m-d H:i' so dates
submitted via the post form are stored as '2026-06-19 10:30' rather
than '18 Jun 2026'. This ensures add-page-by-form generates slugs in
YYYY-MM-DD-HHmm-title order, preserving chronological sort.

All templates use explicit |date() filters so display is unaffected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:10:49 +02:00
m038andClaude Sonnet 4.6 c05b9e3400 feat: add Grav 2.0 compat flag for cache-on-save plugin and switch GPM to testing channel
- Add blueprints.yaml for cache-on-save plugin with Grav 2.0 support
- Update system.yaml GPM setting from stable to testing channel
- Update .gitignore to allow cache-on-save plugin tracking

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 23:19:27 +02:00
m038 f0768c297b fix: switch photos to filepond for AJAX upload + increase limit to 100MB 2026-06-18 20:26:22 +02:00
m038 50ab4f522b fix: redirect back to /post after login instead of always going to /tracker 2026-06-18 19:42:33 +02:00
m038 f631ca3cfd fix: raise Grav upload_limit to 25MB to match PHP config 2026-06-18 19:40:54 +02:00
m038andClaude Sonnet 4.6 8cc141d7d2 fix: correct HTML rendering in entry body and feed excerpts
- entry.html.twig: add |raw to page.content (autoescape: true in
  system.yaml was escaping all HTML output including rendered markdown)
- tracker.html.twig: use |striptags|slice(0,250) for clean plain-text
  excerpts instead of raw HTML summary
- Both templates: fix location display whitespace (Tokyo , Japan → Tokyo, Japan)
  using parts array pattern with Twig whitespace control

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 19:30:47 +02:00
m038andClaude Sonnet 4.6 fdb423d2c7 Fix BUG-001 and BUG-002; add post-submission QA test plan and QA entry
BUG-001: cache-on-save plugin clears page cache on onFormProcessed so
new entries appear in the tracker feed immediately after submission.

BUG-002: disabled Twig template cache (twig.cache: false) so theme
file changes take effect without a manual cache flush.

Also adds bugs-and-fixes.md, corrects TC-P test URLs (.entry suffix),
fixes TC-P.1 expectation (inline login form, not a redirect), and
creates the QA test entry for automated scenario verification.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:21:26 +02:00
m038 d3fcde9b0b Phase 4 M1: Entry enrichment — location, weather, gallery, hero image 2026-06-18 01:10:41 +02:00
m038 d3b79efda7 Local dev config: fix account format, site_host, base URL, disable admin notifications 2026-06-18 00:38:54 +02:00
m038 5a849d5b67 Add Grav site and plugin config 2026-06-17 23:40:55 +02:00