2 changed files with 26 additions and 25 deletions
			
			
		@ -0,0 +1,23 @@
					 | 
				
			||||
module Helpers::Filter | 
				
			||||
  def filtered_case_logs(logs) | 
				
			||||
    if session[:case_logs_filters].present? | 
				
			||||
      filters = JSON.parse(session[:case_logs_filters]) | 
				
			||||
      filters.each do |category, values| | 
				
			||||
        next if Array(values).reject(&:empty?).blank? | 
				
			||||
        next if category == "organisation" && params["organisation_select"] == "all" | 
				
			||||
 | 
				
			||||
        logs = logs.public_send("filter_by_#{category}", values, current_user) | 
				
			||||
      end | 
				
			||||
    end | 
				
			||||
    logs = logs.order(created_at: :desc) | 
				
			||||
    current_user.support? ? logs.all.includes(:owning_organisation, :managing_organisation) : logs | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def set_session_filters | 
				
			||||
    new_filters = session[:case_logs_filters].present? ? JSON.parse(session[:case_logs_filters]) : {} | 
				
			||||
    current_user.case_logs_filters.each { |filter| new_filters[filter] = params[filter] if params[filter].present? } | 
				
			||||
    new_filters = new_filters.except("organisation") if params["organisation_select"] == "all" | 
				
			||||
 | 
				
			||||
    session[:case_logs_filters] = new_filters.to_json | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
					Loading…
					
					
				
		Reference in new issue