Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions app/controllers/events_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 8 additions & 0 deletions app/models/event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
38 changes: 27 additions & 11 deletions app/views/events/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,25 @@
<% end %>

<% content_for :options do %>
<%= button_to "Nieuwe activiteit", new_event_path, method: :get, class: button_classes %>
<div class="flex flex-row flex-wrap p-1">
<%= search_form_for @search, class: "inline-flex rounded-md" do |f| %>
<%= 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 %>
<div class="mt-2 sm:mt-0 sm:ml-2">
<%= button_to "Nieuwe activiteit", new_event_path, method: :get, class: button_classes %>
</div>
</div>
<% end %>

<div class="-m-5 sm:-m-6">
<% if @search_events %>
<%= button_to "Terug naar alle activiteiten", events_path, method: :get, class: 'm-4 ' + button_classes %>
<%= render 'events/list', events: @search_events %>
<div class="py-6">
<%= render 'shared/pagination/default' %>
</div>
<% else %>
<div data-controller="tabs" data-tabs-active-tab="border-hamers-red-500 font-bold text-hamers-red-500 dark:text-hamers-red-500 hover:border-hamers-red-600 hover:text-hamers-red-600 dark:hover:border-hamers-red-600 dark:hover:text-hamers-red-600">
<div class="flex items-center border-b border-gray-200 dark:border-gray-700 justify-between px-4">
<nav class="-mb-px flex space-x-8">
Expand Down Expand Up @@ -38,20 +53,21 @@
</div>
</li>
<% end %>
</ul>
</ul>
</div>
</div>
</div>
</div>

<div class="hidden" data-tabs-target="panel">
<%= render 'events/list', events: @upcoming_events %>
</div>
<div class="hidden" data-tabs-target="panel">
<%= render 'events/list', events: @upcoming_events %>
</div>

<div class="hidden" data-tabs-target="panel">
<%= render 'events/list', events: @past_events %>
<div class="py-6">
<%= render 'shared/pagination/default' %>
<div class="hidden" data-tabs-target="panel">
<%= render 'events/list', events: @past_events %>
<div class="py-6">
<%= render 'shared/pagination/default' %>
</div>
</div>
</div>
</div>
<% end %>
</div>
Loading