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
|
# 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[:requests_occurred_at_gteq].present?
start_time = parse_time_param(ransack_params[:requests_occurred_at_gteq])
end_time = parse_time_param(ransack_params[:requests_occurred_at_lt])
elsif ransack_params[:occurred_at_gteq].present?
start_time = parse_time_param(ransack_params[:occurred_at_gteq])
end_time = parse_time_param(ransack_params[:occurred_at_lt])
elsif ransack_params[:occurred_at_range]
selected_time_range = ransack_params[:occurred_at_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
when :all_time then 100.years.ago
end
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, end_time, selected_time_range, time_diff ]
end
|