From c7f2e7f831c8e92046157ea5dc81da8f774ef1e5 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Sat, 6 Jan 2024 10:40:02 +0100 Subject: [PATCH 1/8] Move the position of the back button --- application/views/pages/blocked_periods.php | 10 +++++----- application/views/pages/webhooks.php | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/application/views/pages/blocked_periods.php b/application/views/pages/blocked_periods.php index 3b78b429..760b6019 100644 --- a/application/views/pages/blocked_periods.php +++ b/application/views/pages/blocked_periods.php @@ -28,6 +28,11 @@
+ + + + +
- - - - -

diff --git a/application/views/pages/webhooks.php b/application/views/pages/webhooks.php index 558ff240..31c1c2bd 100755 --- a/application/views/pages/webhooks.php +++ b/application/views/pages/webhooks.php @@ -27,6 +27,11 @@
+ + + + +
- - - - -

From 02162ee2320b72b8dc71afe806d0e6ab9d46fa72 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Sat, 6 Jan 2024 10:46:57 +0100 Subject: [PATCH 2/8] Rename ui.js methods --- assets/js/components/appointments_modal.js | 4 ++-- .../js/components/unavailabilities_modal.js | 4 ++-- .../working_plan_exceptions_modal.js | 8 ++++---- assets/js/pages/blocked_periods.js | 16 +++++++-------- assets/js/pages/booking.js | 2 +- assets/js/utils/calendar_table_view.js | 2 +- assets/js/utils/ui.js | 20 +++++++++---------- assets/js/utils/working_plan.js | 4 ++-- 8 files changed, 30 insertions(+), 30 deletions(-) diff --git a/assets/js/components/appointments_modal.js b/assets/js/components/appointments_modal.js index 55e4f2f3..4038810d 100755 --- a/assets/js/components/appointments_modal.js +++ b/assets/js/components/appointments_modal.js @@ -481,7 +481,7 @@ App.Components.AppointmentsModal = (function () { const startDatetime = new Date(); const endDatetime = moment().add(duration, 'minutes').toDate(); - App.Utils.UI.initializeDatetimepicker($startDatetime, { + App.Utils.UI.initializeDateTimePicker($startDatetime, { onClose: () => { const serviceId = $selectService.val(); @@ -497,7 +497,7 @@ App.Components.AppointmentsModal = (function () { $startDatetime[0]._flatpickr.setDate(startDatetime); - App.Utils.UI.initializeDatetimepicker($endDatetime); + App.Utils.UI.initializeDateTimePicker($endDatetime); $endDatetime[0]._flatpickr.setDate(endDatetime); } diff --git a/assets/js/components/unavailabilities_modal.js b/assets/js/components/unavailabilities_modal.js index 0c78186f..471d79ca 100755 --- a/assets/js/components/unavailabilities_modal.js +++ b/assets/js/components/unavailabilities_modal.js @@ -183,11 +183,11 @@ App.Components.UnavailabilitiesModal = (function () { true, ); - App.Utils.UI.initializeDatetimepicker($startDatetime); + App.Utils.UI.initializeDateTimePicker($startDatetime); $startDatetime.val(start); - App.Utils.UI.initializeDatetimepicker($endDatetime); + App.Utils.UI.initializeDateTimePicker($endDatetime); $endDatetime.val(end); diff --git a/assets/js/components/working_plan_exceptions_modal.js b/assets/js/components/working_plan_exceptions_modal.js index 68a06ecf..f1332e2d 100644 --- a/assets/js/components/working_plan_exceptions_modal.js +++ b/assets/js/components/working_plan_exceptions_modal.js @@ -380,7 +380,7 @@ App.Components.WorkingPlanExceptionsModal = (function () { // Make all cells in current row editable. let $tr = $(this).closest('tr'); $tr.children().trigger('edit'); - App.Utils.UI.initializeTimepicker( + App.Utils.UI.initializeTimePicker( $tr.find('.working-plan-exceptions-break-start input, .working-plan-exceptions-break-end input'), ); $(this).closest('tr').find('.working-plan-exceptions-break-start').focus(); @@ -462,9 +462,9 @@ App.Components.WorkingPlanExceptionsModal = (function () { * Initialize the module. */ function initialize() { - App.Utils.UI.initializeDatepicker($date); - App.Utils.UI.initializeTimepicker($start); - App.Utils.UI.initializeTimepicker($end); + App.Utils.UI.initializeDatePicker($date); + App.Utils.UI.initializeTimePicker($start); + App.Utils.UI.initializeTimePicker($end); $modal .on('hidden.bs.modal', onModalHidden) diff --git a/assets/js/pages/blocked_periods.js b/assets/js/pages/blocked_periods.js index 9fc57e3e..1b5e70e5 100644 --- a/assets/js/pages/blocked_periods.js +++ b/assets/js/pages/blocked_periods.js @@ -123,9 +123,9 @@ App.Pages.BlockedPeriods = (function () { * Event: Blocked period Save Button "Click" */ $blockedPeriods.on('click', '#save-blocked-period', () => { - const startDateTimeObject = App.Utils.UI.getDatetimepickerValue($startDateTime); + const startDateTimeObject = App.Utils.UI.getDateTimePickerValue($startDateTime); const startDateTimeMoment = moment(startDateTimeObject); - const endDateTimeObject = App.Utils.UI.getDatetimepickerValue($endDateTime); + const endDateTimeObject = App.Utils.UI.getDateTimePickerValue($endDateTime); const endDateTimeMoment = moment(endDateTimeObject); const blockedPeriod = { @@ -235,8 +235,8 @@ App.Pages.BlockedPeriods = (function () { function display(blockedPeriod) { $id.val(blockedPeriod.id); $name.val(blockedPeriod.name); - App.Utils.UI.setDatetimepickerValue($startDateTime, new Date(blockedPeriod.start_datetime)); - App.Utils.UI.setDatetimepickerValue($endDateTime, new Date(blockedPeriod.end_datetime)); + App.Utils.UI.setDateTimePickerValue($startDateTime, new Date(blockedPeriod.start_datetime)); + App.Utils.UI.setDateTimePickerValue($endDateTime, new Date(blockedPeriod.end_datetime)); $notes.val(blockedPeriod.notes); } @@ -263,8 +263,8 @@ App.Pages.BlockedPeriods = (function () { throw new Error(lang('fields_are_required')); } - const startDateTimeObject = App.Utils.UI.getDatetimepickerValue($startDateTime); - const endDateTimeObject = App.Utils.UI.getDatetimepickerValue($endDateTime); + const startDateTimeObject = App.Utils.UI.getDateTimePickerValue($startDateTime); + const endDateTimeObject = App.Utils.UI.getDateTimePickerValue($endDateTime); if (startDateTimeObject >= endDateTimeObject) { $startDateTime.addClass('is-invalid'); @@ -346,8 +346,8 @@ App.Pages.BlockedPeriods = (function () { resetForm(); filter(''); addEventListeners(); - App.Utils.UI.initializeDatetimepicker($startDateTime); - App.Utils.UI.initializeDatetimepicker($endDateTime); + App.Utils.UI.initializeDateTimePicker($startDateTime); + App.Utils.UI.initializeDateTimePicker($endDateTime); } document.addEventListener('DOMContentLoaded', initialize); diff --git a/assets/js/pages/booking.js b/assets/js/pages/booking.js index 255bb8e0..86ccba39 100644 --- a/assets/js/pages/booking.js +++ b/assets/js/pages/booking.js @@ -82,7 +82,7 @@ App.Pages.Booking = (function () { // Initialize page's components (tooltips, date pickers etc). tippy('[data-tippy-content]'); - App.Utils.UI.initializeDatepicker($selectDate, { + App.Utils.UI.initializeDatePicker($selectDate, { inline: true, minDate: moment().subtract(1, 'day').set({hours: 23, minutes: 59, seconds: 59}).toDate(), maxDate: moment().add(vars('future_booking_limit'), 'days').toDate(), diff --git a/assets/js/utils/calendar_table_view.js b/assets/js/utils/calendar_table_view.js index dfee3514..6178dc12 100755 --- a/assets/js/utils/calendar_table_view.js +++ b/assets/js/utils/calendar_table_view.js @@ -389,7 +389,7 @@ App.Utils.CalendarTableView = (function () { ], }).appendTo($calendarHeader); - App.Utils.UI.initializeDatepicker($calendarHeader.find('.select-date'), { + App.Utils.UI.initializeDatePicker($calendarHeader.find('.select-date'), { onChange(selectedDates) { const startDate = selectedDates[0]; const endDate = moment(startDate) diff --git a/assets/js/utils/ui.js b/assets/js/utils/ui.js index 882be9b0..2b573f32 100644 --- a/assets/js/utils/ui.js +++ b/assets/js/utils/ui.js @@ -148,7 +148,7 @@ window.App.Utils.UI = (function () { * @param {jQuery} $target * @param {Object} [params] */ - function initializeDatetimepicker($target, params = {}) { + function initializeDateTimePicker($target, params = {}) { $target.flatpickr({ enableTime: true, allowInput: true, @@ -168,7 +168,7 @@ window.App.Utils.UI = (function () { * @param {jQuery} $target * @param {Object} [params] */ - function initializeDatepicker($target, params = {}) { + function initializeDatePicker($target, params = {}) { $target.flatpickr({ allowInput: true, dateFormat: getDateFormat(), @@ -186,7 +186,7 @@ window.App.Utils.UI = (function () { * @param {jQuery} $target * @param {Object} [params] */ - function initializeTimepicker($target, params = {}) { + function initializeTimePicker($target, params = {}) { $target.flatpickr({ noCalendar: true, enableTime: true, @@ -230,7 +230,7 @@ window.App.Utils.UI = (function () { * * @return {Date} */ - function getDatetimepickerValue($target) { + function getDateTimePickerValue($target) { if (!$target?.length) { throw new Error('Empty $target argument provided.'); } @@ -244,7 +244,7 @@ window.App.Utils.UI = (function () { * @param {jQuery} $target * @param {Date} value */ - function setDatetimepickerValue($target, value) { + function setDateTimePickerValue($target, value) { if (!$target?.length) { throw new Error('Empty $target argument provided.'); } @@ -253,12 +253,12 @@ window.App.Utils.UI = (function () { } return { - initializeDatetimepicker, - initializeDatepicker, - initializeTimepicker, + initializeDateTimePicker, + initializeDatePicker, + initializeTimePicker, initializeDropdown, initializeTextEditor, - getDatetimepickerValue, - setDatetimepickerValue, + getDateTimePickerValue, + setDateTimePickerValue, }; })(); diff --git a/assets/js/utils/working_plan.js b/assets/js/utils/working_plan.js index 0b670e70..30b81818 100755 --- a/assets/js/utils/working_plan.js +++ b/assets/js/utils/working_plan.js @@ -480,7 +480,7 @@ App.Utils.WorkingPlan = (function () { $tr.children().trigger('edit'); - App.Utils.UI.initializeTimepicker($tr.find('.break-start input, .break-end input')); + App.Utils.UI.initializeTimePicker($tr.find('.break-start input, .break-end input')); $tr.find('.break-day select').focus(); @@ -686,7 +686,7 @@ App.Utils.WorkingPlan = (function () { disabled = disabled || false; if (disabled === false) { - App.Utils.UI.initializeTimepicker($('.working-plan input:text'), { + App.Utils.UI.initializeTimePicker($('.working-plan input:text'), { onChange: (selectedDates, dateStr, instance) => { const startMoment = moment(selectedDates[0]); From cd768bda8541fb0eb926112d0b1d9627a33d4779 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Sat, 6 Jan 2024 11:06:48 +0100 Subject: [PATCH 3/8] Use the helper methods to set and get date time picker values --- assets/js/components/appointments_modal.js | 34 ++++++++++++------- .../js/components/unavailabilities_modal.js | 20 ++++++----- .../working_plan_exceptions_modal.js | 28 +++++++-------- assets/js/http/booking_http_client.js | 4 +-- assets/js/pages/booking.js | 16 ++++----- assets/js/utils/calendar_default_view.js | 32 +++++++++++------ assets/js/utils/calendar_table_view.js | 32 +++++++++-------- assets/js/utils/working_plan.js | 6 ++-- 8 files changed, 99 insertions(+), 73 deletions(-) diff --git a/assets/js/components/appointments_modal.js b/assets/js/components/appointments_modal.js index 4038810d..b7ed915f 100755 --- a/assets/js/components/appointments_modal.js +++ b/assets/js/components/appointments_modal.js @@ -52,6 +52,8 @@ App.Components.AppointmentsModal = (function () { const $customField4 = $('#custom-field-4'); const $customField5 = $('#custom-field-5'); + const moment = window.moment; + /** * Update the displayed timezone. */ @@ -85,8 +87,11 @@ App.Components.AppointmentsModal = (function () { // ID must exist on the object in order for the model to update the record and not to perform // an insert operation. - const startDatetime = moment($startDatetime[0]._flatpickr.selectedDates[0]).format('YYYY-MM-DD HH:mm:ss'); - const endDatetime = moment($endDatetime[0]._flatpickr.selectedDates[0]).format('YYYY-MM-DD HH:mm:ss'); + const startDateTimeObject = App.Utils.UI.getDateTimePickerValue($startDatetime); + const startDatetime = moment(startDateTimeObject).format('YYYY-MM-DD HH:mm:ss'); + + const endDateTimeObject = App.Utils.UI.getDateTimePickerValue($endDatetime); + const endDatetime = moment(endDateTimeObject).format('YYYY-MM-DD HH:mm:ss'); const appointment = { id_services: $selectService.val(), @@ -204,8 +209,8 @@ App.Components.AppointmentsModal = (function () { startMoment.add(1, 'hour').set({minutes: 0}); } - $startDatetime[0]._flatpickr.setDate(startMoment.toDate()); - $endDatetime[0]._flatpickr.setDate(startMoment.add(duration, 'minutes').toDate()); + App.Utils.UI.setDateTimePickerValue($startDatetime, startMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($endDatetime, startMoment.add(duration, 'minutes').toDate()); // Display modal form. $appointmentsModal.find('.modal-header h3').text(lang('new_appointment_title')); @@ -362,8 +367,9 @@ App.Components.AppointmentsModal = (function () { const duration = service ? service.duration : 60; - const start = $startDatetime[0]._flatpickr.selectedDates[0]; - $endDatetime[0]._flatpickr.setDate(new Date(start.getTime() + duration * 60000)); + const startDateTimeObject = App.Utils.UI.getDateTimePickerValue($startDatetime); + const endDateTimeObject = new Date(startDateTimeObject.getTime() + duration * 60000); + App.Utils.UI.setDateTimePickerValue($endDatetime, endDateTimeObject); // Update the providers select box. @@ -490,15 +496,16 @@ App.Components.AppointmentsModal = (function () { (availableService) => Number(availableService.id) === Number(serviceId), ); - const start = $startDatetime[0]._flatpickr.selectedDates[0]; - $endDatetime[0]._flatpickr.setDate(new Date(start.getTime() + service.duration * 60000)); + const startDateTimeObject = App.Utils.UI.getDateTimePickerValue($startDatetime); + const endDateTimeObject = new Date(startDateTimeObject.getTime() + service.duration * 60000); + App.Utils.UI.setDateTimePickerValue($endDatetime, endDateTimeObject); }, }); - $startDatetime[0]._flatpickr.setDate(startDatetime); + App.Utils.UI.setDateTimePickerValue($startDatetime, startDatetime); App.Utils.UI.initializeDateTimePicker($endDatetime); - $endDatetime[0]._flatpickr.setDate(endDatetime); + App.Utils.UI.setDateTimePickerValue($endDatetime, endDatetime); } /** @@ -538,9 +545,10 @@ App.Components.AppointmentsModal = (function () { } // Check appointment start and end time. - const start = $startDatetime[0]._flatpickr.selectedDates[0]; - const end = $endDatetime[0]._flatpickr.selectedDates[0]; - if (start > end) { + const startDateTimeObject = App.Utils.UI.getDateTimePickerValue($startDatetime); + const endDateTimeObject = App.Utils.UI.getDateTimePickerValue($endDatetime); + + if (startDateTimeObject > endDateTimeObject) { $startDatetime.addClass('is-invalid'); $endDatetime.addClass('is-invalid'); throw new Error(lang('start_date_before_end_error')); diff --git a/assets/js/components/unavailabilities_modal.js b/assets/js/components/unavailabilities_modal.js index 471d79ca..90efea94 100755 --- a/assets/js/components/unavailabilities_modal.js +++ b/assets/js/components/unavailabilities_modal.js @@ -28,6 +28,8 @@ App.Components.UnavailabilitiesModal = (function () { const $selectFilterItem = $('#select-filter-item'); const $reloadAppointments = $('#reload-appointments'); + const moment = window.moment; + /** * Update the displayed timezone. */ @@ -68,22 +70,22 @@ App.Components.UnavailabilitiesModal = (function () { return; } - const startMoment = moment($startDatetime[0]._flatpickr.selectedDates[0]); + const startDateTimeMoment = moment(App.Utils.UI.getDateTimePickerValue($startDatetime)); - if (!startMoment.isValid()) { + if (!startDateTimeMoment.isValid()) { $startDatetime.addClass('is-invalid'); return; } - const endMoment = moment($endDatetime[0]._flatpickr.selectedDates[0]); + const endDateTimeMoment = moment(App.Utils.UI.getDateTimePickerValue($endDatetime)); - if (!endMoment.isValid()) { + if (!endDateTimeMoment.isValid()) { $endDatetime.addClass('is-invalid'); return; } - if (startMoment.isAfter(endMoment)) { + if (startDateTimeMoment.isAfter(endDateTimeMoment)) { // Start time is after end time - display message to user. $unavailabilitiesModal .find('.modal-message') @@ -100,8 +102,8 @@ App.Components.UnavailabilitiesModal = (function () { // Unavailability period records go to the appointments table. const unavailability = { - start_datetime: startMoment.format('YYYY-MM-DD HH:mm:ss'), - end_datetime: endMoment.format('YYYY-MM-DD HH:mm:ss'), + start_datetime: startDateTimeMoment.format('YYYY-MM-DD HH:mm:ss'), + end_datetime: endDateTimeMoment.format('YYYY-MM-DD HH:mm:ss'), notes: $unavailabilitiesModal.find('#unavailability-notes').val(), id_users_provider: $selectProvider.val(), }; @@ -156,8 +158,8 @@ App.Components.UnavailabilitiesModal = (function () { $selectProvider.val($selectFilterItem.val()).closest('.form-group').hide(); } - $startDatetime[0]._flatpickr.setDate(startMoment.toDate()); - $endDatetime[0]._flatpickr.setDate(startMoment.add(1, 'hour').toDate()); + App.Utils.UI.setDateTimePickerValue($startDatetime, startMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($endDatetime, startMoment.add(1, 'hour').toDate()); $dialog.find('.modal-header h3').text(lang('new_unavailability_title')); $dialog.modal('show'); diff --git a/assets/js/components/working_plan_exceptions_modal.js b/assets/js/components/working_plan_exceptions_modal.js index f1332e2d..bb3b6418 100644 --- a/assets/js/components/working_plan_exceptions_modal.js +++ b/assets/js/components/working_plan_exceptions_modal.js @@ -77,19 +77,19 @@ App.Components.WorkingPlanExceptionsModal = (function () { function validate() { $modal.find('.is-invalid').removeClass('is-invalid'); - const date = $date[0]._flatpickr.selectedDates[0]; + const date = App.Utils.UI.getDateTimePickerValue($date); if (!date) { $date.addClass('is-invalid'); } - const start = $start[0]._flatpickr.selectedDates[0]; + const start = App.Utils.UI.getDateTimePickerValue($start); if (!start) { $start.addClass('is-invalid'); } - const end = $end[0]._flatpickr.selectedDates[0]; + const end = App.Utils.UI.getDateTimePickerValue($end); if (!end) { $end.addClass('is-invalid'); @@ -157,15 +157,15 @@ App.Components.WorkingPlanExceptionsModal = (function () { return; } - const date = moment($date[0]._flatpickr.selectedDates[0]).format('YYYY-MM-DD'); + const date = moment(App.Utils.UI.getDateTimePickerValue($date)).format('YYYY-MM-DD'); const isNonWorkingDay = $isNonWorkingDay.prop('checked'); const workingPlanException = isNonWorkingDay ? null : { - start: moment($start[0]._flatpickr.selectedDates[0]).format('HH:mm'), - end: moment($end[0]._flatpickr.selectedDates[0]).format('HH:mm'), + start: moment(App.Utils.UI.getDateTimePickerValue($start)).format('HH:mm'), + end: moment(App.Utils.UI.getDateTimePickerValue($end)).format('HH:mm'), breaks: getBreaks(), }; @@ -223,9 +223,9 @@ App.Components.WorkingPlanExceptionsModal = (function () { function add() { deferred = $.Deferred(); - $date[0]._flatpickr.setDate(new Date()); - $start[0]._flatpickr.setDate(moment('08:00', 'HH:mm').toDate()); - $end[0]._flatpickr.setDate(moment('20:00', 'HH:mm').toDate()); + App.Utils.UI.setDateTimePickerValue($date, new Date()); + App.Utils.UI.setDateTimePickerValue($start, moment('08:00', 'HH:mm').toDate()); + App.Utils.UI.setDateTimePickerValue($end, moment('20:00', 'HH:mm').toDate()); $isNonWorkingDay.prop('checked', false); @@ -249,11 +249,11 @@ App.Components.WorkingPlanExceptionsModal = (function () { const isNonWorkingDay = !Boolean(workingPlanException); - $date[0]._flatpickr.setDate(moment(date, 'YYYY-MM-DD').toDate()); + App.Utils.UI.setDateTimePickerValue($date, moment(date, 'YYYY-MM-DD').toDate()); if (isNonWorkingDay === false) { - $start[0]._flatpickr.setDate(moment(workingPlanException.start, 'HH:mm').toDate()); - $end[0]._flatpickr.setDate(moment(workingPlanException.end, 'HH:mm').toDate()); + App.Utils.UI.setDateTimePickerValue($start, moment(workingPlanException.start, 'HH:mm').toDate()); + App.Utils.UI.setDateTimePickerValue($end, moment(workingPlanException.end, 'HH:mm').toDate()); if (!workingPlanException.breaks) { $breaks.find('tbody').html(renderNoBreaksRow()); @@ -267,8 +267,8 @@ App.Components.WorkingPlanExceptionsModal = (function () { $breaks.find('tbody .working-plan-exceptions-break-start, tbody .working-plan-exceptions-break-end'), ); } else { - $start[0]._flatpickr.setDate(moment('08:00', 'HH:mm').toDate()); - $end[0]._flatpickr.setDate(moment('20:00', 'HH:mm').toDate()); + App.Utils.UI.setDateTimePickerValue($start, moment('08:00', 'HH:mm').toDate()); + App.Utils.UI.setDateTimePickerValue($end, moment('20:00', 'HH:mm').toDate()); $breaks.find('tbody').html(renderNoBreaksRow()); } diff --git a/assets/js/http/booking_http_client.js b/assets/js/http/booking_http_client.js index be6a1cb0..c5aae91a 100755 --- a/assets/js/http/booking_http_client.js +++ b/assets/js/http/booking_http_client.js @@ -300,7 +300,7 @@ App.Http.Booking = (function () { const currentDate = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), i); if (unavailableDates.indexOf(moment(currentDate).format('YYYY-MM-DD')) === -1) { - $('#select-date')[0]._flatpickr.setDate(currentDate); + App.Utils.UI.setDateTimePickerValue($('#select-date'), currentDate); getAvailableHours(moment(currentDate).format('YYYY-MM-DD')); break; } @@ -328,7 +328,7 @@ App.Http.Booking = (function () { !unavailableDates.includes(dateQueryParam) && dateQueryParamMoment.format('YYYY-MM') === selectedDateMoment.format('YYYY-MM') ) { - $('#select-date')[0]._flatpickr.setDate(dateQueryParamMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($('#select-date'), dateQueryParamMoment.toDate()); } } diff --git a/assets/js/pages/booking.js b/assets/js/pages/booking.js index 86ccba39..7fee4db6 100644 --- a/assets/js/pages/booking.js +++ b/assets/js/pages/booking.js @@ -126,7 +126,7 @@ App.Pages.Booking = (function () { }, }); - $selectDate[0]._flatpickr.setDate(new Date()); + App.Utils.UI.setDateTimePickerValue($selectDate, new Date()); const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone; const isTimezoneSupported = $selectTimezone.find(`option[value="${browserTimezone}"]`).length > 0; @@ -269,7 +269,7 @@ App.Pages.Booking = (function () { * Event: Timezone "Changed" */ $selectTimezone.on('change', () => { - const date = $selectDate[0]._flatpickr.selectedDates[0]; + const date = App.Utils.UI.getDateTimePickerValue($selectDate); if (!date) { return; @@ -291,7 +291,7 @@ App.Pages.Booking = (function () { App.Http.Booking.getUnavailableDates( $target.val(), $selectService.val(), - moment($selectDate[0]._flatpickr.selectedDates[0]).format('YYYY-MM-DD'), + moment(App.Utils.UI.getDateTimePickerValue($selectDate)).format('YYYY-MM-DD'), ); updateConfirmFrame(); }); @@ -327,7 +327,7 @@ App.Pages.Booking = (function () { App.Http.Booking.getUnavailableDates( $selectProvider.val(), $target.val(), - moment($selectDate[0]._flatpickr.selectedDates[0]).format('YYYY-MM-DD'), + moment(App.Utils.UI.getDateTimePickerValue($selectDate)).format('YYYY-MM-DD'), ); updateConfirmFrame(); @@ -591,7 +591,7 @@ App.Pages.Booking = (function () { } // Appointment Details - let selectedDate = $selectDate[0]._flatpickr.selectedDates[0]; + let selectedDate = App.Utils.UI.getDateTimePickerValue($selectDate); if (selectedDate !== null) { selectedDate = App.Utils.Date.format(selectedDate, vars('date_format'), vars('time_format')); @@ -736,7 +736,7 @@ App.Pages.Booking = (function () { data.appointment = { start_datetime: - moment($selectDate[0]._flatpickr.selectedDates[0]).format('YYYY-MM-DD') + + moment(App.Utils.UI.getDateTimePickerValue($selectDate)).format('YYYY-MM-DD') + ' ' + moment($('.selected-hour').data('value'), 'HH:mm').format('HH:mm') + ':00', @@ -772,7 +772,7 @@ App.Pages.Booking = (function () { ); // Add the duration to the start datetime. - const selectedDate = moment($selectDate[0]._flatpickr.selectedDates[0]).format('YYYY-MM-DD'); + const selectedDate = moment(App.Utils.UI.getDateTimePickerValue($selectDate)).format('YYYY-MM-DD'); const selectedHour = $('.selected-hour').data('value'); // HH:mm @@ -807,7 +807,7 @@ App.Pages.Booking = (function () { // Set Appointment Date const startMoment = moment(appointment.start_datetime); - $selectDate[0]._flatpickr.setDate(startMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($selectDate, startMoment.toDate()); App.Http.Booking.getAvailableHours(startMoment.format('YYYY-MM-DD')); // Apply Customer's Data diff --git a/assets/js/utils/calendar_default_view.js b/assets/js/utils/calendar_default_view.js index 0edabae4..e8e625d5 100755 --- a/assets/js/utils/calendar_default_view.js +++ b/assets/js/utils/calendar_default_view.js @@ -138,10 +138,10 @@ App.Utils.CalendarDefaultView = (function () { // Set the start and end datetime of the appointment. startMoment = moment(appointment.start_datetime); - $appointmentsModal.find('#start-datetime')[0]._flatpickr.setDate(startMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($appointmentsModal.find('#start-datetime'), startMoment.toDate()); endMoment = moment(appointment.end_datetime); - $appointmentsModal.find('#end-datetime')[0]._flatpickr.setDate(endMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($appointmentsModal.find('#end-datetime'), endMoment.toDate()); const customer = appointment.customer; $appointmentsModal.find('#customer-id').val(appointment.id_users_customer); @@ -183,10 +183,16 @@ App.Utils.CalendarDefaultView = (function () { // Apply unavailability data to dialog. $unavailabilitiesModal.find('.modal-header h3').text(lang('edit_unavailability_title')); - $unavailabilitiesModal.find('#unavailability-start')[0]._flatpickr.setDate(startMoment.toDate()); + App.Utils.UI.setDateTimePickerValue( + $unavailabilitiesModal.find('#unavailability-start'), + startMoment.toDate(), + ); + App.Utils.UI.setDateTimePickerValue( + $unavailabilitiesModal.find('#unavailability-end'), + endMoment.toDate(), + ); $unavailabilitiesModal.find('#unavailability-id').val(unavailability.id); $unavailabilitiesModal.find('#unavailability-provider').val(unavailability.id_users_provider); - $unavailabilitiesModal.find('#unavailability-end')[0]._flatpickr.setDate(endMoment.toDate()); $unavailabilitiesModal.find('#unavailability-notes').val(unavailability.notes); $unavailabilitiesModal.modal('show'); } @@ -1057,9 +1063,9 @@ App.Utils.CalendarDefaultView = (function () { $('#unavailability-provider').trigger('change'); - $('#unavailability-start')[0]._flatpickr.setDate(info.start); + App.Utils.UI.setDateTimePickerValue($('#unavailability-start'), info.start); - $('#unavailability-end')[0]._flatpickr.setDate(info.end); + App.Utils.UI.setDateTimePickerValue($('#unavailability-end'), info.end); messageModal.dispose(); }, @@ -1113,8 +1119,11 @@ App.Utils.CalendarDefaultView = (function () { } // Preselect time - $('#start-datetime')[0]._flatpickr.setDate(info.start); - $('#end-datetime')[0]._flatpickr.setDate(App.Pages.Calendar.getSelectionEndDate(info)); + App.Utils.UI.setDateTimePickerValue($('#start-datetime'), info.start); + App.Utils.UI.setDateTimePickerValue( + $('#end-datetime'), + App.Pages.Calendar.getSelectionEndDate(info), + ); messageModal.dispose(); }, @@ -1586,10 +1595,13 @@ App.Utils.CalendarDefaultView = (function () { // Set the start and end datetime of the appointment. const startDatetimeMoment = moment(appointment.start_datetime); - $appointmentsModal.find('#start-datetime')[0]._flatpickr.setDate(startDatetimeMoment.toDate()); + App.Utils.UI.setDateTimePickerValue( + $appointmentsModal.find('#start-datetime'), + startDatetimeMoment.toDate(), + ); const endDatetimeMoment = moment(appointment.end_datetime); - $appointmentsModal.find('#end-datetime')[0]._flatpickr.setDate(endDatetimeMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($appointmentsModal.find('#end-datetime'), endDatetimeMoment.toDate()); const customer = appointment.customer; $appointmentsModal.find('#customer-id').val(appointment.id_users_customer); diff --git a/assets/js/utils/calendar_table_view.js b/assets/js/utils/calendar_table_view.js index 6178dc12..0a0279f4 100755 --- a/assets/js/utils/calendar_table_view.js +++ b/assets/js/utils/calendar_table_view.js @@ -43,25 +43,25 @@ App.Utils.CalendarTableView = (function () { function addEventListeners() { $calendar.on('click', '.calendar-header .btn.previous', () => { const dayInterval = $selectFilterItem.val(); - const currentDate = $selectDate[0]._flatpickr.selectedDates[0]; + const currentDate = App.Utils.UI.getDateTimePickerValue($selectDate); const startDate = moment(currentDate).subtract(1, 'days'); const endDate = startDate.clone().add(dayInterval - 1, 'days'); - $selectDate[0]._flatpickr.setDate(startDate.toDate()); + App.Utils.UI.setDateTimePickerValue($selectDate, startDate.toDate()); createView(startDate.toDate(), endDate.toDate()); }); $calendar.on('click', '.calendar-header .btn.next', () => { const dayInterval = $selectFilterItem.val(); - const currentDate = $selectDate[0]._flatpickr.selectedDates[0]; + const currentDate = App.Utils.UI.getDateTimePickerValue($selectDate); const startDate = moment(currentDate).add(1, 'days'); const endDate = startDate.clone().add(dayInterval - 1, 'days'); - $selectDate[0]._flatpickr.setDate(startDate.toDate()); + App.Utils.UI.setDateTimePickerValue($selectDate, startDate.toDate()); createView(startDate.toDate(), endDate.toDate()); }); $calendarToolbar.on('change', '#select-filter-item', () => { const dayInterval = $selectFilterItem.val(); - const currentDate = $selectDate[0]._flatpickr.selectedDates[0]; + const currentDate = App.Utils.UI.getDateTimePickerValue($selectDate); const startDate = moment(currentDate); const endDate = startDate.clone().add(dayInterval - 1, 'days'); createView(startDate.toDate(), endDate.toDate()); @@ -70,7 +70,7 @@ App.Utils.CalendarTableView = (function () { $calendarToolbar.on('click', '#reload-appointments', () => { // Fetch the events and place them in the existing HTML format. const dayInterval = $selectFilterItem.val(); - const currentDate = $selectDate[0]._flatpickr.selectedDates[0]; + const currentDate = App.Utils.UI.getDateTimePickerValue($selectDate); const startDateMoment = moment(currentDate); const startDate = startDateMoment.toDate(); const endDateMoment = startDateMoment.clone().add(dayInterval - 1, 'days'); @@ -212,10 +212,10 @@ App.Utils.CalendarTableView = (function () { // Set the start and end datetime of the appointment. startMoment = moment(appointment.start_datetime); - $appointmentsModal.find('#start-datetime')[0]._flatpickr.setDate(startMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($appointmentsModal.find('#start-datetime'), startMoment.toDate()); endMoment = moment(appointment.end_datetime); - $appointmentsModal.find('#end-datetime')[0]._flatpickr.setDate(endMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($appointmentsModal.find('#end-datetime'), endMoment.toDate()); const customer = appointment.customer; $appointmentsModal.find('#customer-id').val(appointment.id_users_customer); @@ -257,10 +257,10 @@ App.Utils.CalendarTableView = (function () { // Apply unavailability data to dialog. $unavailabilitiesModal.find('.modal-header h3').text(lang('edit_unavailability_title')); - $unavailabilitiesModal.find('#unavailability-start')[0]._flatpickr.setDate(startMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($('#unavailability-start'), startMoment.toDate()); + App.Utils.UI.setDateTimePickerValue($('#unavailability-end'), endMoment.toDate()); $unavailabilitiesModal.find('#unavailability-id').val(unavailability.id); $unavailabilitiesModal.find('#unavailability-provider').val(unavailability.id_users_provider); - $unavailabilitiesModal.find('#unavailability-end')[0]._flatpickr.setDate(endMoment.toDate()); $unavailabilitiesModal.find('#unavailability-notes').val(unavailability.notes); $unavailabilitiesModal.modal('show'); @@ -1742,9 +1742,8 @@ App.Utils.CalendarTableView = (function () { $('#unavailability-provider').trigger('change'); - $('#unavailability-start')[0]._flatpickr.setDate(info.start); - - $('#unavailability-end')[0]._flatpickr.setDate(info.end); + App.Utils.UI.setDateTimePickerValue($('#unavailability-start'), info.start); + App.Utils.UI.setDateTimePickerValue($('#unavailability-end'), info.end); messageModal.dispose(); }, @@ -1783,8 +1782,11 @@ App.Utils.CalendarTableView = (function () { $selectProvider.trigger('change'); // Preselect time - $('#start-datetime')[0]._flatpickr.setDate(info.start); - $('#end-datetime')[0]._flatpickr.setDate(App.Pages.Calendar.getSelectionEndDate(info)); + App.Utils.UI.setDateTimePickerValue($('#start-datetime'), info.start); + App.Utils.UI.setDateTimePickerValue( + $('#end-datetime'), + App.Pages.Calendar.getSelectionEndDate(info), + ); messageModal.dispose(); }, diff --git a/assets/js/utils/working_plan.js b/assets/js/utils/working_plan.js index 30b81818..dd02937e 100755 --- a/assets/js/utils/working_plan.js +++ b/assets/js/utils/working_plan.js @@ -15,6 +15,8 @@ * This module implements the functionality of working plans. */ App.Utils.WorkingPlan = (function () { + const moment = window.moment; + /** * Class WorkingPlan * @@ -692,10 +694,10 @@ App.Utils.WorkingPlan = (function () { const $workEnd = $(instance.input).closest('tr').find('.work-end'); - const endMoment = moment($workEnd[0]._flatpickr.selectedDates[0]); + const endMoment = moment(App.Utils.UI.getDateTimePickerValue($workEnd)); if (startMoment > endMoment) { - $workEnd[0]._flatpickr.setDate(startMoment.add(1, 'hour').toDate()); + App.Utils.UI.setDateTimePickerValue($workEnd, startMoment.add(1, 'hour').toDate()); } }, }); From ac7ca85b880e76ea2045471bc0440319bc3c6578 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Sat, 6 Jan 2024 11:13:39 +0100 Subject: [PATCH 4/8] Narrow the service selection of the booking page --- application/views/components/booking_type_step.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/components/booking_type_step.php b/application/views/components/booking_type_step.php index 22e5a9d7..225d5c14 100644 --- a/application/views/components/booking_type_step.php +++ b/application/views/components/booking_type_step.php @@ -11,7 +11,7 @@

-
+
-
+
+ +
diff --git a/assets/js/pages/booking.js b/assets/js/pages/booking.js index 7fee4db6..e0c7eb83 100644 --- a/assets/js/pages/booking.js +++ b/assets/js/pages/booking.js @@ -833,6 +833,8 @@ App.Pages.Booking = (function () { } /** + * Update the service description and information. + * * This method updates the HTML content with a brief description of the * user selected service (only if available in db). This is useful for the * customers upon selecting the correct service. @@ -849,41 +851,45 @@ App.Pages.Booking = (function () { ); if (!service) { - return; + return; // Service not found } - $('', { - 'text': App.Utils.String.escapeHtml(service.name), - }).appendTo($serviceDescription); + // Render the additional service information - if (service.description) { - $('
').appendTo($serviceDescription); - - $('', { - 'html': App.Utils.String.escapeHtml(service.description).replaceAll('\n', '
'), - }).appendTo($serviceDescription); - } - - if (service.duration || Number(service.price) > 0 || service.location) { - $('
').appendTo($serviceDescription); - } + const additionalInfoParts = []; if (service.duration) { - $('', { - 'text': '[' + lang('duration') + ' ' + service.duration + ' ' + lang('minutes') + ']', - }).appendTo($serviceDescription); + additionalInfoParts.push(`${lang('duration')}: ${service.duration} ${lang('minutes')}`); } if (Number(service.price) > 0) { - $('', { - 'text': '[' + lang('price') + ' ' + service.price + ' ' + service.currency + ']', - }).appendTo($serviceDescription); + additionalInfoParts.push(`${lang('price')}: ${service.price} ${service.currency}`); } if (service.location) { - $('', { - 'text': '[' + lang('location') + ' ' + service.location + ']', - }).appendTo($serviceDescription); + additionalInfoParts.push(`${lang('location')}: ${service.location}`); + } + + if (additionalInfoParts.length) { + $(` +
+ ${additionalInfoParts.join(', ')} +
+ `).appendTo($serviceDescription); + } + + // Render the service description + + if (service.description.length) { + const escapedDescription = App.Utils.String.escapeHtml(service.description); + + const multiLineDescription = escapedDescription.replaceAll('\n', '
'); + + $(` +
+ ${multiLineDescription} +
+ `).appendTo($serviceDescription); } } From b192b437e0471a33eab80953ec843a6d252cfb56 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Sat, 6 Jan 2024 11:41:43 +0100 Subject: [PATCH 7/8] Patch the Captcha_builder.php for PHP8.2 --- application/libraries/Captcha_builder.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/application/libraries/Captcha_builder.php b/application/libraries/Captcha_builder.php index d06f2aeb..ce61b9d0 100644 --- a/application/libraries/Captcha_builder.php +++ b/application/libraries/Captcha_builder.php @@ -41,6 +41,10 @@ class Captcha_builder * @var array */ protected $lineColor = null; + /** + * @var array + */ + protected $background = null; /** * @var array */ From a02a6118b61e121fa690f9f70482663df6c647b9 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Sat, 6 Jan 2024 12:32:36 +0100 Subject: [PATCH 8/8] Perform styling changes to the public booking page --- .../language/arabic/translations_lang.php | 1 + .../language/bulgarian/translations_lang.php | 1 + .../language/catalan/translations_lang.php | 1 + .../language/chinese/translations_lang.php | 1 + .../language/croatian/translations_lang.php | 1 + .../language/czech/translations_lang.php | 1 + .../language/danish/translations_lang.php | 1 + .../language/dutch/translations_lang.php | 1 + .../language/english/translations_lang.php | 1 + .../language/estonian/translations_lang.php | 1 + .../language/finnish/translations_lang.php | 1 + .../language/french/translations_lang.php | 1 + .../language/german/translations_lang.php | 1 + .../language/greek/translations_lang.php | 1 + .../language/hebrew/translations_lang.php | 1 + .../language/hindi/translations_lang.php | 1 + .../language/hungarian/translations_lang.php | 1 + .../language/italian/translations_lang.php | 1 + .../language/japanese/translations_lang.php | 1 + .../luxembourgish/translations_lang.php | 1 + .../language/marathi/translations_lang.php | 1 + .../language/persian/translations_lang.php | 1 + .../language/polish/translations_lang.php | 1 + .../portuguese-br/translations_lang.php | 1 + .../language/portuguese/translations_lang.php | 1 + .../language/romanian/translations_lang.php | 1 + .../language/russian/translations_lang.php | 1 + .../language/serbian/translations_lang.php | 1 + .../language/slovak/translations_lang.php | 1 + .../language/spanish/translations_lang.php | 1 + .../language/swedish/translations_lang.php | 1 + .../language/turkish/translations_lang.php | 1 + .../views/components/booking_final_step.php | 16 +- .../views/components/booking_type_step.php | 2 +- assets/css/layouts/booking_layout.scss | 6 +- assets/js/pages/booking.js | 210 ++++++++---------- 36 files changed, 144 insertions(+), 122 deletions(-) diff --git a/application/language/arabic/translations_lang.php b/application/language/arabic/translations_lang.php index fa919fc1..5934f0fb 100755 --- a/application/language/arabic/translations_lang.php +++ b/application/language/arabic/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/bulgarian/translations_lang.php b/application/language/bulgarian/translations_lang.php index 2cd079f6..6b0a2479 100755 --- a/application/language/bulgarian/translations_lang.php +++ b/application/language/bulgarian/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/catalan/translations_lang.php b/application/language/catalan/translations_lang.php index ff2315ea..a89f6f2e 100644 --- a/application/language/catalan/translations_lang.php +++ b/application/language/catalan/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/chinese/translations_lang.php b/application/language/chinese/translations_lang.php index ab76491c..839141f5 100755 --- a/application/language/chinese/translations_lang.php +++ b/application/language/chinese/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/croatian/translations_lang.php b/application/language/croatian/translations_lang.php index b2fc177f..31516e31 100644 --- a/application/language/croatian/translations_lang.php +++ b/application/language/croatian/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/czech/translations_lang.php b/application/language/czech/translations_lang.php index 67bee642..bd10ad87 100644 --- a/application/language/czech/translations_lang.php +++ b/application/language/czech/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/danish/translations_lang.php b/application/language/danish/translations_lang.php index 4588eee1..2746ec2f 100755 --- a/application/language/danish/translations_lang.php +++ b/application/language/danish/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/dutch/translations_lang.php b/application/language/dutch/translations_lang.php index c39a12fe..ebbf7899 100755 --- a/application/language/dutch/translations_lang.php +++ b/application/language/dutch/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/english/translations_lang.php b/application/language/english/translations_lang.php index 22f9cec8..a4a00080 100755 --- a/application/language/english/translations_lang.php +++ b/application/language/english/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/estonian/translations_lang.php b/application/language/estonian/translations_lang.php index 5a91c4b0..84663eed 100644 --- a/application/language/estonian/translations_lang.php +++ b/application/language/estonian/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/finnish/translations_lang.php b/application/language/finnish/translations_lang.php index eed35ec0..b6709287 100755 --- a/application/language/finnish/translations_lang.php +++ b/application/language/finnish/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/french/translations_lang.php b/application/language/french/translations_lang.php index b71b3575..0c6ca117 100755 --- a/application/language/french/translations_lang.php +++ b/application/language/french/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/german/translations_lang.php b/application/language/german/translations_lang.php index 102aaf2c..50c658c0 100755 --- a/application/language/german/translations_lang.php +++ b/application/language/german/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/greek/translations_lang.php b/application/language/greek/translations_lang.php index fc3b14f6..bd62092b 100755 --- a/application/language/greek/translations_lang.php +++ b/application/language/greek/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/hebrew/translations_lang.php b/application/language/hebrew/translations_lang.php index 6176e465..9b9d5d83 100644 --- a/application/language/hebrew/translations_lang.php +++ b/application/language/hebrew/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/hindi/translations_lang.php b/application/language/hindi/translations_lang.php index f6f6ea79..5149418d 100755 --- a/application/language/hindi/translations_lang.php +++ b/application/language/hindi/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/hungarian/translations_lang.php b/application/language/hungarian/translations_lang.php index 8a24068c..7360603b 100755 --- a/application/language/hungarian/translations_lang.php +++ b/application/language/hungarian/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/italian/translations_lang.php b/application/language/italian/translations_lang.php index 8a60a06d..ef994d10 100755 --- a/application/language/italian/translations_lang.php +++ b/application/language/italian/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/japanese/translations_lang.php b/application/language/japanese/translations_lang.php index 71fa41f9..6dc3ba35 100755 --- a/application/language/japanese/translations_lang.php +++ b/application/language/japanese/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/luxembourgish/translations_lang.php b/application/language/luxembourgish/translations_lang.php index a5008281..297358c8 100755 --- a/application/language/luxembourgish/translations_lang.php +++ b/application/language/luxembourgish/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/marathi/translations_lang.php b/application/language/marathi/translations_lang.php index 9ae094be..97667b30 100644 --- a/application/language/marathi/translations_lang.php +++ b/application/language/marathi/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/persian/translations_lang.php b/application/language/persian/translations_lang.php index e09e27da..3fa289c2 100644 --- a/application/language/persian/translations_lang.php +++ b/application/language/persian/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/polish/translations_lang.php b/application/language/polish/translations_lang.php index 4114b9b0..6496071f 100755 --- a/application/language/polish/translations_lang.php +++ b/application/language/polish/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/portuguese-br/translations_lang.php b/application/language/portuguese-br/translations_lang.php index 9f40686b..6b898d68 100755 --- a/application/language/portuguese-br/translations_lang.php +++ b/application/language/portuguese-br/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/portuguese/translations_lang.php b/application/language/portuguese/translations_lang.php index 01564c11..a47a537a 100755 --- a/application/language/portuguese/translations_lang.php +++ b/application/language/portuguese/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/romanian/translations_lang.php b/application/language/romanian/translations_lang.php index ea4ffaad..c624e92f 100755 --- a/application/language/romanian/translations_lang.php +++ b/application/language/romanian/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/russian/translations_lang.php b/application/language/russian/translations_lang.php index f97095ae..0a86abb4 100644 --- a/application/language/russian/translations_lang.php +++ b/application/language/russian/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/serbian/translations_lang.php b/application/language/serbian/translations_lang.php index 8cbfb136..0e44470f 100644 --- a/application/language/serbian/translations_lang.php +++ b/application/language/serbian/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/slovak/translations_lang.php b/application/language/slovak/translations_lang.php index 96f66230..6dc43fd9 100755 --- a/application/language/slovak/translations_lang.php +++ b/application/language/slovak/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/spanish/translations_lang.php b/application/language/spanish/translations_lang.php index 6ee70279..33dcb0a0 100755 --- a/application/language/spanish/translations_lang.php +++ b/application/language/spanish/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/swedish/translations_lang.php b/application/language/swedish/translations_lang.php index c9af9406..aade4545 100644 --- a/application/language/swedish/translations_lang.php +++ b/application/language/swedish/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/language/turkish/translations_lang.php b/application/language/turkish/translations_lang.php index e84e61e6..940cce9f 100755 --- a/application/language/turkish/translations_lang.php +++ b/application/language/turkish/translations_lang.php @@ -452,4 +452,5 @@ $lang['label'] = 'Label'; $lang['webhook_saved'] = 'Webhook saved successfully.'; $lang['webhook_deleted'] = 'Webhook deleted successfully.'; $lang['delete_webhook'] = 'Delete Webhook'; +$lang['contact_info'] = 'Contact Info'; // End diff --git a/application/views/components/booking_final_step.php b/application/views/components/booking_final_step.php index bd0abae1..4f696c61 100644 --- a/application/views/components/booking_final_step.php +++ b/application/views/components/booking_final_step.php @@ -11,13 +11,19 @@