diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index 7cd396ca..05f9c5e6 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -11,8 +11,18 @@ def index respond_to do |current_request| current_request.html do ilid? - @pagy, @past_events = pagy(Event.past.order(date: :desc), page: params[:page]) - @upcoming_events = Event.upcoming.order(date: :asc).includes(:usergroup) + @search = Event.includes([:usergroup]).ransack(params[:search]) + if params[:search].present? + if (not params[:search]["title"]) or params[:search]["title"] == "" + # We redirect to events here so that we see the normal binnenkort and vroegah view again + redirect_to events_path + return + end + @pagy, @search_events = pagy(@search.result.order(date: :desc), items: 10, page: params[:page]) + else + @upcoming_events = Event.includes([:usergroup]).upcoming.order(date: :asc) + @pagy, @past_events = pagy(Event.includes([:usergroup]).past.order(date: :desc), items: 10, page: params[:page]) + end end current_request.ics do diff --git a/app/models/event.rb b/app/models/event.rb index aecdfd6f..79b52a14 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -81,6 +81,14 @@ def send_new_event_email end end + def self.ransackable_attributes(auth_object = nil) + ["title"] + end + + def self.ransackable_associations(auth_object = nil) + [] + end + def to_s title end diff --git a/app/views/events/index.html.erb b/app/views/events/index.html.erb index a32a080c..75893329 100644 --- a/app/views/events/index.html.erb +++ b/app/views/events/index.html.erb @@ -3,10 +3,25 @@ <% end %> <% content_for :options do %> - <%= button_to "Nieuwe activiteit", new_event_path, method: :get, class: button_classes %> +