--- title: 'New Entry' template: post-form access: site.login: true # Parent (write target) is injected server-side from site.active_trip by the # cache-on-save plugin (onFormValidationProcessed) — no manual sync needed. pageconfig: slug_field: 'date,title' overwrite_mode: false pagefrontmatter: template: entry published: true form: name: new-entry action: /post enctype: multipart/form-data fields: # Photos come first — they anchor what you'll write (Photos → Title → # Content). After upload post-form.js auto-collapses this into a summary # bar so the thumbnails don't crowd the writing area. - name: photos label: Photos (max 4) # Grav-managed filepond field. post-form.js hooks its beforeAddFile # to convert HEIC->JPEG in the browser, then re-adds the JPEG via the # public pond.addFile() API — FilePond keeps ownership of the upload # and page-attach contract (U4). type: filepond multiple: true destination: '@self' limit: 4 accept: - 'image/*' - name: title label: Title type: text validate: required: true - name: date label: Date & Time type: datetime default: now format: 'Y-m-d H:i' validate: required: true - name: content label: "What happened today?" type: textarea rows: 10 validate: required: true - name: lat label: Latitude type: text placeholder: 'tap "Get Location" below' - name: lng label: Longitude type: text placeholder: '' - name: location_city label: City type: text placeholder: 'e.g. Kyoto' - name: location_country label: Country type: text placeholder: 'e.g. Japan' - name: weather_desc label: Weather Condition type: select default: '' options: '': '— none —' 'Sunny': '☀️ Sunny' 'Partly cloudy': '⛅ Partly cloudy' 'Cloudy': '☁️ Cloudy' 'Foggy': '🌫️ Foggy' 'Drizzle': '🌦️ Drizzle' 'Rain': '🌧️ Rain' 'Snow': '❄️ Snow' 'Thunderstorm': '⛈️ Thunderstorm' - name: weather_temp_c label: 'Temperature (°C)' type: number placeholder: 'tap "Get Weather" or type it' validate: min: -60 max: 60 - name: transport_mode label: 'How I got here' type: select default: '' options: '': '— not specified —' 'walking': '🚶 Walking' 'bicycle': '🚲 Bicycle' 'bus': '🚌 Bus' 'train': '🚆 Train' 'car': '🚗 Car' 'plane': '✈️ Plane' # Advanced fields — collapsed behind "More options" (see U5) - name: hero_image label: Hero Image Filename type: text classes: advanced-field placeholder: 'photo.jpg' help: 'Filename of the hero/header image. Leave blank to use the first uploaded photo.' - name: force_connect label: Force connector line type: toggle classes: advanced-field highlight: 0 default: 0 options: 1: 'Yes' 0: 'No' validate: type: bool - name: featured label: Featured highlight type: toggle classes: advanced-field highlight: 0 default: 0 options: 1: 'Yes' 0: 'No' validate: type: bool novalidate: true buttons: - type: submit value: Post Daily classes: btn-post process: add_page: true upload: true message: 'Entry posted successfully!' reset: true ---