kreta/KretaWeb/Scripts/KendoHelper/KretaDateTimeHelper.js
2024-03-13 00:33:46 +01:00

147 lines
3.9 KiB
JavaScript

var KretaDateTimeHelper = (function () {
var kretaDateTimeHelper = function () {};
kretaDateTimeHelper.getKendoDatePickerData = function (datePickerId) {
var datePicker = $('#' + datePickerId);
var datePickerData = datePicker.data('kendoDatePicker');
return datePickerData;
};
kretaDateTimeHelper.compare = function (lhsDate, rhsDate) {
var lhs = kendo.parseDate(lhsDate).getTime();
var rhs = kendo.parseDate(rhsDate).getTime();
return lhs < rhs ? -1 : lhs === rhs ? 0 : 1;
};
kretaDateTimeHelper.validateDate = function (e) {
var id = e.attr('id');
var val = e.val().replace(/\s/g, '');
var parsedDate = kendo.parseDate(val);
if (parsedDate == null) {
const kendoDatePicker = $('#' + id).data('kendoDatePicker');
if (typeof kendoDatePicker !== 'undefined') {
kendoDatePicker.value('');
return;
}
const kendoTimePicker = $('#' + id).data('kendoTimePicker');
if (typeof kendoTimePicker !== 'undefined') {
kendoTimePicker.value('');
return;
}
}
};
kretaDateTimeHelper.validateDateTime = function (e) {
var id = e.attr('id');
var val = e.val().replace(/\s/g, '');
var parsedDate = kendo.parseDate(val);
if (parsedDate == null) {
$('#' + id)
.data('kendoDateTimePicker')
.value('');
}
};
kretaDateTimeHelper.validateTime = function (e) {
var id = e.attr('id');
var value = e.val().replace(/\s/g, '');
var parsedDate = kendo.parseDate(value);
if (parsedDate == null) {
$('#' + id)
.data('kendoTimePicker')
.value(e.attr('value'));
}
};
kretaDateTimeHelper.getDate = function (datePickerId) {
return kretaDateTimeHelper.getKendoDatePickerData(datePickerId).value();
};
kretaDateTimeHelper.setDate = function (datePickerId, value) {
var parsedDate = kendo.parseDate(value);
kretaDateTimeHelper.getKendoDatePickerData(datePickerId).value(parsedDate);
};
kretaDateTimeHelper.setToday = function (datePickerId) {
var newDate = new Date();
kretaDateTimeHelper.setDate(datePickerId, newDate);
};
kretaDateTimeHelper.clear = function (datePickerId) {
kretaDateTimeHelper.getKendoDatePickerData(datePickerId).value(null);
};
kretaDateTimeHelper.SetMaskedTimepicker = function () {
$("input[data-role='maskedtimepicker']").kendoMaskedTextBox({
mask: '12:34',
rules: {
1: /[0-2]/,
2: /[0-9]/,
3: /[0-5]/,
4: /[0-9]/
}
});
var timePicker = $("input[data-role='maskedtimepicker']");
timePicker.on('focusout mouseleave', function () {
kretaDateTimeHelper.validateTime($(this));
});
$("input[data-role='maskedtimepicker']").each(function () {
kretaDateTimeHelper.validateTime($(this));
});
};
kretaDateTimeHelper.SetTimepicker = function () {
$("input[data-role='timepicker']").kendoMaskedTextBox({
mask: '12:34',
rules: {
1: /[0-2]/,
2: /[0-9]/,
3: /[0-5]/,
4: /[0-9]/
}
});
var timePicker = $("input[data-role='timepicker']");
timePicker.on('focusout mouseleave', function () {
kretaDateTimeHelper.validateTime($(this));
});
$("input[data-role='timepicker']").each(function () {
kretaDateTimeHelper.validateTime($(this));
});
};
kretaDateTimeHelper.SetMaskedTimepickerById = function (id) {
$('#' + id).kendoMaskedTimePicker();
var el = document.getElementById(id);
if (el) {
el.style.width = null;
}
$('#' + id).kendoMaskedTextBox({
mask: '12:34',
rules: {
1: /[0-2]/,
2: /[0-9]/,
3: /[0-5]/,
4: /[0-9]/
}
});
$('#' + id).on('focusout mouseleave', function () {
kretaDateTimeHelper.validateTime($(this));
});
$('#' + id).each(function () {
kretaDateTimeHelper.validateTime($(this));
});
};
return kretaDateTimeHelper;
})();