Calendar view in admin/jobs#index optional

This commit is contained in:
2024-09-25 13:43:57 +02:00
parent 3b1a3ab27e
commit f7bf922f44
2 changed files with 10 additions and 13 deletions

View File

@@ -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

View File

@@ -13,8 +13,13 @@
</div>
<%= turbo_frame_tag "admin_jobs", data: { turbo_action: 'advance'} do %>
<div>
<%== 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") %>
</div>