From a9fc65ed55f23e2348677f2f7d923db1bd461100 Mon Sep 17 00:00:00 2001 From: Koen de Jong Date: Mon, 24 Oct 2022 22:58:47 +0200 Subject: [PATCH 1/4] Added search --- app/controllers/events_controller.rb | 7 +++++-- app/views/events/index.html.erb | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index aed3fc7d7..1d1c3cc3d 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -4,6 +4,7 @@ class EventsController < ApplicationController before_action :ilid?, except: [:index] before_action :set_event, only: [:remind, :show, :edit, :update, :destroy] breadcrumb 'Activiteiten', :events_path + ALLOWED_SORTING_FIELDS = %w[title location] # GET /events # GET /events.json @@ -11,8 +12,10 @@ 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.ransack(params[:search]) + @events = if params[:search].nil? || params[:search].empty? then Event.past.order(date: :desc) else @search.result.order(date: :desc) end + @page, @past_events = pagy(@events, items: 10, page: params[:page]) + @upcoming_events = Event.upcoming.order(date: :asc) end current_request.ics do diff --git a/app/views/events/index.html.erb b/app/views/events/index.html.erb index 0d7e46b15..0d8daacb7 100644 --- a/app/views/events/index.html.erb +++ b/app/views/events/index.html.erb @@ -3,7 +3,10 @@ <% end %> <% content_for :options do %> - <%= button_to "Nieuwe activiteit", new_event_path, method: :get, class: button_classes %> + <%= search_form_for @search, class: "inline-flex rounded-md" do |f| %> + <%= f.search_field :title_and_location, placeholder: 'Zoek hier naar alle activiteiten', class: 'shadow-sm focus:ring-hamers-red-500 focus:border-hamers-red-500 block w-full text-sm border-gray-300 rounded-l-md' %> + <%= submit_tag "Zoek", class: "-ml-px relative inline-flex items-center px-4 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-hamers-red-500 focus:border-hamers-red-500" %> + <% end %> <% end %>
From e848f819ae6041c9e6a7dad4daf7e0aa10d9d78e Mon Sep 17 00:00:00 2001 From: Koen de Jong Date: Mon, 24 Oct 2022 23:00:11 +0200 Subject: [PATCH 2/4] Update styling --- app/controllers/events_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index 1d1c3cc3d..d61ca777c 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -13,7 +13,9 @@ def index current_request.html do ilid? @search = Event.ransack(params[:search]) - @events = if params[:search].nil? || params[:search].empty? then Event.past.order(date: :desc) else @search.result.order(date: :desc) end + @events = if params[:search].nil? || params[:search].empty? + then Event.past.order(date: :desc) + else @search.result.order(date: :desc) end @page, @past_events = pagy(@events, items: 10, page: params[:page]) @upcoming_events = Event.upcoming.order(date: :asc) end From 435cccd7a6795bbc182731aeeb62c6fdc4bbec58 Mon Sep 17 00:00:00 2001 From: Koen de Jong Date: Tue, 25 Oct 2022 14:10:11 +0200 Subject: [PATCH 3/4] Frontend works, search doesn't --- app/controllers/events_controller.rb | 18 +++-- app/views/events/index.html.erb | 98 ++++++++++++++++------------ 2 files changed, 67 insertions(+), 49 deletions(-) diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index d61ca777c..0fadcd6cc 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -12,12 +12,18 @@ def index respond_to do |current_request| current_request.html do ilid? - @search = Event.ransack(params[:search]) - @events = if params[:search].nil? || params[:search].empty? - then Event.past.order(date: :desc) - else @search.result.order(date: :desc) end - @page, @past_events = pagy(@events, items: 10, page: params[:page]) - @upcoming_events = Event.upcoming.order(date: :asc) + @search = Event.ransack(params[:search], search_key: :search) + if params[:search].present? + if (not params[:search]["title_or_location"]) or params[:search]["title_or_location"] == "" + # 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.upcoming.order(date: :asc) + @pagy, @past_events = pagy(Event.past.order(date: :desc), items: 10, page: params[:page]) + end end current_request.ics do diff --git a/app/views/events/index.html.erb b/app/views/events/index.html.erb index 0d8daacb7..6384e5135 100644 --- a/app/views/events/index.html.erb +++ b/app/views/events/index.html.erb @@ -3,58 +3,70 @@ <% end %> <% content_for :options do %> - <%= search_form_for @search, class: "inline-flex rounded-md" do |f| %> - <%= f.search_field :title_and_location, placeholder: 'Zoek hier naar alle activiteiten', class: 'shadow-sm focus:ring-hamers-red-500 focus:border-hamers-red-500 block w-full text-sm border-gray-300 rounded-l-md' %> - <%= submit_tag "Zoek", class: "-ml-px relative inline-flex items-center px-4 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-hamers-red-500 focus:border-hamers-red-500" %> - <% end %> +
+ <%= search_form_for @search, class: "inline-flex rounded-md" do |f| %> + <%= f.search_field :title_or_location, placeholder: 'Zoek hier naar activiteiten', class: 'shadow-sm focus:ring-hamers-red-500 focus:border-hamers-red-500 block w-full text-sm border-gray-300 rounded-l-md' %> + <%= submit_tag "Zoek", class: "-ml-px relative inline-flex items-center px-4 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-hamers-red-500 focus:border-hamers-red-500" %> + <% end %> +
+ <%= button_to "Nieuwe activiteit", new_event_path, method: :get, class: button_classes %> +
+
<% end %>
-
-
- -
- - - - - -
-
- + - + <% end %>
From 79cca05cb8a897f90cf4d4f387e5f792d22c55aa Mon Sep 17 00:00:00 2001 From: Koen de Jong Date: Sat, 10 May 2025 19:44:13 +0200 Subject: [PATCH 4/4] Search events --- app/controllers/events_controller.rb | 9 ++++----- app/models/event.rb | 8 ++++++++ app/views/events/index.html.erb | 12 +++++++----- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index d8003771b..05f9c5e69 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -4,7 +4,6 @@ class EventsController < ApplicationController before_action :ilid?, except: [:index] before_action :set_event, only: [:remind, :show, :edit, :update, :destroy] breadcrumb 'Activiteiten', :events_path - ALLOWED_SORTING_FIELDS = %w[title location] # GET /events # GET /events.json @@ -12,17 +11,17 @@ def index respond_to do |current_request| current_request.html do ilid? - @search = Event.ransack(params[:search], search_key: :search) + @search = Event.includes([:usergroup]).ransack(params[:search]) if params[:search].present? - if (not params[:search]["title_or_location"]) or params[:search]["title_or_location"] == "" + 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.upcoming.order(date: :asc) - @pagy, @past_events = pagy(Event.past.order(date: :desc), items: 10, page: params[:page]) + @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 diff --git a/app/models/event.rb b/app/models/event.rb index aecdfd6f9..79b52a14d 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 e93810e34..75893329b 100644 --- a/app/views/events/index.html.erb +++ b/app/views/events/index.html.erb @@ -5,8 +5,8 @@ <% content_for :options do %>
<%= search_form_for @search, class: "inline-flex rounded-md" do |f| %> - <%= f.search_field :title_or_location, placeholder: 'Zoek hier naar activiteiten', class: 'shadow-sm focus:ring-hamers-red-500 focus:border-hamers-red-500 block w-full text-sm border-gray-300 rounded-l-md' %> - <%= submit_tag "Zoek", class: "-ml-px relative inline-flex items-center px-4 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-hamers-red-500 focus:border-hamers-red-500" %> + <%= f.search_field :title, placeholder: 'Zoek hier naar activiteiten', class: 'shadow-sm focus:ring-hamers-red-500 focus:border-hamers-red-500 block w-full text-sm dark:text-gray-200 dark:bg-gray-800 border-gray-300 dark:border-gray-700 rounded-l-md' %> + <%= submit_tag "Zoek", class: "-ml-px relative inline-flex items-center px-4 py-2 rounded-r-md border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-sm font-medium text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 focus:z-10 focus:outline-none focus:ring-1 focus:ring-hamers-red-500 focus:border-hamers-red-500" %> <% end %>
<%= button_to "Nieuwe activiteit", new_event_path, method: :get, class: button_classes %> @@ -16,7 +16,8 @@
<% if @search_events %> - <%= render 'events/list', events: @search_events %> + <%= button_to "Terug naar alle activiteiten", events_path, method: :get, class: 'm-4 ' + button_classes %> + <%= render 'events/list', events: @search_events %>
<%= render 'shared/pagination/default' %>
@@ -49,8 +50,9 @@

<%= request.base_url %>/ical/<%= ak.key %>.ics

- - <% end %> +
+ + <% end %>