diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index 49f175067..0b04f6f44 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -30,7 +30,7 @@ module FiltersHelper 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", + controller: "navigable-list", dialog_target: "dialog", navigable_list_focus_on_selection_value: false, navigable_list_actionable_items_value: true diff --git a/app/javascript/controllers/dialog_controller.js b/app/javascript/controllers/dialog_controller.js index de1640825..b2b8cb6fa 100644 --- a/app/javascript/controllers/dialog_controller.js +++ b/app/javascript/controllers/dialog_controller.js @@ -44,6 +44,7 @@ export default class extends Controller { this.dialogTarget.blur() orient(this.dialogTarget, false) limitHeightToViewport(this.dialogTarget, false) + this.dispatch("close") } closeOnClickOutside({ target }) { diff --git a/app/javascript/controllers/filter_controller.js b/app/javascript/controllers/filter_controller.js index 7f3770a8e..77a974bcc 100644 --- a/app/javascript/controllers/filter_controller.js +++ b/app/javascript/controllers/filter_controller.js @@ -20,4 +20,9 @@ export default class extends Controller { this.dispatch("changed") } + + clearInput() { + if (!this.hasInputTarget) return + this.inputTarget.value = "" + } } diff --git a/app/views/events/index/_filter.html.erb b/app/views/events/index/_filter.html.erb index 37dab9e2b..0fdc6bfb8 100644 --- a/app/views/events/index/_filter.html.erb +++ b/app/views/events/index/_filter.html.erb @@ -5,8 +5,8 @@ data: { controller: "form", turbo_frame: "cards_container", turbo_action: "advance" } do |form| %> <%= tag.div class: "flex-inline position-relative quick-filter", data: { - controller: "dialog multi-selection-combobox", - action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside turbo:morph@window->multi-selection-combobox#refresh", + controller: "dialog filter multi-selection-combobox", + action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside turbo:morph@window->multi-selection-combobox#refresh dialog:close@document->filter#clearInput", filter_show: user_filtering.show_boards?, multi_selection_combobox_no_selection_label_value: user_filtering.selected_boards_label } do %>