14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'app/controllers/concerns/time_range_concern.rb', line 14
def setup_time_range
start_time = 1.day.ago
end_time = Time.zone.now
selected_time_range = :last_day
ransack_params = params[:q] || {}
if ransack_params[:period_start_range].present? && ransack_params[:period_start_range].to_sym != :custom
selected_time_range = ransack_params[:period_start_range]
start_time =
case selected_time_range.to_sym
when :last_day then 1.day.ago
when :last_week then 1.week.ago
when :last_month then 1.month.ago
else 1.day.ago end
elsif ransack_params[:period_start_range].present? && ransack_params[:period_start_range].to_sym == :custom && ransack_params[:custom_date_range].present? && ransack_params[:custom_date_range].include?(" to ")
dates = ransack_params[:custom_date_range].split(" to ")
start_time = parse_time_param(dates[0].strip)
end_time = parse_time_param(dates[1].strip)
selected_time_range = :custom
elsif ransack_params[:occurred_at_gteq].present? && ransack_params[:occurred_at_lt].present?
start_time = parse_time_param(ransack_params[:occurred_at_gteq])
end_time = parse_time_param(ransack_params[:occurred_at_lt])
selected_time_range = :custom
elsif session_global_filters["start_time"].present? || session_global_filters["end_time"].present?
start_time = parse_time_param(session_global_filters["start_time"]) if session_global_filters["start_time"].present?
end_time = parse_time_param(session_global_filters["end_time"]) if session_global_filters["end_time"].present?
selected_time_range = :custom
end
time_diff = (end_time.to_i - start_time.to_i) / 3600.0
if time_diff <= 25
start_time = start_time.beginning_of_hour
end_time = end_time.end_of_hour
else
start_time = start_time.beginning_of_day
end_time = end_time.end_of_day
end
[ start_time.to_i, end_time.to_i, selected_time_range, time_diff ]
end
|