module Admin::AdminHelper def entries_info(collection) n = collection.respond_to?(:total_count) ? collection.total_count : collection.size tag.div class: 'entries-info', id: 'n-entries' do return "#{n} #{collection.model_name.human(count: n)}" if collection.respond_to?(:model_name) return "#{n} #{collection.first.model_name.human(count: n)}" if collection.is_a?(Array) and collection.any? end end def audit_info(obj) tag.div do concat tag.div(l(obj.updated_at, format: :listing), title: l(obj.updated_at, format: :long), class: 'audit-date') concat tag.div(obj.own_and_associated_audits&.first&.user&.name, class: 'audit-info') if obj.respond_to?(:audits) end end def link_to_sortable(sort_by, title=nil, options={}) title ||= sort_by.titleize current = (sort_by.to_sym == sorting_technique.to_sym) reverse = (params[:reverse].blank? and current) ? 1 : nil css_class = ['sort_link'] css_class << 'current' if current css_class << (reverse.blank? ? 'asc' : 'desc') link_to title, url_for( params.permit(:q, :category, :tag).merge(sort: sort_by, reverse: reverse) ), data: options[:data] || { turbo_action: 'advance' } , class: css_class.join(' ') end end