From f7bf922f44f6c261d8869779c535220a3cd9d2e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=B6hm?= Date: Wed, 25 Sep 2024 13:43:57 +0200 Subject: [PATCH] Calendar view in admin/jobs#index optional --- app/controllers/admin/jobs_controller.rb | 14 +++----------- app/views/admin/jobs/index.html.erb | 9 +++++++-- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/controllers/admin/jobs_controller.rb b/app/controllers/admin/jobs_controller.rb index 4c3b589..7fd26c7 100644 --- a/app/controllers/admin/jobs_controller.rb +++ b/app/controllers/admin/jobs_controller.rb @@ -6,22 +6,14 @@ class Admin::JobsController < ApplicationController @q = Job.ransack(params[:q]) @q.sorts = "id asc" if @q.sorts.empty? # @pagy, @records = pagy(@q.result(distinct: true), limit: 20) - @calendar, @pagy, @records = pagy_calendar(@q, year: {}, month: {}, pagy: {}) + @calendar, @pagy, @records = pagy_calendar(@q.result, year: {}, month: {}, pagy: {}, active: params[:calendar]) end def pagy_calendar_period(collection) - if collection.is_a? Ransack::Search - collection.result.minmax.map(&:created_at) if collection.result - else - collection.minmax.map(&:created_at) if collection - end + [ collection.minimum(:created_at).in_time_zone, collection.maximum(:created_at).in_time_zone ] if collection end def pagy_calendar_filter(collection, from, to) - if collection.is_a? Ransack::Search - collection.result.where(created_at: from...to) - else - collection.where(created_at: from...to) - end + collection.where(created_at: from...to) end end diff --git a/app/views/admin/jobs/index.html.erb b/app/views/admin/jobs/index.html.erb index 8757e39..c36b705 100644 --- a/app/views/admin/jobs/index.html.erb +++ b/app/views/admin/jobs/index.html.erb @@ -13,8 +13,13 @@ <%= turbo_frame_tag "admin_jobs", data: { turbo_action: 'advance'} do %>
- <%== pagy_nav(@calendar[:year]) %> - <%== pagy_nav(@calendar[:month]) %> + <% if @calendar %> + <%= link_to 'Kalender ausblenden', admin_jobs_path() %> + <%== pagy_nav(@calendar[:year]) %> + <%== pagy_nav(@calendar[:month]) if @calendar[:month] %> + <% else %> + <%= link_to 'Kalender anzeigen', admin_jobs_path(calendar: true) %> + <% end %> <%== pagy_nav(@pagy) %> <%== pagy_info(@pagy, item_name: "Users") %>