129 lines
4.5 KiB
PHP
129 lines
4.5 KiB
PHP
<script>
|
|
(function () {
|
|
function toPersianDigits(value) {
|
|
if (typeof persian_number === 'function') {
|
|
return persian_number(String(value));
|
|
}
|
|
return value;
|
|
}
|
|
|
|
function dateTimeFormat() {
|
|
var dateFmt = (typeof moment_date_format !== 'undefined') ? moment_date_format : 'YYYY/MM/DD';
|
|
var timeFmt = (typeof moment_time_format !== 'undefined') ? moment_time_format : 'HH:mm';
|
|
return dateFmt + ' ' + timeFmt;
|
|
}
|
|
|
|
function persianPickerFormat() {
|
|
var dateFmt = (typeof datepicker_date_format !== 'undefined') ? datepicker_date_format : 'YYYY/MM/DD';
|
|
var use12h = (typeof moment_time_format !== 'undefined' && moment_time_format.indexOf('A') !== -1);
|
|
return dateFmt + (use12h ? ' hh:mm a' : ' HH:mm');
|
|
}
|
|
|
|
function timeFormatOnly() {
|
|
return (typeof moment_time_format !== 'undefined') ? moment_time_format : 'HH:mm';
|
|
}
|
|
|
|
function usePersian() {
|
|
return typeof is_persian_lang !== 'undefined' && is_persian_lang;
|
|
}
|
|
|
|
function use12HourTime() {
|
|
return (typeof moment_time_format !== 'undefined' && moment_time_format.indexOf('A') !== -1);
|
|
}
|
|
|
|
window.CommDate = {
|
|
formatDateTime: function (iso) {
|
|
if (!iso || typeof moment === 'undefined') {
|
|
return '-';
|
|
}
|
|
var m = moment(iso);
|
|
if (!m.isValid()) {
|
|
return '-';
|
|
}
|
|
var formatted = m.format(dateTimeFormat());
|
|
return usePersian() ? toPersianDigits(formatted) : formatted;
|
|
},
|
|
formatTime: function (iso) {
|
|
if (!iso || typeof moment === 'undefined') {
|
|
return '';
|
|
}
|
|
var m = moment(iso);
|
|
if (!m.isValid()) {
|
|
return '';
|
|
}
|
|
var fmt = m.isSame(moment(), 'day') ? timeFormatOnly() : dateTimeFormat();
|
|
var formatted = m.format(fmt);
|
|
return usePersian() ? toPersianDigits(formatted) : formatted;
|
|
},
|
|
clearDateTimePicker: function (selector) {
|
|
var $input = $(selector);
|
|
if (!$input.length) {
|
|
return;
|
|
}
|
|
$input.val('');
|
|
if ($input.data('DateTimePicker')) {
|
|
$input.data('DateTimePicker').clear();
|
|
}
|
|
},
|
|
initDateTimePicker: function (selector) {
|
|
if (typeof $ === 'undefined') {
|
|
return;
|
|
}
|
|
|
|
$(selector).each(function () {
|
|
var $input = $(this);
|
|
if ($input.data('pp-comm-ready') || $input.data('DateTimePicker')) {
|
|
return;
|
|
}
|
|
|
|
if (typeof __init_datetime_field === 'function') {
|
|
__init_datetime_field($input, {
|
|
format: dateTimeFormat(),
|
|
ignoreReadonly: true,
|
|
timePicker: {
|
|
meridian: {
|
|
enabled: use12HourTime(),
|
|
},
|
|
second: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
});
|
|
$input.data('pp-comm-ready', true);
|
|
return;
|
|
}
|
|
|
|
if (usePersian() && typeof $.fn.persianDatepicker !== 'undefined') {
|
|
$input.persianDatepicker({
|
|
calendarType: 'persian',
|
|
format: persianPickerFormat(),
|
|
autoClose: true,
|
|
initialValue: false,
|
|
observer: true,
|
|
timePicker: {
|
|
enabled: true,
|
|
meridian: {
|
|
enabled: use12HourTime(),
|
|
},
|
|
second: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
});
|
|
$input.data('pp-comm-ready', true);
|
|
return;
|
|
}
|
|
|
|
if (typeof $.fn.datetimepicker !== 'undefined') {
|
|
$input.datetimepicker({
|
|
format: dateTimeFormat(),
|
|
ignoreReadonly: true,
|
|
});
|
|
$input.data('pp-comm-ready', true);
|
|
}
|
|
});
|
|
},
|
|
};
|
|
})();
|
|
</script>
|