From e66ca622f2f98312c22dcea58aafca91342b20d3 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 22 Oct 2020 13:08:16 +0300 Subject: [PATCH 01/34] Minor change in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e028d322..ae2c6473 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@

- A powerful Open Source Web Scheduler that can be installed on your server. + A powerful Open Source Appointment Scheduler that can be installed on your server.

From 6b44f7eb852c8dc3035025849bbd77fb99849031 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 22 Oct 2020 13:08:21 +0300 Subject: [PATCH 02/34] Updated the screenshot --- screenshot.png | Bin 37734 -> 196815 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot.png b/screenshot.png index 0143887ed3b09e80ece810d4cad4b846cf4912da..919e39deb7812d2419a9825f7177734c9ad13783 100644 GIT binary patch literal 196815 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

{T3u*1xDhlA!WhVW5yfh+U@?CO^vlqK!*G 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 z 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 literal 37734 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 From 90012dffe141b918a6ddd0c779de23c7b944586a Mon Sep 17 00:00:00 2001 From: mokkin Date: Sat, 24 Oct 2020 22:22:35 +0200 Subject: [PATCH 03/34] completed german translations --- .../language/german/translations_lang.php | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/application/language/german/translations_lang.php b/application/language/german/translations_lang.php index 2e366490..c30347cc 100755 --- a/application/language/german/translations_lang.php +++ b/application/language/german/translations_lang.php @@ -301,26 +301,26 @@ $lang['delete_personal_information_hint'] = 'Entfernen Sie alle Ihre Termine und $lang['delete_personal_information'] = 'Persönlichen Informationen löschen'; $lang['delete_personal_information_prompt'] = 'Sind Sie sicher, dass Sie Ihre persönlichen Daten löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.'; $lang['location'] = 'Ort'; -$lang['working_plan_exception'] = 'Working Plan Exception'; -$lang['working_plan_exceptions'] = 'Working Plan Exceptions'; -$lang['working_plan_exceptions_hint'] = 'Add a working plan exception day, outside the working plan.'; -$lang['new_working_plan_exception_title'] = 'New Working Plan Exception'; -$lang['working_plan_exception_saved'] = 'Working plan exception saved successfully.'; -$lang['working_plan_exception_deleted'] = 'Working plan exception deleted successfully.'; -$lang['add_working_plan_exceptions_during_each_day'] = 'Add working plan exceptions, outside the working plan.'; -$lang['add_working_plan_exception'] = 'Add Working Plan Exception'; -$lang['require_phone_number'] = 'Require phone number'; -$lang['require_phone_number_hint'] = 'When enabled, customers and users will need to enter the customer\'s phone number when booking an appointment'; -$lang['check_spam_folder'] = 'Please check your spam folder if the email does not arrive within a few minutes.'; -$lang['api_token_hint'] = 'Set a secret token in order to enable the token based authentication of the Easy!Appointments API.'; -$lang['timezone'] = 'Timezone'; -$lang['overwrite_existing_working_plans'] = 'This will overwrite the existing provider working plans, are you sure that you want to continue?'; -$lang['working_plans_got_updated'] = 'All the working plans got updated.'; -$lang['apply_to_all_providers'] = 'Apply To All Providers'; -$lang['display_any_provider'] = 'Display Any Provider Option'; -$lang['display_any_provider_hint'] = 'The booking page will get an additional option that allows customers to book without specifying a provider.'; -$lang['load_more'] = 'Load More'; -$lang['list'] = 'List'; -$lang['default'] = 'Default'; -$lang['table'] = 'Table'; -$lang['date'] = 'Date'; +$lang['working_plan_exception'] = 'Arbeitsplan Ausnahme'; +$lang['working_plan_exceptions'] = 'Arbeitsplan Ausnahmen'; +$lang['working_plan_exceptions_hint'] = 'Fügt einen Ausnahmetag außerhalb des Arbeitsplans hinzu.'; +$lang['new_working_plan_exception_title'] = 'Neue Ausnahme vom Arbeitsplan'; +$lang['working_plan_exception_saved'] = 'Ausnahme vom Arbeitsplan erfolgreich gespeichert.'; +$lang['working_plan_exception_deleted'] = 'Ausnahme vom Arbeitsplan erfolgreich gelöscht.'; +$lang['add_working_plan_exceptions_during_each_day'] = 'Ausnahmen vom Arbeitsplan für jeden Tag hinzufügen.'; +$lang['add_working_plan_exception'] = 'Ausnahme vom Arbeitsplan hinzufügen'; +$lang['require_phone_number'] = 'Telefonnummer benötigt'; +$lang['require_phone_number_hint'] = 'Wenn aktiviert, müssen Kunden und Benutzer die Telefonnummer des Kunden beim Buchen eines Termins eingeben'; +$lang['check_spam_folder'] = 'Bitte kontrollieren Sie Ihren Spam-Ordner, falss die Email nicht innerhalb weniger Minuten eintrifft.'; +$lang['api_token_hint'] = 'Setze einen geheimen Token um die tokenbasierte Authentifizierung für die Easy!Appointments API zu aktivieren.'; +$lang['timezone'] = 'Zeitzone'; +$lang['overwrite_existing_working_plans'] = 'Dies wird bestehende Arbeitspläne von Anbietern überschreiben. Sind sie sicher?'; +$lang['working_plans_got_updated'] = 'Alle Arbeitspläne wurden aktualisiert.'; +$lang['apply_to_all_providers'] = 'Auf alle Anbieter anwenden'; +$lang['display_any_provider'] = 'Option zum Anzeigen aller Anbieter'; +$lang['display_any_provider_hint'] = 'Es wird eine zusätzliche Option zur Buchungsseite hinzugefügt, die es Kunden ermöglicht zu buchen ohne eine spezifischen Anbieter auszuwählen.'; +$lang['load_more'] = 'Mehr laden'; +$lang['list'] = 'Liste'; +$lang['default'] = 'Standard'; +$lang['table'] = 'Tabelle'; +$lang['date'] = 'Datum'; From 8924e305e6f489628a7a06bb1846f76a317e91d1 Mon Sep 17 00:00:00 2001 From: mokkin Date: Sat, 24 Oct 2020 22:50:52 +0200 Subject: [PATCH 04/34] correct translation --- application/language/german/translations_lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/language/german/translations_lang.php b/application/language/german/translations_lang.php index 2e366490..1bd57dcf 100755 --- a/application/language/german/translations_lang.php +++ b/application/language/german/translations_lang.php @@ -166,7 +166,7 @@ $lang['go_to_booking_page'] = 'Gehe zu Buchungsseite'; $lang['settings_saved'] = 'Einstellungen erfolgreich gesichert.'; $lang['general'] = 'Allgemeines'; $lang['business_logic'] = 'Unternehmerische Logik'; -$lang['current_user'] = 'Laufender Nutzer'; +$lang['current_user'] = 'Aktueller Nutzer'; $lang['about_app'] = 'Über Easy!Appointments'; $lang['edit_working_plan_hint'] = 'Bitte notieren Sie im folgenden die Tage und Zeiten für die das Unternehmen Termine anbietet. Sie können Termine auch für Feiertage festlegen, aber die Kunden können an diesen Tagen keine Buchung durchführen. Dieser Arbeitsplan ist voreingestellt für alle neuen Einschreibungen von Dienstleistern, aber Sie haben die Möglichkeit den Arbeitsplan zu ändern und zwar für jeden Anbieter gesondert, indem Sie seine Einschreibung bearbeiten. Danach fügen Sie die Zeiträume der Pausen hinzu.'; $lang['edit_breaks_hint'] = 'Fügen Sie die betrieblichen Pausen je Tag hinzu. Diese Pausen werden für alle neuen Dienstleister angewendet.'; From d8e5ae539260a1cdd4fc8731580b84a6195a8642 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Tue, 27 Oct 2020 11:29:29 +0200 Subject: [PATCH 05/34] Updated the CHANGELOG.md for v1.4.0 --- CHANGELOG.md | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a66ca83..ee1a4671 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,75 @@ developers to maintain and readjust their custom modifications on the main proje The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +## [1.4.0] - TBA + +## Added + +- #203: Appointment location / 12-hour format / sync notes and location in Google Calendar. +- #221: Fixed/Improved sort breaks increasingly by hour within day. +- #247: Add new system-wide setting for removing the "Any Provider" option of the booking page. +- #251: Automatically populate the appointment end datetime in API. +- #301: Automatically reload the backend calendar events. +- #313: How to set the timezone from the user booking the appointment. +- #365: Only allow appointments for a few weeks in advance. +- #431: Add support for working plan exceptions. +- #471: Add new system-wide setting that enable users to choose the first day of the week. +- #496: Add pagination on every backend page in order to make filter requests faster. +- #501: Integrate script for assets minification. +- #502: Config::DEBUG value toggles the use of normal or minified asset files. +- #546: Add appointment edit link in the backend customers page. +- #550: Multi-Lang Front-End selection popup not working on mobile. +- #551: Front-End booking calendar not syncing with business logic working plan. +- #572: Ensure the database structure is compatible to at least MySQL 5.5. +- #576: Appointment cancelled exception not showing properly. +- #610: Token based authentication for the Rest API. +- #648: Add a warning when customers delete their personal information. +- #655: Creating an appointment requires user to enter their phone number enhancement. +- #659: Automatically detect browser language enhancement. +- #663: Language selector not working under legacy iOS (v.10.3.1). +- #680: Generate new password in the generate_random_string function may create duplicate passwords, plus it is not secure enough. +- #739: Enhance the table view mode by replacing the tables with fullcalendar instances. +- #770: Store customer's language and use it with notifications or when the customer manages and existing appointment. +- #889: Notify admins and secretaries on appointment changes. + + +### Changed + +- #386: Service price should be optional. +- #428: Enable book advance timeout values in days. +- #568: Sort providers alphabetically in the booking page. +- #745: Add appointment notes preview in the event popover. + + +### Fixed + +- #171: Google calendar sync - wrong timezone for appointments. +- #195: Fix Google calendar sync activation error (JavaScript). +- #298: Provider availability issue when selecting the "Any Provider" option. +- #396: Start and end time do not update correctly during calendar time selection on iPad (and other Safari based devices). +- #447: Captcha error using docker (500 error). +- #506: Working plan created in version v1.2.1 wrongly displayed in backend with version v1.3.1. +- #507: Need to manually clean the cache when migrating from v1.2.1 to v1.3.1. +- #541: Can't remove (empty) customer notes field. +- #549: Querying appointments API endpoint with the q parmeter produces PHP warnings. +- #557: App not connecting to MySQL with fresh docker run. +- #562: Unavailability periods with length of more than 1 day are not handled correctly. +- #563: Description field overflows with long text. +- #600: Unable to select Language on mobile phones. +- #611: Double replacement when using translation to other languages. +- #664: Easy!Appointments v1.3.2 allows sensitive information disclosure (username and password hash). +- #687: Errors when the provider modifies an appointment. +- #705: The alert notification of the installation is not being displayed on error. +- #757: Corrected display of datetimepickers when editing events. +- #801: Invalid time duration during appointment registration could lead to DOS of the service. +- #813: Hyperlinks are not being displayed correctly inside legal contents (they are escaped). +- #839: Provider is missing on appointment modal opened after a click on the link sent with the provider email confirmation. +- #840: Start/end datetime are not correctly initialized on Safari when the appointment modal is opened after a click in the backend calendar. +- #883: Appointment date is wrongly changed to today in some case. +- #903: Notification not working when creating/updating/deleting an appointment from the REST API. + + ## [1.3.2] - 2018-07-29 ### Fixed From 632b943392ffd738079c41d140a4fabc3417b674 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Tue, 27 Oct 2020 11:29:51 +0200 Subject: [PATCH 06/34] Use the container class in installation.php --- application/views/general/installation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/general/installation.php b/application/views/general/installation.php index 67a3e925..6d08baec 100755 --- a/application/views/general/installation.php +++ b/application/views/general/installation.php @@ -22,7 +22,7 @@ -
+

Welcome to the Easy!Appointments installation page.

From 39614fc418ca2308730ee62e5f5a221411c8b89e Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Tue, 27 Oct 2020 11:30:03 +0200 Subject: [PATCH 07/34] Corrected the column class of the time selection container --- application/views/appointments/book.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/appointments/book.php b/application/views/appointments/book.php index ec8a3e7f..3115ccaf 100755 --- a/application/views/appointments/book.php +++ b/application/views/appointments/book.php @@ -206,7 +206,7 @@

-
+
From 427886c50f968b8ff3ad3911e1c70a0e5fc8fba6 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Tue, 27 Oct 2020 11:47:32 +0200 Subject: [PATCH 08/34] Minor CHANGELOG.md changes --- CHANGELOG.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee1a4671..26e38e4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,13 +3,9 @@ This file contains the code changes that were introduced into each release (starting from v1.1.0) so that is easy for developers to maintain and readjust their custom modifications on the main project codebase. -The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0) -and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). - - ## [1.4.0] - TBA -## Added +### Added - #203: Appointment location / 12-hour format / sync notes and location in Google Calendar. - #221: Fixed/Improved sort breaks increasingly by hour within day. From ce4dc67c915a595b04f4558abb0d1a4429a6623e Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Tue, 27 Oct 2020 11:49:48 +0200 Subject: [PATCH 09/34] Corrected problem with disabled service fields during service edits --- assets/js/backend_services_helper.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/js/backend_services_helper.js b/assets/js/backend_services_helper.js index a099e0d4..9e747a49 100644 --- a/assets/js/backend_services_helper.js +++ b/assets/js/backend_services_helper.js @@ -98,7 +98,7 @@ $('#services .add-edit-delete-group').hide(); $('#services .save-cancel-group').show(); $('#services .record-details') - .find('input, select textarea') + .find('input, select, textarea') .prop('disabled', false); $('#filter-services button').prop('disabled', true); $('#filter-services .results').css('color', '#AAA'); @@ -156,7 +156,7 @@ $('#services .add-edit-delete-group').hide(); $('#services .save-cancel-group').show(); $('#services .record-details') - .find('input, select textarea') + .find('input, select, textarea') .prop('disabled', false); $('#filter-services button').prop('disabled', true); $('#filter-services .results').css('color', '#AAA'); From cc6b18022ca21dda26492569a24301962afe4691 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:15:12 +0200 Subject: [PATCH 10/34] Ensure that non working days are not processed. --- application/libraries/Availability.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/application/libraries/Availability.php b/application/libraries/Availability.php index 08daad31..55fcf307 100644 --- a/application/libraries/Availability.php +++ b/application/libraries/Availability.php @@ -345,6 +345,11 @@ class Availability { $working_day = strtolower(date('l', strtotime($date))); $working_hours = $working_plan[$working_day]; + if ( ! $working_hours) + { + return []; + } + $periods = [ [ 'start' => new DateTime($date . ' ' . $working_hours['start']), From 25fdd5636d42b90371f223267408f1a954c7a5dd Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:15:38 +0200 Subject: [PATCH 11/34] Corrected wrong parameters order. --- application/controllers/Appointments.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/Appointments.php b/application/controllers/Appointments.php index 5a6c117d..d948afdb 100755 --- a/application/controllers/Appointments.php +++ b/application/controllers/Appointments.php @@ -365,7 +365,7 @@ class Appointments extends CI_Controller { // that will provide the requested service. if ($provider_id === ANY_PROVIDER) { - $provider_id = $this->search_any_provider($service_id, $selected_date); + $provider_id = $this->search_any_provider($selected_date, $service_id); if ($provider_id === NULL) { From 35f8553300ff702b36305903d64524e790f91222 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:15:52 +0200 Subject: [PATCH 12/34] Added missing comma to selector. --- assets/js/backend_categories_helper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/backend_categories_helper.js b/assets/js/backend_categories_helper.js index 4ac5a3ee..47ac674c 100644 --- a/assets/js/backend_categories_helper.js +++ b/assets/js/backend_categories_helper.js @@ -93,7 +93,7 @@ $('#edit-category').on('click', function () { $('#categories .add-edit-delete-group').hide(); $('#categories .save-cancel-group').show(); - $('#categories .record-details').find('input, select, textarea').prop('disbaled', false); + $('#categories .record-details').find('input, select, textarea').prop('disabled', false); $('#filter-categories button').prop('disabled', true); $('#filter-categories .results').css('color', '#AAA'); }); From d13df8f8e12719b03668aff04218225bdffa3033 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:16:23 +0200 Subject: [PATCH 13/34] Corrected condition fallback value in Categories.php API controller --- application/controllers/api/v1/Categories.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/api/v1/Categories.php b/application/controllers/api/v1/Categories.php index 3e1c8b86..6e9d3aca 100644 --- a/application/controllers/api/v1/Categories.php +++ b/application/controllers/api/v1/Categories.php @@ -71,7 +71,7 @@ class Categories extends API_V1_Controller { { try { - $condition = $id !== NULL ? 'id = ' . $id : ''; + $condition = $id !== NULL ? 'id = ' . $id : NULL; $categories = $this->services_model->get_all_categories($condition); if ($id !== NULL && count($categories) === 0) From d239435618f7e897fecd2700ec7d115573185362 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:16:38 +0200 Subject: [PATCH 14/34] Corrected typo in .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index e0de0c53..f8d1dd06 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,7 @@ !/storage/sessions/.htaccess !/storage/sessions/index.html /storage/uploads/* -/!storage/uploads/index.html +!/storage/uploads/index.html /vendor/ /metafile .DS_Store From 423edc80c868f570091845746b642781ea2bd258 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:18:07 +0200 Subject: [PATCH 15/34] Include dev composer dependencies in the build package as it may be needed for troubleshooting in production --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 0e3f2faf..5ec3f8c1 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -45,7 +45,7 @@ gulp.task('build', (done) => { fs.copySync('README.md', 'build/README.md'); fs.copySync('LICENSE', 'build/LICENSE'); - execSync('cd build && composer install --no-dev --no-interaction --no-scripts --optimize-autoloader', function (err, stdout, stderr) { + execSync('cd build && composer install --no-interaction --no-scripts --optimize-autoloader', function (err, stdout, stderr) { console.log(stdout); console.log(stderr); }); From 0c20363b8bf7e75b4bf4d4647bdb4cfa435530fa Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:46:51 +0200 Subject: [PATCH 16/34] Correction in the Appointments check datetime availability method --- application/controllers/Appointments.php | 18 +++++------------- application/libraries/Availability.php | 2 +- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/application/controllers/Appointments.php b/application/controllers/Appointments.php index d948afdb..0997af48 100755 --- a/application/controllers/Appointments.php +++ b/application/controllers/Appointments.php @@ -578,23 +578,15 @@ class Appointments extends CI_Controller { $provider = $this->providers_model->get_row($appointment['id_users_provider']); - $available_periods = $this->availability->get_available_periods($date, $provider, $exclude_appointment_id); + $available_hours = $this->availability->get_available_hours($date, $service, $provider, $exclude_appointment_id); $is_still_available = FALSE; - foreach ($available_periods as $available_period) + $appointment_hour = date('H:i', strtotime($appointment['start_datetime'])); + + foreach ($available_hours as $available_hour) { - $appointment_start = new DateTime($appointment['start_datetime']); - $appointment_start = $appointment_start->format('H:i'); - - $appointment_end = new DateTime($appointment['start_datetime']); - $appointment_end->add(new DateInterval('PT' . $service['duration'] . 'M')); - $appointment_end = $appointment_end->format('H:i'); - - $available_period_start = date('H:i', strtotime($available_period['start'])); - $available_period_end = date('H:i', strtotime($available_period['end'])); - - if ($available_period_start <= $appointment_start && $available_period_end >= $appointment_end) + if ($appointment_hour === $available_hour) { $is_still_available = TRUE; break; diff --git a/application/libraries/Availability.php b/application/libraries/Availability.php index 55fcf307..a06539ef 100644 --- a/application/libraries/Availability.php +++ b/application/libraries/Availability.php @@ -79,7 +79,7 @@ class Availability { * * @throws Exception */ - public function get_available_periods( + protected function get_available_periods( $date, $provider, $exclude_appointment_id = NULL From 8842e2d9181b5c9df337a564febcb2da03dc1b2a Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:47:15 +0200 Subject: [PATCH 17/34] Update session date based on the current user settings page updates --- application/controllers/Backend_api.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/application/controllers/Backend_api.php b/application/controllers/Backend_api.php index 5a6e7896..0f5992ed 100755 --- a/application/controllers/Backend_api.php +++ b/application/controllers/Backend_api.php @@ -1565,7 +1565,15 @@ class Backend_api extends CI_Controller { $this->load->model('user_model'); - $this->user_model->save_user(json_decode($this->input->post('settings'), TRUE)); + $settings = json_decode($this->input->post('settings'), TRUE); + + $this->user_model->save_user($settings); + + $this->session->set_userdata([ + 'user_email' => $settings['email'], + 'username' => $settings['settings']['username'], + 'timezone' => $settings['timezone'], + ]); } } From 39c8ec9068ad134f3c3cf830586620ef43a26d45 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:51:10 +0200 Subject: [PATCH 18/34] Groupped load commands in model constructor methods --- application/models/Admins_model.php | 14 ++++++++------ application/models/Appointments_model.php | 20 ++++++++++++-------- application/models/Customers_model.php | 15 +++++++++++---- application/models/Providers_model.php | 15 +++++++++++---- application/models/Secretaries_model.php | 17 +++++++++++------ application/models/Services_model.php | 19 +++++++++++++------ application/models/User_model.php | 20 +++++++++++++------- 7 files changed, 79 insertions(+), 41 deletions(-) diff --git a/application/models/Admins_model.php b/application/models/Admins_model.php index 37b5a540..83a644d6 100644 --- a/application/models/Admins_model.php +++ b/application/models/Admins_model.php @@ -22,6 +22,14 @@ * @package Models */ class Admins_Model extends CI_Model { + public function __construct() + { + parent::__construct(); + + $this->load->helper('general'); + $this->load->helper('data_validation'); + } + /** * Add (insert or update) an admin user record into database. * @@ -63,8 +71,6 @@ class Admins_Model extends CI_Model { */ public function validate($admin) { - $this->load->helper('data_validation'); - // If a record id is provided then check whether the record exists in the database. if (isset($admin['id'])) { @@ -227,8 +233,6 @@ class Admins_Model extends CI_Model { */ protected function insert($admin) { - $this->load->helper('general'); - $admin['id_roles'] = $this->get_admin_role_id(); $settings = $admin['settings']; unset($admin['settings']); @@ -278,8 +282,6 @@ class Admins_Model extends CI_Model { */ protected function update($admin) { - $this->load->helper('general'); - $settings = $admin['settings']; unset($admin['settings']); $settings['id_users'] = $admin['id']; diff --git a/application/models/Appointments_model.php b/application/models/Appointments_model.php index 5f86f8c5..8b49cde5 100644 --- a/application/models/Appointments_model.php +++ b/application/models/Appointments_model.php @@ -20,6 +20,18 @@ * @package Models */ class Appointments_Model extends CI_Model { + /** + * Appointments_Model constructor. + */ + public function __construct() + { + parent::__construct(); + + $this->load->helper('data_validation'); + + $this->load->library('timezones'); + } + /** * Add an appointment record to the database. * @@ -61,8 +73,6 @@ class Appointments_Model extends CI_Model { */ public function validate($appointment) { - $this->load->helper('data_validation'); - // If a appointment id is given, check whether the record exists in the database. if (isset($appointment['id'])) { @@ -310,8 +320,6 @@ class Appointments_Model extends CI_Model { $appointment = $this->db->get_where('appointments', ['id' => $appointment_id])->row_array(); - $this->load->library('timezones'); - $appointment = $this->timezones->convert_event_timezone($appointment); return $appointment; @@ -356,8 +364,6 @@ class Appointments_Model extends CI_Model { throw new Exception('The given field name does not exist in the database: ' . $field_name); } - $this->load->library('timezones'); - $row_data = $this->timezones->convert_event_timezone($row_data); return $row_data[$field_name]; @@ -393,8 +399,6 @@ class Appointments_Model extends CI_Model { $appointments = $this->db->get('appointments', $limit, $offset)->result_array(); - $this->load->library('timezones'); - foreach ($appointments as &$appointment) { $appointment = $this->timezones->convert_event_timezone($appointment); diff --git a/application/models/Customers_model.php b/application/models/Customers_model.php index d11fa165..94409bed 100644 --- a/application/models/Customers_model.php +++ b/application/models/Customers_model.php @@ -20,6 +20,16 @@ * @package Models */ class Customers_Model extends CI_Model { + /** + * Customers_Model constructor. + */ + public function __construct() + { + parent::__construct(); + + $this->load->helper('data_validation'); + } + /** * Add a customer record to the database. * @@ -68,10 +78,7 @@ class Customers_Model extends CI_Model { */ public function validate($customer) { - $this->load->helper('data_validation'); - - // If a customer id is provided, check whether the record - // exist in the database. + // If a customer id is provided, check whether the record exist in the database. if (isset($customer['id'])) { $num_rows = $this->db->get_where('users', diff --git a/application/models/Providers_model.php b/application/models/Providers_model.php index cf354cd8..bac0b4b5 100755 --- a/application/models/Providers_model.php +++ b/application/models/Providers_model.php @@ -22,6 +22,17 @@ * @package Models */ class Providers_Model extends CI_Model { + /** + * Providers_Model constructor. + */ + public function __construct() + { + parent::__construct(); + + $this->load->helper('data_validation'); + $this->load->helper('general'); + } + /** * Add (insert - update) a service provider record. * @@ -66,7 +77,6 @@ class Providers_Model extends CI_Model { */ public function validate($provider) { - $this->load->helper('data_validation'); // If a provider id is present, check whether the record exist in the database. if (isset($provider['id'])) @@ -254,7 +264,6 @@ class Providers_Model extends CI_Model { */ protected function insert($provider) { - $this->load->helper('general'); // Get provider role id. $provider['id_roles'] = $this->get_providers_role_id(); @@ -394,8 +403,6 @@ class Providers_Model extends CI_Model { */ protected function update($provider) { - $this->load->helper('general'); - // Store service and settings (must not be present on the $provider array). $services = $provider['services']; unset($provider['services']); diff --git a/application/models/Secretaries_model.php b/application/models/Secretaries_model.php index 861a20a0..d08f7891 100644 --- a/application/models/Secretaries_model.php +++ b/application/models/Secretaries_model.php @@ -22,6 +22,17 @@ * @package Models */ class Secretaries_Model extends CI_Model { + /** + * Secretaries_Model constructor. + */ + public function __construct() + { + parent::__construct(); + + $this->load->helper('general'); + $this->load->helper('data_validation'); + } + /** * Add (insert or update) a secretary user record into database. * @@ -63,8 +74,6 @@ class Secretaries_Model extends CI_Model { */ public function validate($secretary) { - $this->load->helper('data_validation'); - // If a record id is provided then check whether the record exists in the database. if (isset($secretary['id'])) { @@ -233,8 +242,6 @@ class Secretaries_Model extends CI_Model { */ protected function insert($secretary) { - $this->load->helper('general'); - $providers = $secretary['providers']; unset($secretary['providers']); $settings = $secretary['settings']; @@ -358,8 +365,6 @@ class Secretaries_Model extends CI_Model { */ protected function update($secretary) { - $this->load->helper('general'); - $providers = $secretary['providers']; unset($secretary['providers']); $settings = $secretary['settings']; diff --git a/application/models/Services_model.php b/application/models/Services_model.php index df6d101a..b6767493 100644 --- a/application/models/Services_model.php +++ b/application/models/Services_model.php @@ -20,6 +20,16 @@ * @package Models */ class Services_Model extends CI_Model { + /** + * Services_Model constructor. + */ + public function __construct() + { + parent::__construct(); + + $this->load->helper('data_validation'); + } + /** * Add (insert or update) a service record on the database * @@ -55,14 +65,11 @@ class Services_Model extends CI_Model { */ public function validate($service) { - $this->load->helper('data_validation'); - - // If record id is provided we need to check whether the record exists - // in the database. + // If record id is provided we need to check whether the record exists in the database. if (isset($service['id'])) { - $num_rows = $this->db->get_where('services', ['id' => $service['id']]) - ->num_rows(); + $num_rows = $this->db->get_where('services', ['id' => $service['id']])->num_rows(); + if ($num_rows == 0) { throw new Exception('Provided service id does not exist in the database.'); diff --git a/application/models/User_model.php b/application/models/User_model.php index 417734aa..64db2564 100644 --- a/application/models/User_model.php +++ b/application/models/User_model.php @@ -22,6 +22,19 @@ * @package Models */ class User_Model extends CI_Model { + /** + * User_Model constructor. + */ + public function __construct() + { + parent::__construct(); + + $this->load->library('timezones'); + + $this->load->helper('general'); + $this->load->helper('string'); + } + /** * Returns the user from the database for the "settings" page. * @@ -53,7 +66,6 @@ class User_Model extends CI_Model { // Prepare user password (hash). if (isset($user_settings['password'])) { - $this->load->helper('general'); $salt = $this->db->get_where('user_settings', ['id_users' => $user['id']])->row()->salt; $user_settings['password'] = hash_password($salt, $user_settings['password']); } @@ -81,7 +93,6 @@ class User_Model extends CI_Model { */ public function check_login($username, $password) { - $this->load->helper('general'); $salt = $this->get_salt($username); $password = hash_password($salt, $password); @@ -109,8 +120,6 @@ class User_Model extends CI_Model { return NULL; } - $this->load->library('timezones'); - $default_timezone = $this->timezones->get_default_timezone(); return [ @@ -167,9 +176,6 @@ class User_Model extends CI_Model { */ public function regenerate_password($username, $email) { - $this->load->helper('general'); - $this->load->helper('string'); - $result = $this->db ->select('users.id') ->from('users') From e8556e033999372086e2ef280cf72f28f455627a Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Thu, 12 Nov 2020 14:55:03 +0200 Subject: [PATCH 19/34] jQuery needs to be defined before being used in the login page. --- application/views/user/login.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/application/views/user/login.php b/application/views/user/login.php index 4cffdddc..45c52e19 100644 --- a/application/views/user/login.php +++ b/application/views/user/login.php @@ -15,6 +15,11 @@ + + + + + - - - - -
From 46da3d1fa83fe894c333b68339431ea76d9b3d19 Mon Sep 17 00:00:00 2001 From: Alejandro <24446995+0xalen@users.noreply.github.com> Date: Sat, 14 Nov 2020 20:55:15 -0300 Subject: [PATCH 20/34] Update translations_lang.php Add remaining translations about working plans. Special mention about secretaries. In Spanish it might be worth to use 'Secretario/as' as a reference to both sexes to avoid issues with the users. --- .../language/spanish/translations_lang.php | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/application/language/spanish/translations_lang.php b/application/language/spanish/translations_lang.php index 5c2ac1f6..960e32cd 100755 --- a/application/language/spanish/translations_lang.php +++ b/application/language/spanish/translations_lang.php @@ -117,7 +117,7 @@ $lang['description'] = 'Descripción'; $lang['categories'] = 'Categorías'; $lang['admins'] = 'Administradores'; $lang['providers'] = 'Proveedores'; -$lang['secretaries'] = 'Secretarias'; +$lang['secretaries'] = 'Secretarios/as'; $lang['mobile_number'] = 'Número de teléfono móvil'; $lang['state'] = 'Estado'; $lang['username'] = 'Nombre de usuario'; @@ -142,15 +142,15 @@ $lang['working_plan'] = 'Esquema del horario laboral'; $lang['reset_plan'] = 'Restaurar el esquema del horario laboral'; $lang['monday'] = 'Lunes'; $lang['tuesday'] = 'Martes'; -$lang['wednesday'] = 'Miercoles'; +$lang['wednesday'] = 'Miércoles'; $lang['thursday'] = 'Jueves'; $lang['friday'] = 'Viernes'; -$lang['saturday'] = 'Sabado'; +$lang['saturday'] = 'Sábado'; $lang['sunday'] = 'Domingo'; $lang['breaks'] = 'Periodos de descanso'; $lang['add_breaks_during_each_day'] = 'Agregar periodos de descanso para cada día. Durante los periodos de descanso los proveedores no podrán aceptar ninguna cita.'; $lang['day'] = 'Día'; -$lang['days'] = 'Days'; +$lang['days'] = 'Días'; $lang['actions'] = 'Acciones'; $lang['reset_working_plan_hint'] = 'Restaurar el esquema del horario laboral a los valores por defecto.'; $lang['company_name'] = 'Nombre de la empresa'; @@ -273,12 +273,12 @@ $lang['date_format'] = 'Formato de Fecha'; $lang['date_format_hint'] = 'Cambia el formato de fecha para mostrar (D - Día, M - Mes, Y - Año).'; $lang['time_format'] = ''; $lang['time_format_hint'] = ''; -$lang['first_weekday'] = 'First day of week'; -$lang['first_weekday_hint'] = 'Set the first day of the calendar week.'; +$lang['first_weekday'] = 'Primer día de la semana'; +$lang['first_weekday_hint'] = 'Defina el primer día de la semana en el calendario.'; $lang['google_analytics_code_hint'] = 'Agrega tu ID de Google Analytics para ser incluido en la página de reservas.'; $lang['availabilities_type'] = 'Tipos disponibles'; $lang['flexible'] = 'Flexible'; -$lang['fixed'] = 'Fixed'; +$lang['fixed'] = 'Fijo'; $lang['attendants_number'] = 'Número de Atenciones'; $lang['reset_working_plan'] = 'Reinicia el plan de trabajo a los valores por defecto.'; $lang['legal_contents'] = 'Contenidos legales'; @@ -297,27 +297,27 @@ $lang['read_and_agree_to_privacy_policy'] = 'He leido y estoy de acuerdo con {$l $lang['delete_personal_information_hint'] = 'Borrar toda la información personal del sistema.'; $lang['delete_personal_information'] = 'Borrar información personal'; $lang['delete_personal_information_prompt'] = '¿Estás seguro que quieres borrar tu información personal? Esta acción no se puede deshacer.'; -$lang['location'] = 'Location'; -$lang['working_plan_exception'] = 'Working Plan Exception'; -$lang['working_plan_exceptions'] = 'Working Plan Exceptions'; -$lang['working_plan_exceptions_hint'] = 'Add a working plan exception day, outside the working plan.'; -$lang['new_working_plan_exception_title'] = 'New Working Plan Exception'; -$lang['working_plan_exception_saved'] = 'Working plan exception saved successfully.'; -$lang['working_plan_exception_deleted'] = 'Working plan exception deleted successfully.'; -$lang['add_working_plan_exceptions_during_each_day'] = 'Add working plan exceptions, outside the working plan.'; -$lang['add_working_plan_exception'] = 'Add Working Plan Exception'; -$lang['require_phone_number'] = 'Require phone number'; -$lang['require_phone_number_hint'] = 'When enabled, customers and users will need to enter the customer\'s phone number when booking an appointment'; -$lang['check_spam_folder'] = 'Please check your spam folder if the email does not arrive within a few minutes.'; -$lang['api_token_hint'] = 'Set a secret token in order to enable the token based authentication of the Easy!Appointments API.'; -$lang['timezone'] = 'Timezone'; -$lang['overwrite_existing_working_plans'] = 'This will overwrite the existing provider working plans, are you sure that you want to continue?'; -$lang['working_plans_got_updated'] = 'All the working plans got updated.'; -$lang['apply_to_all_providers'] = 'Apply To All Providers'; -$lang['display_any_provider'] = 'Display Any Provider Option'; -$lang['display_any_provider_hint'] = 'The booking page will get an additional option that allows customers to book without specifying a provider.'; -$lang['load_more'] = 'Load More'; -$lang['list'] = 'List'; -$lang['default'] = 'Default'; -$lang['table'] = 'Table'; -$lang['date'] = 'Date'; +$lang['location'] = 'Ubicación'; +$lang['working_plan_exception'] = 'Excepción al plan de trabajo'; +$lang['working_plan_exceptions'] = 'Excepciones al plan de trabajo'; +$lang['working_plan_exceptions_hint'] = 'Agregar un día de excepción al plan de trabajo, fuera del plan de trabajo.'; +$lang['new_working_plan_exception_title'] = 'Nueva excepción al plan de trabajo.'; +$lang['working_plan_exception_saved'] = 'Plan de trabajo eliminado exitosamente.'; +$lang['working_plan_exception_deleted'] = 'Plan de trabajo eliminado exitosamente.'; +$lang['add_working_plan_exceptions_during_each_day'] = 'Agregar excepciones al plan de trabajo, fuera del plan de trabajo.'; +$lang['add_working_plan_exception'] = 'Agregar excepción al plan de trabajo'; +$lang['require_phone_number'] = 'Requerir número de teléfono'; +$lang['require_phone_number_hint'] = 'Cuando está habilitado, clientes y usuarios deberán ingresar el número de teléfono del cliente al registrar una cita.'; +$lang['check_spam_folder'] = 'Por favor, verifique su carpeta de correo no deseado si el correo no llega dentro de unos minutos.'; +$lang['api_token_hint'] = 'Defina un token secreto para habilitar la autentificación por token mediante la API de Easy!Appointments.'; +$lang['timezone'] = 'Zona horaria'; +$lang['overwrite_existing_working_plans'] = 'Esto sobreescribirá los planes de trabajo existentes del proveedor. ¿Seguro que desea continuar?'; +$lang['working_plans_got_updated'] = 'Todos los planes de trabajo fueron actualizados.'; +$lang['apply_to_all_providers'] = 'Aplicar a todos los proveedores'; +$lang['display_any_provider'] = 'Opción de mostrar cualquier proveedor'; +$lang['display_any_provider_hint'] = 'La página de reserva tendrá una opción adicional que permitirá que los clientes se anoten sin específicar un proveedor.'; +$lang['load_more'] = 'Cargar más'; +$lang['list'] = 'Lista'; +$lang['default'] = 'Predeterminado'; +$lang['table'] = 'Tabla'; +$lang['date'] = 'Fecha'; From 6e66eb4fd8072e81b2b5f907bfa9d4b04cd6eae4 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Fri, 13 Nov 2020 11:00:57 +0200 Subject: [PATCH 21/34] Consistent module naming throughout the app --- application/controllers/Appointments.php | 18 +++++++++--------- application/controllers/Backend.php | 18 +++++++++--------- application/controllers/Backend_api.php | 18 +++++++++--------- application/controllers/Captcha.php | 18 +++++++++--------- application/controllers/Consents.php | 18 +++++++++--------- application/controllers/Errors.php | 18 +++++++++--------- application/controllers/Google.php | 18 +++++++++--------- application/controllers/Installation.php | 18 +++++++++--------- application/controllers/Privacy.php | 18 +++++++++--------- application/controllers/User.php | 18 +++++++++--------- application/controllers/api/v1/Admins.php | 18 +++++++++--------- .../controllers/api/v1/Appointments.php | 18 +++++++++--------- .../controllers/api/v1/Availabilities.php | 18 +++++++++--------- application/controllers/api/v1/Categories.php | 18 +++++++++--------- application/controllers/api/v1/Customers.php | 18 +++++++++--------- application/controllers/api/v1/Providers.php | 18 +++++++++--------- application/controllers/api/v1/Secretaries.php | 18 +++++++++--------- application/controllers/api/v1/Services.php | 18 +++++++++--------- application/controllers/api/v1/Settings.php | 18 +++++++++--------- .../controllers/api/v1/Unavailabilities.php | 18 +++++++++--------- application/models/Admins_model.php | 2 +- application/models/Appointments_model.php | 2 +- application/models/Customers_model.php | 8 ++++---- application/models/Providers_model.php | 2 +- application/models/Roles_model.php | 2 +- application/models/Secretaries_model.php | 2 +- application/models/Services_model.php | 2 +- application/models/Settings_model.php | 2 +- application/models/User_model.php | 2 +- 29 files changed, 192 insertions(+), 192 deletions(-) diff --git a/application/controllers/Appointments.php b/application/controllers/Appointments.php index 0997af48..72bc7300 100755 --- a/application/controllers/Appointments.php +++ b/application/controllers/Appointments.php @@ -25,15 +25,15 @@ * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * @property Timezones $timezones * @property Synchronization $synchronization * @property Notifications $notifications diff --git a/application/controllers/Backend.php b/application/controllers/Backend.php index 10036304..82c30f83 100755 --- a/application/controllers/Backend.php +++ b/application/controllers/Backend.php @@ -25,16 +25,16 @@ * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/Backend_api.php b/application/controllers/Backend_api.php index 0f5992ed..28e85b11 100755 --- a/application/controllers/Backend_api.php +++ b/application/controllers/Backend_api.php @@ -32,18 +32,18 @@ use EA\Engine\Types\Url; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones * @property Synchronization $synchronization * @property Notifications $notifications - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/Captcha.php b/application/controllers/Captcha.php index 897aa0fa..d62cd2af 100644 --- a/application/controllers/Captcha.php +++ b/application/controllers/Captcha.php @@ -25,16 +25,16 @@ * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/Consents.php b/application/controllers/Consents.php index bd8e4fb2..4b17d035 100644 --- a/application/controllers/Consents.php +++ b/application/controllers/Consents.php @@ -27,17 +27,17 @@ * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model * @property Consents_Model consents_model - * @property Settings_Model $settings_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/Errors.php b/application/controllers/Errors.php index 425a35ed..eeb05831 100644 --- a/application/controllers/Errors.php +++ b/application/controllers/Errors.php @@ -25,16 +25,16 @@ * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/Google.php b/application/controllers/Google.php index 455d8908..365af13e 100644 --- a/application/controllers/Google.php +++ b/application/controllers/Google.php @@ -27,16 +27,16 @@ * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/Installation.php b/application/controllers/Installation.php index bfb2c5a6..fb0658b0 100644 --- a/application/controllers/Installation.php +++ b/application/controllers/Installation.php @@ -28,16 +28,16 @@ * @property CI_Migration migration * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/Privacy.php b/application/controllers/Privacy.php index cf8647f3..7e744afa 100644 --- a/application/controllers/Privacy.php +++ b/application/controllers/Privacy.php @@ -25,16 +25,16 @@ * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/User.php b/application/controllers/User.php index 4223773e..ef4ae4a0 100644 --- a/application/controllers/User.php +++ b/application/controllers/User.php @@ -29,16 +29,16 @@ use EA\Engine\Types\NonEmptyText; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Admins.php b/application/controllers/api/v1/Admins.php index d2dcaf51..b33ed085 100644 --- a/application/controllers/api/v1/Admins.php +++ b/application/controllers/api/v1/Admins.php @@ -31,16 +31,16 @@ use EA\Engine\Types\NonEmptyText; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Appointments.php b/application/controllers/api/v1/Appointments.php index 4a7ae2b8..7914ffba 100644 --- a/application/controllers/api/v1/Appointments.php +++ b/application/controllers/api/v1/Appointments.php @@ -31,18 +31,18 @@ use EA\Engine\Types\NonEmptyText; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones * @property Notifications $notifications * @property Synchronization $synchronization - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Availabilities.php b/application/controllers/api/v1/Availabilities.php index a7840228..de0dfc3a 100644 --- a/application/controllers/api/v1/Availabilities.php +++ b/application/controllers/api/v1/Availabilities.php @@ -30,16 +30,16 @@ use EA\Engine\Types\UnsignedInteger; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Categories.php b/application/controllers/api/v1/Categories.php index 6e9d3aca..8272ae7c 100644 --- a/application/controllers/api/v1/Categories.php +++ b/application/controllers/api/v1/Categories.php @@ -31,16 +31,16 @@ use EA\Engine\Types\NonEmptyText; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Customers.php b/application/controllers/api/v1/Customers.php index ce95ea8e..713429d6 100644 --- a/application/controllers/api/v1/Customers.php +++ b/application/controllers/api/v1/Customers.php @@ -31,16 +31,16 @@ use EA\Engine\Types\NonEmptyText; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Providers.php b/application/controllers/api/v1/Providers.php index fe342cbb..6a960371 100644 --- a/application/controllers/api/v1/Providers.php +++ b/application/controllers/api/v1/Providers.php @@ -31,16 +31,16 @@ use EA\Engine\Types\NonEmptyText; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Secretaries.php b/application/controllers/api/v1/Secretaries.php index fcff6060..e858b66e 100644 --- a/application/controllers/api/v1/Secretaries.php +++ b/application/controllers/api/v1/Secretaries.php @@ -31,16 +31,16 @@ use EA\Engine\Types\NonEmptyText; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Services.php b/application/controllers/api/v1/Services.php index 0aace4a0..43124067 100644 --- a/application/controllers/api/v1/Services.php +++ b/application/controllers/api/v1/Services.php @@ -31,16 +31,16 @@ use EA\Engine\Types\NonEmptyText; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Settings.php b/application/controllers/api/v1/Settings.php index 2936d4f4..6ba755d4 100644 --- a/application/controllers/api/v1/Settings.php +++ b/application/controllers/api/v1/Settings.php @@ -30,16 +30,16 @@ use EA\Engine\Api\V1\Response; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/controllers/api/v1/Unavailabilities.php b/application/controllers/api/v1/Unavailabilities.php index c1d81b9c..88d224d6 100644 --- a/application/controllers/api/v1/Unavailabilities.php +++ b/application/controllers/api/v1/Unavailabilities.php @@ -31,16 +31,16 @@ use EA\Engine\Types\NonEmptyText; * @property CI_Security $security * @property Google_Sync $google_sync * @property Ics_file $ics_file - * @property Appointments_Model $appointments_model - * @property Providers_Model $providers_model - * @property Services_Model $services_model - * @property Customers_Model $customers_model - * @property Settings_Model $settings_model + * @property Appointments_model $appointments_model + * @property Providers_model $providers_model + * @property Services_model $services_model + * @property Customers_model $customers_model + * @property Settings_model $settings_model * @property Timezones $timezones - * @property Roles_Model $roles_model - * @property Secretaries_Model $secretaries_model - * @property Admins_Model $admins_model - * @property User_Model $user_model + * @property Roles_model $roles_model + * @property Secretaries_model $secretaries_model + * @property Admins_model $admins_model + * @property User_model $user_model * * @package Controllers */ diff --git a/application/models/Admins_model.php b/application/models/Admins_model.php index 83a644d6..9e6b1efd 100644 --- a/application/models/Admins_model.php +++ b/application/models/Admins_model.php @@ -21,7 +21,7 @@ * * @package Models */ -class Admins_Model extends CI_Model { +class Admins_model extends CI_Model { public function __construct() { parent::__construct(); diff --git a/application/models/Appointments_model.php b/application/models/Appointments_model.php index 8b49cde5..4c4af32f 100644 --- a/application/models/Appointments_model.php +++ b/application/models/Appointments_model.php @@ -19,7 +19,7 @@ * * @package Models */ -class Appointments_Model extends CI_Model { +class Appointments_model extends CI_Model { /** * Appointments_Model constructor. */ diff --git a/application/models/Customers_model.php b/application/models/Customers_model.php index 94409bed..cb44ad13 100644 --- a/application/models/Customers_model.php +++ b/application/models/Customers_model.php @@ -19,7 +19,7 @@ * * @package Models */ -class Customers_Model extends CI_Model { +class Customers_model extends CI_Model { /** * Customers_Model constructor. */ @@ -47,14 +47,14 @@ class Customers_Model extends CI_Model { // Validate the customer data before doing anything. $this->validate($customer); - // :: CHECK IF CUSTOMER ALREADY EXIST (FROM EMAIL). + // Check if a customer already exists (by email). if ($this->exists($customer) && ! isset($customer['id'])) { // Find the customer id from the database. $customer['id'] = $this->find_record_id($customer); } - // :: INSERT OR UPDATE CUSTOMER RECORD + // Insert or update the customer record. if ( ! isset($customer['id'])) { $customer['id'] = $this->insert($customer); @@ -355,7 +355,7 @@ class Customers_Model extends CI_Model { * $this->Model->getBatch('id = ' . $recordId); * * @param mixed|null $where - * @param midex|null $order_by + * @param mixed|null $order_by * @param int|null $limit * @param int|null $offset * @return array Returns the rows from the database. diff --git a/application/models/Providers_model.php b/application/models/Providers_model.php index bac0b4b5..fa2c4043 100755 --- a/application/models/Providers_model.php +++ b/application/models/Providers_model.php @@ -21,7 +21,7 @@ * * @package Models */ -class Providers_Model extends CI_Model { +class Providers_model extends CI_Model { /** * Providers_Model constructor. */ diff --git a/application/models/Roles_model.php b/application/models/Roles_model.php index e7b7caa5..9851998e 100644 --- a/application/models/Roles_model.php +++ b/application/models/Roles_model.php @@ -19,7 +19,7 @@ * * @package Models */ -class Roles_Model extends CI_Model { +class Roles_model extends CI_Model { /** * Get the record id of a particular role. * diff --git a/application/models/Secretaries_model.php b/application/models/Secretaries_model.php index d08f7891..9e89abe7 100644 --- a/application/models/Secretaries_model.php +++ b/application/models/Secretaries_model.php @@ -21,7 +21,7 @@ * * @package Models */ -class Secretaries_Model extends CI_Model { +class Secretaries_model extends CI_Model { /** * Secretaries_Model constructor. */ diff --git a/application/models/Services_model.php b/application/models/Services_model.php index b6767493..4d0ec770 100644 --- a/application/models/Services_model.php +++ b/application/models/Services_model.php @@ -19,7 +19,7 @@ * * @package Models */ -class Services_Model extends CI_Model { +class Services_model extends CI_Model { /** * Services_Model constructor. */ diff --git a/application/models/Settings_model.php b/application/models/Settings_model.php index 396f9045..c197a028 100644 --- a/application/models/Settings_model.php +++ b/application/models/Settings_model.php @@ -19,7 +19,7 @@ * * @package Models */ -class Settings_Model extends CI_Model { +class Settings_model extends CI_Model { /** * Get setting value from database. * diff --git a/application/models/User_model.php b/application/models/User_model.php index 64db2564..88c54533 100644 --- a/application/models/User_model.php +++ b/application/models/User_model.php @@ -21,7 +21,7 @@ * * @package Models */ -class User_Model extends CI_Model { +class User_model extends CI_Model { /** * User_Model constructor. */ From 976cabb2c407c6a5cbe371904ed1f2c9681aa882 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Sat, 14 Nov 2020 21:36:25 +0200 Subject: [PATCH 22/34] Updated URLs in the file comments --- application/controllers/Appointments.php | 24 ++------ application/controllers/Backend.php | 59 +++++-------------- application/controllers/Backend_api.php | 4 +- application/controllers/Captcha.php | 4 +- application/controllers/Consents.php | 4 +- application/controllers/Console.php | 4 +- application/controllers/Errors.php | 4 +- application/controllers/Google.php | 4 +- application/controllers/Installation.php | 4 +- application/controllers/Privacy.php | 4 +- application/controllers/User.php | 4 +- .../controllers/api/v1/API_V1_Controller.php | 4 +- application/controllers/api/v1/Admins.php | 4 +- .../controllers/api/v1/Appointments.php | 4 +- .../controllers/api/v1/Availabilities.php | 4 +- application/controllers/api/v1/Categories.php | 4 +- application/controllers/api/v1/Customers.php | 4 +- application/controllers/api/v1/Providers.php | 4 +- .../controllers/api/v1/Secretaries.php | 4 +- application/controllers/api/v1/Services.php | 4 +- application/controllers/api/v1/Settings.php | 4 +- .../controllers/api/v1/Unavailabilities.php | 4 +- 22 files changed, 61 insertions(+), 102 deletions(-) diff --git a/application/controllers/Appointments.php b/application/controllers/Appointments.php index 72bc7300..4d28a289 100755 --- a/application/controllers/Appointments.php +++ b/application/controllers/Appointments.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.0.0 * ---------------------------------------------------------------------------- */ @@ -51,6 +51,7 @@ class Appointments extends CI_Controller { $this->load->helper('installation'); $this->load->helper('google_analytics'); + $this->load->model('appointments_model'); $this->load->model('providers_model'); $this->load->model('admins_model'); @@ -58,12 +59,15 @@ class Appointments extends CI_Controller { $this->load->model('services_model'); $this->load->model('customers_model'); $this->load->model('settings_model'); + $this->load->library('session'); $this->load->library('timezones'); $this->load->library('synchronization'); $this->load->library('notifications'); $this->load->library('availability'); + $this->load->driver('cache', ['adapter' => 'file']); + if ($this->session->userdata('language')) { // Set the user's selected language. @@ -175,8 +179,6 @@ class Appointments extends CI_Controller { $customer_token = md5(uniqid(mt_rand(), TRUE)); - $this->load->driver('cache', ['adapter' => 'file']); - // Save the token for 10 minutes. $this->cache->save('customer-token-' . $customer_token, $customer['id'], 600); } @@ -451,16 +453,6 @@ class Appointments extends CI_Controller { { try { - $this->load->model('appointments_model'); - $this->load->model('providers_model'); - $this->load->model('admins_model'); - $this->load->model('secretaries_model'); - $this->load->model('services_model'); - $this->load->model('customers_model'); - $this->load->model('settings_model'); - $this->load->library('notifications'); - $this->load->library('synchronization'); - $post_data = $this->input->post('post_data'); $captcha = $this->input->post('captcha'); $manage_mode = filter_var($post_data['manage_mode'], FILTER_VALIDATE_BOOLEAN); @@ -609,9 +601,6 @@ class Appointments extends CI_Controller { { try { - $this->load->model('providers_model'); - $this->load->model('services_model'); - $provider_id = $this->input->get('provider_id'); $service_id = $this->input->get('service_id'); $appointment_id = $this->input->get_post('appointment_id'); @@ -694,7 +683,6 @@ class Appointments extends CI_Controller { */ protected function search_providers_by_service($service_id) { - $this->load->model('providers_model'); $available_providers = $this->providers_model->get_available_providers(); $provider_list = []; diff --git a/application/controllers/Backend.php b/application/controllers/Backend.php index 82c30f83..03ef3e32 100755 --- a/application/controllers/Backend.php +++ b/application/controllers/Backend.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.0.0 * ---------------------------------------------------------------------------- */ @@ -45,7 +45,20 @@ class Backend extends CI_Controller { public function __construct() { parent::__construct(); + + $this->load->model('appointments_model'); + $this->load->model('providers_model'); + $this->load->model('services_model'); + $this->load->model('customers_model'); + $this->load->model('settings_model'); + $this->load->model('roles_model'); + $this->load->model('user_model'); + $this->load->model('secretaries_model'); + $this->load->model('admins_model'); + + $this->load->library('timezones'); $this->load->library('session'); + $this->load->library('migration'); if ($this->session->userdata('language')) { @@ -80,16 +93,6 @@ class Backend extends CI_Controller { return; } - $this->load->model('appointments_model'); - $this->load->model('providers_model'); - $this->load->model('services_model'); - $this->load->model('customers_model'); - $this->load->model('settings_model'); - $this->load->model('roles_model'); - $this->load->model('user_model'); - $this->load->model('secretaries_model'); - $this->load->library('timezones'); - $calendar_view_query_param = $this->input->get('view'); $user_id = $this->session->userdata('user_id'); @@ -196,9 +199,6 @@ class Backend extends CI_Controller { */ protected function set_user_data(&$view) { - $this->load->model('roles_model'); - - // Get privileges $view['user_id'] = $this->session->userdata('user_id'); $view['user_email'] = $this->session->userdata('user_email'); $view['timezone'] = $this->session->userdata('timezone'); @@ -220,14 +220,6 @@ class Backend extends CI_Controller { return; } - $this->load->model('providers_model'); - $this->load->model('customers_model'); - $this->load->model('secretaries_model'); - $this->load->model('services_model'); - $this->load->model('settings_model'); - $this->load->model('user_model'); - $this->load->library('timezones'); - $view['base_url'] = $this->config->item('base_url'); $view['page_title'] = lang('customers'); $view['user_display_name'] = $this->user_model->get_user_display_name($this->session->userdata('user_id')); @@ -276,12 +268,6 @@ class Backend extends CI_Controller { return; } - $this->load->model('customers_model'); - $this->load->model('services_model'); - $this->load->model('settings_model'); - $this->load->model('user_model'); - $this->load->library('timezones'); - $view['base_url'] = $this->config->item('base_url'); $view['page_title'] = lang('services'); $view['user_display_name'] = $this->user_model->get_user_display_name($this->session->userdata('user_id')); @@ -315,14 +301,6 @@ class Backend extends CI_Controller { return; } - $this->load->model('providers_model'); - $this->load->model('secretaries_model'); - $this->load->model('admins_model'); - $this->load->model('services_model'); - $this->load->model('settings_model'); - $this->load->model('user_model'); - $this->load->library('timezones'); - $view['base_url'] = $this->config->item('base_url'); $view['page_title'] = lang('users'); $view['user_display_name'] = $this->user_model->get_user_display_name($this->session->userdata('user_id')); @@ -361,11 +339,6 @@ class Backend extends CI_Controller { return; } - $this->load->model('settings_model'); - $this->load->model('user_model'); - $this->load->library('timezones'); - - $this->load->library('session'); $user_id = $this->session->userdata('user_id'); $view['base_url'] = $this->config->item('base_url'); @@ -412,8 +385,6 @@ class Backend extends CI_Controller { throw new Exception('You do not have the required privileges for this task!'); } - $this->load->library('migration'); - if ( ! $this->migration->current()) { throw new Exception($this->migration->error_string()); diff --git a/application/controllers/Backend_api.php b/application/controllers/Backend_api.php index 28e85b11..e461a445 100755 --- a/application/controllers/Backend_api.php +++ b/application/controllers/Backend_api.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.0.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/Captcha.php b/application/controllers/Captcha.php index d62cd2af..29a92ced 100644 --- a/application/controllers/Captcha.php +++ b/application/controllers/Captcha.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.0.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/Consents.php b/application/controllers/Consents.php index 4b17d035..5eef33c9 100644 --- a/application/controllers/Consents.php +++ b/application/controllers/Consents.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.3.2 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/Console.php b/application/controllers/Console.php index afea3f9c..fc371009 100644 --- a/application/controllers/Console.php +++ b/application/controllers/Console.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.3.2 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/Errors.php b/application/controllers/Errors.php index eeb05831..50a79393 100644 --- a/application/controllers/Errors.php +++ b/application/controllers/Errors.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.0.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/Google.php b/application/controllers/Google.php index 365af13e..cd804574 100644 --- a/application/controllers/Google.php +++ b/application/controllers/Google.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.0.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/Installation.php b/application/controllers/Installation.php index fb0658b0..c1c6bf9b 100644 --- a/application/controllers/Installation.php +++ b/application/controllers/Installation.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.1.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/Privacy.php b/application/controllers/Privacy.php index 7e744afa..0facdbae 100644 --- a/application/controllers/Privacy.php +++ b/application/controllers/Privacy.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.3.2 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/User.php b/application/controllers/User.php index ef4ae4a0..1e5e51b8 100644 --- a/application/controllers/User.php +++ b/application/controllers/User.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.0.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/API_V1_Controller.php b/application/controllers/api/v1/API_V1_Controller.php index 4107d45f..0baac17e 100644 --- a/application/controllers/api/v1/API_V1_Controller.php +++ b/application/controllers/api/v1/API_V1_Controller.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Admins.php b/application/controllers/api/v1/Admins.php index b33ed085..eea8404d 100644 --- a/application/controllers/api/v1/Admins.php +++ b/application/controllers/api/v1/Admins.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Appointments.php b/application/controllers/api/v1/Appointments.php index 7914ffba..e8a7540e 100644 --- a/application/controllers/api/v1/Appointments.php +++ b/application/controllers/api/v1/Appointments.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Availabilities.php b/application/controllers/api/v1/Availabilities.php index de0dfc3a..2fd346e7 100644 --- a/application/controllers/api/v1/Availabilities.php +++ b/application/controllers/api/v1/Availabilities.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Categories.php b/application/controllers/api/v1/Categories.php index 8272ae7c..c1bc0430 100644 --- a/application/controllers/api/v1/Categories.php +++ b/application/controllers/api/v1/Categories.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Customers.php b/application/controllers/api/v1/Customers.php index 713429d6..b812a6d3 100644 --- a/application/controllers/api/v1/Customers.php +++ b/application/controllers/api/v1/Customers.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Providers.php b/application/controllers/api/v1/Providers.php index 6a960371..966901e0 100644 --- a/application/controllers/api/v1/Providers.php +++ b/application/controllers/api/v1/Providers.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Secretaries.php b/application/controllers/api/v1/Secretaries.php index e858b66e..24b7b98e 100644 --- a/application/controllers/api/v1/Secretaries.php +++ b/application/controllers/api/v1/Secretaries.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Services.php b/application/controllers/api/v1/Services.php index 43124067..470b98bd 100644 --- a/application/controllers/api/v1/Services.php +++ b/application/controllers/api/v1/Services.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Settings.php b/application/controllers/api/v1/Settings.php index 6ba755d4..08edb00a 100644 --- a/application/controllers/api/v1/Settings.php +++ b/application/controllers/api/v1/Settings.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ diff --git a/application/controllers/api/v1/Unavailabilities.php b/application/controllers/api/v1/Unavailabilities.php index 88d224d6..47277ef0 100644 --- a/application/controllers/api/v1/Unavailabilities.php +++ b/application/controllers/api/v1/Unavailabilities.php @@ -6,8 +6,8 @@ * @package EasyAppointments * @author A.Tselegidis * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis - * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 - * @link http://easyappointments.org + * @license https://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link https://easyappointments.org * @since v1.2.0 * ---------------------------------------------------------------------------- */ From b3fbf60e29876522cc6bedf48233e1b3a60b8dda Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Mon, 16 Nov 2020 10:15:52 +0200 Subject: [PATCH 23/34] Fixed issue with table view while being logged in as a provider (#928). --- assets/js/backend_calendar_table_view.js | 42 ++++++++++++++---------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/assets/js/backend_calendar_table_view.js b/assets/js/backend_calendar_table_view.js index a4562e4b..fd2742db 100755 --- a/assets/js/backend_calendar_table_view.js +++ b/assets/js/backend_calendar_table_view.js @@ -413,32 +413,38 @@ window.BackendCalendarTableView = window.BackendCalendarTableView || {}; }); // Create providers and service filters. - if (GlobalVariables.user.role_slug !== Backend.DB_SLUG_PROVIDER) { - $('