Files
wireframe/src/assets/js/datepicker.js
T

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);
}