Commit graph

386 commits

Author SHA1 Message Date
Alex Tselegidis
f89fdb23c0 Make sure that synced appointments are removed from Google Calendar if the provider changes after an appointment update action 2022-07-26 16:43:37 +03:00
Alex Tselegidis
ec0924fb7e Add matomo analytics settings page 2022-07-26 16:39:31 +03:00
Alex Tselegidis
8eddb768d4 Add google analytics settings page 2022-07-26 16:39:15 +03:00
Alex Tselegidis
27d58effdf Add API settings page 2022-07-26 16:38:58 +03:00
Alex Tselegidis
1aac411c7f Create new "Integrations" page for managing 3rd party integrations 2022-07-26 16:38:29 +03:00
Alex Tselegidis
63084a73e4 Correct library name typo 2022-07-26 16:09:36 +03:00
Alex Tselegidis
8fde7e5221 Apply the "only" method to the providers controller 2022-06-27 11:27:46 +03:00
Alex Tselegidis
2ae250c698 Use getter methods instead of public variables directly 2022-06-20 12:39:14 +03:00
Alex Tselegidis
5027b59150 Catch the Throwable interface instead of the exception class 2022-06-20 12:37:16 +03:00
Alex Tselegidis
15af90ff2e Use associative array when parsing the provider's google token for consistency 2022-06-20 12:36:44 +03:00
Alex Tselegidis
658ac78d8f Replace the default exception classes with more specific ones 2022-06-20 12:31:11 +03:00
Alex Tselegidis
3c9631ede0 Apply the Google Sync fixes so that events are synced properly 2022-06-20 12:25:57 +03:00
Alex Tselegidis
0d5e60cdb7 Add support for dynamic webhook definition in the settings page (#581) 2022-06-20 12:12:36 +03:00
Alex Tselegidis
6b821792fa Non-API routes will accept string argument values instead of integer 2022-06-20 12:12:36 +03:00
Alex Tselegidis
264328032b Change cancellation title 2022-06-02 09:44:02 +02:00
Alex Tselegidis
89d22ed7e1 Apply company color to message layout pages too 2022-06-02 09:42:14 +02:00
Alex Tselegidis
12df8420cb The theme variable can be changed by the "theme" query parameter for the booking page (#1205) 2022-05-27 10:04:40 +02:00
Alex Tselegidis
9108de8865 Apply the permissions library to the customers controller 2022-05-27 09:24:34 +02:00
Alex Tselegidis
e09647d01f Fix the booking cancellation flow and make sure analytics are loaded in both confirmation and cancellation (#1200) 2022-05-26 15:35:17 +02:00
Alex Tselegidis
906c91331f Rename unavailability dates to unavailable dates 2022-05-26 14:50:12 +02:00
Alex Tselegidis
c84fb2d3db Change the way theme files are loaded, keep only 10 themes 2022-05-22 17:18:44 +02:00
Alex Tselegidis
6666e5862c Support multiple Bootswatch themes for the app (#1205). 2022-05-22 14:39:19 +02:00
Alex Tselegidis
48122c4cd3 Update the session language and remove password from the $account array 2022-05-22 13:50:25 +02:00
Alex Tselegidis
ffb19f113a Do not display the working plan exception option if no direct provider is selected 2022-05-20 18:03:03 +02:00
Alex Tselegidis
98bf660aa2 Correct permissions for the customers controller 2022-05-10 14:28:56 +02:00
Jan Chaloupecky
6429dabb41 Added secretary_providers in the JS script_vars 2022-04-22 13:15:06 +02:00
Alex Tselegidis
227612565d Correct translation message key 2022-04-19 09:14:13 +02:00
Alex Tselegidis
efc532664a Use grouped_timezones consistently across the app controllers 2022-03-29 10:16:07 +02:00
Alex Tselegidis
669aa2f6c6 Add customer language and timezone fields to the appointments modal (#1094) 2022-03-29 10:15:24 +02:00
Alex Tselegidis
8f66376b74 Move the change change language method to the new localization controller (removed from account) 2022-03-28 08:30:51 +02:00
Alex Tselegidis
2f67141d75 Apply the new add-to-google button for 1.5 2022-03-28 08:18:00 +02:00
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