119 lines
2.6 KiB
JavaScript
119 lines
2.6 KiB
JavaScript
$ (document).ready (initDateTimePickers ());
|
|
$ (document).on ('snippet-reloaded', initDateTimePickers);
|
|
|
|
$ (document).on ('blur', '.select-date', function () {
|
|
$ (this).datetimepicker ('hide');
|
|
});
|
|
$ (document).on ('blur', '.select-datetime', function () {
|
|
$ (this).datetimepicker ('hide');
|
|
});
|
|
|
|
var i = 1;
|
|
|
|
function initDateTimePickers() {
|
|
var $datepicker = $ ('.select-date');
|
|
var $datetimepicker = $ ('.select-datetime');
|
|
var $timepicker = $ ('.select-time');
|
|
|
|
$datepicker.each (function () {
|
|
var $e = $ (this);
|
|
if (!datePickerInitialized ($e)) {
|
|
setDatepickerId ($e, 'datepicker-auto-id');
|
|
initDatePicker ($e);
|
|
}
|
|
});
|
|
|
|
$datetimepicker.each (function () {
|
|
var init = $ (this).attr ('data-picker-init');
|
|
|
|
if (init) {
|
|
return;
|
|
}
|
|
|
|
var $positionedParent = getPositionedParent ($ (this));
|
|
var id = setDatepickerId ($ (this), 'datetimepicker-auto-id');
|
|
|
|
$ (this).attr ('data-toggle', 'datetimepicker');
|
|
$ (this).attr ('data-target', '#' + id);
|
|
|
|
$ (this).datetimepicker ({
|
|
sideBySide: true,
|
|
stepping: 10,
|
|
format: "DD. MM. YYYY HH:mm",
|
|
widgetParent: $positionedParent,
|
|
useCurrent: false,
|
|
locale: window.locale || 'cs'
|
|
});
|
|
$ (this).attr ('data-picker-init', true);
|
|
});
|
|
|
|
$timepicker.each (function () {
|
|
var init = $ (this).attr ('data-picker-init');
|
|
|
|
if (init) {
|
|
return;
|
|
}
|
|
|
|
var id = setDatepickerId ($ (this), 'timepicker-auto-id');
|
|
var $positionedParent = getPositionedParent ($ (this));
|
|
|
|
$ (this).attr ('data-toggle', 'datetimepicker');
|
|
$ (this).attr ('data-target', '#' + id);
|
|
|
|
$ (this).datetimepicker ({
|
|
sideBySide: true,
|
|
stepping: 10,
|
|
widgetParent: $positionedParent,
|
|
format: "HH:mm",
|
|
useCurrent: false,
|
|
locale: window.locale || 'cs'
|
|
});
|
|
$ (this).attr ('data-picker-init', true);
|
|
});
|
|
}
|
|
|
|
function getPositionedParent($e) {
|
|
do {
|
|
$e = $e.parent ();
|
|
} while ($e.css ('position') !== 'relative');
|
|
|
|
return $e;
|
|
}
|
|
|
|
function datePickerInitialized($element) {
|
|
var init = $element.attr ('data-picker-init');
|
|
|
|
return !!init;
|
|
}
|
|
|
|
function setDatepickerId($element, prefix, postfix) {
|
|
if (typeof postfix === 'undefined') {
|
|
postfix = 1;
|
|
}
|
|
|
|
var id = $element.attr ('id');
|
|
if (id === "" || typeof id === 'undefined') {
|
|
id = prefix + '-' + postfix++;
|
|
$element.attr ('id', id);
|
|
}
|
|
|
|
return id;
|
|
}
|
|
|
|
function initDatePicker($element) {
|
|
var id = $element.attr ('id');
|
|
$element.attr ('data-toggle', 'datetimepicker');
|
|
$element.attr ('data-target', '#' + id);
|
|
|
|
var $positionedParent = getPositionedParent ($element);
|
|
$element.datetimepicker ({
|
|
format: "DD. MM. YYYY",
|
|
useCurrent: false,
|
|
widgetParent: $positionedParent,
|
|
locale: window.locale || 'cs'
|
|
});
|
|
|
|
$element.attr ('data-picker-init', true);
|
|
}
|
|
|