Commit graph

392 commits

Author SHA1 Message Date
Alex Tselegidis
e9842a40bc Revert renaming the service-categories to categories (for clarity) 2023-10-26 08:11:31 +02:00
Alex Tselegidis
ae76ad7385 Do not allow a customer to book the same hours multiple times
(#1420)
2023-10-23 11:46:41 +02:00
Alex Tselegidis
e987aedf75 Various fixed on the Google Sync process 2023-10-23 11:34:39 +02:00
Alex Tselegidis
0ba5015147 Comment 2023-10-23 11:21:30 +02:00
Alex Tselegidis
b88952497c Cast the provider ID to avoid errors 2023-10-09 16:48:35 +02:00
Alex Tselegidis
5bd328ee4f Correct the variable type check value 2023-10-09 12:18:24 +02:00
Alex Tselegidis
072ff2862e Fallback value for arg 2023-09-12 17:00:30 +03:00
Alex Tselegidis
c226d188c9 Use the unavailabilities model instead of the appointments model 2023-07-18 07:54:47 +02:00
Alex Tselegidis
b37b460195 Only allow authorized users to manage appointments from the calendar page (#1387) 2023-07-17 08:14:15 +02:00
Alex Tselegidis
e7ddad5641 Make sure there are no duplicate unavailability entries (#1388) 2023-07-17 07:59:56 +02:00
Alex Tselegidis
ebe087553e Automatically select the next available date in the booking page or display a message if this month is unavailable (#1075) (#1204) 2023-07-11 08:11:41 +02:00
Alex Tselegidis
87e27d4070 Use the unavailabilities model to save the sync events (#1363) 2023-07-11 07:46:28 +02:00
Alex Tselegidis
5473544258 Allow working plan exceptions to be defined as non-working days (#1383). 2023-07-10 08:22:55 +02:00
Alex Tselegidis
674d7c4eeb Correct the array key access in Google.php (#1362) 2023-07-03 10:21:46 +02:00
Alex Tselegidis
d055d10610 Add "notes" to the whitelisted field list 2023-06-21 09:50:52 +03:00
Alex Tselegidis
2f69be2bd0 Update the equivalent appointment removal action of the calendar table view. 2023-06-01 14:30:08 +02:00
Alex Tselegidis
8e37e54bdb Refactor the calendar page appointment removal so that it also uses a request parameter called "cancellation_reason", just like the public booking page does. 2023-06-01 14:25:02 +02:00
Alex Tselegidis
890e3ac4d9 Order the records by update datetime to avoid them missing in the UI 2023-05-04 17:55:29 +02:00
Alex Tselegidis
fb7b2af812 Re-enable the captcha image distortion. 2023-05-03 07:26:39 +02:00
Alex Tselegidis
1655b0df2d Correct the captcha builer php issues. 2023-05-03 07:21:20 +02:00
Alex Tselegidis
f13b1a17c4 Correct the API controller constructor methods. 2023-04-24 13:22:49 +02:00
Alex Tselegidis
d1e1000cb4 The "id_categories" columnn is optional 2023-04-24 10:13:44 +02:00
Alex Tselegidis
7f37350fab Regenerate the session ID after logging in to avoid Session Fixation attacks 2023-04-15 14:46:30 +02:00
Alex Tselegidis
75b2473576 Do not return appointments of a different user to the another provider or secretary on the default calendar screen. 2023-04-15 14:39:12 +02:00
Alex Tselegidis
6fc45c3368 Correct the field filtering 2023-04-15 14:33:40 +02:00
Alex Tselegidis
d4185b2b05 Load the framework while testing in order to allow for additional tests 2023-03-24 08:11:25 +01:00
Alex Tselegidis
7bfe16b6be Check on trashed items when fetching appointment information 2023-03-17 07:53:16 +01:00
Alex Tselegidis
2b552c4535 Resolve various PHP inspection issues 2023-03-13 09:06:18 +01:00
Alex Tselegidis
2731d2f17c Update the seeders so that they set dynamic passwords by default 2023-03-01 09:00:24 +01:00
Alex Tselegidis
963413eb88 White list the working plan and working plan exceptions when saving a provider record 2023-03-01 08:26:58 +01:00
Alex Tselegidis
ea30c62a84 Load required settings 2023-02-21 08:11:18 +01:00
Alex Tselegidis
ddee652231 Remove unnecessary cache load 2023-02-21 07:58:30 +01:00
Alex Tselegidis
c8bfb623e2 Apply the future booking limit to the booking page 2023-02-13 09:36:08 +01:00
Alex Tselegidis
04f480c4c6 Remove duplicate command 2023-01-23 07:47:47 +01:00
Alex Tselegidis
f8925ddb0d Add the missing "only" filtering to the backend controllers. 2023-01-21 12:51:06 +01:00
Alex Tselegidis
8449d5454c Add ID to the allowed appointments fields (this will fix the rescheduling flow) 2023-01-18 10:59:57 +01:00
Alex Tselegidis
50ec06b29c Allow API clients to filter appointments by service, provider and customer ID (#1296, #1325) 2023-01-14 10:25:25 +01:00
Alex Tselegidis
dfacdc901a Use the "array_values" method in both available-provider filtering conditions to avoid issues with missing keys 2023-01-14 10:16:32 +01:00
Alex Tselegidis
59170af997 Adjust manage mode handling in booking page 2023-01-14 10:15:06 +01:00
Alex Tselegidis
8879fa7889
Merge pull request #1326 from eerojaaskelainen/RelFrontFixes
Fixes for frontend problems running in release mode
2023-01-14 10:15:01 +01:00
Alex Tselegidis
f68e475e27
Merge pull request #1330 from eerojaaskelainen/BookingRescheduleManageModeFix
Booking reschedule: Fixed manage mode getter
2023-01-14 10:02:37 +01:00
Alex Tselegidis
2e3e766f73 Add missing field filtering and the optional model method 2023-01-14 09:38:49 +01:00
Alex Tselegidis
bc0de8ec53 Add a missing condition on permissions in Calendar.php 2022-11-30 11:22:48 +01:00
Eero Jääskeläinen
a5e9ed3e99 Booking reschedule: Fixed manage mode getter 2022-11-28 13:21:32 +02:00
Eero Jääskeläinen
ad6bf65667 Strip providers script vars' keys to fix 'find() undefined' JS error 2022-11-17 12:54:05 +02:00
Alex Tselegidis
f389608aa1 Add date, from and till query parameters to the filter the appointments index results by date (#1134). 2022-10-16 22:17:36 +03:00
Alex Tselegidis
0f6df76667 Allow the users to define their own status and assign them to appointments (#244). 2022-10-16 21:54:26 +03:00
Alex Tselegidis
8449fd3d28 Fix the rescheduling functionality in the booking page 2022-10-16 18:07:45 +03:00
Alex Tselegidis
c8ebfae7ff Make sure the search method sorts by update_datetime in descending order 2022-10-16 18:07:01 +03:00
Alex Tselegidis
d02c71a0e2 Add page title to the account pages 2022-10-16 18:02:47 +03:00
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