1
0
Fork 0

Fix datetimepicker start/end time limits

defined time span never been returned and never shown as observations.
Having previously used moment.utc datetime for setting minDate in
datetimepickers had as a result to hit this issue:

https://github.com/Eonasdan/bootstrap-datetimepicker/issues/1294

This commit fixes that behaviour by setting minDate with string and
also adds some limits on datetimepickers that respect network's
configuration.
merge-requests/493/head
Alfredos-Panagiotis Damkalis 2018-06-19 11:43:21 +03:00
parent 5fdc064a08
commit 5194182fcc
2 changed files with 27 additions and 13 deletions

View File

@ -312,9 +312,9 @@ OPBEAT = {
# Observations settings
# Datetimes in minutes for scheduling OPTIONS
OBSERVATION_DATE_MIN_START = config('OBSERVATION_DATE_MIN_START', default=15, cast=int)
OBSERVATION_DATE_MIN_END = config('OBSERVATION_DATE_MIN_START', default=75, cast=int)
OBSERVATION_DATE_MIN_END = config('OBSERVATION_DATE_MIN_START', default=25, cast=int)
# Deletion range in minutes
OBSERVATION_DATE_MAX_RANGE = config('OBSERVATION_DATE_MAX_RANGE', default=480, cast=int)
OBSERVATION_DATE_MAX_RANGE = config('OBSERVATION_DATE_MAX_RANGE', default=2880, cast=int)
# Clean up threshold in days
OBSERVATION_OLD_RANGE = config('OBSERVATION_OLD_RANGE', default=30, cast=int)

View File

@ -22,18 +22,32 @@ $(document).ready( function(){
}
if (!obs_filter_dates) {
var minstart = $('#datetimepicker-start').data('date-minstart');
var minend = $('#datetimepicker-end').data('date-minend');
var maxrange = $('#datetimepicker-end').data('date-maxrange');
$('#datetimepicker-start').datetimepicker();
$('#datetimepicker-start').data('DateTimePicker').minDate(moment.utc().add(minstart, 'm'));
$('#datetimepicker-end').datetimepicker();
$('#datetimepicker-end').data('DateTimePicker').minDate(moment.utc().add(minend, 'm'));
var minStart = $('#datetimepicker-start').data('date-minstart');
var minEnd = $('#datetimepicker-end').data('date-minend');
var maxRange = $('#datetimepicker-end').data('date-maxrange');
var minRange = minEnd - minStart;
var minStartDate = moment().utc().add(minStart, 'm').format('YYYY-MM-DD HH:mm');
var maxStartDate = moment().utc().add(minStart + maxRange - minRange, 'm').format('YYYY-MM-DD HH:mm');
var minEndDate = moment().utc().add(minEnd, 'm').format('YYYY-MM-DD HH:mm');
var maxEndDate = moment().utc().add(minStart + maxRange, 'm').format('YYYY-MM-DD HH:mm');
$('#datetimepicker-start').datetimepicker({
useCurrent: false //https://github.com/Eonasdan/bootstrap-datetimepicker/issues/1075
});
$('#datetimepicker-start').data('DateTimePicker').date(minStartDate);
$('#datetimepicker-start').data('DateTimePicker').minDate(minStartDate);
$('#datetimepicker-start').data('DateTimePicker').maxDate(maxStartDate);
$('#datetimepicker-end').datetimepicker({
useCurrent: false //https://github.com/Eonasdan/bootstrap-datetimepicker/issues/1075
});
$('#datetimepicker-end').data('DateTimePicker').date(minEndDate);
$('#datetimepicker-end').data('DateTimePicker').minDate(minEndDate);
$('#datetimepicker-end').data('DateTimePicker').maxDate(maxEndDate);
$('#datetimepicker-start').on('dp.change',function (e) {
// Setting default, minimum and maximum for end
$('#datetimepicker-end').data('DateTimePicker').defaultDate(moment.utc(e.date).add(60, 'm'));
$('#datetimepicker-end').data('DateTimePicker').minDate(e.date);
$('#datetimepicker-end').data('DateTimePicker').maxDate(moment.utc(e.date).add(maxrange, 'm'));
var newMinEndDate = e.date.clone().add(minRange, 'm');
if ($('#datetimepicker-end').data('DateTimePicker').date() < newMinEndDate) {
$('#datetimepicker-end').data('DateTimePicker').date(newMinEndDate);
}
$('#datetimepicker-end').data('DateTimePicker').minDate(newMinEndDate);
});
}