diff --git a/app/controllers/bubbles_controller.rb b/app/controllers/bubbles_controller.rb index 7765be897..97cc84a2a 100644 --- a/app/controllers/bubbles_controller.rb +++ b/app/controllers/bubbles_controller.rb @@ -8,7 +8,10 @@ class BubblesController < ApplicationController def index @bubbles = @filter.bubbles - @bubbles = @bubbles.mentioning(params[:term]) if params[:term].present? + + Array.wrap(params[:terms]).each do |term| + @bubbles = @bubbles.mentioning(term) + end end def create diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index f2f224dd6..ef458cb44 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -3,10 +3,16 @@ module FiltersHelper "#{name}_filter--#{value}" end - def filter_buttons(filter, **) - filter.to_h.map do |kind, object| + def filter_buttons(filter, terms, **) + filters = filter.to_h.map do |kind, object| filter_button_from kind, object, ** - end.join.html_safe + end + + terms = Array.wrap(terms).map do |term| + filter_button_from :terms, term, ** + end + + safe_join filters + terms end def filter_button_tag(display:, value:, name:, **options) @@ -50,6 +56,8 @@ module FiltersHelper [ object.humanize, object, "indexed_by" ] when :assignments [ object.humanize, object, "assignments" ] + when :terms + [ %Q("#{object}"), object, "terms[]" ] end.then do |display, value, name| { display: display, value: value, name: name } end diff --git a/app/views/bubbles/_filters.html.erb b/app/views/bubbles/_filters.html.erb index f5233e139..e64765602 100644 --- a/app/views/bubbles/_filters.html.erb +++ b/app/views/bubbles/_filters.html.erb @@ -10,7 +10,7 @@ <%= form_with url: bubbles_path, method: :get, class: "flex-inline center align-center gap-half", data: { controller: "form" } do %> - <%= filter_buttons filter %> + <%= filter_buttons filter, terms %> <% end %> @@ -38,18 +38,19 @@ <%= form_with url: bubbles_path, id: :filter_form, method: :get, class: "flex-inline center align-center gap-half" do %> - <%= filter_buttons filter, class: "fill-selected" %> + <%= filter_buttons filter, terms, class: "fill-selected" %> <% end %> -