diff --git a/app/javascript/controllers/combobox_controller.js b/app/javascript/controllers/combobox_controller.js index 9d3204b3b..054f44c2f 100644 --- a/app/javascript/controllers/combobox_controller.js +++ b/app/javascript/controllers/combobox_controller.js @@ -1,7 +1,7 @@ import { Controller } from "@hotwired/stimulus" export default class extends Controller { - static targets = [ "label", "item" ] + static targets = [ "label", "item", "hiddenField" ] static values = { selectPropertyName: { type: String, default: "aria-checked" } } connect() { @@ -16,8 +16,7 @@ export default class extends Controller { } get #selectedLabel() { - const label = this.#selectedItem.querySelector("[data-combobox-label]") - return label.dataset.comboboxLabel + return this.#selectedItem?.dataset?.comboboxLabel || "" } get #selectedItem() { @@ -28,6 +27,7 @@ export default class extends Controller { this.#clearSelection() item.setAttribute(this.selectPropertyNameValue, "true") this.labelTarget.textContent = this.#selectedLabel + this.hiddenFieldTarget.value = item.dataset.comboboxValue } #clearSelection() { diff --git a/app/views/filters/settings/_controls.html.erb b/app/views/filters/settings/_controls.html.erb index 213c5c587..d4ca7e23d 100644 --- a/app/views/filters/settings/_controls.html.erb +++ b/app/views/filters/settings/_controls.html.erb @@ -1,8 +1,6 @@ <%= form_with url: cards_path, method: :get, class: "flex-inline center align-center gap-half", - data: { controller: "form" } do |form| %> + data: { controller: "form", turbo_frame: "card_columns", turbo_action: "advance" } do |form| %> <%= hidden_field_tag :expand_all, true, disabled: !user_filtering.expanded?, data: { toggle_enable_target: "element" } %> - - <%= render "filters/settings/sorted_by", user_filtering: user_filtering %> <%= render "filters/settings/indexed_by", user_filtering: user_filtering %> <%#= render "filters/settings/tags", user_filtering: user_filtering %> diff --git a/app/views/filters/settings/_indexed_by.html.erb b/app/views/filters/settings/_indexed_by.html.erb index 16c042894..4f6ca033c 100644 --- a/app/views/filters/settings/_indexed_by.html.erb +++ b/app/views/filters/settings/_indexed_by.html.erb @@ -1,20 +1,22 @@ <% filter = user_filtering.filter %> <%= tag.div class: class_names("quick-filter position-relative"), - data: { controller: "dialog combobox", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: user_filtering.show_indexed_by? } do %> + data: { controller: "dialog combobox", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: user_filtering.show_indexed_by?, turbo_action: "advance" } do %> + <%= hidden_field_tag :indexed_by, nil, data: { combobox_target: "hiddenField" } %> + <%= filter_dialog "Filter by…" do %> Filter by…