Skip to content

Commit 974299b

Browse files
committed
Merge pull request #3 from workgena/addition_ranges
Abiliti to add custom ranges
2 parents 0741096 + cab3e22 commit 974299b

File tree

3 files changed

+53
-6
lines changed

3 files changed

+53
-6
lines changed

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,3 +167,23 @@ $.fn.date_range_ext_preset.defaults.hours_offset = +3
167167
// or
168168
$.fn.date_range_ext_preset.defaults.hours_offset = -3
169169
```
170+
171+
### Addition ranges
172+
173+
```javascript
174+
$(document).on('ready', function(){
175+
176+
$('.filter_form .filter_date_range').date_range_ext_preset({
177+
date_to_human_readable: true, # affects last day
178+
add_range: [
179+
{
180+
title: 'Last 30 days',
181+
// date_to_human_readable affects end-date, sow must do this:
182+
start: new Date(new Date().setDate(new Date().getDate() - 29)),
183+
end: new Date(new Date().setDate(new Date().getDate() + 1))
184+
}
185+
]
186+
});
187+
188+
});
189+
```

vendor/assets/javascripts/active_admin_date_range_preset.coffee

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,17 +73,32 @@
7373
unbindClickEventBlockTimerange()
7474
e.stopPropagation()
7575
e.preventDefault()
76+
77+
additional_items_html = ''
78+
opts.add_range.forEach (el, i)->
79+
additional_items_html += '<div><span class="btn_date_rage_' + i + '">' + el['title'] + '</span></div>'
80+
7681
$('body').append('<div style="min-width: '+e.target.offsetWidth+'px; top: '+(e.target.offsetTop)+'px; left: '+(e.target.offsetLeft)+'px" class="block_timerange">' +
7782
'<div><span class="btn_today">Today</span></div>' +
7883
'<div><span class="btn_yesterday">Yesterday</span></div>' +
7984
'<div><span class="btn_week">This Week</span></div>' +
8085
'<div><span class="btn_month">This Month</span></div>' +
8186
'<div><span class="btn_last_week">Last Week</span></div>' +
8287
'<div><span class="btn_last_month">Last Month</span></div>' +
88+
additional_items_html +
8389
'</div>'
8490
).ready(->
8591
container = $(this).find('.block_timerange')
8692

93+
# additional rages
94+
opts.add_range.forEach (el, i)->
95+
$(container).on('click.CalendarRangeSet', '.btn_date_rage_' + i, (e)->
96+
unbindClickEventBlockTimerange()
97+
start = new Date(el['start'].getFullYear(), el['start'].getMonth(), el['start'].getDate())
98+
end = new Date(el['end'].getFullYear(), el['end'].getMonth(), el['end'].getDate())
99+
fillInputs(start, end)
100+
)
101+
87102
# Today
88103
$(container).on('click.CalendarRangeSet', '.btn_today', (e)->
89104
unbindClickEventBlockTimerange()
@@ -144,6 +159,7 @@
144159
$.fn.date_range_ext_preset.defaults = {
145160
# Manual global time shift, from UTC can be +/- number
146161
hours_offset: 0,
162+
147163
# date_to_human_readable = true, then "date_to" consider as including full day without last second
148164
# For example Today will be:
149165
# true
@@ -153,18 +169,23 @@
153169
# 2015-06-10 - 2015-06-11
154170
# 2015-06-10 00:00:00 - 2015-06-11 00:00:00
155171
date_to_human_readable: false,
172+
156173
# Display time or not: 2015-06-10 vs 2015-06-10 00:00:00
157-
show_time: false
174+
show_time: false,
175+
176+
# Array of addition ranges
177+
# example:
178+
# {
179+
# title: 'Last 30 days',
180+
# start: new Date().setDate((new Date()).getDate() - 30)
181+
# end: new Date()
182+
# }
183+
add_range: []
158184
};
159185

160186
) jQuery
161187

162188

163-
164-
165189
$(document).on 'ready', ->
166-
# Init in sidebar filters
167-
$('.filter_form .filter_date_range').date_range_ext_preset()
168190
# Init in forms
169191
$('.datetime_preset_pair').date_range_ext_preset()
170-

0 commit comments

Comments
 (0)