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

84 lines
2.3 KiB
JavaScript

(function ($) {
var kendo = window.kendo,
ui = kendo.ui,
Widget = ui.Widget,
proxy = $.proxy,
CHANGE = 'change',
PROGRESS = 'progress',
ERROR = 'error',
NS = '.generalInfo';
var MaskedDatePicker = Widget.extend({
init: function (element, options) {
var that = this;
Widget.fn.init.call(this, element, options);
var mask = '0000. 00. 00.';
var format = 'yyyy. MM. dd.';
var parseFormats = 'yyyy. MM. dd.';
var minDate = '1900. 01. 01.';
var maxDate = '2100. 01. 01.';
if (typeof options !== 'undefined') {
$.each(options, function (index, value) {
if (index == 'dateOptions.mask') {
mask = value;
}
if (index == 'dateOptions.format') {
format = value;
}
if (index == 'dateOptions.parseFormats') {
parseFormats = value;
}
});
}
var datePickerOptions = {};
//ha már van rajta datePicker (MVC-s helper miatt), akkor azt levesszük, de a beállításait megtartjuk
var datePicker = $(element).data('kendoDatePicker');
if (typeof datePicker !== 'undefined') {
datePickerOptions = datePicker.options;
datePicker.destroy();
}
datePickerOptions.format = format;
datePickerOptions.parseFormats = parseFormats;
datePickerOptions.minDate = minDate;
datePickerOptions.maxDate = maxDate;
$(element)
.kendoMaskedTextBox({ mask: mask, culture: 'en-US' })
.kendoDatePicker(datePickerOptions)
.closest('.k-datepicker')
.add(element)
.removeClass('k-textbox');
that.element.data('kendoDatePicker').bind('change', function () {
that.trigger(CHANGE);
});
},
options: {
name: 'MaskedDatePicker',
dateOptions: {}
},
events: [CHANGE],
destroy: function () {
var that = this;
Widget.fn.destroy.call(that);
kendo.destroy(that.element);
},
value: function (value) {
var datepicker = this.element.data('kendoDatePicker');
if (CommonUtils.isNullOrUndefined(value)) {
return datepicker.value();
}
datepicker.value(value);
}
});
ui.plugin(MaskedDatePicker);
})(window.kendo.jQuery);