Wire up collection filtering: it should be performed in the generic cards view

This commit is contained in:
Jorge Manrubia
2025-10-02 10:30:32 +02:00
parent 08c6a38492
commit 2f38cb3ecd
3 changed files with 10 additions and 3 deletions
@@ -5,7 +5,7 @@ import { post } from "@rails/request.js"
export default class extends Controller {
static classes = ["filtersSet"]
static targets = ["field", "form"]
static values = { refreshUrl: String, noFilteringUrl: String }
static values = { refreshUrl: String, noFilteringUrl: String, cardsUrl: String }
initialize() {
this.debouncedToggle = debounce(this.#toggle.bind(this), 50)
@@ -31,6 +31,12 @@ export default class extends Controller {
this.debouncedToggle()
}
submitToGenericCardsView() {
this.formTarget.action = this.cardsUrlValue
this.formTarget.dataset.turboFrame = "top"
this.formTarget.requestSubmit()
}
#toggle() {
this.element.classList.toggle(this.filtersSetClass, this.#hasFiltersSet)
}
+2 -1
View File
@@ -6,7 +6,8 @@
toggle_class_toggle_class: "filters--expanded",
filter_settings_filters_set_class: "filters--has-filters-set",
filter_settings_no_filtering_url_value: no_filtering_url,
filter_settings_refresh_url_value: settings_refresh_path } do %>
filter_settings_refresh_url_value: settings_refresh_path,
filter_settings_cards_url_value: cards_path } do %>
<%= form_with url: filter_url, method: :get, class: "", data: {
controller: "form",
turbo_frame: "cards_container",
@@ -29,7 +29,7 @@
<%= tag.li class: "popup__item", data: {
filter_target: "item", navigable_list_target: "item", multi_selection_combobox_target: "item", multi_selection_combobox_value: collection.id, multi_selection_combobox_label: collection.name },
role: "checkbox", aria: { checked: filter.collections.include?(collection) } do %>
<button type="button" class="btn popup__btn" data-action="dialog#close multi-selection-combobox#change filter-settings#change form#submit">
<button type="button" class="btn popup__btn" data-action="dialog#close multi-selection-combobox#change filter-settings#change filter-settings#submitToGenericCardsView:stop">
<span class="overflow-ellipsis flex-item-grow"><%= collection.name %></span>
<%= icon_tag "check", class: "checked flex-item-justify-end", "aria-hidden": true %>
</button>