Commit graph

392 commits

Author SHA1 Message Date
Alex Tselegidis
b204437473 Add missing provider fields in the "create" and "update" methods 2022-10-03 17:06:01 +03:00
Alex Tselegidis
b39d02b416 Correct the available slot collection display, when any-provider is selected 2022-10-03 17:06:01 +03:00
Alex Tselegidis
e784df50e9 Fix the update page error (missing proper template variable assignment) 2022-10-03 17:06:01 +03:00
Alex Tselegidis
0e2eced83c Correct the constructor phpdoc block comment 2022-10-03 17:06:01 +03:00
Alex Tselegidis
fb9e78535f Correct the response prop name and load the 50 last updated customers in the calendar page. 2022-10-03 17:06:01 +03:00
Alex Tselegidis
dcc5084807 Display the company working plan when browsing the "all" filter item 2022-07-27 02:19:42 +03:00
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