Change admin announcement edition interface to use datetime-local (#18321)

* Change admin announcement edition interface to use datetime-local

* Dynamically set announcement stop date as required if start date is set, set minimum date for stop date

* Change `all_day` to not be bound to presence of time-range

* Add pattern and placeholder as minimal fallback for browsers not supporting datetime-local

* Display datetime-local inputs as local time

Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
This commit is contained in:
Claire
2022-10-28 12:56:32 +02:00
committed by GitHub
parent 10922294ff
commit d9d722d74b
5 changed files with 69 additions and 11 deletions

View File

@ -1,12 +1,15 @@
- content_for :page_title do
= t('.title')
- content_for :header_tags do
= javascript_pack_tag 'admin', async: true, crossorigin: 'anonymous'
= simple_form_for @announcement, url: admin_announcement_path(@announcement) do |f|
= render 'shared/error_messages', object: @announcement
.fields-group
= f.input :starts_at, include_blank: true, wrapper: :with_block_label
= f.input :ends_at, include_blank: true, wrapper: :with_block_label
= f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
= f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
.fields-group
= f.input :all_day, as: :boolean, wrapper: :with_label

View File

@ -1,12 +1,15 @@
- content_for :page_title do
= t('.title')
- content_for :header_tags do
= javascript_pack_tag 'admin', async: true, crossorigin: 'anonymous'
= simple_form_for @announcement, url: admin_announcements_path do |f|
= render 'shared/error_messages', object: @announcement
.fields-group
= f.input :starts_at, include_blank: true, wrapper: :with_block_label
= f.input :ends_at, include_blank: true, wrapper: :with_block_label
= f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
= f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
.fields-group
= f.input :all_day, as: :boolean, wrapper: :with_label
@ -15,7 +18,7 @@
= f.input :text, wrapper: :with_block_label
.fields-group
= f.input :scheduled_at, include_blank: true, wrapper: :with_block_label
= f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
.actions
= f.button :button, t('.create'), type: :submit