feat(post-form): native datetime-local picker + require date client-side
The stock Grav `datetime` field template is deprecated and falls back to a plain text box, so `type: datetime` + `default: now` rendered a raw input showing the literal word "now" — unusable. Add a theme override at templates/forms/fields/datetime/datetime.html.twig that renders a native <input type="datetime-local"> (real calendar+clock, great on mobile), drop the `default: now`, and prefill the current local time from post-form.js. Also add `date` to the existing client-side validator. Together with the picker (which can't hold an invalid value) this stops a bad/empty date from round-tripping to the server — which was the trigger that made Grav re-render the managed FilePond field from the session flash as filename-only inputs and resurrect a photo the user had removed. Grav still reformats the submitted value to the blueprint `format: 'Y-m-d H:i'` on save, so stored dates and folder slugs are unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -46,8 +46,12 @@ form:
|
||||
-
|
||||
name: date
|
||||
label: Date & Time
|
||||
# Rendered as a native <input type="datetime-local"> by the theme
|
||||
# override at templates/forms/fields/datetime/datetime.html.twig.
|
||||
# No `default: now` — the stock text fallback would print the literal
|
||||
# string "now" into the picker; post-form.js prefills the current
|
||||
# local time instead (and the client validator requires this field).
|
||||
type: datetime
|
||||
default: now
|
||||
format: 'Y-m-d H:i'
|
||||
validate:
|
||||
required: true
|
||||
|
||||
Reference in New Issue
Block a user