From f77aef968ba8dbcfa5b22e14ca32069a87b7d6b4 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Fri, 19 Sep 2025 15:15:23 +0200 Subject: [PATCH] Don't submit empty params with the filter They result in garbled URLs --- .../controllers/combobox_controller.js | 1 + app/views/filters/_settings.html.erb | 7 ++----- app/views/filters/settings/_assignees.html.erb | 2 +- app/views/filters/settings/_closers.html.erb | 2 +- app/views/filters/settings/_controls.html.erb | 17 ++++++++++------- app/views/filters/settings/_creators.html.erb | 2 +- app/views/filters/settings/_tags.html.erb | 2 +- app/views/filters/settings/_terms.html.erb | 7 ++++++- 8 files changed, 23 insertions(+), 17 deletions(-) diff --git a/app/javascript/controllers/combobox_controller.js b/app/javascript/controllers/combobox_controller.js index 18a3ab8bd..02579e5a1 100644 --- a/app/javascript/controllers/combobox_controller.js +++ b/app/javascript/controllers/combobox_controller.js @@ -47,6 +47,7 @@ export default class extends Controller { item.setAttribute(this.selectPropertyNameValue, "true") this.labelTarget.textContent = this.#selectedLabel this.hiddenField.value = item.dataset.comboboxValue + this.hiddenField.disabled = !item.dataset.comboboxValue this.#updateWithDefaultClass() } diff --git a/app/views/filters/_settings.html.erb b/app/views/filters/_settings.html.erb index 234561b53..66e856160 100644 --- a/app/views/filters/_settings.html.erb +++ b/app/views/filters/_settings.html.erb @@ -3,11 +3,8 @@ class: class_names("filters flex align-center gap-half justify-center center margin-block-end", { "filters--expanded": user_filtering.expanded? }), data: { controller: "toggle-class filter-settings", toggle_class_toggle_class: "filters--expanded", filter_settings_filters_set_class: "filters--has-filters-set" } do %>
- <%= form_with url: cards_path, method: :get, class: "flex-inline center align-center gap-half", - data: { controller: "form", turbo_frame: "card_columns", turbo_action: "advance" } do |form| %> - <%= render "filters/settings/terms", user_filtering: user_filtering, form: form %> - <%= render "filters/settings/controls", user_filtering: user_filtering, form: form %> - <% end %> + <%= render "filters/settings/terms", user_filtering: user_filtering %> + <%= render "filters/settings/controls", user_filtering: user_filtering %> <%= render "filters/settings/toggle", user_filtering: user_filtering %> <%= render "filters/settings/manage", user_filtering: user_filtering %> diff --git a/app/views/filters/settings/_assignees.html.erb b/app/views/filters/settings/_assignees.html.erb index 0973a268e..80035e7aa 100644 --- a/app/views/filters/settings/_assignees.html.erb +++ b/app/views/filters/settings/_assignees.html.erb @@ -19,7 +19,7 @@ Assigned to… <% if User.active.many? %> - <%= text_field_tag :search, nil, placeholder: "Filter…", class: "input input--transparent txt-small", autofocus: true, + <%= text_field_tag nil, nil, placeholder: "Filter…", class: "input input--transparent txt-small", autofocus: true, type: "search", autocorrect: "off", autocomplete: "off", data: { "1p-ignore": "true", filter_target: "input", action: "input->filter#filter" } %> <% end %> diff --git a/app/views/filters/settings/_closers.html.erb b/app/views/filters/settings/_closers.html.erb index fcd83d35f..411d35df9 100644 --- a/app/views/filters/settings/_closers.html.erb +++ b/app/views/filters/settings/_closers.html.erb @@ -20,7 +20,7 @@ Closed by… <% if user_filtering.users.many? %> - <%= text_field_tag :search, nil, placeholder: "Filter…", class: "input input--transparent txt-small", autofocus: true, + <%= text_field_tag nil, nil, placeholder: "Filter…", class: "input input--transparent txt-small", autofocus: true, type: "search", autocorrect: "off", autocomplete: "off", data: { "1p-ignore": "true", filter_target: "input", action: "input->filter#filter" } %> <% end %> diff --git a/app/views/filters/settings/_controls.html.erb b/app/views/filters/settings/_controls.html.erb index f0af14fd8..118c0042c 100644 --- a/app/views/filters/settings/_controls.html.erb +++ b/app/views/filters/settings/_controls.html.erb @@ -1,9 +1,12 @@ -<%= hidden_field_tag :expand_all, true, disabled: !user_filtering.expanded?, data: { toggle_enable_target: "element" } %> +<%= form_with url: cards_path, method: :get, class: "flex-inline center align-center gap-half", + 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 %> -<%= render "filters/settings/assignees", user_filtering: user_filtering %> -<%= render "filters/settings/creators", user_filtering: user_filtering %> -<%= render "filters/settings/closers", user_filtering: user_filtering %> + <%= 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 %> + <%= render "filters/settings/assignees", user_filtering: user_filtering %> + <%= render "filters/settings/creators", user_filtering: user_filtering %> + <%= render "filters/settings/closers", user_filtering: user_filtering %> +<% end %> diff --git a/app/views/filters/settings/_creators.html.erb b/app/views/filters/settings/_creators.html.erb index eaa673613..e4da836b9 100644 --- a/app/views/filters/settings/_creators.html.erb +++ b/app/views/filters/settings/_creators.html.erb @@ -20,7 +20,7 @@ Added by… <% if user_filtering.users.many? %> - <%= text_field_tag :search, nil, placeholder: "Filter…", class: "input input--transparent txt-small", autofocus: true, + <%= text_field_tag nil, nil, placeholder: "Filter…", class: "input input--transparent txt-small", autofocus: true, type: "search", autocorrect: "off", autocomplete: "off", data: { "1p-ignore": "true", filter_target: "input", action: "input->filter#filter" } %> <% end %> diff --git a/app/views/filters/settings/_tags.html.erb b/app/views/filters/settings/_tags.html.erb index 466cda9ab..e3f730383 100644 --- a/app/views/filters/settings/_tags.html.erb +++ b/app/views/filters/settings/_tags.html.erb @@ -19,7 +19,7 @@ Tagged… <% if user_filtering.tags.many? %> - <%= text_field_tag :search, nil, placeholder: "Filter…", class: "input input--transparent txt-small", autofocus: true, + <%= text_field_tag nil, nil, placeholder: "Filter…", class: "input input--transparent txt-small", autofocus: true, type: "search", autocorrect: "off", autocomplete: "off", data: { "1p-ignore": "true", filter_target: "input", action: "input->filter#filter" } %> <% end %> diff --git a/app/views/filters/settings/_terms.html.erb b/app/views/filters/settings/_terms.html.erb index a388b520f..914bcd43c 100644 --- a/app/views/filters/settings/_terms.html.erb +++ b/app/views/filters/settings/_terms.html.erb @@ -1,4 +1,6 @@ <% filter = user_filtering.filter %> + +<%= form_with url: cards_path, method: :get, class: "", data: { controller: "form", turbo_frame: "card_columns", action: "input->form#debouncedSubmit" } do |form| %> <% filter.as_params.except(:terms).each do |key, value| %> <%= filter_hidden_field_tag key, value %> <% end %> @@ -12,7 +14,10 @@ <% end %> <%= form.text_field "terms[]", placeholder: "Filter these cards…", class: "input txt-x-small filter__terms", - autofocus: false, autocomplete: :off, autocorrect: "off", data: { "1p-ignore": "true", action: "input->form#debouncedSubmit keydown.enter->form#submitToTopTarget" } %> + autofocus: false, autocomplete: :off, autocorrect: "off", data: { + "1p-ignore": "true", + action: "input->form#debouncedSubmit keydown.enter->form#submitToTopTarget" } %> +<% end %> <% if filter.terms.present? %> <% filter.terms.each do |term| %>