diff --git a/app/assets/stylesheets/filters.css b/app/assets/stylesheets/filters.css
index c16447eaa..298c2744b 100644
--- a/app/assets/stylesheets/filters.css
+++ b/app/assets/stylesheets/filters.css
@@ -117,5 +117,17 @@
display: none;
}
}
+
+ .filters:not(.filters--expanded) {
+ .quick-filter:not([data-filter-show=true]) {
+ display: none;
+ }
+ }
+
+ .filters.filters--expanded {
+ .quick-filter {
+ display: block;
+ }
+ }
}
diff --git a/app/controllers/my/filter_expansions_controller.rb b/app/controllers/my/filter_expansions_controller.rb
deleted file mode 100644
index 785c49613..000000000
--- a/app/controllers/my/filter_expansions_controller.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-class My::FilterExpansionsController < ApplicationController
- include FilterScoped
-
- def create
- render turbo_stream: turbo_stream.replace("filter-settings", partial: "filters/settings", locals: { user_filtering: @user_filtering })
- end
-end
diff --git a/app/models/user/filtering.rb b/app/models/user/filtering.rb
index 1781e356d..f8186ed0e 100644
--- a/app/models/user/filtering.rb
+++ b/app/models/user/filtering.rb
@@ -47,28 +47,28 @@ class User::Filtering
end
def show_indexed_by?
- expanded? || !filter.indexed_by.all?
+ !filter.indexed_by.all?
end
def show_sorted_by?
- expanded? || !filter.sorted_by.latest?
+ !filter.sorted_by.latest?
end
def show_tags?
return unless Tag.any?
- expanded? || filter.tags.any?
+ filter.tags.any?
end
def show_assignees?
- expanded? || filter.assignees.any?
+ filter.assignees.any?
end
def show_creators?
- expanded? || filter.creators.any?
+ filter.creators.any?
end
def show_closers?
- expanded? || filter.closers.any?
+ filter.closers.any?
end
def enable_collection_filtering(&block)
diff --git a/app/views/filters/_settings.html.erb b/app/views/filters/_settings.html.erb
index 66cdc049b..4d7319745 100644
--- a/app/views/filters/_settings.html.erb
+++ b/app/views/filters/_settings.html.erb
@@ -1,5 +1,7 @@
<% cache user_filtering do %>
-
+ <%= tag.aside id: "filter-settings",
+ class: class_names("filters flex align-center gap-half justify-center center margin-block-end", { "filters--expanded": user_filtering.expanded? }),
+ data: { controller: "toggle-class", toggle_class_toggle_class: "filters--expanded" } do %>
<%= render "filters/settings/terms", user_filtering: user_filtering %>
<%= render "filters/settings/controls", user_filtering: user_filtering %>
@@ -7,5 +9,5 @@
<%= render "filters/settings/toggle", user_filtering: user_filtering %>
<%= render "filters/settings/manage", user_filtering: user_filtering %>
-
+ <% end %>
<% end %>
diff --git a/app/views/filters/settings/_assignees.html.erb b/app/views/filters/settings/_assignees.html.erb
index 03b70336a..bc104e281 100644
--- a/app/views/filters/settings/_assignees.html.erb
+++ b/app/views/filters/settings/_assignees.html.erb
@@ -1,6 +1,6 @@
<% filter = user_filtering.filter %>
-<% if user_filtering.show_assignees? %>
-
+<%= tag.div class: "quick-filter position-relative",
+ data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: user_filtering.show_assignees? } do %>
<% if filter.assignment_status.unassigned? %>
@@ -76,5 +76,4 @@
<% end %>
<% end %>
-
<% end %>
diff --git a/app/views/filters/settings/_closers.html.erb b/app/views/filters/settings/_closers.html.erb
index fb8d723b2..3b07775cf 100644
--- a/app/views/filters/settings/_closers.html.erb
+++ b/app/views/filters/settings/_closers.html.erb
@@ -1,8 +1,7 @@
<% filter = user_filtering.filter %>
-<% if user_filtering.show_closers? %>
-
+<%= tag.div class: "quick-filter position-relative",
+ data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: user_filtering.show_closers? } do %>
<% if filter.closers.any? %>
@@ -54,5 +53,4 @@
<% end %>
<% end %>
-
<% end %>
diff --git a/app/views/filters/settings/_controls.html.erb b/app/views/filters/settings/_controls.html.erb
index 25d6479c1..755ad1e18 100644
--- a/app/views/filters/settings/_controls.html.erb
+++ b/app/views/filters/settings/_controls.html.erb
@@ -4,5 +4,3 @@
<%= 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/time_window", user_filtering: user_filtering, name: :creation, label: "Created" %>
-<%= render "filters/settings/time_window", user_filtering: user_filtering, name: :closure, label: "Closed" %>
diff --git a/app/views/filters/settings/_creators.html.erb b/app/views/filters/settings/_creators.html.erb
index 6546ffdf1..a04c5b449 100644
--- a/app/views/filters/settings/_creators.html.erb
+++ b/app/views/filters/settings/_creators.html.erb
@@ -1,8 +1,7 @@
<% filter = user_filtering.filter %>
-<% if user_filtering.show_creators? %>
-
+<%= tag.div class: "quick-filter position-relative",
+ data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: user_filtering.show_creators? } do %>
<% if filter.creators.any? %>
@@ -54,5 +53,4 @@
<% end %>
<% end %>
-
<% end %>
diff --git a/app/views/filters/settings/_indexed_by.html.erb b/app/views/filters/settings/_indexed_by.html.erb
index 085e85fca..5790ab0c9 100644
--- a/app/views/filters/settings/_indexed_by.html.erb
+++ b/app/views/filters/settings/_indexed_by.html.erb
@@ -1,7 +1,7 @@
<% filter = user_filtering.filter %>
-<% if user_filtering.show_indexed_by? %>
- " data-controller="dialog" data-action="keydown.esc->dialog#close click@document->dialog#closeOnClickOutside">
+<%= tag.div class: class_names("quick-filter position-relative", "default-value": filter.indexed_by.all?),
+ data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: user_filtering.show_indexed_by? } do %>
<%= filter.indexed_by == "all" ? "Status" : filter.indexed_by.humanize %>
@@ -36,5 +36,4 @@
<% end %>
<% end %>
-
<% end %>
diff --git a/app/views/filters/settings/_sorted_by.html.erb b/app/views/filters/settings/_sorted_by.html.erb
index ccd7ef853..6d4e8d6cc 100644
--- a/app/views/filters/settings/_sorted_by.html.erb
+++ b/app/views/filters/settings/_sorted_by.html.erb
@@ -1,7 +1,7 @@
<% filter = user_filtering.filter %>
-<% if user_filtering.show_sorted_by? %>
- " data-controller="dialog" data-action="keydown.esc->dialog#close click@document->dialog#closeOnClickOutside">
+<%= tag.div class: class_names("quick-filter position-relative", "default-value": filter.sorted_by.latest?),
+ data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: user_filtering.show_sorted_by? } do %>
<%= sorted_by_label(filter.sorted_by) %>
@@ -36,5 +36,4 @@
<% end %>
<% end %>
-
<% end %>
\ No newline at end of file
diff --git a/app/views/filters/settings/_tags.html.erb b/app/views/filters/settings/_tags.html.erb
index d5e5c0a54..5fd20af0d 100644
--- a/app/views/filters/settings/_tags.html.erb
+++ b/app/views/filters/settings/_tags.html.erb
@@ -1,7 +1,7 @@
<% filter = user_filtering.filter %>
-<% if user_filtering.show_tags? %>
-
+<%= tag.div class: "quick-filter position-relative",
+ data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: user_filtering.show_tags? } do %>
<% if filter.tags.any? %>
@@ -53,5 +53,4 @@
<% end %>
<% end %>
-
<% end %>
diff --git a/app/views/filters/settings/_time_window.html.erb b/app/views/filters/settings/_time_window.html.erb
index 20590bd40..89f382a68 100644
--- a/app/views/filters/settings/_time_window.html.erb
+++ b/app/views/filters/settings/_time_window.html.erb
@@ -1,6 +1,6 @@
<% filter = user_filtering.filter %>
-<% if filter.public_send("#{name}_window").present? %>
-
+<%= tag.div class: "quick-filter position-relative",
+ data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: filter.public_send("#{name}_window").present? } do %>
<%= "#{label} #{TimeWindowParser.human_name_for(filter.public_send(name))&.downcase}" %>
@@ -29,5 +29,4 @@
<% end %>
<% end %>
-
<% end %>
diff --git a/app/views/filters/settings/_toggle.html.erb b/app/views/filters/settings/_toggle.html.erb
index fb1063c57..94fe339fc 100644
--- a/app/views/filters/settings/_toggle.html.erb
+++ b/app/views/filters/settings/_toggle.html.erb
@@ -1,13 +1,11 @@
<% filter = user_filtering.filter %>
<% if user_filtering.expanded? %>
- <%= link_to my_filter_expansion_path(**filter.as_params, expand_all: false), class: "btn txt-x-small btn--reversed", aria: { selected: true }, data: { turbo_method: "post" } do %>
+
<%= icon_tag "filter" %>
- Close filter options
- <% end %>
+
<% else %>
- <%= link_to my_filter_expansion_path(**filter.as_params, expand_all: true), class: "btn txt-x-small", data: { turbo_method: "post" } do %>
+
<%= icon_tag "filter" %>
- Expand filter options
- <% end %>
+
<% end %>
diff --git a/config/routes.rb b/config/routes.rb
index 7955c5137..505bcf240 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -125,7 +125,6 @@ Rails.application.routes.draw do
resources :pins
resource :timezone
resource :menu
- resource :filter_expansion, only: %i[ create destroy ]
end
namespace :prompts do