mirror of
https://github.com/alextselegidis/easyappointments.git
synced 2024-11-10 10:02:33 +03:00
Group commonly used UI components to a single utility module
This commit is contained in:
parent
d30e83fb56
commit
72e84bd4f3
9 changed files with 263 additions and 375 deletions
|
@ -126,6 +126,7 @@
|
|||
<script src="<?= asset_url('assets/js/utils/date.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/ui.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/calendar_default_view.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/calendar_table_view.js') ?>"></script>
|
||||
|
|
|
@ -80,6 +80,7 @@
|
|||
|
||||
<?php section('scripts') ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/ui.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/legal_settings_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/legal_settings.js') ?>"></script>
|
||||
|
|
|
@ -341,6 +341,7 @@
|
|||
<script src="<?= asset_url('assets/js/utils/date.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/string.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/ui.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/working_plan.js') ?>"></script>
|
||||
|
|
|
@ -452,81 +452,8 @@ App.Components.AppointmentsModal = (function () {
|
|||
|
||||
const startDatetime = new Date();
|
||||
const endDatetime = moment().add(duration, 'minutes').toDate();
|
||||
let dateFormat;
|
||||
|
||||
switch (vars('date_format')) {
|
||||
case 'DMY':
|
||||
dateFormat = 'dd/mm/yy';
|
||||
break;
|
||||
case 'MDY':
|
||||
dateFormat = 'mm/dd/yy';
|
||||
break;
|
||||
case 'YMD':
|
||||
dateFormat = 'yy/mm/dd';
|
||||
break;
|
||||
default:
|
||||
throw new Error('Invalid date format value.');
|
||||
}
|
||||
|
||||
const firstWeekDay = vars('first_weekday');
|
||||
|
||||
const firstWeekDayNumber = App.Utils.Date.getWeekdayId(firstWeekDay);
|
||||
|
||||
$startDatetime.datetimepicker({
|
||||
dateFormat: dateFormat,
|
||||
timeFormat: vars('time_format') === 'regular' ? 'h:mm tt' : 'HH:mm',
|
||||
|
||||
// Translation
|
||||
dayNames: [
|
||||
lang('sunday'),
|
||||
lang('monday'),
|
||||
lang('tuesday'),
|
||||
lang('wednesday'),
|
||||
lang('thursday'),
|
||||
lang('friday'),
|
||||
lang('saturday')
|
||||
],
|
||||
dayNamesShort: [
|
||||
lang('sunday').substr(0, 3),
|
||||
lang('monday').substr(0, 3),
|
||||
lang('tuesday').substr(0, 3),
|
||||
lang('wednesday').substr(0, 3),
|
||||
lang('thursday').substr(0, 3),
|
||||
lang('friday').substr(0, 3),
|
||||
lang('saturday').substr(0, 3)
|
||||
],
|
||||
dayNamesMin: [
|
||||
lang('sunday').substr(0, 2),
|
||||
lang('monday').substr(0, 2),
|
||||
lang('tuesday').substr(0, 2),
|
||||
lang('wednesday').substr(0, 2),
|
||||
lang('thursday').substr(0, 2),
|
||||
lang('friday').substr(0, 2),
|
||||
lang('saturday').substr(0, 2)
|
||||
],
|
||||
monthNames: [
|
||||
lang('january'),
|
||||
lang('february'),
|
||||
lang('march'),
|
||||
lang('april'),
|
||||
lang('may'),
|
||||
lang('june'),
|
||||
lang('july'),
|
||||
lang('august'),
|
||||
lang('september'),
|
||||
lang('october'),
|
||||
lang('november'),
|
||||
lang('december')
|
||||
],
|
||||
prevText: lang('previous'),
|
||||
nextText: lang('next'),
|
||||
currentText: lang('now'),
|
||||
closeText: lang('close'),
|
||||
timeOnlyTitle: lang('select_time'),
|
||||
timeText: lang('time'),
|
||||
hourText: lang('hour'),
|
||||
minuteText: lang('minutes'),
|
||||
firstDay: firstWeekDayNumber,
|
||||
App.Utils.UI.initializeDatetimepicker($startDatetime, {
|
||||
onClose: () => {
|
||||
const serviceId = $selectService.val();
|
||||
|
||||
|
@ -539,64 +466,10 @@ App.Components.AppointmentsModal = (function () {
|
|||
$endDatetime.datetimepicker('setDate', new Date(start.getTime() + service.duration * 60000));
|
||||
}
|
||||
});
|
||||
|
||||
$startDatetime.datetimepicker('setDate', startDatetime);
|
||||
|
||||
$endDatetime.datetimepicker({
|
||||
dateFormat: dateFormat,
|
||||
timeFormat: vars('time_format') === 'regular' ? 'h:mm tt' : 'HH:mm',
|
||||
|
||||
// Translation
|
||||
dayNames: [
|
||||
lang('sunday'),
|
||||
lang('monday'),
|
||||
lang('tuesday'),
|
||||
lang('wednesday'),
|
||||
lang('thursday'),
|
||||
lang('friday'),
|
||||
lang('saturday')
|
||||
],
|
||||
dayNamesShort: [
|
||||
lang('sunday').substr(0, 3),
|
||||
lang('monday').substr(0, 3),
|
||||
lang('tuesday').substr(0, 3),
|
||||
lang('wednesday').substr(0, 3),
|
||||
lang('thursday').substr(0, 3),
|
||||
lang('friday').substr(0, 3),
|
||||
lang('saturday').substr(0, 3)
|
||||
],
|
||||
dayNamesMin: [
|
||||
lang('sunday').substr(0, 2),
|
||||
lang('monday').substr(0, 2),
|
||||
lang('tuesday').substr(0, 2),
|
||||
lang('wednesday').substr(0, 2),
|
||||
lang('thursday').substr(0, 2),
|
||||
lang('friday').substr(0, 2),
|
||||
lang('saturday').substr(0, 2)
|
||||
],
|
||||
monthNames: [
|
||||
lang('january'),
|
||||
lang('february'),
|
||||
lang('march'),
|
||||
lang('april'),
|
||||
lang('may'),
|
||||
lang('june'),
|
||||
lang('july'),
|
||||
lang('august'),
|
||||
lang('september'),
|
||||
lang('october'),
|
||||
lang('november'),
|
||||
lang('december')
|
||||
],
|
||||
prevText: lang('previous'),
|
||||
nextText: lang('next'),
|
||||
currentText: lang('now'),
|
||||
closeText: lang('close'),
|
||||
timeOnlyTitle: lang('select_time'),
|
||||
timeText: lang('time'),
|
||||
hourText: lang('hour'),
|
||||
minuteText: lang('minutes'),
|
||||
firstDay: firstWeekDayNumber
|
||||
});
|
||||
App.Utils.UI.initializeDatetimepicker($endDatetime);
|
||||
$endDatetime.datetimepicker('setDate', endDatetime);
|
||||
}
|
||||
|
||||
|
|
|
@ -188,138 +188,12 @@ App.Components.UnavailabilitiesModal = (function () {
|
|||
true
|
||||
);
|
||||
|
||||
let dateFormat;
|
||||
App.Utils.UI.initializeDatetimepicker($startDatetime);
|
||||
|
||||
switch (vars('date_format')) {
|
||||
case 'DMY':
|
||||
dateFormat = 'dd/mm/yy';
|
||||
break;
|
||||
case 'MDY':
|
||||
dateFormat = 'mm/dd/yy';
|
||||
break;
|
||||
case 'YMD':
|
||||
dateFormat = 'yy/mm/dd';
|
||||
break;
|
||||
}
|
||||
|
||||
const firstWeekday = vars('first_weekday');
|
||||
|
||||
const firstWeekdayId = App.Utils.Date.getWeekdayId(firstWeekday);
|
||||
|
||||
$startDatetime.datetimepicker({
|
||||
dateFormat: dateFormat,
|
||||
timeFormat: vars('time_format') === 'regular' ? 'h:mm tt' : 'HH:mm',
|
||||
|
||||
// Translation
|
||||
dayNames: [
|
||||
lang('sunday'),
|
||||
lang('monday'),
|
||||
lang('tuesday'),
|
||||
lang('wednesday'),
|
||||
lang('thursday'),
|
||||
lang('friday'),
|
||||
lang('saturday')
|
||||
],
|
||||
dayNamesShort: [
|
||||
lang('sunday').substr(0, 3),
|
||||
lang('monday').substr(0, 3),
|
||||
lang('tuesday').substr(0, 3),
|
||||
lang('wednesday').substr(0, 3),
|
||||
lang('thursday').substr(0, 3),
|
||||
lang('friday').substr(0, 3),
|
||||
lang('saturday').substr(0, 3)
|
||||
],
|
||||
dayNamesMin: [
|
||||
lang('sunday').substr(0, 2),
|
||||
lang('monday').substr(0, 2),
|
||||
lang('tuesday').substr(0, 2),
|
||||
lang('wednesday').substr(0, 2),
|
||||
lang('thursday').substr(0, 2),
|
||||
lang('friday').substr(0, 2),
|
||||
lang('saturday').substr(0, 2)
|
||||
],
|
||||
monthNames: [
|
||||
lang('january'),
|
||||
lang('february'),
|
||||
lang('march'),
|
||||
lang('april'),
|
||||
lang('may'),
|
||||
lang('june'),
|
||||
lang('july'),
|
||||
lang('august'),
|
||||
lang('september'),
|
||||
lang('october'),
|
||||
lang('november'),
|
||||
lang('december')
|
||||
],
|
||||
prevText: lang('previous'),
|
||||
nextText: lang('next'),
|
||||
currentText: lang('now'),
|
||||
closeText: lang('close'),
|
||||
timeOnlyTitle: lang('select_time'),
|
||||
timeText: lang('time'),
|
||||
hourText: lang('hour'),
|
||||
minuteText: lang('minutes'),
|
||||
firstDay: firstWeekdayId
|
||||
});
|
||||
$startDatetime.val(start);
|
||||
|
||||
$endDatetime.datetimepicker({
|
||||
dateFormat: dateFormat,
|
||||
timeFormat: vars('time_format') === 'regular' ? 'h:mm tt' : 'HH:mm',
|
||||
App.Utils.UI.initializeDatetimepicker($endDatetime);
|
||||
|
||||
// Translation
|
||||
dayNames: [
|
||||
lang('sunday'),
|
||||
lang('monday'),
|
||||
lang('tuesday'),
|
||||
lang('wednesday'),
|
||||
lang('thursday'),
|
||||
lang('friday'),
|
||||
lang('saturday')
|
||||
],
|
||||
dayNamesShort: [
|
||||
lang('sunday').substr(0, 3),
|
||||
lang('monday').substr(0, 3),
|
||||
lang('tuesday').substr(0, 3),
|
||||
lang('wednesday').substr(0, 3),
|
||||
lang('thursday').substr(0, 3),
|
||||
lang('friday').substr(0, 3),
|
||||
lang('saturday').substr(0, 3)
|
||||
],
|
||||
dayNamesMin: [
|
||||
lang('sunday').substr(0, 2),
|
||||
lang('monday').substr(0, 2),
|
||||
lang('tuesday').substr(0, 2),
|
||||
lang('wednesday').substr(0, 2),
|
||||
lang('thursday').substr(0, 2),
|
||||
lang('friday').substr(0, 2),
|
||||
lang('saturday').substr(0, 2)
|
||||
],
|
||||
monthNames: [
|
||||
lang('january'),
|
||||
lang('february'),
|
||||
lang('march'),
|
||||
lang('april'),
|
||||
lang('may'),
|
||||
lang('june'),
|
||||
lang('july'),
|
||||
lang('august'),
|
||||
lang('september'),
|
||||
lang('october'),
|
||||
lang('november'),
|
||||
lang('december')
|
||||
],
|
||||
prevText: lang('previous'),
|
||||
nextText: lang('next'),
|
||||
currentText: lang('now'),
|
||||
closeText: lang('close'),
|
||||
timeOnlyTitle: lang('select_time'),
|
||||
timeText: lang('time'),
|
||||
hourText: lang('hour'),
|
||||
minuteText: lang('minutes'),
|
||||
firstDay: firstWeekdayId
|
||||
});
|
||||
$endDatetime.val(end);
|
||||
|
||||
// Clear the unavailability notes field.
|
||||
|
|
|
@ -386,108 +386,13 @@ App.Components.WorkingPlanExceptionsModal = (function () {
|
|||
$('.working-plan-exceptions-add-break').prop('disabled', false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize a datepicker instance on the provided target selector.
|
||||
*
|
||||
* @param {jQuery} $target
|
||||
*/
|
||||
function initializeDatepicker($target) {
|
||||
let dateFormat;
|
||||
|
||||
switch (vars('date_format')) {
|
||||
case 'DMY':
|
||||
dateFormat = 'dd/mm/yy';
|
||||
break;
|
||||
|
||||
case 'MDY':
|
||||
dateFormat = 'mm/dd/yy';
|
||||
break;
|
||||
|
||||
case 'YMD':
|
||||
dateFormat = 'yy/mm/dd';
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new Error('Invalid date format setting provided: ' + vars('date_format'));
|
||||
}
|
||||
|
||||
$target.datepicker({
|
||||
dateFormat: dateFormat,
|
||||
firstDay: App.Utils.Date.getWeekdayId(vars('first_weekday')),
|
||||
minDate: 0,
|
||||
defaultDate: moment().toDate(),
|
||||
dayNames: [
|
||||
lang('sunday'),
|
||||
lang('monday'),
|
||||
lang('tuesday'),
|
||||
lang('wednesday'),
|
||||
lang('thursday'),
|
||||
lang('friday'),
|
||||
lang('saturday')
|
||||
],
|
||||
dayNamesShort: [
|
||||
lang('sunday').substr(0, 3),
|
||||
lang('monday').substr(0, 3),
|
||||
lang('tuesday').substr(0, 3),
|
||||
lang('wednesday').substr(0, 3),
|
||||
lang('thursday').substr(0, 3),
|
||||
lang('friday').substr(0, 3),
|
||||
lang('saturday').substr(0, 3)
|
||||
],
|
||||
dayNamesMin: [
|
||||
lang('sunday').substr(0, 2),
|
||||
lang('monday').substr(0, 2),
|
||||
lang('tuesday').substr(0, 2),
|
||||
lang('wednesday').substr(0, 2),
|
||||
lang('thursday').substr(0, 2),
|
||||
lang('friday').substr(0, 2),
|
||||
lang('saturday').substr(0, 2)
|
||||
],
|
||||
monthNames: [
|
||||
lang('january'),
|
||||
lang('february'),
|
||||
lang('march'),
|
||||
lang('april'),
|
||||
lang('may'),
|
||||
lang('june'),
|
||||
lang('july'),
|
||||
lang('august'),
|
||||
lang('september'),
|
||||
lang('october'),
|
||||
lang('november'),
|
||||
lang('december')
|
||||
],
|
||||
prevText: lang('previous'),
|
||||
nextText: lang('next'),
|
||||
currentText: lang('now'),
|
||||
closeText: lang('close')
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize a timepicker on the provided target selector.
|
||||
*
|
||||
* @param {jQuery} $target
|
||||
*/
|
||||
function initializeTimepicker($target) {
|
||||
$target.timepicker({
|
||||
timeFormat: vars('time_format') === 'regular' ? 'h:mm tt' : 'HH:mm',
|
||||
currentText: lang('now'),
|
||||
closeText: lang('close'),
|
||||
timeOnlyTitle: lang('select_time'),
|
||||
timeText: lang('time'),
|
||||
hourText: lang('hour'),
|
||||
minuteText: lang('minutes')
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the module.
|
||||
*/
|
||||
function initialize() {
|
||||
initializeDatepicker($date);
|
||||
initializeTimepicker($start);
|
||||
initializeTimepicker($end);
|
||||
App.Utils.UI.initializeDatepicker($date);
|
||||
App.Utils.UI.initializeTimepicker($start);
|
||||
App.Utils.UI.initializeTimepicker($end);
|
||||
|
||||
$modal
|
||||
.on('hidden.bs.modal', onModalHidden)
|
||||
|
|
|
@ -141,9 +141,9 @@ App.Pages.LegalSettings = (function () {
|
|||
* Initialize the module.
|
||||
*/
|
||||
function initialize() {
|
||||
$cookieNoticeContent.trumbowyg();
|
||||
$termsAndConditionsContent.trumbowyg();
|
||||
$privacyPolicyContent.trumbowyg();
|
||||
App.Utils.UI.initializeTextEditor($cookieNoticeContent);
|
||||
App.Utils.UI.initializeTextEditor($termsAndConditionsContent);
|
||||
App.Utils.UI.initializeTextEditor($privacyPolicyContent);
|
||||
|
||||
const legalSettings = vars('legal_settings');
|
||||
|
||||
|
|
|
@ -471,7 +471,7 @@ App.Utils.CalendarTableView = (function () {
|
|||
});
|
||||
}
|
||||
|
||||
$filterProvider.select2();
|
||||
App.Utils.UI.initializeDropdown($filterProvider);
|
||||
|
||||
const services = vars('available_services').filter((service) => {
|
||||
const provider = providers.find((provider) => provider.services.indexOf(service.id) !== -1);
|
||||
|
@ -500,7 +500,7 @@ App.Utils.CalendarTableView = (function () {
|
|||
$filterService.append(new Option(service.name, service.id));
|
||||
});
|
||||
|
||||
$filterService.select2();
|
||||
App.Utils.UI.initializeDropdown($filterService);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1054,11 +1054,11 @@ App.Utils.CalendarTableView = (function () {
|
|||
|
||||
$event.html(
|
||||
lang('break') +
|
||||
' <span class="hour">' +
|
||||
moment(eventDate).format('HH:mm') +
|
||||
'</span> (' +
|
||||
eventDuration +
|
||||
"')"
|
||||
' <span class="hour">' +
|
||||
moment(eventDate).format('HH:mm') +
|
||||
'</span> (' +
|
||||
eventDuration +
|
||||
"')"
|
||||
);
|
||||
|
||||
$event.data(entry);
|
||||
|
@ -1226,8 +1226,8 @@ App.Utils.CalendarTableView = (function () {
|
|||
$('<span/>', {
|
||||
'text': info.event.extendedProps.data
|
||||
? info.event.extendedProps.data.provider.first_name +
|
||||
' ' +
|
||||
info.event.extendedProps.data.provider.last_name
|
||||
' ' +
|
||||
info.event.extendedProps.data.provider.last_name
|
||||
: '-'
|
||||
}),
|
||||
$('<br/>'),
|
||||
|
@ -1238,8 +1238,8 @@ App.Utils.CalendarTableView = (function () {
|
|||
$('<span/>', {
|
||||
'text': App.Utils.Date.format(
|
||||
info.event.extendedProps.data.date +
|
||||
' ' +
|
||||
info.event.extendedProps.data.workingPlanException.start,
|
||||
' ' +
|
||||
info.event.extendedProps.data.workingPlanException.start,
|
||||
vars('date_format'),
|
||||
vars('time_format'),
|
||||
true
|
||||
|
@ -1253,8 +1253,8 @@ App.Utils.CalendarTableView = (function () {
|
|||
$('<span/>', {
|
||||
'text': App.Utils.Date.format(
|
||||
info.event.extendedProps.data.date +
|
||||
' ' +
|
||||
info.event.extendedProps.data.workingPlanException.end,
|
||||
' ' +
|
||||
info.event.extendedProps.data.workingPlanException.end,
|
||||
vars('date_format'),
|
||||
vars('time_format'),
|
||||
true
|
||||
|
|
233
assets/js/utils/ui.js
Normal file
233
assets/js/utils/ui.js
Normal file
|
@ -0,0 +1,233 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Online Appointment Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) Alex Tselegidis
|
||||
* @license https://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link https://easyappointments.org
|
||||
* @since v1.5.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* UI utility.
|
||||
*
|
||||
* This module provides commonly used UI functionality.
|
||||
*/
|
||||
window.App.Utils.UI = (function () {
|
||||
/**
|
||||
* Get the jQuery UI compatible date format.
|
||||
*
|
||||
* @return {String}
|
||||
*/
|
||||
function getDateFormat() {
|
||||
switch (vars('date_format')) {
|
||||
case 'DMY':
|
||||
return 'dd/mm/yy';
|
||||
case 'MDY':
|
||||
return 'mm/dd/yy';
|
||||
case 'YMD':
|
||||
return 'yy/mm/dd';
|
||||
default:
|
||||
throw new Error('Invalid date format value.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initialize the date time picker component.
|
||||
*
|
||||
* This method is based on jQuery UI.
|
||||
*
|
||||
* @param {jQuery} $target
|
||||
* @param {Object} [params]
|
||||
*/
|
||||
function initializeDatetimepicker($target, params = {}) {
|
||||
const dateFormat = getDateFormat();
|
||||
|
||||
const firstWeekDay = vars('first_weekday');
|
||||
|
||||
const firstWeekDayNumber = App.Utils.Date.getWeekdayId(firstWeekDay);
|
||||
|
||||
const options = {
|
||||
dateFormat: dateFormat,
|
||||
timeFormat: vars('time_format') === 'regular' ? 'h:mm tt' : 'HH:mm',
|
||||
|
||||
// Translation
|
||||
dayNames: [
|
||||
lang('sunday'),
|
||||
lang('monday'),
|
||||
lang('tuesday'),
|
||||
lang('wednesday'),
|
||||
lang('thursday'),
|
||||
lang('friday'),
|
||||
lang('saturday')
|
||||
],
|
||||
dayNamesShort: [
|
||||
lang('sunday').substring(0, 3),
|
||||
lang('monday').substring(0, 3),
|
||||
lang('tuesday').substring(0, 3),
|
||||
lang('wednesday').substring(0, 3),
|
||||
lang('thursday').substring(0, 3),
|
||||
lang('friday').substring(0, 3),
|
||||
lang('saturday').substring(0, 3)
|
||||
],
|
||||
dayNamesMin: [
|
||||
lang('sunday').substring(0, 2),
|
||||
lang('monday').substring(0, 2),
|
||||
lang('tuesday').substring(0, 2),
|
||||
lang('wednesday').substring(0, 2),
|
||||
lang('thursday').substring(0, 2),
|
||||
lang('friday').substring(0, 2),
|
||||
lang('saturday').substring(0, 2)
|
||||
],
|
||||
monthNames: [
|
||||
lang('january'),
|
||||
lang('february'),
|
||||
lang('march'),
|
||||
lang('april'),
|
||||
lang('may'),
|
||||
lang('june'),
|
||||
lang('july'),
|
||||
lang('august'),
|
||||
lang('september'),
|
||||
lang('october'),
|
||||
lang('november'),
|
||||
lang('december')
|
||||
],
|
||||
prevText: lang('previous'),
|
||||
nextText: lang('next'),
|
||||
currentText: lang('now'),
|
||||
closeText: lang('close'),
|
||||
timeOnlyTitle: lang('select_time'),
|
||||
timeText: lang('time'),
|
||||
hourText: lang('hour'),
|
||||
minuteText: lang('minutes'),
|
||||
firstDay: firstWeekDayNumber,
|
||||
|
||||
...params
|
||||
}
|
||||
|
||||
$target.datetimepicker(options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the date picker component.
|
||||
*
|
||||
* This method is based on jQuery UI.
|
||||
*
|
||||
* @param {jQuery} $target
|
||||
* @param {Object} [params]
|
||||
*/
|
||||
function initializeDatepicker($target, params = {}) {
|
||||
const dateFormat = getDateFormat();
|
||||
|
||||
$target.datepicker({
|
||||
dateFormat: dateFormat,
|
||||
firstDay: App.Utils.Date.getWeekdayId(vars('first_weekday')),
|
||||
minDate: 0,
|
||||
defaultDate: moment().toDate(),
|
||||
dayNames: [
|
||||
lang('sunday'),
|
||||
lang('monday'),
|
||||
lang('tuesday'),
|
||||
lang('wednesday'),
|
||||
lang('thursday'),
|
||||
lang('friday'),
|
||||
lang('saturday')
|
||||
],
|
||||
dayNamesShort: [
|
||||
lang('sunday').substring(0, 3),
|
||||
lang('monday').substring(0, 3),
|
||||
lang('tuesday').substring(0, 3),
|
||||
lang('wednesday').substring(0, 3),
|
||||
lang('thursday').substring(0, 3),
|
||||
lang('friday').substring(0, 3),
|
||||
lang('saturday').substring(0, 3)
|
||||
],
|
||||
dayNamesMin: [
|
||||
lang('sunday').substring(0, 2),
|
||||
lang('monday').substring(0, 2),
|
||||
lang('tuesday').substring(0, 2),
|
||||
lang('wednesday').substring(0, 2),
|
||||
lang('thursday').substring(0, 2),
|
||||
lang('friday').substring(0, 2),
|
||||
lang('saturday').substring(0, 2)
|
||||
],
|
||||
monthNames: [
|
||||
lang('january'),
|
||||
lang('february'),
|
||||
lang('march'),
|
||||
lang('april'),
|
||||
lang('may'),
|
||||
lang('june'),
|
||||
lang('july'),
|
||||
lang('august'),
|
||||
lang('september'),
|
||||
lang('october'),
|
||||
lang('november'),
|
||||
lang('december')
|
||||
],
|
||||
prevText: lang('previous'),
|
||||
nextText: lang('next'),
|
||||
currentText: lang('now'),
|
||||
closeText: lang('close'),
|
||||
|
||||
...params
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the time picker component.
|
||||
*
|
||||
* This method is based on jQuery UI.
|
||||
*
|
||||
* @param {jQuery} $target
|
||||
* @param {Object} [params]
|
||||
*/
|
||||
function initializeTimepicker($target, params = {}) {
|
||||
$target.timepicker({
|
||||
timeFormat: vars('time_format') === 'regular' ? 'h:mm tt' : 'HH:mm',
|
||||
currentText: lang('now'),
|
||||
closeText: lang('close'),
|
||||
timeOnlyTitle: lang('select_time'),
|
||||
timeText: lang('time'),
|
||||
hourText: lang('hour'),
|
||||
minuteText: lang('minutes'),
|
||||
|
||||
...params
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the select dropdown component.
|
||||
*
|
||||
* This method is based on Select2.
|
||||
*
|
||||
* @param {jQuery} $target
|
||||
* @param {Object} [params]
|
||||
*/
|
||||
function initializeDropdown($target, params = {}) {
|
||||
$target.select2(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the text editor component.
|
||||
*
|
||||
* This method is based on Trumbowyg.
|
||||
*
|
||||
* @param {jQuery} $target
|
||||
* @param {Object} [params]
|
||||
*/
|
||||
function initializeTextEditor($target, params = {}) {
|
||||
$target.trumbowyg(params);
|
||||
}
|
||||
|
||||
return {
|
||||
initializeDatetimepicker,
|
||||
initializeDatepicker,
|
||||
initializeTimepicker,
|
||||
initializeDropdown,
|
||||
initializeTextEditor,
|
||||
};
|
||||
})();
|
Loading…
Reference in a new issue