Commit graph

355 commits

Author SHA1 Message Date
Alex Tselegidis
1b20f49f9d Rearrange main controller create/update commands 2022-03-25 12:50:40 +01:00
Alex Tselegidis
e4e285931f Move the consent creation process to when the appointment gets created and not earlier 2022-03-25 12:44:05 +01:00
Alex Tselegidis
e11814057d Whitelist other incoming request params 2022-03-25 12:29:17 +01:00
Alex Tselegidis
b7833643c2 Whitelist incoming account update request params (#1225) 2022-03-25 11:59:00 +01:00
Alex Tselegidis
a3b8228122 Merge branch 'master' into develop
# Conflicts:
#	application/config/autoload.php
#	application/config/config.php
#	application/controllers/Appointments.php
#	application/controllers/Backend.php
#	application/controllers/Backend_api.php
#	application/controllers/Captcha.php
#	application/controllers/Console.php
#	application/controllers/Google.php
#	application/controllers/Installation.php
#	application/core/EA_Controller.php
#	application/core/EA_Model.php
#	application/libraries/Google_sync.php
#	application/libraries/Ics_file.php
#	application/models/Settings_model.php
#	application/views/appointments/book_success.php
#	assets/css/layouts/backend_layout.scss
#	assets/css/no_privileges.css
#	assets/js/backend_calendar_table_view.js
#	assets/js/backend_calendar_unavailability_events_modal.js
#	assets/js/frontend_book.js
#	assets/js/general_functions.js
#	assets/js/pages/booking_confirmation.js
#	assets/js/working_plan_exceptions_modal.js
#	composer.json
#	composer.lock
#	docs/console.md
#	docs/docker.md
#	docs/faq.md
#	docs/get-involved.md
#	docs/google-calendar-sync.md
#	docs/installation-guide.md
#	docs/manage-translations.md
#	docs/readme.md
#	docs/rest-api.md
#	docs/update-guide.md
#	gulpfile.js
#	system/core/Input.php
#	system/core/Output.php
#	system/core/Security.php
#	system/libraries/Session/drivers/Session_files_driver.php
2022-03-25 10:53:46 +01:00
Alex Tselegidis
293f4fe663 Add missing customer data from stripped array 2022-03-04 18:04:53 +01:00
Alex Tselegidis
dce26bafe0 Fix timezone issue with add-to-google link of the booking page (#1216) 2022-02-24 15:58:30 +01:00
Alex Tselegidis
f7ffb25f05 Replace Google Client JS with the Google Calendar Template link in the book success page (#1216) 2022-02-24 15:38:51 +01:00
Alex Tselegidis
bb71c97736 Security configuration enhancements in the application (#1208) 2022-02-23 14:54:41 +01:00
Alex Tselegidis
aeee91f4ed PHP 8.1 support (#1209) 2022-02-23 13:42:27 +01:00
Alex Tselegidis
cc5d219311 Provider and secretary users can only add unavailabilities for their authorized users (#1214) 2022-02-23 12:00:39 +01:00
Alex Tselegidis
b841864bc9 The table calendar view breaks for secretaries and providers due to appointment and unavailability removals (#1211) 2022-02-23 11:42:30 +01:00
Alex Tselegidis
cd1842fc40 Switch to go-to-latest database migration configuration for simplicity (#1213) 2022-02-23 11:29:45 +01:00
Alex Tselegidis
1cf4f5246f Move the change language operation into a new public controller (#1210) 2022-02-23 11:09:24 +01:00
Alex Tselegidis
050478492c Make the captcha challenges more user friendly. 2022-01-26 22:04:33 +01:00
Alex Tselegidis
42534ffcb3 Service duration values shorter than 5 minutes should be acceptable via the services page (#1110). 2022-01-24 22:09:30 +01:00
Alex Tselegidis
4f5fbb8262 Display appointments from all providers in one view. 2022-01-24 22:07:24 +01:00
Alex Tselegidis
97f98c5118 All the user roles with access to the backend calendar page can filter by service (#956). 2022-01-24 21:57:17 +01:00
Alex Tselegidis
2f41c28786 Add a new "is_private" flag to services and providers so that they do not appear in the booking page (#378). 2022-01-24 20:50:14 +01:00
Alex Tselegidis
2bf9a6193e Add a new setting that toggles the login link of the booking page (#1148). 2022-01-24 20:02:17 +01:00
Alex Tselegidis
e9a9314909 Enable the change of the brand logo and colors from the backend (#789). 2022-01-24 18:36:12 +01:00
Alex Tselegidis
083a3e07f6 Add the ability to temporarily block new appointments / set away message (#940). 2022-01-24 16:38:03 +01:00
Alex Tselegidis
458595fa24 Add an option to deactivate the remove-all-data function for customers (#808). 2022-01-24 15:31:42 +01:00
Alex Tselegidis
6cd3179caa Display "Not Found" booking message when rescheduling with an appointment hash that does not exist. 2022-01-19 10:25:28 +01:00
Alex Tselegidis
821afb2211 Remove the html_vars call when loading views as it is currently unnecessary. 2022-01-19 10:21:05 +01:00
Alex Tselegidis
59c44994f7 Add custom Matomo analytics integration (#974). 2022-01-19 10:18:00 +01:00
Alex Tselegidis
573786bb65 Set the default appointment color upon registration. 2022-01-19 09:11:42 +01:00
Alex Tselegidis
b65eabd9ed Make sure the booking cancellation is a post request and has a reason value provided (#1178). 2022-01-18 18:03:55 +01:00
Alex Tselegidis
378c5eaa25 Set the manage mode to TRUE if the appointment ID is set. 2022-01-18 17:59:10 +01:00
Alex Tselegidis
628e5a2dfa Use the unavailabilities model to pull the proper records for the table view. 2022-01-18 17:38:02 +01:00
Alex Tselegidis
387ac5bc19 Update the default view so that it works with FullCalendar 5 2022-01-18 15:55:21 +01:00
Alex Tselegidis
54e4c208a3 Update the project subtitle. 2022-01-18 13:05:42 +01:00
Alex Tselegidis
09775d25d5 Rename all "unavailable" occurrences to "unavailability" for consistency. 2022-01-18 12:54:41 +01:00
Alex Tselegidis
f7bebedf61 Add deprecated phpdoc tag to Backend.php and Backend_api.php files. 2022-01-18 12:06:20 +01:00
Alex Tselegidis
1fb9983cd7 Update the Backend_api controller class with the deprecation notice and redirect all requests to the new controllers. 2022-01-18 12:05:07 +01:00
Alex Tselegidis
fa60eec728 Remove "ajax_" prefix from calendar controller. 2022-01-18 11:49:17 +01:00
Alex Tselegidis
ef3324d3b8 Update the Backend controller class with the deprecation notice and redirect all requests to the new controllers. 2022-01-18 11:45:44 +01:00
Alex Tselegidis
49585d388d Use the component helper for rendering the timezone dropdown in account page. 2022-01-18 10:35:34 +01:00
Alex Tselegidis
d2fb826f8f Use the component helper for rendering the timezone dropdown in admins page. 2022-01-18 10:34:53 +01:00
Alex Tselegidis
65d2836911 The timezone component must not use the global vars when rendering. 2022-01-18 10:32:30 +01:00
Alex Tselegidis
7ca93f5eeb Pass the calendar view to both the html and script vars 2022-01-17 21:18:43 +01:00
Alex Tselegidis
0da73ab43e Remove the "ajax_" prefix from all new AJAX endpoints. 2022-01-17 19:44:44 +01:00
Alex Tselegidis
8d93f283f8 Redirect to the login page if the user is not logged in or display the no permissions message when the permissions are insufficient. 2022-01-17 18:24:02 +01:00
Alex Tselegidis
d333869952 Port the change language callback to the Account controller. 2022-01-17 17:42:47 +01:00
Alex Tselegidis
778edf0b21 Redirect to "calendar" route instead of "backend" after a successful log in. 2022-01-14 08:34:28 +01:00
Alex Tselegidis
f327fd5221 Refactor the booking confirmation related JS files so that they become standalone modules. 2022-01-13 11:33:46 +01:00
Alex Tselegidis
43ad017d7a Refactor the booking related JS files so that they become standalone modules. 2022-01-13 11:33:40 +01:00
Alex Tselegidis
745f70848a Refactor the calendar related JS files so that they become standalone modules. 2022-01-12 11:22:54 +01:00
Alex Tselegidis
21be3e7b50 Refactor the providers helper JS file so that it becomes a standalone module. 2022-01-11 10:54:46 +01:00
Alex Tselegidis
d574a3b981 Make sure the user ID and role slug are available on all backend pages. 2022-01-10 09:36:11 +01:00
Alex Tselegidis
e2bffc5e95 Refactor the categories helper JS file so that it becomes a standalone module. 2022-01-10 09:26:28 +01:00
Alex Tselegidis
195680e8b3 Refactor the services helper JS file so that it becomes a standalone module. 2022-01-10 09:16:28 +01:00
Alex Tselegidis
41f25026de Convert the secretaries page to the new js module structure. 2022-01-07 09:44:51 +01:00
Alex Tselegidis
30418468e8 Convert the admins page to the new js module structure. 2022-01-07 09:29:04 +01:00
Alex Tselegidis
5f211ff005 Add the required script and html vars for the customers page to work. 2022-01-06 09:54:06 +01:00
Alex Tselegidis
917f9c7ca4 Remove unnecessary loader calls 2022-01-05 09:08:50 +01:00
Alex Tselegidis
ae342f1671 Refactored the legal settings page functionality and structure 2022-01-05 09:08:39 +01:00
Alex Tselegidis
4e9ed6bf52 Adjusted required customer fields based on booking to the appointments modal 2022-01-05 08:31:58 +01:00
Alex Tselegidis
d4005bd378 Adjusted required customer fields based on booking to the customers page 2022-01-05 08:31:57 +01:00
Alex Tselegidis
270b29dccc Removed unused variable 2022-01-05 08:06:56 +01:00
Alex Tselegidis
afad7920eb The booking page will render based on the selected displayed/required fields. 2021-12-20 09:38:37 +01:00
Alex Tselegidis
4eec5fbe46 Refactored the booking settings page functionality and structure 2021-12-20 09:16:44 +01:00
Alex Tselegidis
7799f08da6 The privileges variable is not needed by the account.php template 2021-12-20 09:16:05 +01:00
Alex Tselegidis
37c46c7286 Removed unnecessary validation from general settings 2021-12-20 09:15:05 +01:00
Alex Tselegidis
6017abea45 Refactored the business settings page functionality and structure 2021-12-18 21:36:25 +01:00
Alex Tselegidis
34fbd2060d Fixes on the general settings page 2021-12-18 21:06:24 +01:00
Alex Tselegidis
42ff670928 Refactored the general settings page functionality and structure 2021-12-18 20:53:59 +01:00
Alex Tselegidis
a3282febc9 Added new callback to the account controller to validate usernames 2021-12-18 18:55:58 +01:00
Alex Tselegidis
c53cd000d8 Refactored the account page functionality and structure 2021-12-18 18:25:03 +01:00
Alex Tselegidis
a090b2eba9 Updated the file banner info 2021-12-18 17:44:07 +01:00
Alex Tselegidis
72bc5efe34 Removed obsolete permissions prop 2021-12-18 17:37:00 +01:00
Alex Tselegidis
526df6e4d7 Replaced the "show_error" with the "abort" equivalent 2021-12-18 17:32:05 +01:00
Alex Tselegidis
0ff19b050d Use the html_vars and script_vars for assigning the page variables 2021-12-18 17:22:40 +01:00
Alex Tselegidis
5420ef1389 Updated the booking page so that it works with the new html_vars and script_vars helper functions. 2021-12-17 10:55:37 +01:00
Alex Tselegidis
16cea9e6a9 Updated Login to use the script_vars helper function 2021-12-17 10:53:22 +01:00
Alex Tselegidis
5916ad47d1 Added support for the new "calendar/reschedule" callback 2021-12-17 09:20:54 +01:00
Alex Tselegidis
c49f141bbb Moved the booking confirmation and cancellation code out of the booking controller 2021-12-16 08:37:55 +01:00
Alex Tselegidis
dc8d6ad140 Update has its own controller class 2021-12-16 08:10:01 +01:00
Alex Tselegidis
ff03b71060 Replaced resource names with constants for "cannot" checks 2021-12-15 08:05:08 +01:00
Alex Tselegidis
568ff9be2e Renamed the service category resource to just category 2021-12-15 08:00:48 +01:00
Alex Tselegidis
c8bd47d1e5 Removed the "_page" postfix from page view files 2021-12-14 08:08:06 +01:00
Alex Tselegidis
12e4eebd1f Set the "dest_url" js config 2021-12-14 08:06:10 +01:00
Alex Tselegidis
6376fea885 Added the find method to controllers 2021-12-14 07:18:46 +01:00
Alex Tselegidis
bd412eba8e Refactored the installation page functionality 2021-12-10 09:12:08 +01:00
Alex Tselegidis
6ab32781ad Moved the recovery functionality into its own controller and files 2021-12-10 08:41:16 +01:00
Alex Tselegidis
c00bfd9948 Changed var order 2021-12-10 08:34:56 +01:00
Alex Tselegidis
246d25c7f4 Moved the logout functionality into its own controller and files 2021-12-10 08:26:05 +01:00
Alex Tselegidis
63da7afce2 Renamed and moved the controller and view files of the settings page 2021-12-07 11:09:34 +01:00
Alex Tselegidis
622a4e9390 Moved the about controller and renamed the view file 2021-12-07 11:00:13 +01:00
Alex Tselegidis
523db7e5e3 Moved the login functionality into its own controller and files 2021-12-07 10:53:59 +01:00
Alex Tselegidis
cd5eff8819 Use the show_error function instead of the no-permissions callback 2021-12-07 10:53:20 +01:00
Alex Tselegidis
f1849e3a16 Restructured the view/js/css files (flatter file structure) 2021-12-06 09:00:02 +01:00
Alex Tselegidis
d94617945b Added missing index method of Calendar controller 2021-11-25 09:13:19 +01:00
Alex Tselegidis
f2bb4519a5 Load the appointment and customer data after inserting them for the first time 2021-11-25 08:40:37 +01:00
Alex Tselegidis
232fa89b15 Load roles model 2021-11-24 09:23:48 +01:00
alextselegidis
83bfd87d5d Ported the current about content to a new standalone page 2021-11-22 08:09:56 +01:00
alextselegidis
a622f2f295 Ported the current user settings functionality to a new standalone page 2021-11-22 08:09:56 +01:00
alextselegidis
35a05de1f0 Ported the legal contents settings functionality to a new standalone page 2021-11-22 08:09:56 +01:00
alextselegidis
fc48db0ea4 Ported the client form settings functionality to a new standalone page 2021-11-22 08:09:56 +01:00
Alex Tselegidis
255d1b5d95 Corrected the CORS headers hanlding 2021-11-18 15:01:17 +01:00
alextselegidis
2d1fb357c8 Ported the business logic settings functionality to a new standalone page 2021-11-18 08:49:23 +01:00
alextselegidis
753237d003 Ported the general settings functionality to a new standalone page 2021-11-18 07:53:41 +01:00
alextselegidis
fa97f743ae Added settings related callbacks to the Settings controller (copied from Backend_api) 2021-11-18 07:34:43 +01:00
alextselegidis
f5cedbd0d5 Added calendar related callbacks to the Calendar controller (copied from Backend_api) 2021-11-18 07:30:52 +01:00
alextselegidis
4b4d8887e8 Added google related callbacks to the Google controller (copied from Backend_api) 2021-11-18 07:30:31 +01:00
alextselegidis
b06a2505b2 Created a new unavailabilities resource controller 2021-11-18 07:29:41 +01:00
alextselegidis
7eac5b8638 Moved the frontend book functionality to a new controller called Booking.php and created a new resource controller for appointments 2021-11-18 07:12:16 +01:00
alextselegidis
28f6a58211 Updated comment 2021-11-18 07:09:21 +01:00
alextselegidis
fec42278c8 Created a new customers resource controller 2021-11-18 06:34:07 +01:00
alextselegidis
7a3aa38622 Created a new secretaries resource controller 2021-11-18 06:23:21 +01:00
alextselegidis
d6b294a12b Created a new admins resource controller 2021-11-18 06:11:18 +01:00
alextselegidis
4bbcb9fff8 Created a new providers resource controller 2021-11-18 06:08:36 +01:00
alextselegidis
aadac6a060 Created a new service categories resource controller 2021-11-18 05:23:54 +01:00
alextselegidis
8dd509d4dc Created a new services resource controller 2021-11-18 05:21:30 +01:00
alextselegidis
ca8f3524ef Replaced the render function with the new component function 2021-11-16 10:15:37 +01:00
alextselegidis
8f74643437 Updated the controller classes to use the slots instead 2021-11-15 09:49:19 +01:00
alextselegidis
abf9bdd049 Set the page title of the booking page 2021-11-12 21:27:11 +01:00
alextselegidis
1103db92df Loaded scripts from the appointments controller 2021-11-12 17:30:09 +01:00
alextselegidis
2d1c7c0f7a Miscellaneous fixes and refactoring on Appointments.php 2021-11-12 17:23:43 +01:00
alextselegidis
d2be2327e8 Minor refactoring for the appointments page 2021-11-12 17:09:39 +01:00
alextselegidis
007e95ed7a Moved the installation and update pages to the new view/pages directory 2021-11-12 16:57:05 +01:00
alextselegidis
cf579dddc2 Removed the error override configuration and files 2021-11-12 16:53:42 +01:00
alextselegidis
ee6729cf0b Converted all the account related pages to the new layout structure 2021-11-12 16:51:25 +01:00
alextselegidis
9fdafa5497 Converted the booking message to the booking message layout 2021-11-12 16:39:38 +01:00
alextselegidis
b31b4c87bd Converted the booking success page to the layout structure 2021-11-12 16:33:01 +01:00
alextselegidis
d96e65792b Converted the booking page view files to the layout structure 2021-11-12 08:38:20 +01:00
alextselegidis
2479ffb3a1 Changed the users callback to use the layout loading method 2021-11-12 08:37:50 +01:00
Alex Tselegidis
f41547b77d Method could also return null and not always an int 2021-11-08 10:44:36 +01:00
Alex Tselegidis
85bd7b9b38 Renamed attach to load in Backend_api.php 2021-11-06 17:14:57 +01:00
Alex Tselegidis
a20f2e9e33 Corrected the login HTTP callback 2021-11-06 16:51:36 +01:00
Alex Tselegidis
54e86795d5 Minor comment changes for consistency 2021-11-06 16:21:27 +01:00
Alex Tselegidis
245fc43ec1 Replaced the old engine class use with the new Email_messages library 2021-11-06 16:11:55 +01:00
Alex Tselegidis
31b452766d Refactored the login controller callback 2021-11-06 16:09:59 +01:00
Alex Tselegidis
e38df7452b Renamed the attach query paramter of API controllers to with 2021-11-06 15:41:11 +01:00
Alex Tselegidis
f36c49819c Added support for the "attach" query parameter to all API controllers 2021-11-06 15:34:54 +01:00
Alex Tselegidis
bcc9b88623 Added support for upgrading and downgrading manually the database via the CLI 2021-11-06 15:17:03 +01:00
Alex Tselegidis
8603a8ae33 Refactored all the API controller classes (and renamed them) to work well on top of the models 2021-11-06 15:03:08 +01:00
Alex Tselegidis
27c5c3ab35 Replaced the appointments model with the unavailabilities model in the Backend_api.php 2021-11-06 14:56:56 +01:00
Alex Tselegidis
afc05577a4 Refactored the admins API controller (no engine code is being used). 2021-11-03 08:38:59 +01:00
Alex Tselegidis
4c6c5b5913 Remove the old and deprecated API_V1_Controller.php 2021-11-02 10:45:05 +01:00
Alex Tselegidis
bdaa46459c The new settings model does not have the set_setting and get_setting values. 2021-10-29 13:21:03 +02:00
Alex Tselegidis
306e94a082 The delete model method does not return a result any more. 2021-10-29 13:20:33 +02:00
Alex Tselegidis
4ed7465784 Corrected the name of the exception variable 2021-10-29 13:16:21 +02:00
Alex Tselegidis
182cebfb74 Renamed the add_unavailable method to save_unavailable for consistency 2021-10-29 13:12:39 +02:00
Alex Tselegidis
e29c2198de Removed the delete_unavailable method 2021-10-29 13:11:56 +02:00
Alex Tselegidis
76afdef30b Moved the instance handling logic to a re-usable library 2021-10-29 10:44:01 +02:00
Alex Tselegidis
8ecf389bf1 Updated all the API controllers to work with the updated code. 2021-10-28 14:01:27 +02:00
Alex Tselegidis
a280496294 Updated all the main controllers to work with the updated code. 2021-10-28 14:01:17 +02:00
Thomas Saedt
9671def4ea Merge branch 'develop' into 1081_hide_data_fields 2021-10-20 22:12:47 +02:00
Alex Tselegidis
1664ac6f9f
Merge pull request #1119 from om-ha/patch-1
FIX Providers API incorrect `array_key_exists`
2021-10-18 13:58:42 +02:00