From ffb19f113a8f907f299398014cac11ef1f34f53d Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Fri, 20 May 2022 18:03:03 +0200 Subject: [PATCH] Do not display the working plan exception option if no direct provider is selected --- application/config/constants.php | 1 + application/controllers/Calendar.php | 2 +- assets/js/pages/calendar.js | 8 ++++-- assets/js/utils/calendar_default_view.js | 36 +++++++++++++++--------- 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/application/config/constants.php b/application/config/constants.php index d75b062a..16c275c0 100644 --- a/application/config/constants.php +++ b/application/config/constants.php @@ -50,6 +50,7 @@ define('DB_SLUG_PROVIDER', 'provider'); define('DB_SLUG_ADMIN', 'admin'); define('DB_SLUG_SECRETARY', 'secretary'); +define('FILTER_TYPE_ALL', 'all'); define('FILTER_TYPE_PROVIDER', 'provider'); define('FILTER_TYPE_SERVICE', 'service'); diff --git a/application/controllers/Calendar.php b/application/controllers/Calendar.php index 3f443e69..7847758c 100644 --- a/application/controllers/Calendar.php +++ b/application/controllers/Calendar.php @@ -629,7 +629,7 @@ class Calendar extends EA_Controller { $filter_type = request('filter_type'); - if ( ! $filter_type && $record_id !== 'all') + if ( ! $filter_type && $record_id !== FILTER_TYPE_ALL) { json_response([ 'appointments' => [], diff --git a/assets/js/pages/calendar.js b/assets/js/pages/calendar.js index 7c1ab470..8e5cbc3c 100755 --- a/assets/js/pages/calendar.js +++ b/assets/js/pages/calendar.js @@ -26,7 +26,7 @@ App.Pages.Calendar = (function () { $calendarPage.on('click', '#toggle-fullscreen', (event) => { const $toggleFullscreen = $(event.target); const element = document.documentElement; - const isFullScreen = document.fullScreenElement || document.mozFullScreen || document.webkitIsFullScreen; + const isFullScreen = document.fullScreenElement || document.mozFullScreen || document.webkitIsFullScreen || false; if (isFullScreen) { // Exit fullscreen mode. @@ -59,6 +59,10 @@ App.Pages.Calendar = (function () { $insertWorkingPlanException.on('click', () => { const providerId = $('#select-filter-item').val(); + if (providerId === App.Utils.CalendarDefaultView.FILTER_TYPE_ALL) { + return; + } + const provider = vars('available_providers').find((availableProvider) => { return Number(availableProvider.id) === Number(providerId); }); @@ -105,8 +109,6 @@ App.Pages.Calendar = (function () { * This function makes the necessary initialization for the default backend calendar page. * * If this module is used in another page then this function might not be needed. - * - * @param {String} view Optional (default), the calendar view to be loaded. */ function initialize() { // Load and initialize the calendar view. diff --git a/assets/js/utils/calendar_default_view.js b/assets/js/utils/calendar_default_view.js index 742c5bf4..00d05c28 100755 --- a/assets/js/utils/calendar_default_view.js +++ b/assets/js/utils/calendar_default_view.js @@ -27,6 +27,7 @@ App.Utils.CalendarDefaultView = (function () { const $footer = $('#footer'); const $notification = $('#notification'); const $calendarToolbar = $('#calendar-toolbar'); + const FILTER_TYPE_ALL = 'all'; const FILTER_TYPE_PROVIDER = 'provider'; const FILTER_TYPE_SERVICE = 'service'; let fullCalendar = null; @@ -311,6 +312,8 @@ App.Utils.CalendarDefaultView = (function () { $('#enable-sync span').text(lang('enable_sync')); $('#google-sync').prop('disabled', true); } + + $('#insert-working-plan-exception').toggle(providerId !== App.Utils.CalendarDefaultView.FILTER_TYPE_ALL); } $reloadAppointments.trigger('click'); @@ -465,8 +468,8 @@ App.Utils.CalendarDefaultView = (function () { $('', { '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 : '-' }), $('
'), @@ -478,8 +481,8 @@ App.Utils.CalendarDefaultView = (function () { $('', { '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 @@ -494,8 +497,8 @@ App.Utils.CalendarDefaultView = (function () { $('', { '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 @@ -1336,9 +1339,9 @@ App.Utils.CalendarDefaultView = (function () { start: calendarDate.clone().toDate(), end: moment( calendarDate.format('YYYY-MM-DD') + - ' ' + - sortedWorkingPlan[weekdayName].start + - ':00' + ' ' + + sortedWorkingPlan[weekdayName].start + + ':00' ).toDate(), allDay: false, color: '#BEBEBE', @@ -1360,9 +1363,9 @@ App.Utils.CalendarDefaultView = (function () { title: lang('not_working'), start: moment( calendarDate.format('YYYY-MM-DD') + - ' ' + - sortedWorkingPlan[weekdayName].end + - ':00' + ' ' + + sortedWorkingPlan[weekdayName].end + + ':00' ).toDate(), end: calendarDate.clone().add(1, 'day').toDate(), allDay: false, @@ -1594,7 +1597,9 @@ App.Utils.CalendarDefaultView = (function () { // Trigger once to set the proper footer position after calendar initialization. onWindowResize(); - $selectFilterItem.append(new Option(lang('all'), 'all', true, true)); + $selectFilterItem.append(new Option(lang('all'), FILTER_TYPE_ALL, true, true)); + + $('#insert-working-plan-exception').hide(); // Fill the select list boxes of the page. if (vars('available_providers').length > 0) { @@ -1709,6 +1714,9 @@ App.Utils.CalendarDefaultView = (function () { } return { - initialize + initialize, + FILTER_TYPE_ALL, + FILTER_TYPE_PROVIDER, + FILTER_TYPE_SERVICE }; })();