Commit Graph

221 Commits

Author SHA1 Message Date
m038 d3ef42f04f fix: set leaflet-container background to match dark tile color, prevent grey flash 2026-06-19 13:21:50 +02:00
m038 bae9d68943 fix: switch map tiles to CartoDB dark (no API key required) 2026-06-19 13:18:36 +02:00
m038 dc162ff58c feat: switch to Stadia Alidade Smooth Dark map tiles 2026-06-19 13:11:42 +02:00
m038 3d5e29e26c feat: add paper grain texture, fix hardcoded colors, improve typography 2026-06-19 13:11:36 +02:00
m038 ba3a2ea9e7 feat: switch to warm-dark color tokens 2026-06-19 13:11:32 +02:00
m038 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 0bb3b3bcce chore: consolidate all docs/plans/specs into main repo docs/
Moved from user/ repo: milestone specs, design spec, QA docs, research,
posting pipeline, bugs log, UI redesign plan.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 10:36:47 +02:00
m038 a1acabbf17 chore: move docs/plans/specs to main repo 2026-06-19 10:36:39 +02:00
m038 70b4e1ca7a fix: use trip-relative URL for entry back-link, add active_trip sync comment
- entry.html.twig: replace hardcoded /tracker href with page.parent().url
- post-form.md: add comment to keep pageconfig.parent in sync with active_trip in site.yaml
2026-06-19 02:01:06 +02:00
m038 24f3c14d77 feat: add Admin blueprint for trip page type with date range, cover image, and album URL fields 2026-06-19 01:54:59 +02:00
m038 d1066d7eb3 chore: remove stale docs/demo/tracker (moved to docs/demo/trips/) 2026-06-19 01:52:36 +02:00
m038 ffda4568ab fix: update post form parent and add Italy 2025 demo trip with GPX routes
- Change pageconfig.parent from '/tracker' to '/trips/japan-korea-2026/dailies'
- Move japan-korea-2026 demo entries to docs/demo/trips/japan-korea-2026/dailies/
- Add Italy 2025 (Tuscany Gravel) demo trip: 5 entries with real Tuscany
  coordinates, plus trip.md, map/stats/stories stubs, and 3 GPX routes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 01:50:02 +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 50a5f2d178 feat: add trip/trips/stories templates, update nav and map/stats to use trip-relative paths
- Rename tracker.html.twig to dailies.html.twig; update dailies.md template key
- Fix map.html.twig and stats.html.twig: find dailies via page.parent().route
- Update base.html.twig nav to use config.site.active_trip for all hrefs
- Fix dailies.html.twig mini-map link to use page.parent().url/map
- Create trip.html.twig, trips.html.twig, stories.html.twig

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 01:27:39 +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
m038 534b9a96f1 feat: add demo entries with images + fix form upload action
- New demo entry: Arashiyama with single hero image (bamboo.jpg)
- New demo entry: Gyeongbokgung with four gallery images (palace-gate,
  throne-hall, hanok-rooftops, bugaksan)
- post-form.md: add upload: true to process block so filepond photo
  uploads are handled after page creation; simplify list-of-maps to
  flat map (Symfony YAML preserves insertion order)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:12:55 +02:00
m038 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
m038 9a9220e066 docs: add posting pipeline reference and Admin entry blueprint
- posting-pipeline.md: full frontmatter reference, frontend form flow,
  Admin backend flow, page folder structure
- blueprints/entry.yaml: Admin form fields for city, country, lat/lng,
  weather condition dropdown, temperature, hero image

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 23:24:37 +02:00
m038 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 4fcd74df8a Merge pull request 'Tracker ordering fix + March–April fixture entries' (#1) from experimental-polar-steps into main
Reviewed-on: #1
2026-06-18 22:41:53 +02:00
m038 14791ab69e feat: add March–April trip fixture entries, remove stale test entry
Seven fixture entries (March 25 Narita through April 1 Seoul) used as
Playwright test fixtures for tracker ordering and entry-page tests.
Removes the leftover June 18 test entry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 22:34:29 +02:00
m038 c63378740c fix: use page.collection() for tracker descending date order
page.children ignores the order.by/dir frontmatter config; page.collection()
applies it, so entries now render newest-first as intended.

Also wire Grav asset pipeline into base template (assets.css/js tags).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 22:34:19 +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 4558f94c3f fix: button color, replace native validation with custom inline errors 2026-06-18 20:10:05 +02:00
m038 682ba00bea fix: make Post Daily button full-width and mobile-friendly 2026-06-18 20:02:20 +02:00
m038 6b24215190 fix: rewire add-page-by-form so posts actually get created
Two root-cause bugs:
1. Wrong action name: 'add-page-by-form' is not handled by the plugin;
   the plugin only matches 'addpage' or 'add_page'. Using the wrong name
   meant the action silently no-oped while 'message' still fired, showing
   'Entry posted successfully!' for a post that was never written.
2. Config in wrong place: parent/slug/template must be in 'pageconfig' and
   'pagefrontmatter' frontmatter blocks on the form page — the plugin reads
   from page->header(), not from the process block params.

Fix: move config to pageconfig/pagefrontmatter, change action to 'add_page'.
Slug is built from date+title fields (e.g. 2026-06-18-1430-my-title).
Photos destination changed to '@self' so the plugin copies from flash to
the new entry folder correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 19:51:58 +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
m038 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
m038 0eb5e8c6a5 docs: update demo instructions to use make commands 2026-06-18 17:52:38 +02:00
m038 b37f46de55 feat: add demo content (7 Japan/Korea entries) and update summary
Demo covers: Tokyo × 2, Mt. Fuji (snow), Kyoto, Nara, Osaka, Seoul.
All entries have GPS — shows full map route, 2-country stats, weather
variety including snow. Deploy/reset instructions in docs/demo/README.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 14:33:56 +02:00
m038 bbcea0094c docs: add visual design QA checklist to test plan 2026-06-18 14:25:20 +02:00
m038 1addbc294f feat: add reduced-motion support and :focus-visible ring 2026-06-18 14:24:37 +02:00
m038 5a3f2bc0c5 feat: apply design tokens to stats, map, mini-map; teal markers 2026-06-18 14:24:16 +02:00
m038 c60f6726df feat: redesign post form — hide GPS fields via :has(), teal CTA, status feedback 2026-06-18 14:23:08 +02:00
m038 c5d9c92968 feat: redesign single entry page — hero image, display typography, rule separator 2026-06-18 14:22:05 +02:00
m038 521c678f1c feat: redesign entry feed cards with full-bleed photo + gradient overlay 2026-06-18 14:21:00 +02:00
m038 c33dc2ca56 feat: redesign site header — accent bar, DM Serif title, sticky, active nav 2026-06-18 14:19:58 +02:00
m038 49f60a873a feat: update global styles and login form to use design tokens 2026-06-18 14:19:23 +02:00
m038 573ac00a8d feat: add design tokens and DM font loading 2026-06-18 14:18:42 +02:00
m038 d190094e80 docs: add UI redesign spec and implementation plan
Design direction: Field Notes — DM Serif Display + DM Sans typography,
deep teal (#1F6B5A) accent, full-bleed entry card photos with overlay.
9-task implementation plan covering tokens, header, feed, entry page,
post form, stats/map, mobile polish, and visual QA checklist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 14:15:27 +02:00
m038 6cd5ed0100 Update docs to reflect date+time+title slug format
- qa-test-plan: update expected folder, URL, and automation greps in
  TC-P.5, TC-P.6, TC-P.7; add slug explanation block to test data;
  rewrite TC-P.10 to cover two posts on the same day (now valid)
- bugs-and-fixes: add BUG-003 documenting the silent duplicate-date
  failure and the slug fix

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:50:47 +02:00
m038 c928fff92e Improve post slug: date + time + title
Slug format: 2026-06-18-1430-arrived-in-tokyo
- Eliminates one-post-per-day collision (BUG TC-P.10)
- URL is stable after creation (time baked in, title change doesn't affect it)
- regex_replace strips non-alphanumeric chars; trim('-') cleans edges

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:45:35 +02:00
m038 8ddc1af5c0 Fix cache-on-save plugin: use deleteAll() not clear()
Grav\Common\Cache has no clear() method in this version; the correct
method is deleteAll().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:30:01 +02:00
m038 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 03ebdd6acb Phase 5: Summary document for morning review 2026-06-18 01:17:26 +02:00
m038 94e833273d Phase 5: QA test plan and automated test results 2026-06-18 01:16:42 +02:00
m038 1251086b69 Phase 4 M4: Mini-map on tracker feed with route line and entry navigation 2026-06-18 01:13:47 +02:00
m038 df18b9cd5a Phase 4 M3: Statistics page with days, entries, countries, distance 2026-06-18 01:13:13 +02:00