158 lines
5.3 KiB
PHP
158 lines
5.3 KiB
PHP
<script>
|
|
(function () {
|
|
function persianPickerAvailable() {
|
|
return typeof $.fn !== 'undefined' && typeof $.fn.persianDatepicker !== 'undefined';
|
|
}
|
|
|
|
function usePersian() {
|
|
return persianPickerAvailable() && (
|
|
typeof is_persian_lang === 'undefined' || is_persian_lang
|
|
);
|
|
}
|
|
|
|
function refreshRangeLabel($el) {
|
|
var picker = $el.data('daterangepicker');
|
|
if (!picker) {
|
|
return;
|
|
}
|
|
|
|
var label = __format_date_range(picker.startDate, picker.endDate);
|
|
|
|
if ($el.is('input')) {
|
|
$el.val(label);
|
|
} else {
|
|
$el.find('span').first().html('<i class="fa fa-calendar"></i> ' + label);
|
|
}
|
|
|
|
if (typeof __refresh_daterangepicker_jalali_label === 'function') {
|
|
__refresh_daterangepicker_jalali_label(picker);
|
|
}
|
|
}
|
|
|
|
window.MfgDate = {
|
|
initDatepicker: function (selector) {
|
|
if (typeof __init_date_field === 'function') {
|
|
__init_date_field(selector);
|
|
return;
|
|
}
|
|
|
|
if (typeof initPersianDatepicker === 'function') {
|
|
initPersianDatepicker(selector);
|
|
return;
|
|
}
|
|
|
|
if (usePersian()) {
|
|
$(selector).each(function () {
|
|
var $input = $(this);
|
|
if ($input.data('mfg-shamsi-ready')) {
|
|
return;
|
|
}
|
|
$input.attr('autocomplete', 'off');
|
|
$input.persianDatepicker({
|
|
calendarType: 'persian',
|
|
format: typeof datepicker_date_format !== 'undefined' ? datepicker_date_format : 'YYYY/MM/DD',
|
|
autoClose: true,
|
|
observer: true,
|
|
calendar: { persian: { locale: 'fa' } },
|
|
});
|
|
$input.data('mfg-shamsi-ready', true);
|
|
});
|
|
return;
|
|
}
|
|
|
|
$(selector).datepicker({
|
|
autoclose: true,
|
|
format: typeof datepicker_date_format !== 'undefined' ? datepicker_date_format : 'yyyy/mm/dd',
|
|
});
|
|
},
|
|
|
|
initDatetimepicker: function (selector) {
|
|
if (typeof __init_datetime_field === 'function') {
|
|
__init_datetime_field(selector);
|
|
return;
|
|
}
|
|
|
|
if (typeof initPersianDatetimepicker === 'function') {
|
|
initPersianDatetimepicker(selector);
|
|
return;
|
|
}
|
|
|
|
if (usePersian()) {
|
|
var dateFmt = typeof datepicker_date_format !== 'undefined' ? datepicker_date_format : 'YYYY/MM/DD';
|
|
var timeFmt = (typeof moment_time_format !== 'undefined' && moment_time_format.indexOf('A') !== -1) ? ' hh:mm a' : ' HH:mm';
|
|
|
|
$(selector).each(function () {
|
|
var $input = $(this);
|
|
if ($input.data('mfg-shamsi-ready')) {
|
|
return;
|
|
}
|
|
$input.attr('autocomplete', 'off');
|
|
$input.persianDatepicker({
|
|
calendarType: 'persian',
|
|
format: dateFmt + timeFmt,
|
|
autoClose: true,
|
|
observer: true,
|
|
timePicker: {
|
|
enabled: true,
|
|
second: { enabled: false },
|
|
},
|
|
calendar: { persian: { locale: 'fa' } },
|
|
});
|
|
$input.data('mfg-shamsi-ready', true);
|
|
});
|
|
return;
|
|
}
|
|
|
|
if (typeof $.fn.datetimepicker !== 'undefined') {
|
|
$(selector).datetimepicker({
|
|
format: (typeof moment_date_format !== 'undefined' ? moment_date_format : 'YYYY/MM/DD') + ' ' +
|
|
(typeof moment_time_format !== 'undefined' ? moment_time_format : 'HH:mm'),
|
|
ignoreReadonly: true,
|
|
});
|
|
}
|
|
},
|
|
|
|
initDateRangePicker: function (selector, onChange) {
|
|
var $el = $(selector);
|
|
if (!$el.length || typeof dateRangeSettings === 'undefined') {
|
|
return;
|
|
}
|
|
|
|
$el.daterangepicker(dateRangeSettings, function (start, end) {
|
|
refreshRangeLabel($el);
|
|
|
|
if (typeof onChange === 'function') {
|
|
onChange(start, end);
|
|
}
|
|
});
|
|
|
|
$el.on('show.daterangepicker', function () {
|
|
refreshRangeLabel($el);
|
|
});
|
|
|
|
$el.on('cancel.daterangepicker', function () {
|
|
if ($el.is('input')) {
|
|
$el.val('');
|
|
} else {
|
|
$el.html('<i class="fa fa-calendar"></i> ' + LANG.filter_by_date);
|
|
}
|
|
|
|
if (typeof onChange === 'function') {
|
|
onChange(null, null);
|
|
}
|
|
});
|
|
|
|
refreshRangeLabel($el);
|
|
},
|
|
|
|
rangeStart: function (selector) {
|
|
return __daterangepicker_start_date(selector);
|
|
},
|
|
|
|
rangeEnd: function (selector) {
|
|
return __daterangepicker_end_date(selector);
|
|
},
|
|
};
|
|
})();
|
|
</script>
|