From 6c7474ed6c89026ed1e41cd06eee6b88ba16caa5 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Thu, 21 Aug 2025 16:14:12 +0200 Subject: [PATCH] Extract helper dialog to dry common template code --- app/helpers/filters_helper.rb | 11 +++++++++++ app/views/filters/settings/_assignees.html.erb | 8 +------- app/views/filters/settings/_closers.html.erb | 8 +------- app/views/filters/settings/_creators.html.erb | 8 +------- app/views/filters/settings/_indexed_by.html.erb | 8 +------- app/views/filters/settings/_tags.html.erb | 8 +------- 6 files changed, 16 insertions(+), 35 deletions(-) diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index ff326ea96..578b98ad3 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -24,4 +24,15 @@ module FiltersHelper end) end end + + def filter_dialog(label, &block) + tag.dialog class: "margin-block-start-half popup panel flex-column align-start gap-half fill-white shadow txt-small", data: { + action: "turbo:before-cache@document->dialog#close keydown->navigable-list#navigate filter:changed->navigable-list#reset toggle->filter#filter", + aria: { label: label, aria_description: label }, + controller: "filter navigable-list", + dialog_target: "dialog", + navigable_list_focus_on_selection_value: false, + navigable_list_actionable_items_value: true + }, &block + end end diff --git a/app/views/filters/settings/_assignees.html.erb b/app/views/filters/settings/_assignees.html.erb index 3516b764f..03b70336a 100644 --- a/app/views/filters/settings/_assignees.html.erb +++ b/app/views/filters/settings/_assignees.html.erb @@ -13,13 +13,7 @@ - <%= tag.dialog class: "margin-block-start-half popup panel flex-column align-start gap-half fill-white shadow txt-small", data: { - action: "turbo:before-cache@document->dialog#close keydown->navigable-list#navigate filter:changed->navigable-list#reset toggle->filter#filter", - aria: { label: "Assigned to…", aria_description: "Assigned to…" }, - controller: "filter navigable-list", - dialog_target: "dialog", - navigable_list_focus_on_selection_value: false, - navigable_list_actionable_items_value: true } do %> + <%= filter_dialog "Assigned to…" do %> Assigned to… <% if User.active.many? %> diff --git a/app/views/filters/settings/_closers.html.erb b/app/views/filters/settings/_closers.html.erb index 5d818e71e..fb8d723b2 100644 --- a/app/views/filters/settings/_closers.html.erb +++ b/app/views/filters/settings/_closers.html.erb @@ -13,13 +13,7 @@ - <%= tag.dialog class: "margin-block-start-half popup panel flex-column align-start gap-half fill-white shadow txt-small", data: { - action: "turbo:before-cache@document->dialog#close keydown->navigable-list#navigate filter:changed->navigable-list#reset toggle->filter#filter", - aria: { label: "Closed by…", aria_description: "Closed by…" }, - controller: "filter navigable-list", - dialog_target: "dialog", - navigable_list_focus_on_selection_value: false, - navigable_list_actionable_items_value: true } do %> + <%= filter_dialog "Closed by…" do %> Closed by… <% if user_filtering.users.many? %> diff --git a/app/views/filters/settings/_creators.html.erb b/app/views/filters/settings/_creators.html.erb index 15476f736..6546ffdf1 100644 --- a/app/views/filters/settings/_creators.html.erb +++ b/app/views/filters/settings/_creators.html.erb @@ -13,13 +13,7 @@ - <%= tag.dialog class: "margin-block-start-half popup panel flex-column align-start gap-half fill-white shadow txt-small", data: { - action: "turbo:before-cache@document->dialog#close keydown->navigable-list#navigate filter:changed->navigable-list#reset toggle->filter#filter", - aria: { label: "Added by…", aria_description: "Added by…" }, - controller: "filter navigable-list", - dialog_target: "dialog", - navigable_list_focus_on_selection_value: false, - navigable_list_actionable_items_value: true } do %> + <%= filter_dialog "Added by…" do %> Added by… <% if user_filtering.users.many? %> diff --git a/app/views/filters/settings/_indexed_by.html.erb b/app/views/filters/settings/_indexed_by.html.erb index 3bc61cdba..71058f4f0 100644 --- a/app/views/filters/settings/_indexed_by.html.erb +++ b/app/views/filters/settings/_indexed_by.html.erb @@ -8,13 +8,7 @@ - <%= tag.dialog class: "margin-block-start-half popup panel flex-column align-start gap-half fill-white shadow txt-small", data: { - action: "turbo:before-cache@document->dialog#close keydown->navigable-list#navigate dialog:show@document->navigable-list#reset", - aria: { label: "Sort by…", aria_description: "Sort by…" }, - controller: "navigable-list", - dialog_target: "dialog", - navigable_list_focus_on_selection_value: false, - navigable_list_actionable_items_value: true } do %> + <%= filter_dialog "Sort by…" do %> Sort by…