add counters

master^2
Pete Matsyburka 16 hours ago
parent b05c3b2030
commit 4d68783b82

@ -85,15 +85,40 @@
<span><%= t(current_status) %></span>
<%= svg_icon('chevron_down', class: 'w-4 h-4 shrink-0') %>
</label>
<ul tabindex="0" class="z-10 dropdown-content p-2 mt-2 shadow menu text-base bg-base-100 rounded-box min-w-[180px]">
<% { 'all' => request.query_parameters.except('status'), 'pending' => request.query_parameters.merge('status' => 'pending'), 'completed' => request.query_parameters.merge('status' => 'completed') }.each do |status, status_params| %>
<li>
<%= link_to url_for(params: status_params), class: ('bg-base-200' if current_status == status) do %>
<%= svg_icon(status_icons[status], class: 'w-5 h-5 shrink-0') %>
<span><%= t(status) %></span>
<ul tabindex="0" class="z-10 dropdown-content p-2 mt-2 shadow menu text-base bg-base-100 rounded-box" style="min-width: 180px;">
<li>
<%= link_to url_for(params: request.query_parameters.except('status')), class: ('bg-base-200' if current_status == 'all') do %>
<%= svg_icon('list', class: 'w-5 h-5 shrink-0') %>
<span><%= t('all') %></span>
<% if local_assigns[:all_count] %>
<span class="badge badge-sm badge-ghost font-medium px-2 ml-auto">
<%= local_assigns[:all_count] %>
</span>
<% end %>
</li>
<% end %>
<% end %>
</li>
<li>
<%= link_to url_for(params: request.query_parameters.merge('status' => 'pending')), class: ('bg-base-200' if current_status == 'pending') do %>
<%= svg_icon('clock', class: 'w-5 h-5 shrink-0') %>
<span><%= t('pending') %></span>
<% if local_assigns[:pending_count] %>
<span class="badge badge-sm badge-ghost font-medium px-2 ml-auto">
<%= local_assigns[:pending_count] %>
</span>
<% end %>
<% end %>
</li>
<li>
<%= link_to url_for(params: request.query_parameters.merge('status' => 'completed')), class: ('bg-base-200' if current_status == 'completed') do %>
<%= svg_icon('circle_check', class: 'w-5 h-5 shrink-0') %>
<span><%= t('completed') %></span>
<% if local_assigns[:completed_count] %>
<span class="badge badge-sm badge-ghost font-medium px-2 ml-auto">
<%= local_assigns[:completed_count] %>
</span>
<% end %>
<% end %>
</li>
</ul>
</div>
<% end %>

@ -7,7 +7,7 @@
<span>Filter</span>
<% end %>
</label>
<ul tabindex="0" class="z-10 dropdown-content p-2 mt-2 shadow menu text-base bg-base-100 rounded-box min-w-[180px] text-right">
<ul tabindex="0" class="z-10 dropdown-content p-2 mt-2 shadow menu text-base bg-base-100 rounded-box text-right" style="min-width: 180px;">
<li class="flex">
<%= link_to submissions_filter_path('completed_at', query_params.merge(path: url_for)), data: { turbo_frame: 'modal' } do %>
<%= svg_icon('calendar_check', class: 'w-5 h-5 flex-shrink-0 stroke-2') %>

@ -39,7 +39,7 @@
</div>
<% unless can?(:manage, :countless) %>
<div class="badge badge-neutral badge-outline font-medium">
<%= params[:status].blank? && filter_params.blank? ? @pagy.count : @base_submissions.count %>
<%= all_count = params[:status].blank? && filter_params.blank? ? @pagy.count : @base_submissions.count %>
</div>
<% end %>
</a>
@ -50,7 +50,7 @@
</div>
<% unless can?(:manage, :countless) %>
<div class="badge badge-neutral badge-outline font-medium">
<%= params[:status] == 'pending' && filter_params.blank? ? @pagy.count : @base_submissions.pending.count %>
<%= pending_count = params[:status] == 'pending' && filter_params.blank? ? @pagy.count : @base_submissions.pending.count %>
</div>
<% end %>
</a>
@ -61,13 +61,13 @@
</div>
<% unless can?(:manage, :countless) %>
<div class="badge badge-neutral badge-outline font-medium">
<%= params[:status] == 'completed' && filter_params.blank? ? @pagy.count : @base_submissions.completed.count %>
<%= completed_count = params[:status] == 'completed' && filter_params.blank? ? @pagy.count : @base_submissions.completed.count %>
</div>
<% end %>
</a>
</div>
<div class="flex items-center md:items-end gap-2 w-full md:w-fit">
<%= render 'submissions_filters/applied_filters', filter_params:, with_status: true %>
<%= render 'submissions_filters/applied_filters', filter_params:, with_status: true, all_count:, pending_count:, completed_count: %>
<%= render 'submissions_filters/filter_button', filter_params: %>
<% unless @template.archived_at? %>
<%= render 'submissions_filters/actions', filter_params: filter_params.merge(template_id: @template.id) %>

Loading…
Cancel
Save