The header.cover_image pagemediaselect field had no accept filter, so the Admin media picker listed every file in the trip page folder — including the GPX files placed there by the GPX manager. On a typical trip page (photos live on the journal entries, not the trip page) the picker offered *only* GPX, and selecting one routed a non-image Medium into cropResize, rendering a broken <img> on both the trips list and the trip banner. - Blueprint: add `accept: ['.jpg','.jpeg','.png','.webp','.gif']` so the picker only offers images (prevention at source). - Macro: resolve cover_image against `media.images` instead of all media, so a non-image or unresolvable selection falls through to the entry-photo auto-pick (defence-in-depth; also hardens the R11 fallback). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RDS6t8wcpbwKvvrxykVQ5K
95 lines
3.2 KiB
YAML
95 lines
3.2 KiB
YAML
title: 'Trip'
|
|
|
|
form:
|
|
fields:
|
|
tabs:
|
|
type: tabs
|
|
active: 1
|
|
fields:
|
|
|
|
content:
|
|
type: tab
|
|
title: Content
|
|
fields:
|
|
header.title:
|
|
type: text
|
|
label: Title
|
|
validate:
|
|
required: true
|
|
|
|
content:
|
|
type: markdown
|
|
label: Description
|
|
|
|
trip:
|
|
type: tab
|
|
title: Trip
|
|
fields:
|
|
header.date_start:
|
|
type: date
|
|
label: 'Start Date'
|
|
placeholder: '2026-06-17'
|
|
help: 'First day of the trip'
|
|
|
|
header.date_end:
|
|
type: date
|
|
label: 'End Date'
|
|
placeholder: ''
|
|
help: 'Leave blank if trip is ongoing'
|
|
|
|
header.cover_image:
|
|
type: pagemediaselect
|
|
accept: ['.jpg', '.jpeg', '.png', '.webp', '.gif']
|
|
label: 'Cover Image'
|
|
help: 'Pick from images uploaded to this trip page. Shown on the trips listing and the trip-page banner. Falls back to the first journal entry photo if left unset.'
|
|
|
|
header.album_url:
|
|
type: text
|
|
label: 'Photo Album URL'
|
|
placeholder: 'https://photos.google.com/...'
|
|
help: 'Link to external photo album for this trip'
|
|
|
|
header.tagline:
|
|
type: text
|
|
label: Tagline
|
|
placeholder: '6 weeks from Venice to Sicily by train'
|
|
help: 'Short description shown on homepage highlight cards'
|
|
|
|
header.use_gpx:
|
|
type: toggle
|
|
label: Show GPX tracks
|
|
help: "Draws uploaded GPX files as route lines on the map.<br>Independent of connector lines — you can show GPX tracks without connectors or vice versa.<br><br>Note: enable this when using Intelligent GPX connector mode, otherwise that mode falls back to connecting all markers."
|
|
highlight: 1
|
|
default: 1
|
|
options:
|
|
1: 'Yes'
|
|
0: 'No'
|
|
validate:
|
|
type: bool
|
|
|
|
header.autoconnect:
|
|
type: select
|
|
label: Connect markers
|
|
help: "On: draws a dashed line between every entry in date order.<br>Manual: no automatic lines — only entries with Force Connect are linked.<br>Intelligent GPX: suppresses the connector where a GPX track already covers the route (requires Show GPX enabled); Force Connect still overrides.<br>Off: no connector lines at all, Force Connect is also ignored."
|
|
default: 'on'
|
|
options:
|
|
'off': 'Off — no connections'
|
|
'on': 'On — always connect all'
|
|
'manual': 'Manual — force connect only'
|
|
'intelligent_gpx': 'Intelligent GPX — suppress where route is covered'
|
|
|
|
publishing:
|
|
type: tab
|
|
title: Publishing
|
|
fields:
|
|
header.published:
|
|
type: toggle
|
|
label: Published
|
|
highlight: 1
|
|
default: 1
|
|
options:
|
|
1: 'Yes'
|
|
0: 'No'
|
|
validate:
|
|
type: bool
|