diff --git a/app/views/filters/_filter_fields.html.haml b/app/views/filters/_filter_fields.html.haml deleted file mode 100644 index 797c969b24..0000000000 --- a/app/views/filters/_filter_fields.html.haml +++ /dev/null @@ -1,61 +0,0 @@ -.fields-row - .fields-row__column.fields-row__column-6.fields-group - = f.input :title, - as: :string, - hint: false, - wrapper: :with_label - .fields-row__column.fields-row__column-6.fields-group - = f.input :expires_in, - collection: CustomFilter::EXPIRATION_DURATIONS.map(&:to_i), - include_blank: I18n.t('invites.expires_in_prompt'), - label_method: ->(i) { I18n.t("invites.expires_in.#{i}") }, - wrapper: :with_label - -.fields-group - = f.input :context, - as: :check_boxes, - collection_wrapper_tag: 'ul', - collection: CustomFilter::VALID_CONTEXTS, - include_blank: false, - item_wrapper_tag: 'li', - label_method: ->(context) { I18n.t("filters.contexts.#{context}") }, - wrapper: :with_block_label - -%hr.spacer/ - -.fields-group - = f.input :filter_action, - as: :radio_buttons, - collection: %i(warn hide), - hint: t('simple_form.hints.filters.action'), - include_blank: false, - label_method: ->(action) { filter_action_label(action) }, - required: true, - wrapper: :with_block_label - -%hr.spacer/ - -- unless f.object.statuses.empty? - %h4= t('filters.edit.statuses') - - %p.muted-hint= t('filters.edit.statuses_hint_html', path: filter_statuses_path(f.object)) - - %hr.spacer/ - -%h4= t('filters.edit.keywords') - -.table-wrapper - %table.table.keywords-table - %thead - %tr - %th= t('simple_form.labels.defaults.phrase') - %th= t('simple_form.labels.defaults.whole_word') - %th - %tbody - = f.simple_fields_for :keywords do |keyword| - = render 'keyword_fields', f: keyword - %tfoot - %tr - %td{ colspan: 3 } - = link_to_add_association f, :keywords, class: 'table-action-link', partial: 'keyword_fields', 'data-association-insertion-node': '.keywords-table tbody', 'data-association-insertion-method': 'append' do - = safe_join([material_symbol('add'), t('filters.edit.add_keyword')]) diff --git a/app/views/filters/_form.html.haml b/app/views/filters/_form.html.haml new file mode 100644 index 0000000000..a8337bfa2c --- /dev/null +++ b/app/views/filters/_form.html.haml @@ -0,0 +1,61 @@ +.fields-row + .fields-row__column.fields-row__column-6.fields-group + = form.input :title, + as: :string, + hint: false, + wrapper: :with_label + .fields-row__column.fields-row__column-6.fields-group + = form.input :expires_in, + collection: CustomFilter::EXPIRATION_DURATIONS.map(&:to_i), + include_blank: I18n.t('invites.expires_in_prompt'), + label_method: ->(i) { I18n.t("invites.expires_in.#{i}") }, + wrapper: :with_label + +.fields-group + = form.input :context, + as: :check_boxes, + collection_wrapper_tag: 'ul', + collection: CustomFilter::VALID_CONTEXTS, + include_blank: false, + item_wrapper_tag: 'li', + label_method: ->(context) { I18n.t("filters.contexts.#{context}") }, + wrapper: :with_block_label + +%hr.spacer/ + +.fields-group + = form.input :filter_action, + as: :radio_buttons, + collection: %i(warn hide), + hint: t('simple_form.hints.filters.action'), + include_blank: false, + label_method: ->(action) { filter_action_label(action) }, + required: true, + wrapper: :with_block_label + +%hr.spacer/ + +- unless form.object.statuses.empty? + %h4= t('filters.edit.statuses') + + %p.muted-hint= t('filters.edit.statuses_hint_html', path: filter_statuses_path(form.object)) + + %hr.spacer/ + +%h4= t('filters.edit.keywords') + +.table-wrapper + %table.table.keywords-table + %thead + %tr + %th= t('simple_form.labels.defaults.phrase') + %th= t('simple_form.labels.defaults.whole_word') + %th + %tbody + = form.simple_fields_for :keywords do |keyword| + = render 'keyword_fields', f: keyword + %tfoot + %tr + %td{ colspan: 3 } + = link_to_add_association form, :keywords, class: 'table-action-link', partial: 'keyword_fields', 'data-association-insertion-node': '.keywords-table tbody', 'data-association-insertion-method': 'append' do + = safe_join([material_symbol('add'), t('filters.edit.add_keyword')]) diff --git a/app/views/filters/edit.html.haml b/app/views/filters/edit.html.haml index 3dc3f07b72..d1857e2d86 100644 --- a/app/views/filters/edit.html.haml +++ b/app/views/filters/edit.html.haml @@ -1,8 +1,8 @@ - content_for :page_title do = t('filters.edit.title') -= simple_form_for @filter, url: filter_path(@filter), method: :put do |f| - = render 'filter_fields', f: f += simple_form_for @filter, url: filter_path(@filter), method: :put do |form| + = render form .actions - = f.button :button, t('generic.save_changes'), type: :submit + = form.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/filters/new.html.haml b/app/views/filters/new.html.haml index 5f400e604a..9a3492744e 100644 --- a/app/views/filters/new.html.haml +++ b/app/views/filters/new.html.haml @@ -1,8 +1,8 @@ - content_for :page_title do = t('filters.new.title') -= simple_form_for @filter, url: filters_path do |f| - = render 'filter_fields', f: f += simple_form_for @filter, url: filters_path do |form| + = render form .actions - = f.button :button, t('filters.new.save'), type: :submit + = form.button :button, t('filters.new.save'), type: :submit