From 2f38cb3ecd4c9eeccfec9f05fe62b312f2530158 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Thu, 2 Oct 2025 10:30:32 +0200 Subject: [PATCH] Wire up collection filtering: it should be performed in the generic cards view --- app/javascript/controllers/filter_settings_controller.js | 8 +++++++- app/views/filters/_settings.html.erb | 3 ++- app/views/filters/settings/_collections.html.erb | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/javascript/controllers/filter_settings_controller.js b/app/javascript/controllers/filter_settings_controller.js index 7a207da80..6be549e5c 100644 --- a/app/javascript/controllers/filter_settings_controller.js +++ b/app/javascript/controllers/filter_settings_controller.js @@ -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) } diff --git a/app/views/filters/_settings.html.erb b/app/views/filters/_settings.html.erb index 16b37ba6d..dbd2f7b66 100644 --- a/app/views/filters/_settings.html.erb +++ b/app/views/filters/_settings.html.erb @@ -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", diff --git a/app/views/filters/settings/_collections.html.erb b/app/views/filters/settings/_collections.html.erb index fffdd65c6..c1bf2d9c2 100644 --- a/app/views/filters/settings/_collections.html.erb +++ b/app/views/filters/settings/_collections.html.erb @@ -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 %> -