diff --git a/app/javascript/controllers/filter_settings_controller.js b/app/javascript/controllers/filter_settings_controller.js index 85784583a..2335744f9 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 } + static values = { refreshUrl: String, noFilteringUrl: String } initialize() { this.debouncedToggle = debounce(this.#toggle.bind(this), 50) @@ -15,11 +15,27 @@ export default class extends Controller { this.#toggle() } - change() { + change(event) { this.#toggle() this.#refreshSaveToggleButton() } + resetIfBlankAndNoFiltering(event) { + const { target } = event + if (!target.value.trim() && !this.#hasFiltersSet) { + this.#showNoFilteringUrl(); + event.stopImmediatePropagation() + } + } + + resetIfNoFiltering(event) { + console.debug("CALLED", this.#hasFiltersSet); + if (!this.#hasFiltersSet) { + this.#showNoFilteringUrl() + event.stopImmediatePropagation() + } + } + async fieldTargetConnected(field) { this.debouncedToggle() } @@ -65,4 +81,8 @@ export default class extends Controller { return formData } + + #showNoFilteringUrl() { + Turbo.visit(this.noFilteringUrlValue, { frame: "cards_container" }) + } } diff --git a/app/views/cards/index.html.erb b/app/views/cards/index.html.erb index f7694eadc..cbbd6863e 100644 --- a/app/views/cards/index.html.erb +++ b/app/views/cards/index.html.erb @@ -23,10 +23,10 @@ <% end %> -<%= render "filters/settings", user_filtering: @user_filtering %> +<%= render "filters/settings", user_filtering: @user_filtering, no_filtering_url: cards_path %>
- <%= turbo_frame_tag :card_columns do %> + <%= turbo_frame_tag :cards_container do %> <%= render partial: "cards/display/preview", collection: @page.records, as: :card, locals: { draggable: true }, cached: ->(card) { cacheable_preview_parts_for(card) } %> <% end %>
diff --git a/app/views/cards/index/_columns.html.erb b/app/views/cards/index/_columns.html.erb index afc8a9555..ca109a736 100644 --- a/app/views/cards/index/_columns.html.erb +++ b/app/views/cards/index/_columns.html.erb @@ -1,5 +1,5 @@ <% cache columns do %> - <%= turbo_frame_tag :card_columns do %> + <%= turbo_frame_tag :cards_container do %>
<%= render "cards/index/engagement/on_deck", column: columns.on_deck %> diff --git a/app/views/collections/show.html.erb b/app/views/collections/show.html.erb index 29e30b082..32a1c2770 100644 --- a/app/views/collections/show.html.erb +++ b/app/views/collections/show.html.erb @@ -21,7 +21,7 @@
<% end %> -<%= render "filters/settings", user_filtering: @user_filtering %> +<%= render "filters/settings", user_filtering: @user_filtering, no_filtering_url: collection_path(@collection) %> <%= tag.div data: { controller: "drag-and-drop", diff --git a/app/views/collections/show/_columns.html.erb b/app/views/collections/show/_columns.html.erb index e4c7a86d1..71e8b4e43 100644 --- a/app/views/collections/show/_columns.html.erb +++ b/app/views/collections/show/_columns.html.erb @@ -1,4 +1,4 @@ - <%= turbo_frame_tag :card_columns do %> + <%= turbo_frame_tag :cards_container do %>
diff --git a/app/views/filters/_settings.html.erb b/app/views/filters/_settings.html.erb index 3e8c1aad1..9ceefcf7b 100644 --- a/app/views/filters/_settings.html.erb +++ b/app/views/filters/_settings.html.erb @@ -6,9 +6,15 @@ controller: "toggle-class filter-settings", toggle_class_toggle_class: "filters--expanded", filter_settings_filters_set_class: "filters--has-filters-set", - filter_settings_refresh_url_value: settings_refresh_path } do %> - <%= form_with url: cards_path, method: :get, class: "", data: { controller: "form", turbo_frame: "card_columns", filter_settings_target: "form", turbo_action: "advance" } do |form| %> - <%= hidden_field_tag :expand_all, true, disabled: !user_filtering.expanded?, data: { toggle_enable_target: "element" } %> + filter_settings_no_filtering_url_value: no_filtering_url, + filter_settings_refresh_url_value: settings_refresh_path } do %>~ + <%= form_with url: cards_path, method: :get, class: "", data: { + controller: "form", + turbo_frame: "cards_container", + filter_settings_target: "form", + action: "turbo:submit-end->filter-settings#resetIfNoFiltering", + turbo_action: "advance" } do |form| %> + <%= hidden_field_tag :expand_all, true, disabled: !user_filtering.expanded?, data: { toggle_enable_target: "element"} %> <% user_filtering.filter.collections.each do |collection| %> <%= filter_hidden_field_tag "collection_ids[]", collection.id %> <% end %> @@ -20,7 +26,7 @@ <%= render "filters/settings/toggle", user_filtering: user_filtering %>
<% end %> - <%= render "filters/settings/manage", user_filtering: user_filtering %> + <%= render "filters/settings/manage", user_filtering: user_filtering, no_filtering_url: no_filtering_url %> <% end %> <% end %> diff --git a/app/views/filters/settings/_assignees.html.erb b/app/views/filters/settings/_assignees.html.erb index 5a2400b40..aa3c1569f 100644 --- a/app/views/filters/settings/_assignees.html.erb +++ b/app/views/filters/settings/_assignees.html.erb @@ -27,7 +27,7 @@ <%= tag.li class: "popup__item", data: { filter_target: "item", navigable_list_target: "item", multi_selection_combobox_target: "item", multi_selection_combobox_value: "unassigned", multi_selection_combobox_label: "No one" }, role: "checkbox", aria: { checked: filter.assignment_status.unassigned? } do %> - @@ -37,7 +37,7 @@ <%= tag.li class: "popup__item", data: { filter_target: "item", navigable_list_target: "item", multi_selection_combobox_target: "item", multi_selection_combobox_value: user.id, multi_selection_combobox_label: user.familiar_name }, role: "checkbox", aria: { checked: filter.assignees.include?(user) } do %> - diff --git a/app/views/filters/settings/_closers.html.erb b/app/views/filters/settings/_closers.html.erb index df40dea9d..d08e2feaa 100644 --- a/app/views/filters/settings/_closers.html.erb +++ b/app/views/filters/settings/_closers.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: user.id, multi_selection_combobox_label: user.familiar_name }, role: "checkbox", aria: { checked: filter.closers.include?(user) } do %> - diff --git a/app/views/filters/settings/_creators.html.erb b/app/views/filters/settings/_creators.html.erb index 6092e2b54..bde323a90 100644 --- a/app/views/filters/settings/_creators.html.erb +++ b/app/views/filters/settings/_creators.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: user.id, multi_selection_combobox_label: user.familiar_name }, role: "checkbox", aria: { checked: filter.creators.include?(user) } do %> - diff --git a/app/views/filters/settings/_indexed_by.html.erb b/app/views/filters/settings/_indexed_by.html.erb index 1679b5bd4..316868bd2 100644 --- a/app/views/filters/settings/_indexed_by.html.erb +++ b/app/views/filters/settings/_indexed_by.html.erb @@ -4,7 +4,6 @@ data: { controller: "dialog combobox", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: user_filtering.show_indexed_by?, - turbo_action: "advance", combobox_default_value_value: "all", combobox_default_label_value: "Status", combobox_with_default_class: "quick-filter--with-default" } do %> @@ -23,7 +22,7 @@