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