Extract helper dialog to dry common template code

This commit is contained in:
Jorge Manrubia
2025-08-21 16:14:12 +02:00
parent 56fbabb374
commit 6c7474ed6c
6 changed files with 16 additions and 35 deletions
+11
View File
@@ -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
@@ -13,13 +13,7 @@
</span>
</button>
<%= 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 %>
<strong class="popup__title txt-nowrap">Assigned to…</strong>
<% if User.active.many? %>
+1 -7
View File
@@ -13,13 +13,7 @@
</span>
</button>
<%= 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 %>
<strong class="popup__title txt-nowrap">Closed by…</strong>
<% if user_filtering.users.many? %>
@@ -13,13 +13,7 @@
</span>
</button>
<%= 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 %>
<strong class="popup__title txt-nowrap">Added by…</strong>
<% if user_filtering.users.many? %>
@@ -8,13 +8,7 @@
</span>
</button>
<%= 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 %>
<strong class="popup__title txt-nowrap">Sort by…</strong>
<ul class="popup__list" data-filter-target="list">
+1 -7
View File
@@ -12,13 +12,7 @@
</span>
</button>
<%= 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: "Tagged…", aria_description: "Tagged…" },
controller: "filter navigable-list",
dialog_target: "dialog",
navigable_list_focus_on_selection_value: false,
navigable_list_actionable_items_value: true } do %>
<%= filter_dialog "Tagged…" do %>
<strong class="popup__title txt-nowrap">Tagged…</strong>
<% if user_filtering.tags.many? %>