diff --git a/app/assets/stylesheets/filters.css b/app/assets/stylesheets/filters.css
index 7fa28c92f..93bfba2d7 100644
--- a/app/assets/stylesheets/filters.css
+++ b/app/assets/stylesheets/filters.css
@@ -93,3 +93,9 @@
max-inline-size: calc(100dvw - (2 * var(--block-space-double)));
z-index: 1;
}
+
+.quick-filter:has(input:not(.default-value):checked) {
+ .input--select {
+ --input-background: var(--color-selected);
+ }
+}
diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb
index 13413280b..b185233f4 100644
--- a/app/helpers/filters_helper.rb
+++ b/app/helpers/filters_helper.rb
@@ -10,4 +10,10 @@ module FiltersHelper
name = params[key].is_a?(Array) ? "#{key}[]" : key
hidden_field_tag name, value, id: nil
end
+
+ def any_filters?(filter)
+ filter.tags.any? || filter.assignees.any? || filter.assigners.any? ||
+ filter.stages.any? || filter.terms.any? ||
+ filter.assignment_status.unassigned? || !filter.default_indexed_by?
+ end
end
diff --git a/app/views/filters/_assignees.html.erb b/app/views/filters/_assignees.html.erb
new file mode 100644
index 000000000..ddf1399d0
--- /dev/null
+++ b/app/views/filters/_assignees.html.erb
@@ -0,0 +1,51 @@
+
+
+
+ <% if filter.assignment_status.unassigned? %>
+ No one
+ <% elsif filter.assignees.any? %>
+ <%= filter.assignees.map(&:name).to_sentence %>
+ <% else %>
+ Assigned to…
+ <% end %>
+
+
+
+
+
+ <%= form_with url: bubbles_path, method: :get, class: "flex flex-column full-width popup__list",
+ data: { controller: "form" } do |form| %>
+ <% filter.as_params.except(:assignee_ids, :assignment_status).each do |key, value| %>
+ <%= filter_hidden_field_tag key, value %>
+ <% end %>
+
+ <%= link_to bubbles_path(filter.as_params.except(:assignee_ids, :assignment_status)), class: "btn popup__item" do %>
+ Clear all
+ <% end %>
+
+
+
+ <% Current.account.users.active.order(:name).each do |user| %>
+
+ <% end %>
+ <% end %>
+
+
\ No newline at end of file
diff --git a/app/views/filters/_assigners.html.erb b/app/views/filters/_assigners.html.erb
new file mode 100644
index 000000000..8c03625b1
--- /dev/null
+++ b/app/views/filters/_assigners.html.erb
@@ -0,0 +1,51 @@
+<% if filter.assigners.any? %>
+
+
+
+ <% if filter.assigners.any? %>
+ <%= "By #{filter.assigners.map(&:name).to_sentence}" %>
+ <% else %>
+ Assigned by…
+ <% end %>
+
+
+
+
+
+ <%= form_with url: bubbles_path, method: :get, class: "flex flex-column full-width popup__list",
+ data: { controller: "form" } do |form| %>
+ <% filter.as_params.except(:assigner_ids).each do |key, value| %>
+ <%= filter_hidden_field_tag key, value %>
+ <% end %>
+
+ <%= link_to bubbles_path(filter.as_params.except(:assigner_ids)), class: "btn popup__item" do %>
+ Clear all
+ <% end %>
+
+
+
+ <% Current.account.users.active.without(Current.user).order(:name).each do |user| %>
+
+ <% end %>
+ <% end %>
+
+
+<% end %>
\ No newline at end of file
diff --git a/app/views/filters/_buckets.html.erb b/app/views/filters/_buckets.html.erb
new file mode 100644
index 000000000..32c9fee56
--- /dev/null
+++ b/app/views/filters/_buckets.html.erb
@@ -0,0 +1,40 @@
+<% if filter.buckets.many? %>
+
+
+
+ <% if filter.buckets.any? %>
+ <%= filter.buckets.map(&:name).to_sentence %>
+ <% else %>
+ In collection
+ <% end %>
+
+
+
+
+
+ <%= form_with url: bubbles_path, method: :get, class: "flex flex-column full-width popup__list",
+ data: { controller: "form" } do |form| %>
+ <% filter.as_params.except(:bucket_ids).each do |key, value| %>
+ <%= filter_hidden_field_tag key, value %>
+ <% end %>
+
+ <%= link_to bubbles_path(filter.as_params.except(:bucket_ids)), class: "btn popup__item" do %>
+ Clear all
+ <% end %>
+
+ <% filter.buckets.order(:name).each do |bucket| %>
+
+ <% end %>
+ <% end %>
+
+
+<% end %>
\ No newline at end of file
diff --git a/app/views/filters/_dialog.html.erb b/app/views/filters/_dialog.html.erb
index c04fb7619..c3f72b621 100644
--- a/app/views/filters/_dialog.html.erb
+++ b/app/views/filters/_dialog.html.erb
@@ -59,7 +59,7 @@