From f84eecf7e84c335545426651a42d5d69338f1533 Mon Sep 17 00:00:00 2001
From: tm8544 <15167679+tm8544@users.noreply.github.com>
Date: Wed, 27 Mar 2024 17:09:15 +0200
Subject: [PATCH 01/72] add default settings for language and timezone
---
application/controllers/Admins.php | 2 +
application/controllers/Booking.php | 2 +
application/controllers/Customers.php | 2 +
application/controllers/General_settings.php | 3 ++
application/controllers/Providers.php | 2 +
application/controllers/Secretaries.php | 2 +
.../language/arabic/translations_lang.php | 4 ++
.../language/bulgarian/translations_lang.php | 4 ++
.../language/catalan/translations_lang.php | 4 ++
.../language/chinese/translations_lang.php | 4 ++
.../language/croatian/translations_lang.php | 4 ++
.../language/czech/translations_lang.php | 4 ++
.../language/danish/translations_lang.php | 4 ++
.../language/dutch/translations_lang.php | 4 ++
.../language/english/translations_lang.php | 4 ++
.../language/estonian/translations_lang.php | 4 ++
.../language/finnish/translations_lang.php | 4 ++
.../language/french/translations_lang.php | 4 ++
.../language/german/translations_lang.php | 4 ++
.../language/greek/translations_lang.php | 4 ++
.../language/hebrew/translations_lang.php | 4 ++
.../language/hindi/translations_lang.php | 4 ++
.../language/hungarian/translations_lang.php | 4 ++
.../language/italian/translations_lang.php | 4 ++
.../language/japanese/translations_lang.php | 4 ++
.../luxembourgish/translations_lang.php | 4 ++
.../language/marathi/translations_lang.php | 4 ++
.../language/persian/translations_lang.php | 4 ++
.../language/polish/translations_lang.php | 4 ++
.../portuguese-br/translations_lang.php | 4 ++
.../language/portuguese/translations_lang.php | 4 ++
.../language/romanian/translations_lang.php | 4 ++
.../language/russian/translations_lang.php | 4 ++
.../language/serbian/translations_lang.php | 4 ++
.../language/slovak/translations_lang.php | 4 ++
.../language/spanish/translations_lang.php | 4 ++
.../language/swedish/translations_lang.php | 4 ++
.../language/thai/translations_lang.php | 4 ++
.../language/turkish/translations_lang.php | 4 ++
.../052_add_default_timezone_to_setting.php | 38 +++++++++++++++++++
.../053_add_default_language_to_settings.php | 38 +++++++++++++++++++
application/views/pages/general_settings.php | 36 ++++++++++++++++++
assets/js/components/appointments_modal.js | 8 ++--
assets/js/pages/admins.js | 4 +-
assets/js/pages/customers.js | 4 +-
assets/js/pages/providers.js | 4 +-
assets/js/pages/secretaries.js | 3 +-
47 files changed, 269 insertions(+), 11 deletions(-)
create mode 100644 application/migrations/052_add_default_timezone_to_setting.php
create mode 100644 application/migrations/053_add_default_language_to_settings.php
diff --git a/application/controllers/Admins.php b/application/controllers/Admins.php
index f5f20998..7573acde 100644
--- a/application/controllers/Admins.php
+++ b/application/controllers/Admins.php
@@ -64,6 +64,8 @@ class Admins extends EA_Controller
'role_slug' => $role_slug,
'timezones' => $this->timezones->to_array(),
'min_password_length' => MIN_PASSWORD_LENGTH,
+ 'default_language' => setting('default_language'),
+ 'default_timezone' => setting('default_timezone'),
]);
html_vars([
diff --git a/application/controllers/Booking.php b/application/controllers/Booking.php
index 5a1b0743..e23597bb 100755
--- a/application/controllers/Booking.php
+++ b/application/controllers/Booking.php
@@ -233,6 +233,8 @@ class Booking extends EA_Controller
'appointment_data' => $appointment,
'provider_data' => $provider,
'customer_data' => $customer,
+ 'default_language' => setting('default_language'),
+ 'default_timezone' => setting('default_timezone'),
]);
html_vars([
diff --git a/application/controllers/Customers.php b/application/controllers/Customers.php
index b69294bb..134dfd83 100644
--- a/application/controllers/Customers.php
+++ b/application/controllers/Customers.php
@@ -87,6 +87,8 @@ class Customers extends EA_Controller
'time_format' => $time_format,
'timezones' => $this->timezones->to_array(),
'secretary_providers' => $secretary_providers,
+ 'default_language' => setting('default_language'),
+ 'default_timezone' => setting('default_timezone'),
]);
html_vars([
diff --git a/application/controllers/General_settings.php b/application/controllers/General_settings.php
index 4b63c8dd..06354fc9 100644
--- a/application/controllers/General_settings.php
+++ b/application/controllers/General_settings.php
@@ -30,6 +30,7 @@ class General_settings extends EA_Controller
$this->load->model('settings_model');
$this->load->library('accounts');
+ $this->load->library('timezones');
}
/**
@@ -62,6 +63,7 @@ class General_settings extends EA_Controller
script_vars([
'user_id' => $user_id,
'role_slug' => $role_slug,
+ 'timezones' => $this->timezones->to_array(),
'general_settings' => $this->settings_model->get(),
]);
@@ -69,6 +71,7 @@ class General_settings extends EA_Controller
'page_title' => lang('settings'),
'active_menu' => PRIV_SYSTEM_SETTINGS,
'user_display_name' => $this->accounts->get_user_display_name($user_id),
+ 'grouped_timezones' => $this->timezones->to_grouped_array(),
'available_themes' => $available_themes,
]);
diff --git a/application/controllers/Providers.php b/application/controllers/Providers.php
index 75fdc350..ee3ca765 100644
--- a/application/controllers/Providers.php
+++ b/application/controllers/Providers.php
@@ -76,6 +76,8 @@ class Providers extends EA_Controller
'min_password_length' => MIN_PASSWORD_LENGTH,
'timezones' => $this->timezones->to_array(),
'services' => $services,
+ 'default_language' => setting('default_language'),
+ 'default_timezone' => setting('default_timezone'),
]);
html_vars([
diff --git a/application/controllers/Secretaries.php b/application/controllers/Secretaries.php
index ef8cd3ed..196a8450 100644
--- a/application/controllers/Secretaries.php
+++ b/application/controllers/Secretaries.php
@@ -72,6 +72,8 @@ class Secretaries extends EA_Controller
'timezones' => $this->timezones->to_array(),
'min_password_length' => MIN_PASSWORD_LENGTH,
'providers' => $providers,
+ 'default_language' => setting('default_language'),
+ 'default_timezone' => setting('default_timezone'),
]);
html_vars([
diff --git a/application/language/arabic/translations_lang.php b/application/language/arabic/translations_lang.php
index 5934f0fb..849daecc 100755
--- a/application/language/arabic/translations_lang.php
+++ b/application/language/arabic/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/bulgarian/translations_lang.php b/application/language/bulgarian/translations_lang.php
index 6b0a2479..27a5703d 100755
--- a/application/language/bulgarian/translations_lang.php
+++ b/application/language/bulgarian/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/catalan/translations_lang.php b/application/language/catalan/translations_lang.php
index a89f6f2e..a07fc91e 100644
--- a/application/language/catalan/translations_lang.php
+++ b/application/language/catalan/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Quan està activat, els clients i els usua
$lang['check_spam_folder'] = 'Comproveu la vostra carpeta de correu brossa si el correu no arriba en uns minuts.';
$lang['api_token_hint'] = 'Establiu un token secret per permetre l\'autenticació basada en tokens de l\'API d\'Easy!Appointments.';
$lang['timezone'] = 'Zona horària';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Això sobreescriurà els plans de treball existents del proveïdor, esteu segur que voleu continuar?';
$lang['working_plans_got_updated'] = 'S\'han actualitzat tots els plans de treball.';
$lang['apply_to_all_providers'] = 'Aplica-ho a tots els proveïdors';
diff --git a/application/language/chinese/translations_lang.php b/application/language/chinese/translations_lang.php
index 839141f5..50142635 100755
--- a/application/language/chinese/translations_lang.php
+++ b/application/language/chinese/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/croatian/translations_lang.php b/application/language/croatian/translations_lang.php
index 31516e31..384072e5 100644
--- a/application/language/croatian/translations_lang.php
+++ b/application/language/croatian/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Kada je omogućeno, klijenti i korisnici
$lang['check_spam_folder'] = 'Provjerite svoju spam mapu ako e-mail ne stigne unutar nekoliko minuta.';
$lang['api_token_hint'] = 'Postavite tajni token kako biste omogućili autentifikaciju temeljenu na tokenima za Easy!Appointments API.';
$lang['timezone'] = 'Vremenska Zona';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Ovo će prebrisati postojeće radne planove pružatelja, jeste li sigurni da želite nastaviti?';
$lang['working_plans_got_updated'] = 'Svi radni planovi su ažurirani.';
$lang['apply_to_all_providers'] = 'Primijeni na sve pružatelje';
diff --git a/application/language/czech/translations_lang.php b/application/language/czech/translations_lang.php
index bd10ad87..fb0c6f9e 100644
--- a/application/language/czech/translations_lang.php
+++ b/application/language/czech/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Pokud je zapnuto, uživatelé a zákazníc
$lang['check_spam_folder'] = 'Zkontrolujte prosím svou SPAM schránku, pokud email v několika minutách nedorazí.';
$lang['api_token_hint'] = 'Nastavte bezpečnostní token, abyste povolili autentizaci tokenem v API Easy!Appointments.';
$lang['timezone'] = 'Časová zóna';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Tímto nahradíte současné pracovní plány. Opravdu jste si jisti, že chcete pokračovat?';
$lang['working_plans_got_updated'] = 'Všechny pracovní plány byly aktualizovány.';
$lang['apply_to_all_providers'] = 'Použít pro všechny poskytovatele';
diff --git a/application/language/danish/translations_lang.php b/application/language/danish/translations_lang.php
index 2746ec2f..438da52d 100755
--- a/application/language/danish/translations_lang.php
+++ b/application/language/danish/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$lang['check_spam_folder'] = 'Tjek venligst din uønsket mail (spam) mappe hvis du ikke har modtaget mailen inden for et par minutter.';
$lang['api_token_hint'] = 'Set a secret token in order to enable the token based authentication of the Easy!Appointments API.';
$lang['timezone'] = 'Tidszone';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/dutch/translations_lang.php b/application/language/dutch/translations_lang.php
index ebbf7899..286674b2 100755
--- a/application/language/dutch/translations_lang.php
+++ b/application/language/dutch/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/english/translations_lang.php b/application/language/english/translations_lang.php
index a4a00080..4b1156a7 100755
--- a/application/language/english/translations_lang.php
+++ b/application/language/english/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/estonian/translations_lang.php b/application/language/estonian/translations_lang.php
index 84663eed..ef819757 100644
--- a/application/language/estonian/translations_lang.php
+++ b/application/language/estonian/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Kui see on sisse lülitatud, siis klient p
$lang['check_spam_folder'] = 'Kui e-maili mõne minuti jooksul ei saabu, siis palun kontrolli enda meili rämpspostikausta.';
$lang['api_token_hint'] = 'Sea sisse juurdepääsuluba et võimaldada pääsuloaga autentimine Easy!Appointments API kasutamiseks.';
$lang['timezone'] = 'Ajavöönd';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'See kirjutab eksisteerivad tööplaanid üle. Oled kindel, et soovid jätkata?';
$lang['working_plans_got_updated'] = 'Kõik tööplaanid uuendatud.';
$lang['apply_to_all_providers'] = 'Rakenda kõikidele teenusepakkujatele';
diff --git a/application/language/finnish/translations_lang.php b/application/language/finnish/translations_lang.php
index b6709287..63413ea2 100755
--- a/application/language/finnish/translations_lang.php
+++ b/application/language/finnish/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Jos valittu, asiakkaiden ja käyttäjien o
$lang['check_spam_folder'] = 'Tarkista roskapostikansio mikäli viestiä ei näy muutaman minuutin kuluessa.';
$lang['api_token_hint'] = 'Aseta secret token aktivoidaksesi token-pohjaisen autentikoinnin Easy!Appointments API:lle.';
$lang['timezone'] = 'Aikavyöhyke';
+$lang['default_timezone'] = 'Oletusaikavyöhyke';
+$lang['default_timezone_hint'] = 'Tämä tulee uusien käyttäjien ja varausten oletusaikavyöhykkeeksi';
+$lang['default_language'] = 'Oletuskieli';
+$lang['default_language_hint'] = 'Tämä tulee uusien käyttäjien oletuskieleksi';
$lang['overwrite_existing_working_plans'] = 'Tämä korvaa aiemmat työsuunnitelmat, haluatko varmasti jatkaa?';
$lang['working_plans_got_updated'] = 'Kaikki työsuunnitelmat päivitettiin.';
$lang['apply_to_all_providers'] = 'Aseta kaikille palveluntarjoajille';
diff --git a/application/language/french/translations_lang.php b/application/language/french/translations_lang.php
index 0c6ca117..dcb3a1ad 100755
--- a/application/language/french/translations_lang.php
+++ b/application/language/french/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Lorsque activé, les clients et les utilis
$lang['check_spam_folder'] = 'Veuillez vérifier votre dossier de courrier indésirable si l\'email n\'arrive pas dans les minutes qui suivent.';
$lang['api_token_hint'] = 'Définissez un jeton secret afin d\'activer l\'authentification basée sur le jeton de l\'API Easy!Appointments. ';
$lang['timezone'] = 'Fuseau horaire';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Cela écrasera les plannings existants du fournisseur. Êtes-vous sûr de vouloir continuer ?';
$lang['working_plans_got_updated'] = 'Tous les plannings ont été mis à jour.';
$lang['apply_to_all_providers'] = 'Appliquer à tous les fournisseurs';
diff --git a/application/language/german/translations_lang.php b/application/language/german/translations_lang.php
index 50c658c0..3ee8300b 100755
--- a/application/language/german/translations_lang.php
+++ b/application/language/german/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Wenn aktiviert, müssen Kunden und Benutze
$lang['check_spam_folder'] = 'Bitte kontrollieren Sie Ihren Spam-Ordner, falls die E-Mail 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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/greek/translations_lang.php b/application/language/greek/translations_lang.php
index bd62092b..755ea715 100755
--- a/application/language/greek/translations_lang.php
+++ b/application/language/greek/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Όταν ενεργοποιημένο, ο
$lang['check_spam_folder'] = 'Παρακαλώ ελέγξτε τον φάκελο spam εφόσον το ηλεκτρονικό μήνυμα δεν έχει ληφθεί.';
$lang['api_token_hint'] = 'Καταχωρήστε εναν μυστικό κωδικό για να μπορέσετε να ενεργοποιήσετε την token-based πιστοποίηση του Easy!Appointments API.';
$lang['timezone'] = 'Ζώνη Ώρας';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Αυτό θα αντικαταστήσει το υπάρχον πλάνο εργασίας του παρόχου, είστε σίγουρος ότι θέλετε να συνεχίσετε;';
$lang['working_plans_got_updated'] = 'Όλα τα πλάνα εργασίας έχουν ενημερωθεί.';
$lang['apply_to_all_providers'] = 'Εφαρμογή σε όλους τος παρόχους';
diff --git a/application/language/hebrew/translations_lang.php b/application/language/hebrew/translations_lang.php
index 9b9d5d83..0aaeb30a 100644
--- a/application/language/hebrew/translations_lang.php
+++ b/application/language/hebrew/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'כאשר אפשרות זו מופעלת,
$lang['check_spam_folder'] = 'אם הדוא"ל אינו מגיע תוך מספר דקות יש לבדוק את תיקיית הספאם שלך .';
$lang['api_token_hint'] = 'הגדר טוקן סודי על מנת לאפשר אימות מבוסס טוקן בממשק ה- API של Easy! Appointments.';
$lang['timezone'] = 'אזור זמן';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'פעולה זו תחליף את כל תוכניות העבודה של הספקים הקיימים, האם את/ה בטוח/ה שברצונך להמשיך?';
$lang['working_plans_got_updated'] = 'כל תוכניות העבודה עודכנו.';
$lang['apply_to_all_providers'] = 'החל על כל הספקים';
diff --git a/application/language/hindi/translations_lang.php b/application/language/hindi/translations_lang.php
index 5149418d..6c490c09 100755
--- a/application/language/hindi/translations_lang.php
+++ b/application/language/hindi/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/hungarian/translations_lang.php b/application/language/hungarian/translations_lang.php
index 7360603b..3d5415a6 100755
--- a/application/language/hungarian/translations_lang.php
+++ b/application/language/hungarian/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/italian/translations_lang.php b/application/language/italian/translations_lang.php
index ef994d10..95099e8d 100755
--- a/application/language/italian/translations_lang.php
+++ b/application/language/italian/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Quando abilitato i clienti e gli utenti ne
$lang['check_spam_folder'] = 'Controlla la cartella SPAM se non ricevi l\'email di conferma entro pochi minuti.';
$lang['api_token_hint'] = 'Imposta un token segreto per abilitare l\'autenticazione basata su token nelle API di Easy!Appointments.';
$lang['timezone'] = 'Fuso Orario';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Questa operazione sovrascrive il Piano di Lavoro del fornitore esistente, sei sicuro di voler continuare?';
$lang['working_plans_got_updated'] = 'Tutti i Piani di Lavoro sono stati aggiornati.';
$lang['apply_to_all_providers'] = 'Applica a tutti i Fornitori';
diff --git a/application/language/japanese/translations_lang.php b/application/language/japanese/translations_lang.php
index 6dc3ba35..8ab500ba 100755
--- a/application/language/japanese/translations_lang.php
+++ b/application/language/japanese/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/luxembourgish/translations_lang.php b/application/language/luxembourgish/translations_lang.php
index 297358c8..479d1bcb 100755
--- a/application/language/luxembourgish/translations_lang.php
+++ b/application/language/luxembourgish/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/marathi/translations_lang.php b/application/language/marathi/translations_lang.php
index 97667b30..718d93a5 100644
--- a/application/language/marathi/translations_lang.php
+++ b/application/language/marathi/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/persian/translations_lang.php b/application/language/persian/translations_lang.php
index 3fa289c2..1ed254ff 100644
--- a/application/language/persian/translations_lang.php
+++ b/application/language/persian/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'در صورت فعال بودن ، هنگ
$lang['check_spam_folder'] = 'اگر تا دقایقی دیگر ایمیل را دریافت نکردید ، لطفاً پوشه هرزنامه خود را بررسی کنید.';
$lang['api_token_hint'] = 'برای فعال سازی احراز هویت مبتنی بر token برای دسترسی به API برنامه، یک رمز مخفی تنظیم کنید.';
$lang['timezone'] = 'منطقه زمانی';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'این کار باعث بازنویسی برنامه های کاری موجود می شود. آیا از این کار اطمینان دارید؟';
$lang['working_plans_got_updated'] = 'تمامی برنامه های کاری به روز رسانی شدند';
$lang['apply_to_all_providers'] = 'اعمال کردن به همه ارائه دهنده ها';
diff --git a/application/language/polish/translations_lang.php b/application/language/polish/translations_lang.php
index 6496071f..21d42000 100755
--- a/application/language/polish/translations_lang.php
+++ b/application/language/polish/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/portuguese-br/translations_lang.php b/application/language/portuguese-br/translations_lang.php
index 6b898d68..65cd512c 100755
--- a/application/language/portuguese-br/translations_lang.php
+++ b/application/language/portuguese-br/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Quando ativado, os clientes e usuários pr
$lang['check_spam_folder'] = 'Verifique sua pasta de spam se o e-mail não chegar em alguns minutos.';
$lang['api_token_hint'] = 'Defina um token secreto para habilitar a autenticação baseada em token da API Easy!Appointments.';
$lang['timezone'] = 'Fuso horário';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Isso substituirá os planos de trabalho dos fornecedores existentes. Tem certeza de que deseja continuar?';
$lang['working_plans_got_updated'] = 'Todos os planos de trabalho foram atualizados.';
$lang['apply_to_all_providers'] = 'Aplicar a todos os fornecedores';
diff --git a/application/language/portuguese/translations_lang.php b/application/language/portuguese/translations_lang.php
index a47a537a..862b90ab 100755
--- a/application/language/portuguese/translations_lang.php
+++ b/application/language/portuguese/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/romanian/translations_lang.php b/application/language/romanian/translations_lang.php
index c624e92f..5386e8c5 100755
--- a/application/language/romanian/translations_lang.php
+++ b/application/language/romanian/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/russian/translations_lang.php b/application/language/russian/translations_lang.php
index 0a86abb4..472c9d99 100644
--- a/application/language/russian/translations_lang.php
+++ b/application/language/russian/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Когда эта функция вклю
$lang['check_spam_folder'] = 'Пожалуйста, проверьте папку спама, если письмо не пришло в течение нескольких минут.';
$lang['api_token_hint'] = 'Установите секретный токен, чтобы включить аутентификацию на основе токена в Easy!Appointments API.';
$lang['timezone'] = 'Часовой пояс';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Это перезапишет существующие рабочие планы поставщика - Вы уверены что хотите продолжить?';
$lang['working_plans_got_updated'] = 'Все рабочие планы были обновлены.';
$lang['apply_to_all_providers'] = 'Применяется ко всем поставщикам услуг';
diff --git a/application/language/serbian/translations_lang.php b/application/language/serbian/translations_lang.php
index 0e44470f..b3dce9ca 100644
--- a/application/language/serbian/translations_lang.php
+++ b/application/language/serbian/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Kada je omogućeno, klijenti i korisnici t
$lang['check_spam_folder'] = 'Proverite svoju neželjenu poštu (spam) ako E-mail nije stigao u roku od nekoliko minuta.';
$lang['api_token_hint'] = 'Postavite tajni token kako biste omogućili pristup Easy!Appointments API.';
$lang['timezone'] = 'Vremenska zona';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Ovo će prepisati postojeći plan rada izvršioca, da li ste sigurni da želite da nastavite?';
$lang['working_plans_got_updated'] = 'Svi planovi rada su aktualizovani.';
$lang['apply_to_all_providers'] = 'Primeni na sve izvršioce';
diff --git a/application/language/slovak/translations_lang.php b/application/language/slovak/translations_lang.php
index 6dc43fd9..e32424de 100755
--- a/application/language/slovak/translations_lang.php
+++ b/application/language/slovak/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/spanish/translations_lang.php b/application/language/spanish/translations_lang.php
index 33dcb0a0..b3cda78c 100755
--- a/application/language/spanish/translations_lang.php
+++ b/application/language/spanish/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Cuando está habilitado, clientes y usuari
$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['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
diff --git a/application/language/swedish/translations_lang.php b/application/language/swedish/translations_lang.php
index aade4545..b4947b42 100644
--- a/application/language/swedish/translations_lang.php
+++ b/application/language/swedish/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'När denna är aktiv måste kunderna ange
$lang['check_spam_folder'] = 'Om eposten inte kommit fram inom några minuter; kolla skräpposten.';
$lang['api_token_hint'] = 'Ställ in en hemlig token för att aktivera tokenbaserad autentisering av Easy!Appointments API.';
$lang['timezone'] = 'Tidszon';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Detta kommer skriva över befintliga leverantörsscheman. Är du säker på att du vill det?';
$lang['working_plans_got_updated'] = 'Alla scheman uppdaterades.';
$lang['apply_to_all_providers'] = 'Tilldela till alla leverantörer';
diff --git a/application/language/thai/translations_lang.php b/application/language/thai/translations_lang.php
index b35f2cb6..b0755a92 100644
--- a/application/language/thai/translations_lang.php
+++ b/application/language/thai/translations_lang.php
@@ -319,6 +319,10 @@ $lang['require_phone_number_hint'] = 'เมื่อเปิดใช้งา
$lang['check_spam_folder'] = 'โปรดตรวจสอบโฟลเดอร์สแปมของคุณ หากคุณไม่ได้รับอีเมลภายในไม่กี่นาที';
$lang['api_token_hint'] = 'ตั้งค่าโทเค็นลับเพื่อเปิดใช้งานการตรวจสอบสิทธิ์โดยใช้โทเค็นของ Easy!Appointments API';
$lang['timezone'] = 'เขตเวลา';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'การดำเนินการนี้จะเขียนทับแผนการทำงานของผู้ให้บริการที่มีอยู่ คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ';
$lang['working_plans_got_updated'] = 'แผนการทำงานทั้งหมดได้รับการปรับปรุง';
$lang['apply_to_all_providers'] = 'นำไปใช้กับผู้ให้บริการทั้งหมด';
diff --git a/application/language/turkish/translations_lang.php b/application/language/turkish/translations_lang.php
index 940cce9f..ca419416 100755
--- a/application/language/turkish/translations_lang.php
+++ b/application/language/turkish/translations_lang.php
@@ -322,6 +322,10 @@ $lang['require_phone_number_hint'] = 'Etkinleştirildiğinde, müşterilerin ve
$lang['check_spam_folder'] = 'E-posta birkaç dakika içinde gelmezse lütfen spam klasörünüzü kontrol edin.';
$lang['api_token_hint'] = 'Easy!Appointments Api sinin belirteç tabanlı kimlik doğrulamasını etkinleştirmek için gizli bir belirteç ayarlayın.';
$lang['timezone'] = 'Saat Dilimi';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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'] = 'Tüm çalışma planları güncellendi.';
$lang['apply_to_all_providers'] = 'Tüm H.Sağlayıcılara Uygula';
diff --git a/application/migrations/052_add_default_timezone_to_setting.php b/application/migrations/052_add_default_timezone_to_setting.php
new file mode 100644
index 00000000..7e3be9b6
--- /dev/null
+++ b/application/migrations/052_add_default_timezone_to_setting.php
@@ -0,0 +1,38 @@
+
+ * @copyright Copyright (c) Alex Tselegidis
+ * @license https://opensource.org/licenses/GPL-3.0 - GPLv3
+ * @link https://easyappointments.org
+ * @since v1.3.2
+ * ---------------------------------------------------------------------------- */
+
+class Migration_Add_weekday_start_setting extends EA_Migration
+{
+ /**
+ * Upgrade method.
+ */
+ public function up()
+ {
+ if (!$this->db->get_where('settings', ['name' => 'default_timezone'])->num_rows()) {
+ $this->db->insert('settings', [
+ 'name' => 'default_timezone',
+ 'value' => 'UTC',
+ ]);
+ }
+ }
+
+ /**
+ * Downgrade method.
+ */
+ public function down()
+ {
+ if ($this->db->get_where('settings', ['name' => 'default_timezone'])->num_rows()) {
+ $this->db->delete('settings', ['name' => 'default_timezone']);
+ }
+ }
+}
diff --git a/application/migrations/053_add_default_language_to_settings.php b/application/migrations/053_add_default_language_to_settings.php
new file mode 100644
index 00000000..76866ffe
--- /dev/null
+++ b/application/migrations/053_add_default_language_to_settings.php
@@ -0,0 +1,38 @@
+
+ * @copyright Copyright (c) Alex Tselegidis
+ * @license https://opensource.org/licenses/GPL-3.0 - GPLv3
+ * @link https://easyappointments.org
+ * @since v1.3.2
+ * ---------------------------------------------------------------------------- */
+
+class Migration_Add_weekday_start_setting extends EA_Migration
+{
+ /**
+ * Upgrade method.
+ */
+ public function up()
+ {
+ if (!$this->db->get_where('settings', ['name' => 'default_language'])->num_rows()) {
+ $this->db->insert('settings', [
+ 'name' => 'default_language',
+ 'value' => 'english',
+ ]);
+ }
+ }
+
+ /**
+ * Downgrade method.
+ */
+ public function down()
+ {
+ if ($this->db->get_where('settings', ['name' => 'default_language'])->num_rows()) {
+ $this->db->delete('settings', ['name' => 'default_language']);
+ }
+ }
+}
diff --git a/application/views/pages/general_settings.php b/application/views/pages/general_settings.php
index 66eb6151..50f0d7cc 100755
--- a/application/views/pages/general_settings.php
+++ b/application/views/pages/general_settings.php
@@ -191,6 +191,42 @@
+
+
+
diff --git a/assets/js/components/appointments_modal.js b/assets/js/components/appointments_modal.js
index b3043995..888ea4d9 100755
--- a/assets/js/components/appointments_modal.js
+++ b/assets/js/components/appointments_modal.js
@@ -424,8 +424,8 @@ App.Components.AppointmentsModal = (function () {
$address.val('');
$city.val('');
$zipCode.val('');
- $language.val('english');
- $timezone.val('UTC');
+ $language.val(vars('default_language'));
+ $timezone.val(vars('default_timezone'));
$customerNotes.val('');
$customField1.val('');
$customField2.val('');
@@ -449,8 +449,8 @@ App.Components.AppointmentsModal = (function () {
const defaultStatusValue = $appointmentStatus.find('option:first').val();
$appointmentStatus.val(defaultStatusValue);
- $language.val('english');
- $timezone.val('UTC');
+ $language.val(vars('default_language'));
+ $timezone.val(vars('default_timezone'))
// Reset color.
$appointmentColor.find('.color-selection-option:first').trigger('click');
diff --git a/assets/js/pages/admins.js b/assets/js/pages/admins.js
index f9b63b25..d1c4c04a 100644
--- a/assets/js/pages/admins.js
+++ b/assets/js/pages/admins.js
@@ -336,8 +336,8 @@ App.Pages.Admins = (function () {
$admins.find('.record-details').find('input, select, textarea').val('').prop('disabled', true);
$admins.find('.record-details .form-label span').prop('hidden', true);
$admins.find('.record-details #calendar-view').val('default');
- $admins.find('.record-details #language').val('english');
- $admins.find('.record-details #timezone').val('UTC');
+ $admins.find('.record-details #language').val(vars('default_language'));
+ $admins.find('.record-details #timezone').val(vars('default_timezone'));
$admins.find('.record-details #notifications').prop('checked', true);
$('#edit-admin, #delete-admin').prop('disabled', true);
diff --git a/assets/js/pages/customers.js b/assets/js/pages/customers.js
index fd286d2c..f8c0e235 100644
--- a/assets/js/pages/customers.js
+++ b/assets/js/pages/customers.js
@@ -252,9 +252,9 @@ App.Pages.Customers = (function () {
function resetForm() {
$customers.find('.record-details').find('input, select, textarea').val('').prop('disabled', true);
$customers.find('.record-details .form-label span').prop('hidden', true);
- $customers.find('.record-details #timezone').val('UTC');
+ $customers.find('.record-details #timezone').val(vars('default_timezone'));
- $language.val('english');
+ $language.val(vars('default_language'));
$customerAppointments.empty();
diff --git a/assets/js/pages/providers.js b/assets/js/pages/providers.js
index 6d284e17..6b9afed0 100755
--- a/assets/js/pages/providers.js
+++ b/assets/js/pages/providers.js
@@ -340,8 +340,8 @@ App.Pages.Providers = (function () {
$providers.find('.record-details').find('input, select, textarea').val('').prop('disabled', true);
$providers.find('.record-details .form-label span').prop('hidden', true);
$providers.find('.record-details #calendar-view').val('default');
- $providers.find('.record-details #language').val('english');
- $providers.find('.record-details #timezone').val('UTC');
+ $providers.find('.record-details #language').val(vars('default_language'));
+ $providers.find('.record-details #timezone').val(vars('default_timezone'));
$providers.find('.record-details #is-private').prop('checked', false);
$providers.find('.record-details #notifications').prop('checked', true);
$providers.find('.add-break, .add-working-plan-exception, #reset-working-plan').prop('disabled', true);
diff --git a/assets/js/pages/secretaries.js b/assets/js/pages/secretaries.js
index 75e85a83..bdcf274b 100644
--- a/assets/js/pages/secretaries.js
+++ b/assets/js/pages/secretaries.js
@@ -344,7 +344,8 @@ App.Pages.Secretaries = (function () {
$secretaries.find('.record-details').find('input, select, textarea').val('').prop('disabled', true);
$secretaries.find('.record-details .form-label span').prop('hidden', true);
$secretaries.find('.record-details #calendar-view').val('default');
- $secretaries.find('.record-details #timezone').val('UTC');
+ $secretaries.find('.record-details #timezone').val(vars('default_timezone'));
+ $secretaries.find('.record-details #language').val(vars('default_language'));
$secretaries.find('.record-details #notifications').prop('checked', true);
$secretaries.find('.add-edit-delete-group').show();
$secretaries.find('.save-cancel-group').hide();
From 9a24fb6a6bc2aa32720b9dc73ab416548383ae01 Mon Sep 17 00:00:00 2001
From: tm8544 <15167679+tm8544@users.noreply.github.com>
Date: Fri, 29 Mar 2024 18:56:08 +0200
Subject: [PATCH 02/72] Update 052_add_default_timezone_to_setting.php
Corrected class name
---
application/migrations/052_add_default_timezone_to_setting.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/migrations/052_add_default_timezone_to_setting.php b/application/migrations/052_add_default_timezone_to_setting.php
index 7e3be9b6..ce39396a 100644
--- a/application/migrations/052_add_default_timezone_to_setting.php
+++ b/application/migrations/052_add_default_timezone_to_setting.php
@@ -11,7 +11,7 @@
* @since v1.3.2
* ---------------------------------------------------------------------------- */
-class Migration_Add_weekday_start_setting extends EA_Migration
+class Migration_Add_default_timezone_setting extends EA_Migration
{
/**
* Upgrade method.
From f3b9aa5018e14fc568dac444a5af180b2f24babb Mon Sep 17 00:00:00 2001
From: tm8544 <15167679+tm8544@users.noreply.github.com>
Date: Fri, 29 Mar 2024 18:57:01 +0200
Subject: [PATCH 03/72] Update 053_add_default_language_to_settings.php
Corrected class name
---
application/migrations/053_add_default_language_to_settings.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/migrations/053_add_default_language_to_settings.php b/application/migrations/053_add_default_language_to_settings.php
index 76866ffe..3882e8ad 100644
--- a/application/migrations/053_add_default_language_to_settings.php
+++ b/application/migrations/053_add_default_language_to_settings.php
@@ -11,7 +11,7 @@
* @since v1.3.2
* ---------------------------------------------------------------------------- */
-class Migration_Add_weekday_start_setting extends EA_Migration
+class Migration_Add_default_language_setting extends EA_Migration
{
/**
* Upgrade method.
From 1ab1f5b384e6a869c91f3efb1687cfef8d3b6503 Mon Sep 17 00:00:00 2001
From: tm8544 <15167679+tm8544@users.noreply.github.com>
Date: Sat, 30 Mar 2024 11:03:00 +0200
Subject: [PATCH 04/72] Rename 052_add_default_timezone_to_setting.php to
054_add_default_timezone_to_setting.php
Renamed file to avoid conflict with PR #1479
---
...one_to_setting.php => 054_add_default_timezone_to_setting.php} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename application/migrations/{052_add_default_timezone_to_setting.php => 054_add_default_timezone_to_setting.php} (100%)
diff --git a/application/migrations/052_add_default_timezone_to_setting.php b/application/migrations/054_add_default_timezone_to_setting.php
similarity index 100%
rename from application/migrations/052_add_default_timezone_to_setting.php
rename to application/migrations/054_add_default_timezone_to_setting.php
From f47ce7a1943ffdd5d69f7af3862dc5941e9a03e1 Mon Sep 17 00:00:00 2001
From: tm8544 <15167679+tm8544@users.noreply.github.com>
Date: Sat, 30 Mar 2024 22:12:04 +0200
Subject: [PATCH 05/72] Update Calendar.php
add script_vars for default values
---
application/controllers/Calendar.php | 2 ++
1 file changed, 2 insertions(+)
diff --git a/application/controllers/Calendar.php b/application/controllers/Calendar.php
index 9f054ddf..b5c98ac2 100644
--- a/application/controllers/Calendar.php
+++ b/application/controllers/Calendar.php
@@ -145,6 +145,8 @@ class Calendar extends EA_Controller
'secretary_providers' => $secretary_providers,
'edit_appointment' => $edit_appointment,
'customers' => $this->customers_model->get(null, 50, null, 'update_datetime DESC'),
+ 'default_language' => setting('default_language'),
+ 'default_timezone' => setting('default_timezone'),
]);
html_vars([
From db6c127d3b71f2892146e7b49e47cbb6e7096b59 Mon Sep 17 00:00:00 2001
From: tm8544 <15167679+tm8544@users.noreply.github.com>
Date: Mon, 8 Apr 2024 18:35:06 +0300
Subject: [PATCH 06/72] New lines moved to the end of file before // End
---
application/language/arabic/translations_lang.php | 8 ++++----
application/language/bulgarian/translations_lang.php | 8 ++++----
application/language/catalan/translations_lang.php | 8 ++++----
application/language/chinese/translations_lang.php | 8 ++++----
application/language/croatian/translations_lang.php | 8 ++++----
application/language/czech/translations_lang.php | 8 ++++----
application/language/danish/translations_lang.php | 8 ++++----
application/language/dutch/translations_lang.php | 8 ++++----
application/language/english/translations_lang.php | 8 ++++----
application/language/estonian/translations_lang.php | 8 ++++----
application/language/finnish/translations_lang.php | 8 ++++----
application/language/french/translations_lang.php | 8 ++++----
application/language/german/translations_lang.php | 8 ++++----
application/language/greek/translations_lang.php | 8 ++++----
application/language/hebrew/translations_lang.php | 8 ++++----
application/language/hindi/translations_lang.php | 8 ++++----
application/language/hungarian/translations_lang.php | 8 ++++----
application/language/italian/translations_lang.php | 8 ++++----
application/language/japanese/translations_lang.php | 8 ++++----
application/language/luxembourgish/translations_lang.php | 8 ++++----
application/language/marathi/translations_lang.php | 8 ++++----
application/language/persian/translations_lang.php | 8 ++++----
application/language/polish/translations_lang.php | 8 ++++----
application/language/portuguese-br/translations_lang.php | 8 ++++----
application/language/portuguese/translations_lang.php | 8 ++++----
application/language/romanian/translations_lang.php | 8 ++++----
application/language/russian/translations_lang.php | 8 ++++----
application/language/serbian/translations_lang.php | 8 ++++----
application/language/slovak/translations_lang.php | 8 ++++----
application/language/spanish/translations_lang.php | 8 ++++----
application/language/swedish/translations_lang.php | 8 ++++----
application/language/thai/translations_lang.php | 8 ++++----
application/language/turkish/translations_lang.php | 8 ++++----
33 files changed, 132 insertions(+), 132 deletions(-)
diff --git a/application/language/arabic/translations_lang.php b/application/language/arabic/translations_lang.php
index 849daecc..a0bd3a5e 100755
--- a/application/language/arabic/translations_lang.php
+++ b/application/language/arabic/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/bulgarian/translations_lang.php b/application/language/bulgarian/translations_lang.php
index 27a5703d..c7098328 100755
--- a/application/language/bulgarian/translations_lang.php
+++ b/application/language/bulgarian/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/catalan/translations_lang.php b/application/language/catalan/translations_lang.php
index a07fc91e..2442f380 100644
--- a/application/language/catalan/translations_lang.php
+++ b/application/language/catalan/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Quan està activat, els clients i els usua
$lang['check_spam_folder'] = 'Comproveu la vostra carpeta de correu brossa si el correu no arriba en uns minuts.';
$lang['api_token_hint'] = 'Establiu un token secret per permetre l\'autenticació basada en tokens de l\'API d\'Easy!Appointments.';
$lang['timezone'] = 'Zona horària';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Això sobreescriurà els plans de treball existents del proveïdor, esteu segur que voleu continuar?';
$lang['working_plans_got_updated'] = 'S\'han actualitzat tots els plans de treball.';
$lang['apply_to_all_providers'] = 'Aplica-ho a tots els proveïdors';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/chinese/translations_lang.php b/application/language/chinese/translations_lang.php
index 50142635..cd7bdcab 100755
--- a/application/language/chinese/translations_lang.php
+++ b/application/language/chinese/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/croatian/translations_lang.php b/application/language/croatian/translations_lang.php
index 384072e5..8e8765f1 100644
--- a/application/language/croatian/translations_lang.php
+++ b/application/language/croatian/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Kada je omogućeno, klijenti i korisnici
$lang['check_spam_folder'] = 'Provjerite svoju spam mapu ako e-mail ne stigne unutar nekoliko minuta.';
$lang['api_token_hint'] = 'Postavite tajni token kako biste omogućili autentifikaciju temeljenu na tokenima za Easy!Appointments API.';
$lang['timezone'] = 'Vremenska Zona';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Ovo će prebrisati postojeće radne planove pružatelja, jeste li sigurni da želite nastaviti?';
$lang['working_plans_got_updated'] = 'Svi radni planovi su ažurirani.';
$lang['apply_to_all_providers'] = 'Primijeni na sve pružatelje';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/czech/translations_lang.php b/application/language/czech/translations_lang.php
index fb0c6f9e..6a9f18a0 100644
--- a/application/language/czech/translations_lang.php
+++ b/application/language/czech/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Pokud je zapnuto, uživatelé a zákazníc
$lang['check_spam_folder'] = 'Zkontrolujte prosím svou SPAM schránku, pokud email v několika minutách nedorazí.';
$lang['api_token_hint'] = 'Nastavte bezpečnostní token, abyste povolili autentizaci tokenem v API Easy!Appointments.';
$lang['timezone'] = 'Časová zóna';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Tímto nahradíte současné pracovní plány. Opravdu jste si jisti, že chcete pokračovat?';
$lang['working_plans_got_updated'] = 'Všechny pracovní plány byly aktualizovány.';
$lang['apply_to_all_providers'] = 'Použít pro všechny poskytovatele';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/danish/translations_lang.php b/application/language/danish/translations_lang.php
index 438da52d..97567b04 100755
--- a/application/language/danish/translations_lang.php
+++ b/application/language/danish/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$lang['check_spam_folder'] = 'Tjek venligst din uønsket mail (spam) mappe hvis du ikke har modtaget mailen inden for et par minutter.';
$lang['api_token_hint'] = 'Set a secret token in order to enable the token based authentication of the Easy!Appointments API.';
$lang['timezone'] = 'Tidszone';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/dutch/translations_lang.php b/application/language/dutch/translations_lang.php
index 286674b2..2bb51780 100755
--- a/application/language/dutch/translations_lang.php
+++ b/application/language/dutch/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/english/translations_lang.php b/application/language/english/translations_lang.php
index 4b1156a7..04f35a6d 100755
--- a/application/language/english/translations_lang.php
+++ b/application/language/english/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/estonian/translations_lang.php b/application/language/estonian/translations_lang.php
index ef819757..756d6ed3 100644
--- a/application/language/estonian/translations_lang.php
+++ b/application/language/estonian/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Kui see on sisse lülitatud, siis klient p
$lang['check_spam_folder'] = 'Kui e-maili mõne minuti jooksul ei saabu, siis palun kontrolli enda meili rämpspostikausta.';
$lang['api_token_hint'] = 'Sea sisse juurdepääsuluba et võimaldada pääsuloaga autentimine Easy!Appointments API kasutamiseks.';
$lang['timezone'] = 'Ajavöönd';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'See kirjutab eksisteerivad tööplaanid üle. Oled kindel, et soovid jätkata?';
$lang['working_plans_got_updated'] = 'Kõik tööplaanid uuendatud.';
$lang['apply_to_all_providers'] = 'Rakenda kõikidele teenusepakkujatele';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/finnish/translations_lang.php b/application/language/finnish/translations_lang.php
index 63413ea2..df3fdd5c 100755
--- a/application/language/finnish/translations_lang.php
+++ b/application/language/finnish/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Jos valittu, asiakkaiden ja käyttäjien o
$lang['check_spam_folder'] = 'Tarkista roskapostikansio mikäli viestiä ei näy muutaman minuutin kuluessa.';
$lang['api_token_hint'] = 'Aseta secret token aktivoidaksesi token-pohjaisen autentikoinnin Easy!Appointments API:lle.';
$lang['timezone'] = 'Aikavyöhyke';
-$lang['default_timezone'] = 'Oletusaikavyöhyke';
-$lang['default_timezone_hint'] = 'Tämä tulee uusien käyttäjien ja varausten oletusaikavyöhykkeeksi';
-$lang['default_language'] = 'Oletuskieli';
-$lang['default_language_hint'] = 'Tämä tulee uusien käyttäjien oletuskieleksi';
$lang['overwrite_existing_working_plans'] = 'Tämä korvaa aiemmat työsuunnitelmat, haluatko varmasti jatkaa?';
$lang['working_plans_got_updated'] = 'Kaikki työsuunnitelmat päivitettiin.';
$lang['apply_to_all_providers'] = 'Aseta kaikille palveluntarjoajille';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Oletusaikavyöhyke';
+$lang['default_timezone_hint'] = 'Tämä tulee uusien käyttäjien ja varausten oletusaikavyöhykkeeksi';
+$lang['default_language'] = 'Oletuskieli';
+$lang['default_language_hint'] = 'Tämä tulee uusien käyttäjien oletuskieleksi';
// End
diff --git a/application/language/french/translations_lang.php b/application/language/french/translations_lang.php
index dcb3a1ad..9478b016 100755
--- a/application/language/french/translations_lang.php
+++ b/application/language/french/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Lorsque activé, les clients et les utilis
$lang['check_spam_folder'] = 'Veuillez vérifier votre dossier de courrier indésirable si l\'email n\'arrive pas dans les minutes qui suivent.';
$lang['api_token_hint'] = 'Définissez un jeton secret afin d\'activer l\'authentification basée sur le jeton de l\'API Easy!Appointments. ';
$lang['timezone'] = 'Fuseau horaire';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Cela écrasera les plannings existants du fournisseur. Êtes-vous sûr de vouloir continuer ?';
$lang['working_plans_got_updated'] = 'Tous les plannings ont été mis à jour.';
$lang['apply_to_all_providers'] = 'Appliquer à tous les fournisseurs';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/german/translations_lang.php b/application/language/german/translations_lang.php
index 3ee8300b..58fa0fc0 100755
--- a/application/language/german/translations_lang.php
+++ b/application/language/german/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Wenn aktiviert, müssen Kunden und Benutze
$lang['check_spam_folder'] = 'Bitte kontrollieren Sie Ihren Spam-Ordner, falls die E-Mail 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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/greek/translations_lang.php b/application/language/greek/translations_lang.php
index 755ea715..097ca11c 100755
--- a/application/language/greek/translations_lang.php
+++ b/application/language/greek/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Όταν ενεργοποιημένο, ο
$lang['check_spam_folder'] = 'Παρακαλώ ελέγξτε τον φάκελο spam εφόσον το ηλεκτρονικό μήνυμα δεν έχει ληφθεί.';
$lang['api_token_hint'] = 'Καταχωρήστε εναν μυστικό κωδικό για να μπορέσετε να ενεργοποιήσετε την token-based πιστοποίηση του Easy!Appointments API.';
$lang['timezone'] = 'Ζώνη Ώρας';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Αυτό θα αντικαταστήσει το υπάρχον πλάνο εργασίας του παρόχου, είστε σίγουρος ότι θέλετε να συνεχίσετε;';
$lang['working_plans_got_updated'] = 'Όλα τα πλάνα εργασίας έχουν ενημερωθεί.';
$lang['apply_to_all_providers'] = 'Εφαρμογή σε όλους τος παρόχους';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/hebrew/translations_lang.php b/application/language/hebrew/translations_lang.php
index 0aaeb30a..e06cd11f 100644
--- a/application/language/hebrew/translations_lang.php
+++ b/application/language/hebrew/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'כאשר אפשרות זו מופעלת,
$lang['check_spam_folder'] = 'אם הדוא"ל אינו מגיע תוך מספר דקות יש לבדוק את תיקיית הספאם שלך .';
$lang['api_token_hint'] = 'הגדר טוקן סודי על מנת לאפשר אימות מבוסס טוקן בממשק ה- API של Easy! Appointments.';
$lang['timezone'] = 'אזור זמן';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'פעולה זו תחליף את כל תוכניות העבודה של הספקים הקיימים, האם את/ה בטוח/ה שברצונך להמשיך?';
$lang['working_plans_got_updated'] = 'כל תוכניות העבודה עודכנו.';
$lang['apply_to_all_providers'] = 'החל על כל הספקים';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/hindi/translations_lang.php b/application/language/hindi/translations_lang.php
index 6c490c09..ceb03e45 100755
--- a/application/language/hindi/translations_lang.php
+++ b/application/language/hindi/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/hungarian/translations_lang.php b/application/language/hungarian/translations_lang.php
index 3d5415a6..33b21d4f 100755
--- a/application/language/hungarian/translations_lang.php
+++ b/application/language/hungarian/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/italian/translations_lang.php b/application/language/italian/translations_lang.php
index 95099e8d..3e259d2c 100755
--- a/application/language/italian/translations_lang.php
+++ b/application/language/italian/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Quando abilitato i clienti e gli utenti ne
$lang['check_spam_folder'] = 'Controlla la cartella SPAM se non ricevi l\'email di conferma entro pochi minuti.';
$lang['api_token_hint'] = 'Imposta un token segreto per abilitare l\'autenticazione basata su token nelle API di Easy!Appointments.';
$lang['timezone'] = 'Fuso Orario';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Questa operazione sovrascrive il Piano di Lavoro del fornitore esistente, sei sicuro di voler continuare?';
$lang['working_plans_got_updated'] = 'Tutti i Piani di Lavoro sono stati aggiornati.';
$lang['apply_to_all_providers'] = 'Applica a tutti i Fornitori';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/japanese/translations_lang.php b/application/language/japanese/translations_lang.php
index 8ab500ba..6bde7eb8 100755
--- a/application/language/japanese/translations_lang.php
+++ b/application/language/japanese/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/luxembourgish/translations_lang.php b/application/language/luxembourgish/translations_lang.php
index 479d1bcb..e9ba5007 100755
--- a/application/language/luxembourgish/translations_lang.php
+++ b/application/language/luxembourgish/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/marathi/translations_lang.php b/application/language/marathi/translations_lang.php
index 718d93a5..b78050b0 100644
--- a/application/language/marathi/translations_lang.php
+++ b/application/language/marathi/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/persian/translations_lang.php b/application/language/persian/translations_lang.php
index 1ed254ff..c9dd3b51 100644
--- a/application/language/persian/translations_lang.php
+++ b/application/language/persian/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'در صورت فعال بودن ، هنگ
$lang['check_spam_folder'] = 'اگر تا دقایقی دیگر ایمیل را دریافت نکردید ، لطفاً پوشه هرزنامه خود را بررسی کنید.';
$lang['api_token_hint'] = 'برای فعال سازی احراز هویت مبتنی بر token برای دسترسی به API برنامه، یک رمز مخفی تنظیم کنید.';
$lang['timezone'] = 'منطقه زمانی';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'این کار باعث بازنویسی برنامه های کاری موجود می شود. آیا از این کار اطمینان دارید؟';
$lang['working_plans_got_updated'] = 'تمامی برنامه های کاری به روز رسانی شدند';
$lang['apply_to_all_providers'] = 'اعمال کردن به همه ارائه دهنده ها';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/polish/translations_lang.php b/application/language/polish/translations_lang.php
index 21d42000..a17a1762 100755
--- a/application/language/polish/translations_lang.php
+++ b/application/language/polish/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/portuguese-br/translations_lang.php b/application/language/portuguese-br/translations_lang.php
index 65cd512c..3097a7c5 100755
--- a/application/language/portuguese-br/translations_lang.php
+++ b/application/language/portuguese-br/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Quando ativado, os clientes e usuários pr
$lang['check_spam_folder'] = 'Verifique sua pasta de spam se o e-mail não chegar em alguns minutos.';
$lang['api_token_hint'] = 'Defina um token secreto para habilitar a autenticação baseada em token da API Easy!Appointments.';
$lang['timezone'] = 'Fuso horário';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Isso substituirá os planos de trabalho dos fornecedores existentes. Tem certeza de que deseja continuar?';
$lang['working_plans_got_updated'] = 'Todos os planos de trabalho foram atualizados.';
$lang['apply_to_all_providers'] = 'Aplicar a todos os fornecedores';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/portuguese/translations_lang.php b/application/language/portuguese/translations_lang.php
index 862b90ab..de80b7cf 100755
--- a/application/language/portuguese/translations_lang.php
+++ b/application/language/portuguese/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/romanian/translations_lang.php b/application/language/romanian/translations_lang.php
index 5386e8c5..a56f3c67 100755
--- a/application/language/romanian/translations_lang.php
+++ b/application/language/romanian/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/russian/translations_lang.php b/application/language/russian/translations_lang.php
index 472c9d99..aa53efc1 100644
--- a/application/language/russian/translations_lang.php
+++ b/application/language/russian/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Когда эта функция вклю
$lang['check_spam_folder'] = 'Пожалуйста, проверьте папку спама, если письмо не пришло в течение нескольких минут.';
$lang['api_token_hint'] = 'Установите секретный токен, чтобы включить аутентификацию на основе токена в Easy!Appointments API.';
$lang['timezone'] = 'Часовой пояс';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Это перезапишет существующие рабочие планы поставщика - Вы уверены что хотите продолжить?';
$lang['working_plans_got_updated'] = 'Все рабочие планы были обновлены.';
$lang['apply_to_all_providers'] = 'Применяется ко всем поставщикам услуг';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/serbian/translations_lang.php b/application/language/serbian/translations_lang.php
index b3dce9ca..4fc84d83 100644
--- a/application/language/serbian/translations_lang.php
+++ b/application/language/serbian/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Kada je omogućeno, klijenti i korisnici t
$lang['check_spam_folder'] = 'Proverite svoju neželjenu poštu (spam) ako E-mail nije stigao u roku od nekoliko minuta.';
$lang['api_token_hint'] = 'Postavite tajni token kako biste omogućili pristup Easy!Appointments API.';
$lang['timezone'] = 'Vremenska zona';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Ovo će prepisati postojeći plan rada izvršioca, da li ste sigurni da želite da nastavite?';
$lang['working_plans_got_updated'] = 'Svi planovi rada su aktualizovani.';
$lang['apply_to_all_providers'] = 'Primeni na sve izvršioce';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/slovak/translations_lang.php b/application/language/slovak/translations_lang.php
index e32424de..b27c7697 100755
--- a/application/language/slovak/translations_lang.php
+++ b/application/language/slovak/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'When enabled, customers and users will nee
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/spanish/translations_lang.php b/application/language/spanish/translations_lang.php
index b3cda78c..ca4a4912 100755
--- a/application/language/spanish/translations_lang.php
+++ b/application/language/spanish/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Cuando está habilitado, clientes y usuari
$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['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/swedish/translations_lang.php b/application/language/swedish/translations_lang.php
index b4947b42..44ae8b45 100644
--- a/application/language/swedish/translations_lang.php
+++ b/application/language/swedish/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'När denna är aktiv måste kunderna ange
$lang['check_spam_folder'] = 'Om eposten inte kommit fram inom några minuter; kolla skräpposten.';
$lang['api_token_hint'] = 'Ställ in en hemlig token för att aktivera tokenbaserad autentisering av Easy!Appointments API.';
$lang['timezone'] = 'Tidszon';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'Detta kommer skriva över befintliga leverantörsscheman. Är du säker på att du vill det?';
$lang['working_plans_got_updated'] = 'Alla scheman uppdaterades.';
$lang['apply_to_all_providers'] = 'Tilldela till alla leverantörer';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/thai/translations_lang.php b/application/language/thai/translations_lang.php
index b0755a92..55894c5b 100644
--- a/application/language/thai/translations_lang.php
+++ b/application/language/thai/translations_lang.php
@@ -319,10 +319,6 @@ $lang['require_phone_number_hint'] = 'เมื่อเปิดใช้งา
$lang['check_spam_folder'] = 'โปรดตรวจสอบโฟลเดอร์สแปมของคุณ หากคุณไม่ได้รับอีเมลภายในไม่กี่นาที';
$lang['api_token_hint'] = 'ตั้งค่าโทเค็นลับเพื่อเปิดใช้งานการตรวจสอบสิทธิ์โดยใช้โทเค็นของ Easy!Appointments API';
$lang['timezone'] = 'เขตเวลา';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$lang['overwrite_existing_working_plans'] = 'การดำเนินการนี้จะเขียนทับแผนการทำงานของผู้ให้บริการที่มีอยู่ คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ';
$lang['working_plans_got_updated'] = 'แผนการทำงานทั้งหมดได้รับการปรับปรุง';
$lang['apply_to_all_providers'] = 'นำไปใช้กับผู้ให้บริการทั้งหมด';
@@ -458,4 +454,8 @@ $lang['sync_method_prompt'] = 'คุณต้องการใช้วิธ
$lang['caldav_server'] = 'เซิร์ฟเวอร์ CalDAV';
$lang['caldav_connection_info_prompt'] = 'โปรดป้อนข้อมูลการเชื่อมต่อของเซิร์ฟเวอร์ CalDAV เป้าหมาย';
$lang['connect'] = 'เชื่อมต่อ';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
diff --git a/application/language/turkish/translations_lang.php b/application/language/turkish/translations_lang.php
index ca419416..a66d7c80 100755
--- a/application/language/turkish/translations_lang.php
+++ b/application/language/turkish/translations_lang.php
@@ -322,10 +322,6 @@ $lang['require_phone_number_hint'] = 'Etkinleştirildiğinde, müşterilerin ve
$lang['check_spam_folder'] = 'E-posta birkaç dakika içinde gelmezse lütfen spam klasörünüzü kontrol edin.';
$lang['api_token_hint'] = 'Easy!Appointments Api sinin belirteç tabanlı kimlik doğrulamasını etkinleştirmek için gizli bir belirteç ayarlayın.';
$lang['timezone'] = 'Saat Dilimi';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
$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'] = 'Tüm çalışma planları güncellendi.';
$lang['apply_to_all_providers'] = 'Tüm H.Sağlayıcılara Uygula';
@@ -457,4 +453,8 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
// End
From 3105ae6db508a9ef7e4e0b46ac67e40bd48e2c1f Mon Sep 17 00:00:00 2001
From: tm8544 <15167679+tm8544@users.noreply.github.com>
Date: Fri, 26 Apr 2024 21:49:43 +0300
Subject: [PATCH 07/72] Update 054_add_default_timezone_to_setting.php
---
application/migrations/054_add_default_timezone_to_setting.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/migrations/054_add_default_timezone_to_setting.php b/application/migrations/054_add_default_timezone_to_setting.php
index ce39396a..584ca2d7 100644
--- a/application/migrations/054_add_default_timezone_to_setting.php
+++ b/application/migrations/054_add_default_timezone_to_setting.php
@@ -21,7 +21,7 @@ class Migration_Add_default_timezone_setting extends EA_Migration
if (!$this->db->get_where('settings', ['name' => 'default_timezone'])->num_rows()) {
$this->db->insert('settings', [
'name' => 'default_timezone',
- 'value' => 'UTC',
+ 'value' => date_default_timezone_get(),
]);
}
}
From bbf8869d3bca94f6b7c068a6b26a9aae486f58fd Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Thu, 28 Mar 2024 11:08:55 +0000
Subject: [PATCH 08/72] Automatically redirect logged in users to the calendar
page
---
application/controllers/Login.php | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/application/controllers/Login.php b/application/controllers/Login.php
index f7945144..735d2d23 100644
--- a/application/controllers/Login.php
+++ b/application/controllers/Login.php
@@ -40,6 +40,11 @@ class Login extends EA_Controller
*/
public function index()
{
+ if (session('user_id')) {
+ redirect('calendar');
+ return;
+ }
+
html_vars([
'page_title' => lang('login'),
'base_url' => config('base_url'),
From 4570d0859ee3734c14953a9402f6e553a44d9fe8 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Mon, 8 Apr 2024 15:48:53 +0200
Subject: [PATCH 09/72] Do not allow user to submit login without a username
and a password
---
application/views/pages/login.php | 8 ++++++--
assets/js/pages/login.js | 4 ++++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/application/views/pages/login.php b/application/views/pages/login.php
index d54cff4a..f68e5763 100644
--- a/application/views/pages/login.php
+++ b/application/views/pages/login.php
@@ -18,14 +18,18 @@
-
+
= lang('description') ?>
From e81058a05dde6f7b752ee061902992786b11adfe Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Mon, 15 Apr 2024 14:09:55 +0200
Subject: [PATCH 11/72] Patch the empty month and year selection of blocked
periods (#1494)
---
assets/js/pages/blocked_periods.js | 3 +++
1 file changed, 3 insertions(+)
diff --git a/assets/js/pages/blocked_periods.js b/assets/js/pages/blocked_periods.js
index 1b5e70e5..b4b7ba0f 100644
--- a/assets/js/pages/blocked_periods.js
+++ b/assets/js/pages/blocked_periods.js
@@ -80,6 +80,9 @@ App.Pages.BlockedPeriods = (function () {
$blockedPeriods.find('.record-details .form-label span').prop('hidden', false);
$filterBlockedPeriods.find('button').prop('disabled', true);
$filterBlockedPeriods.find('.results').css('color', '#AAA');
+
+ App.Utils.UI.setDateTimePickerValue($startDateTime, moment('00:00', 'HH:mm').toDate());
+ App.Utils.UI.setDateTimePickerValue($endDateTime, moment('00:00', 'HH:mm').add(1, 'day').toDate());
});
/**
From dfeb213f5b428789b0dda911bd7e31f6ae36dcc6 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Mon, 15 Apr 2024 14:16:56 +0200
Subject: [PATCH 12/72] Reset the time selection when the user changes the
non-working switch
---
.../js/components/working_plan_exceptions_modal.js | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/assets/js/components/working_plan_exceptions_modal.js b/assets/js/components/working_plan_exceptions_modal.js
index bb3b6418..c257ca35 100644
--- a/assets/js/components/working_plan_exceptions_modal.js
+++ b/assets/js/components/working_plan_exceptions_modal.js
@@ -215,6 +215,11 @@ App.Components.WorkingPlanExceptionsModal = (function () {
);
}
+ function resetTimeSelection() {
+ App.Utils.UI.setDateTimePickerValue($start, moment('08:00', 'HH:mm').toDate());
+ App.Utils.UI.setDateTimePickerValue($end, moment('20:00', 'HH:mm').toDate());
+ }
+
/**
* Open the modal and start adding a new working plan exception.
*
@@ -224,8 +229,8 @@ App.Components.WorkingPlanExceptionsModal = (function () {
deferred = $.Deferred();
App.Utils.UI.setDateTimePickerValue($date, new Date());
- App.Utils.UI.setDateTimePickerValue($start, moment('08:00', 'HH:mm').toDate());
- App.Utils.UI.setDateTimePickerValue($end, moment('20:00', 'HH:mm').toDate());
+
+ resetTimeSelection();
$isNonWorkingDay.prop('checked', false);
@@ -450,11 +455,11 @@ App.Components.WorkingPlanExceptionsModal = (function () {
}
/**
- * Event: Is Non Working Day "Change"
+ * Event: Is Non-Working Day "Change"
*/
function onIsNonWorkingDayChange() {
const isNonWorkingDay = $isNonWorkingDay.prop('checked');
-
+ resetTimeSelection();
toggleFieldsByNonWorkingDay(isNonWorkingDay);
}
From 01ddd00554883a3b4b5ff64d997dfa08ec658aa9 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Mon, 15 Apr 2024 14:40:03 +0200
Subject: [PATCH 13/72] Move the blocked period end date automatically on start
date change (#1499)
---
assets/js/pages/blocked_periods.js | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/assets/js/pages/blocked_periods.js b/assets/js/pages/blocked_periods.js
index b4b7ba0f..be225d64 100644
--- a/assets/js/pages/blocked_periods.js
+++ b/assets/js/pages/blocked_periods.js
@@ -26,6 +26,7 @@ App.Pages.BlockedPeriods = (function () {
let filterResults = {};
let filterLimit = 20;
+ let backupStartDateTimeObject = undefined;
/**
* Add the page event listeners.
@@ -159,6 +160,27 @@ App.Pages.BlockedPeriods = (function () {
select(id, true);
}
});
+
+ $blockedPeriods.on('focus', '#start-date-time', () => {
+ backupStartDateTimeObject = App.Utils.UI.getDateTimePickerValue($startDateTime);
+ });
+
+ /**
+ * Event: Start Date Time Input "Change"
+ */
+ $blockedPeriods.on('change', '#start-date-time', (event) => {
+ const endDateTimeObject = App.Utils.UI.getDateTimePickerValue($endDateTime);
+
+ if (!backupStartDateTimeObject || !endDateTimeObject) {
+ return;
+ }
+
+ const endDateTimeMoment = moment(endDateTimeObject);
+ const backupStartDateTimeMoment = moment(backupStartDateTimeObject);
+ const diff = endDateTimeMoment.diff(backupStartDateTimeMoment);
+ const newEndDateTimeMoment = endDateTimeMoment.clone().add(diff, 'milliseconds');
+ App.Utils.UI.setDateTimePickerValue($endDateTime, newEndDateTimeMoment.toDate());
+ });
}
/**
@@ -298,6 +320,8 @@ App.Pages.BlockedPeriods = (function () {
$blockedPeriods.find('.record-details .is-invalid').removeClass('is-invalid');
$blockedPeriods.find('.record-details .form-message').hide();
+
+ backupStartDateTimeObject = undefined;
}
/**
From 363ddeede7fb13e1d8b28636dc7878dd9259185a Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Mon, 15 Apr 2024 18:22:28 +0200
Subject: [PATCH 14/72] Fix the array_find call
---
application/helpers/array_helper.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/helpers/array_helper.php b/application/helpers/array_helper.php
index 1f47c14e..2381f894 100644
--- a/application/helpers/array_helper.php
+++ b/application/helpers/array_helper.php
@@ -48,7 +48,7 @@ if (!function_exists('array_find')) {
throw new InvalidArgumentException('No filter function provided.');
}
- return array_filter($array, $callback)[0] ?? null;
+ return array_values(array_filter($array, $callback))[0] ?? null;
}
}
From 68431e361e7ca6c44f717d13432392c6fbd3395b Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 12:18:56 +0200
Subject: [PATCH 15/72] Update CHANGELOG.md
---
CHANGELOG.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 20c90b76..f5f13c8c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -44,6 +44,7 @@ developers to maintain and readjust their custom modifications on the main proje
- Have an option to hide customer data fields during booking (#1081)
- Add a SECURITY.md file to the repository (#1122)
- Add support for custom fields on customers (#1133)
+- Add from email/name and reply-to settings in the email.php configuration file (#1465)
### Changed
From 07884d2096410e7693f0e18268046e51cf2e0ce9 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 12:23:52 +0200
Subject: [PATCH 16/72] Update the Baikal Docker configuration and the related
documentation file
---
docker-compose.yml | 9 +++++----
docs/docker.md | 2 ++
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/docker-compose.yml b/docker-compose.yml
index ba3775ee..e2dcda17 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,4 +1,3 @@
-version: '3.1'
services:
php-fpm:
build: docker/php-fpm
@@ -57,7 +56,9 @@ services:
baikal:
image: ckulka/baikal:0.9.4-apache
ports:
- - "9000:80"
+ - "8100:80"
volumes:
- - ./docker/baikal:/var/www/baikal
-
+ - ./docker/baikal:/var/www/html
+ - ./docker/baikal/config:/var/www/baikal/config
+ - ./docker/baikal/data:/var/www/baikal/Specific
+
diff --git a/docs/docker.md b/docs/docker.md
index d9baadf0..debdccc0 100644
--- a/docs/docker.md
+++ b/docs/docker.md
@@ -39,6 +39,8 @@ In the host machine the server is accessible from `http://localhost` and the dat
You can additionally access phpMyAdmin from `http://localhost:8080` (credentials are `root` / `secret`) and Mailpit from `http://localhost:8025`.
+Baikal, a self-hosted CalDAV server used to develop the CalDAV syncing integration is available on `http://localhost:8100`.
+
**Attention:** This configuration is meant to make development easier. It is not intended to server as a production environment!
A production image of Easy!Appointments can be found at: https://github.com/alextselegidis/easyappointments-docker
From a364e777bf6181c99457500df9edf0816d703458 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 12:57:13 +0200
Subject: [PATCH 17/72] Update the HTTP client param comment
---
assets/js/http/calendar_http_client.js | 14 +++++++-------
assets/js/http/google_http_client.js | 8 ++++----
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/assets/js/http/calendar_http_client.js b/assets/js/http/calendar_http_client.js
index 41125abd..b0db1c51 100755
--- a/assets/js/http/calendar_http_client.js
+++ b/assets/js/http/calendar_http_client.js
@@ -28,7 +28,7 @@ App.Http.Calendar = (function () {
* @param {Function} [successCallback] Optional, if defined, this function is going to be executed on post success.
* @param {Function} [errorCallback] Optional, if defined, this function is going to be executed on post failure.
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function saveAppointment(appointment, customer, successCallback, errorCallback) {
const url = App.Utils.Url.siteUrl('calendar/save_appointment');
@@ -61,7 +61,7 @@ App.Http.Calendar = (function () {
* @param {Number} appointmentId
* @param {String} cancellationReason
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function deleteAppointment(appointmentId, cancellationReason) {
const url = App.Utils.Url.siteUrl('calendar/delete_appointment');
@@ -82,7 +82,7 @@ App.Http.Calendar = (function () {
* @param {Function} [successCallback] The ajax success callback function.
* @param {Function} [errorCallback] The ajax failure callback function.
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function saveUnavailability(unavailability, successCallback, errorCallback) {
const url = App.Utils.Url.siteUrl('calendar/save_unavailability');
@@ -110,7 +110,7 @@ App.Http.Calendar = (function () {
*
* @param {Number} unavailabilityId
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function deleteUnavailability(unavailabilityId) {
const url = App.Utils.Url.siteUrl('calendar/delete_unavailability');
@@ -132,7 +132,7 @@ App.Http.Calendar = (function () {
* @param {Function} successCallback The ajax success callback function.
* @param {Function} errorCallback The ajax failure callback function.
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function saveWorkingPlanException(date, workingPlanException, providerId, successCallback, errorCallback) {
const url = App.Utils.Url.siteUrl('calendar/save_working_plan_exception');
@@ -165,7 +165,7 @@ App.Http.Calendar = (function () {
* @param {Function} [successCallback]
* @param {Function} [errorCallback]
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function deleteWorkingPlanException(date, providerId, successCallback, errorCallback) {
const url = App.Utils.Url.siteUrl('calendar/delete_working_plan_exception');
@@ -219,7 +219,7 @@ App.Http.Calendar = (function () {
* @param {Date} startDate
* @param {Date} endDate
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function getCalendarAppointmentsForTableView(startDate, endDate) {
const url = App.Utils.Url.siteUrl('calendar/get_calendar_appointments_for_table_view');
diff --git a/assets/js/http/google_http_client.js b/assets/js/http/google_http_client.js
index 05f29508..59c2dc41 100755
--- a/assets/js/http/google_http_client.js
+++ b/assets/js/http/google_http_client.js
@@ -21,7 +21,7 @@ App.Http.Google = (function () {
* @param {Number} providerId
* @param {String} googleCalendarId
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function selectGoogleCalendar(providerId, googleCalendarId) {
const url = App.Utils.Url.siteUrl('google/select_google_calendar');
@@ -40,7 +40,7 @@ App.Http.Google = (function () {
*
* @param {Number} providerId
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function disableProviderSync(providerId) {
const url = App.Utils.Url.siteUrl('google/disable_provider_sync');
@@ -58,7 +58,7 @@ App.Http.Google = (function () {
*
* @param {Number} providerId
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function getGoogleCalendars(providerId) {
const url = App.Utils.Url.siteUrl('google/get_google_calendars');
@@ -76,7 +76,7 @@ App.Http.Google = (function () {
*
* @param {Number} providerId
*
- * @return {*|jQuery.jqXHR}
+ * @return {*|jQuery}
*/
function syncWithGoogle(providerId) {
const url = App.Utils.Url.siteUrl('google/sync/' + providerId);
From a9149fff5d687bc910130ce860cb56040c32fada Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:11:08 +0200
Subject: [PATCH 18/72] Add the Baikal credentials to docker.md
---
docs/docker.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/docker.md b/docs/docker.md
index debdccc0..6a6edd6a 100644
--- a/docs/docker.md
+++ b/docs/docker.md
@@ -39,7 +39,7 @@ In the host machine the server is accessible from `http://localhost` and the dat
You can additionally access phpMyAdmin from `http://localhost:8080` (credentials are `root` / `secret`) and Mailpit from `http://localhost:8025`.
-Baikal, a self-hosted CalDAV server used to develop the CalDAV syncing integration is available on `http://localhost:8100`.
+Baikal, a self-hosted CalDAV server used to develop the CalDAV syncing integration is available on `http://localhost:8100` (credentials are `admin` / `admin`).
**Attention:** This configuration is meant to make development easier. It is not intended to server as a production environment!
From fe7b406cb327f182a3acdc48e87f5d8c4854ca3a Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:11:17 +0200
Subject: [PATCH 19/72] Return the message modal selector for better DOM
handling if needed
---
assets/js/utils/message.js | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/assets/js/utils/message.js b/assets/js/utils/message.js
index 54045cd3..6188fa4f 100644
--- a/assets/js/utils/message.js
+++ b/assets/js/utils/message.js
@@ -27,10 +27,12 @@ window.App.Utils.Message = (function () {
* @param {String} message The message of the dialog.
* @param {Array} [buttons] Contains the dialog buttons along with their functions.
* @param {Boolean} [isDismissible] If true, the button will show the close X in the header and close with the press of the Escape button.
+ *
+ * @return {jQuery|null} Return the #message-modal selector or null if the arguments are invalid.
*/
function show(title, message, buttons = null, isDismissible = true) {
if (!title || !message) {
- return;
+ return null;
}
if (!buttons) {
@@ -105,7 +107,9 @@ window.App.Utils.Message = (function () {
messageModal.show();
- $('#message-modal').css('z-index', '99999').next().css('z-index', '9999');
+ $messageModal.css('z-index', '99999').next().css('z-index', '9999');
+
+ return $messageModal;
}
return {
From ebb682f5188ffd5b6a123d0d79d48d58afee3ca3 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:15:58 +0200
Subject: [PATCH 20/72] Add additional handling for the next days filter
---
assets/js/http/booking_http_client.js | 30 +++++++++++++--------------
assets/js/pages/booking.js | 9 ++++++--
2 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/assets/js/http/booking_http_client.js b/assets/js/http/booking_http_client.js
index 67bc89b7..8b7dfe7a 100755
--- a/assets/js/http/booking_http_client.js
+++ b/assets/js/http/booking_http_client.js
@@ -233,9 +233,9 @@ App.Http.Booking = (function () {
* @param {Number} providerId The selected provider ID.
* @param {Number} serviceId The selected service ID.
* @param {String} selectedDateString Y-m-d value of the selected date.
- * @param {Number} monthChangeStep Whether to add or subtract months.
+ * @param {Number} [monthChangeStep] Whether to add or subtract months.
*/
- function getUnavailableDates(providerId, serviceId, selectedDateString, monthChangeStep) {
+ function getUnavailableDates(providerId, serviceId, selectedDateString, monthChangeStep = 1) {
if (processingUnavailableDates) {
return;
}
@@ -268,7 +268,7 @@ App.Http.Booking = (function () {
searchedMonthStart = selectedDateString;
}
- if (searchedMonthCounter >= 3) {
+ if (searchedMonthCounter >= 2) {
// Need to mark the current month dates as unavailable
const selectedDateMoment = moment(searchedMonthStart);
const startOfMonthMoment = selectedDateMoment.clone().startOf('month');
@@ -278,7 +278,7 @@ App.Http.Booking = (function () {
unavailableDates.push(startOfMonthMoment.format('YYYY-MM-DD'));
startOfMonthMoment.add(monthChangeStep, 'days'); // Move to the next day
}
- applyUnavailableDates(unavailableDates, searchedMonthStart, false);
+ applyUnavailableDates(unavailableDates, searchedMonthStart, true);
searchedMonthStart = undefined;
searchedMonthCounter = 0;
return; // Stop searching
@@ -312,6 +312,17 @@ App.Http.Booking = (function () {
const selectedDate = selectedDateMoment.toDate();
const numberOfDays = selectedDateMoment.daysInMonth();
+ // If all the days are unavailable then hide the appointments hours.
+ if (unavailableDates.length === numberOfDays) {
+ $availableHours.text(lang('no_available_hours'));
+ }
+
+ // Grey out unavailable dates.
+ $('#select-date')[0]._flatpickr.set(
+ 'disable',
+ unavailableDates.map((unavailableDate) => new Date(unavailableDate)),
+ );
+
if (setDate && !vars('manage_mode')) {
for (let i = 1; i <= numberOfDays; i++) {
const currentDate = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), i);
@@ -324,17 +335,6 @@ App.Http.Booking = (function () {
}
}
- // If all the days are unavailable then hide the appointments hours.
- if (unavailableDates.length === numberOfDays) {
- $availableHours.text(lang('no_available_hours'));
- }
-
- // Grey out unavailable dates.
- $('#select-date')[0]._flatpickr.set(
- 'disable',
- unavailableDates.map((unavailableDate) => new Date(unavailableDate)),
- );
-
const dateQueryParam = App.Utils.Url.queryParam('date');
if (dateQueryParam) {
diff --git a/assets/js/pages/booking.js b/assets/js/pages/booking.js
index fab6f9cc..b89124d4 100644
--- a/assets/js/pages/booking.js
+++ b/assets/js/pages/booking.js
@@ -321,10 +321,15 @@ App.Pages.Booking = (function () {
$selectProvider.on('change', (event) => {
const $target = $(event.target);
+ const todayDateTimeObject = new Date();
+ const todayDateTimeMoment = moment(todayDateTimeObject);
+
+ App.Utils.UI.setDateTimePickerValue($selectDate, todayDateTimeObject);
+
App.Http.Booking.getUnavailableDates(
$target.val(),
$selectService.val(),
- moment(App.Utils.UI.getDateTimePickerValue($selectDate)).format('YYYY-MM-DD'),
+ todayDateTimeMoment.format('YYYY-MM-DD'),
);
updateConfirmFrame();
});
@@ -887,7 +892,7 @@ App.Pages.Booking = (function () {
}
if (Number(service.price) > 0) {
- additionalInfoParts.push(`${lang('price')}: ${service.price} ${service.currency}`);
+ additionalInfoParts.push(`${lang('price')}: ${Number(service.price).toFixed(2)} ${service.currency}`);
}
if (service.location) {
From 6304391fd96ee88044d6e0ff51f91f266b6916a2 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:20:25 +0200
Subject: [PATCH 21/72] Various minor JS errors in calendar_default_view.js
---
assets/js/utils/calendar_default_view.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/assets/js/utils/calendar_default_view.js b/assets/js/utils/calendar_default_view.js
index e8e625d5..4d7b7805 100755
--- a/assets/js/utils/calendar_default_view.js
+++ b/assets/js/utils/calendar_default_view.js
@@ -211,7 +211,7 @@ App.Utils.CalendarDefaultView = (function () {
$popoverTarget.popover('dispose');
}
- if (lastFocusedEventData.extendedProps.data.workingPlanException) {
+ if (lastFocusedEventData.extendedProps.data.workingPlanException !== undefined) {
const providerId = $selectFilterItem.val();
const provider = vars('available_providers').find(
@@ -1256,7 +1256,7 @@ App.Utils.CalendarDefaultView = (function () {
calendarEventSource.push(unavailabilityEvent);
});
- response.blocked_periods.forEach((blockedPeriod) => {
+ response?.blocked_periods?.forEach((blockedPeriod) => {
const blockedPeriodEvent = {
title: blockedPeriod.name,
start: moment(blockedPeriod.start_datetime).toDate(),
From eb19482c1f4f1b2dc7d6da99192002ea32153eb1 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:23:45 +0200
Subject: [PATCH 22/72] Various minor fixes in the appointment and provider
models
---
application/models/Appointments_model.php | 12 +++++-----
application/models/Providers_model.php | 28 ++++++++++++-----------
2 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/application/models/Appointments_model.php b/application/models/Appointments_model.php
index 69c49024..314ea219 100644
--- a/application/models/Appointments_model.php
+++ b/application/models/Appointments_model.php
@@ -75,7 +75,7 @@ class Appointments_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $appointment)
+ public function validate(array $appointment): void
{
// If an appointment ID is provided then check whether the record really exists in the database.
if (!empty($appointment['id'])) {
@@ -323,7 +323,7 @@ class Appointments_model extends EA_Model
*
* @param int $provider_id Matching provider ID.
*/
- public function clear_google_sync_ids(int $provider_id)
+ public function clear_google_sync_ids(int $provider_id): void
{
$this->db->update('appointments', ['id_google_calendar' => null], ['id_users_provider' => $provider_id]);
}
@@ -482,7 +482,7 @@ class Appointments_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function load(array &$appointment, array $resources)
+ public function load(array &$appointment, array $resources): void
{
if (empty($appointment) || empty($resources)) {
return;
@@ -527,7 +527,7 @@ class Appointments_model extends EA_Model
*
* @param array $appointment Appointment data.
*/
- public function api_encode(array &$appointment)
+ public function api_encode(array &$appointment): void
{
$encoded_resource = [
'id' => array_key_exists('id', $appointment) ? (int) $appointment['id'] : null,
@@ -543,7 +543,7 @@ class Appointments_model extends EA_Model
'providerId' => $appointment['id_users_provider'] !== null ? (int) $appointment['id_users_provider'] : null,
'serviceId' => $appointment['id_services'] !== null ? (int) $appointment['id_services'] : null,
'googleCalendarId' =>
- $appointment['id_google_calendar'] !== null ? (int) $appointment['id_google_calendar'] : null,
+ $appointment['id_google_calendar'] !== null ? $appointment['id_google_calendar'] : null,
];
$appointment = $encoded_resource;
@@ -555,7 +555,7 @@ class Appointments_model extends EA_Model
* @param array $appointment API resource.
* @param array|null $base Base appointment data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$appointment, array $base = null)
+ public function api_decode(array &$appointment, array $base = null): void
{
$decoded_request = $base ?: [];
diff --git a/application/models/Providers_model.php b/application/models/Providers_model.php
index 92918841..402b4d3c 100755
--- a/application/models/Providers_model.php
+++ b/application/models/Providers_model.php
@@ -78,7 +78,7 @@ class Providers_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $provider)
+ public function validate(array $provider): void
{
// If a provider ID is provided then check whether the record really exists in the database.
if (!empty($provider['id'])) {
@@ -303,7 +303,7 @@ class Providers_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- protected function save_settings(int $provider_id, array $settings)
+ protected function save_settings(int $provider_id, array $settings): void
{
if (empty($settings)) {
throw new InvalidArgumentException('The settings argument cannot be empty.');
@@ -341,7 +341,7 @@ class Providers_model extends EA_Model
* @param string $name Setting name.
* @param mixed|null $value Setting value.
*/
- public function set_setting(int $provider_id, string $name, mixed $value = null)
+ public function set_setting(int $provider_id, string $name, mixed $value = null): void
{
if (!$this->db->update('user_settings', [$name => $value], ['id_users' => $provider_id])) {
throw new RuntimeException('Could not set the new provider setting value: ' . $name);
@@ -397,7 +397,7 @@ class Providers_model extends EA_Model
* @param int $provider_id Provider ID.
* @param array $service_ids Service IDs.
*/
- protected function save_service_ids(int $provider_id, array $service_ids)
+ protected function save_service_ids(int $provider_id, array $service_ids): void
{
// Re-insert the provider-service connections.
$this->db->delete('services_providers', ['id_users' => $provider_id]);
@@ -489,13 +489,15 @@ class Providers_model extends EA_Model
*
* @param int $provider_id Provider ID.
* @param string $date Working plan exception date (in YYYY-MM-DD format).
- * @param array $working_plan_exception Associative array with the working plan exception data.
+ * @param array|null $working_plan_exception Associative array with the working plan exception data.
*
- * @throws InvalidArgumentException
* @throws Exception
*/
- public function save_working_plan_exception(int $provider_id, string $date, array $working_plan_exception = null)
- {
+ public function save_working_plan_exception(
+ int $provider_id,
+ string $date,
+ array $working_plan_exception = null,
+ ): void {
// Validate the working plan exception data.
$start = date('H:i', strtotime($working_plan_exception['start']));
@@ -577,7 +579,7 @@ class Providers_model extends EA_Model
*
* @throws Exception If $provider_id argument is invalid.
*/
- public function delete_working_plan_exception(int $provider_id, string $date)
+ public function delete_working_plan_exception(int $provider_id, string $date): void
{
$provider = $this->find($provider_id);
@@ -591,7 +593,7 @@ class Providers_model extends EA_Model
$provider['settings']['working_plan_exceptions'] = empty($working_plan_exceptions)
? '{}'
- : $working_plan_exceptions;
+ : json_encode($working_plan_exceptions);
$this->update($provider);
}
@@ -722,7 +724,7 @@ class Providers_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function load(array &$provider, array $resources)
+ public function load(array &$provider, array $resources): void
{
if (empty($provider) || empty($resources)) {
return;
@@ -749,7 +751,7 @@ class Providers_model extends EA_Model
*
* @param array $provider Provider data.
*/
- public function api_encode(array &$provider)
+ public function api_encode(array &$provider): void
{
$encoded_resource = [
'id' => array_key_exists('id', $provider) ? (int) $provider['id'] : null,
@@ -808,7 +810,7 @@ class Providers_model extends EA_Model
* @param array $provider API resource.
* @param array|null $base Base provider data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$provider, array $base = null)
+ public function api_decode(array &$provider, array $base = null): void
{
$decoded_resource = $base ?: [];
From 840286899a423654a0dd3c3755c2852d8deaaeef Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:23:58 +0200
Subject: [PATCH 23/72] Various fixes in the Calendar controller
---
application/controllers/Calendar.php | 34 +++++++++++++++++++---------
1 file changed, 23 insertions(+), 11 deletions(-)
diff --git a/application/controllers/Calendar.php b/application/controllers/Calendar.php
index b5c98ac2..fb568cf6 100644
--- a/application/controllers/Calendar.php
+++ b/application/controllers/Calendar.php
@@ -50,7 +50,7 @@ class Calendar extends EA_Controller
*
* @param string $appointment_hash Appointment hash.
*/
- public function reschedule(string $appointment_hash)
+ public function reschedule(string $appointment_hash): void
{
$this->index($appointment_hash);
}
@@ -64,7 +64,7 @@ class Calendar extends EA_Controller
*
* @param string $appointment_hash Appointment hash.
*/
- public function index(string $appointment_hash = '')
+ public function index(string $appointment_hash = ''): void
{
session(['dest_url' => site_url('backend/index' . (!empty($appointment_hash) ? '/' . $appointment_hash : ''))]);
@@ -178,7 +178,7 @@ class Calendar extends EA_Controller
/**
* Save appointment changes that are made from the backend calendar page.
*/
- public function save_appointment()
+ public function save_appointment(): void
{
try {
$customer_data = request('customer_data');
@@ -211,6 +211,11 @@ class Calendar extends EA_Controller
'timezone',
'language',
'notes',
+ 'custom_field_1',
+ 'custom_field_2',
+ 'custom_field_3',
+ 'custom_field_4',
+ 'custom_field_5',
]);
$customer['id'] = $this->customers_model->save($customer);
@@ -248,7 +253,6 @@ class Calendar extends EA_Controller
'notes',
'color',
'status',
- 'notes',
'is_unavailability',
'id_users_provider',
'id_users_customer',
@@ -320,7 +324,7 @@ class Calendar extends EA_Controller
* Notification emails are send to both provider and customer and the delete action is executed to the Google
* Calendar account of the provider, if the "google_sync" setting is enabled.
*/
- public function delete_appointment()
+ public function delete_appointment(): void
{
try {
if (cannot('delete', 'appointments')) {
@@ -378,7 +382,7 @@ class Calendar extends EA_Controller
/**
* Insert of update unavailability to database.
*/
- public function save_unavailability()
+ public function save_unavailability(): void
{
try {
// Check privileges
@@ -418,7 +422,7 @@ class Calendar extends EA_Controller
/**
* Delete an unavailability from database.
*/
- public function delete_unavailability()
+ public function delete_unavailability(): void
{
try {
if (cannot('delete', PRIV_APPOINTMENTS)) {
@@ -450,7 +454,7 @@ class Calendar extends EA_Controller
/**
* Insert of update working plan exceptions to database.
*/
- public function save_working_plan_exception()
+ public function save_working_plan_exception(): void
{
try {
if (cannot('edit', PRIV_USERS)) {
@@ -480,7 +484,7 @@ class Calendar extends EA_Controller
/**
* Delete a working plan exceptions time period to database.
*/
- public function delete_working_plan_exception()
+ public function delete_working_plan_exception(): void
{
try {
$required_permissions = can('edit', PRIV_CUSTOMERS);
@@ -508,7 +512,7 @@ class Calendar extends EA_Controller
*
* This method will return all the calendar events within a specified period.
*/
- public function get_calendar_appointments_for_table_view()
+ public function get_calendar_appointments_for_table_view(): void
{
try {
$required_permissions = can('view', PRIV_APPOINTMENTS);
@@ -584,6 +588,12 @@ class Calendar extends EA_Controller
$response['unavailabilities'] = array_values($response['unavailabilities']);
}
+ foreach ($response['unavailabilities'] as &$unavailability) {
+ $unavailability['provider'] = $this->providers_model->find($unavailability['id_users_provider']);
+ }
+
+ unset($unavailability);
+
// Add blocked periods to the response.
$start_date = request('start_date');
$end_date = request('end_date');
@@ -601,7 +611,7 @@ class Calendar extends EA_Controller
* This method returns the database appointments and unavailability periods for the user selected date period and
* record type (provider or service).
*/
- public function get_calendar_appointments()
+ public function get_calendar_appointments(): void
{
try {
if (cannot('view', PRIV_APPOINTMENTS)) {
@@ -722,6 +732,8 @@ class Calendar extends EA_Controller
}
}
+ unset($unavailability);
+
$response['unavailabilities'] = array_values($response['unavailabilities']);
}
From 5d823985de310e1469e4cc010951f8774d9640cb Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:36:14 +0200
Subject: [PATCH 24/72] Add return types to all class methods
---
application/controllers/About.php | 2 +-
application/controllers/Account.php | 6 +-
application/controllers/Admins.php | 12 ++--
application/controllers/Api_settings.php | 4 +-
application/controllers/Appointments.php | 10 +--
application/controllers/Backend.php | 12 ++--
application/controllers/Backend_api.php | 66 +++++++++----------
application/controllers/Blocked_periods.php | 12 ++--
application/controllers/Booking.php | 10 +--
.../controllers/Booking_cancellation.php | 2 +-
.../controllers/Booking_confirmation.php | 2 +-
application/controllers/Booking_settings.php | 4 +-
application/controllers/Business_settings.php | 4 +-
application/controllers/Captcha.php | 2 +-
application/controllers/Consents.php | 2 +-
application/controllers/Console.php | 17 +++--
application/controllers/Customers.php | 12 ++--
application/controllers/General_settings.php | 4 +-
.../controllers/Google_analytics_settings.php | 4 +-
application/controllers/Installation.php | 2 +-
application/controllers/Integrations.php | 2 +-
application/controllers/Legal_settings.php | 4 +-
application/controllers/Localization.php | 2 +-
application/controllers/Login.php | 4 +-
application/controllers/Logout.php | 2 +-
.../controllers/Matomo_analytics_settings.php | 4 +-
application/controllers/Privacy.php | 2 +-
application/controllers/Providers.php | 12 ++--
application/controllers/Recovery.php | 2 +-
application/controllers/Secretaries.php | 12 ++--
.../controllers/Service_categories.php | 12 ++--
application/controllers/Services.php | 12 ++--
application/controllers/Unavailabilities.php | 10 +--
application/controllers/Update.php | 2 +-
application/controllers/User.php | 2 +-
application/controllers/Webhooks.php | 12 ++--
.../controllers/api/v1/Settings_api_v1.php | 2 +-
application/models/Admins_model.php | 10 +--
application/models/Blocked_periods_model.php | 8 ++-
application/models/Consents_model.php | 2 +-
application/models/Customers_model.php | 6 +-
application/models/Roles_model.php | 2 +-
application/models/Secretaries_model.php | 14 ++--
.../models/Service_categories_model.php | 6 +-
application/models/Services_model.php | 8 +--
application/models/Settings_model.php | 6 +-
application/models/Unavailabilities_model.php | 8 +--
application/models/Users_model.php | 6 +-
application/models/Webhooks_model.php | 4 +-
49 files changed, 186 insertions(+), 181 deletions(-)
diff --git a/application/controllers/About.php b/application/controllers/About.php
index e6580b6c..ba709f32 100644
--- a/application/controllers/About.php
+++ b/application/controllers/About.php
@@ -44,7 +44,7 @@ class About extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('about')]);
diff --git a/application/controllers/Account.php b/application/controllers/Account.php
index a69a9656..c13e953c 100644
--- a/application/controllers/Account.php
+++ b/application/controllers/Account.php
@@ -44,7 +44,7 @@ class Account extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('account')]);
@@ -79,7 +79,7 @@ class Account extends EA_Controller
/**
* Save general settings.
*/
- public function save()
+ public function save(): void
{
try {
if (cannot('edit', PRIV_USER_SETTINGS)) {
@@ -131,7 +131,7 @@ class Account extends EA_Controller
/**
* Make sure the username is valid and unique in the database.
*/
- public function validate_username()
+ public function validate_username(): void
{
try {
$username = request('username');
diff --git a/application/controllers/Admins.php b/application/controllers/Admins.php
index 7573acde..eea99651 100644
--- a/application/controllers/Admins.php
+++ b/application/controllers/Admins.php
@@ -41,7 +41,7 @@ class Admins extends EA_Controller
* On this page admin users will be able to manage admins, which are eventually selected by customers during the
* booking process.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('admins')]);
@@ -82,7 +82,7 @@ class Admins extends EA_Controller
/**
* Filter admins by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_USERS)) {
@@ -108,7 +108,7 @@ class Admins extends EA_Controller
/**
* Store a new admin.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_USERS)) {
@@ -153,7 +153,7 @@ class Admins extends EA_Controller
/**
* Find an admin.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('view', PRIV_USERS)) {
@@ -173,7 +173,7 @@ class Admins extends EA_Controller
/**
* Update an admin.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_USERS)) {
@@ -219,7 +219,7 @@ class Admins extends EA_Controller
/**
* Remove an admin.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_USERS)) {
diff --git a/application/controllers/Api_settings.php b/application/controllers/Api_settings.php
index 77b05adf..d46d9177 100644
--- a/application/controllers/Api_settings.php
+++ b/application/controllers/Api_settings.php
@@ -35,7 +35,7 @@ class Api_settings extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('api_settings')]);
@@ -71,7 +71,7 @@ class Api_settings extends EA_Controller
/**
* Save general settings.
*/
- public function save()
+ public function save(): void
{
try {
if (cannot('edit', PRIV_SYSTEM_SETTINGS)) {
diff --git a/application/controllers/Appointments.php b/application/controllers/Appointments.php
index fc566197..e4241b22 100644
--- a/application/controllers/Appointments.php
+++ b/application/controllers/Appointments.php
@@ -53,7 +53,7 @@ class Appointments extends EA_Controller
/**
* Filter appointments by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_APPOINTMENTS)) {
@@ -79,7 +79,7 @@ class Appointments extends EA_Controller
/**
* Store a new appointment.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_APPOINTMENTS)) {
@@ -118,7 +118,7 @@ class Appointments extends EA_Controller
/**
* Find an appointment.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('view', PRIV_APPOINTMENTS)) {
@@ -138,7 +138,7 @@ class Appointments extends EA_Controller
/**
* Update a appointment.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_APPOINTMENTS)) {
@@ -174,7 +174,7 @@ class Appointments extends EA_Controller
/**
* Remove a appointment.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_APPOINTMENTS)) {
diff --git a/application/controllers/Backend.php b/application/controllers/Backend.php
index b7eb42bc..2065b515 100755
--- a/application/controllers/Backend.php
+++ b/application/controllers/Backend.php
@@ -46,7 +46,7 @@ class Backend extends EA_Controller
*
* @param string $appointment_hash Appointment edit dialog will appear when the page loads (default '').
*/
- public function index(string $appointment_hash = '')
+ public function index(string $appointment_hash = ''): void
{
if (empty($appointment_hash)) {
redirect('calendar');
@@ -58,7 +58,7 @@ class Backend extends EA_Controller
/**
* Display the customers page.
*/
- public function customers()
+ public function customers(): void
{
redirect('customers');
}
@@ -66,7 +66,7 @@ class Backend extends EA_Controller
/**
* Display the services page.
*/
- public function services()
+ public function services(): void
{
redirect('services');
}
@@ -77,7 +77,7 @@ class Backend extends EA_Controller
* Notice: Since the "users" page is split into multiple pages (providers, secretaries, admins), this method will
* redirect to "providers" page by default
*/
- public function users()
+ public function users(): void
{
redirect('providers');
}
@@ -88,7 +88,7 @@ class Backend extends EA_Controller
* Notice: Since the "settings" page is split into multiple pages (general, business, booking etc), this method will
* redirect to "general" page by default.
*/
- public function settings()
+ public function settings(): void
{
redirect('general_settings');
}
@@ -96,7 +96,7 @@ class Backend extends EA_Controller
/**
* Display the update page.
*/
- public function update()
+ public function update(): void
{
redirect('update');
}
diff --git a/application/controllers/Backend_api.php b/application/controllers/Backend_api.php
index b0798d19..af9dcbfd 100755
--- a/application/controllers/Backend_api.php
+++ b/application/controllers/Backend_api.php
@@ -44,7 +44,7 @@ class Backend_api extends EA_Controller
/**
* Get Calendar Events
*/
- public function ajax_get_calendar_events()
+ public function ajax_get_calendar_events(): void
{
redirect('calendar/get_calendar_appointments_for_table_view');
}
@@ -52,7 +52,7 @@ class Backend_api extends EA_Controller
/**
* Get the registered appointments for the given date period and record.
*/
- public function ajax_get_calendar_appointments()
+ public function ajax_get_calendar_appointments(): void
{
redirect('calendar/get_calendar_appointments');
}
@@ -60,7 +60,7 @@ class Backend_api extends EA_Controller
/**
* Save appointment changes that are made from the backend calendar page.
*/
- public function ajax_save_appointment()
+ public function ajax_save_appointment(): void
{
redirect('calendar/save_appointment');
}
@@ -68,7 +68,7 @@ class Backend_api extends EA_Controller
/**
* Delete appointment from the database.
*/
- public function ajax_delete_appointment()
+ public function ajax_delete_appointment(): void
{
redirect('calendar/delete_appointment');
}
@@ -76,7 +76,7 @@ class Backend_api extends EA_Controller
/**
* Disable a providers sync setting.
*/
- public function ajax_disable_provider_sync()
+ public function ajax_disable_provider_sync(): void
{
redirect('google/disable_provider_sync');
}
@@ -84,7 +84,7 @@ class Backend_api extends EA_Controller
/**
* Filter the customer records with the given key string.
*/
- public function ajax_filter_customers()
+ public function ajax_filter_customers(): void
{
redirect('customers/search');
}
@@ -92,7 +92,7 @@ class Backend_api extends EA_Controller
/**
* Insert or update an unavailability.
*/
- public function ajax_save_unavailability()
+ public function ajax_save_unavailability(): void
{
redirect('calendar/save_unavailability');
}
@@ -100,7 +100,7 @@ class Backend_api extends EA_Controller
/**
* Delete an unavailability time period from database.
*/
- public function ajax_delete_unavailability()
+ public function ajax_delete_unavailability(): void
{
redirect('calendar/delete_unavailability');
}
@@ -108,7 +108,7 @@ class Backend_api extends EA_Controller
/**
* Insert of update working plan exceptions to database.
*/
- public function ajax_save_working_plan_exception()
+ public function ajax_save_working_plan_exception(): void
{
redirect('calendar/save_working_plan_exception');
}
@@ -116,7 +116,7 @@ class Backend_api extends EA_Controller
/**
* Delete a working plan exceptions time period to database.
*/
- public function ajax_delete_working_plan_exception()
+ public function ajax_delete_working_plan_exception(): void
{
redirect('calendar/delete_working_plan_exception');
}
@@ -124,7 +124,7 @@ class Backend_api extends EA_Controller
/**
* Save (insert or update) a customer record.
*/
- public function ajax_save_customer()
+ public function ajax_save_customer(): void
{
redirect('customers/create'); // or "customers/update"
}
@@ -132,7 +132,7 @@ class Backend_api extends EA_Controller
/**
* Delete customer from database.
*/
- public function ajax_delete_customer()
+ public function ajax_delete_customer(): void
{
redirect('customers/destroy');
}
@@ -140,7 +140,7 @@ class Backend_api extends EA_Controller
/**
* Save (insert or update) service record.
*/
- public function ajax_save_service()
+ public function ajax_save_service(): void
{
redirect('services/create'); // or "services/update"
}
@@ -148,7 +148,7 @@ class Backend_api extends EA_Controller
/**
* Delete service record from database.
*/
- public function ajax_delete_service()
+ public function ajax_delete_service(): void
{
redirect('services/destroy');
}
@@ -156,7 +156,7 @@ class Backend_api extends EA_Controller
/**
* Filter service records by given key string.
*/
- public function ajax_filter_services()
+ public function ajax_filter_services(): void
{
redirect('services/search');
}
@@ -164,7 +164,7 @@ class Backend_api extends EA_Controller
/**
* Save (insert or update) category record.
*/
- public function ajax_save_service_category()
+ public function ajax_save_service_category(): void
{
redirect('categories/create'); // or "categories/update"
}
@@ -172,7 +172,7 @@ class Backend_api extends EA_Controller
/**
* Delete category record from database.
*/
- public function ajax_delete_service_category()
+ public function ajax_delete_service_category(): void
{
redirect('categories/destroy');
}
@@ -180,7 +180,7 @@ class Backend_api extends EA_Controller
/**
* Filter services categories with key string.
*/
- public function ajax_filter_service_categories()
+ public function ajax_filter_service_categories(): void
{
redirect('categories/search');
}
@@ -188,7 +188,7 @@ class Backend_api extends EA_Controller
/**
* Filter admin records with string key.
*/
- public function ajax_filter_admins()
+ public function ajax_filter_admins(): void
{
redirect('admins/search');
}
@@ -196,7 +196,7 @@ class Backend_api extends EA_Controller
/**
* Save (insert or update) admin record into database.
*/
- public function ajax_save_admin()
+ public function ajax_save_admin(): void
{
redirect('admins/create'); // or "admins/update"
}
@@ -204,7 +204,7 @@ class Backend_api extends EA_Controller
/**
* Delete an admin record from the database.
*/
- public function ajax_delete_admin()
+ public function ajax_delete_admin(): void
{
redirect('admins/destroy');
}
@@ -212,7 +212,7 @@ class Backend_api extends EA_Controller
/**
* Filter provider records with string key.
*/
- public function ajax_filter_providers()
+ public function ajax_filter_providers(): void
{
redirect('providers/search');
}
@@ -220,7 +220,7 @@ class Backend_api extends EA_Controller
/**
* Save (insert or update) a provider record into database.
*/
- public function ajax_save_provider()
+ public function ajax_save_provider(): void
{
redirect('providers/create'); // or "providers/update"
}
@@ -228,7 +228,7 @@ class Backend_api extends EA_Controller
/**
* Delete a provider record from the database.
*/
- public function ajax_delete_provider()
+ public function ajax_delete_provider(): void
{
redirect('providers/destroy');
}
@@ -236,7 +236,7 @@ class Backend_api extends EA_Controller
/**
* Filter secretary records with string key.
*/
- public function ajax_filter_secretaries()
+ public function ajax_filter_secretaries(): void
{
redirect('secretaries/search');
}
@@ -244,7 +244,7 @@ class Backend_api extends EA_Controller
/**
* Save (insert or update) a secretary record into database.
*/
- public function ajax_save_secretary()
+ public function ajax_save_secretary(): void
{
redirect('secretaries/create'); // or "secretaries/update"
}
@@ -252,7 +252,7 @@ class Backend_api extends EA_Controller
/**
* Delete a secretary record from the database.
*/
- public function ajax_delete_secretary()
+ public function ajax_delete_secretary(): void
{
redirect('secretaries/destroy');
}
@@ -260,7 +260,7 @@ class Backend_api extends EA_Controller
/**
* Save a setting or multiple settings in the database.
*/
- public function ajax_save_settings()
+ public function ajax_save_settings(): void
{
redirect('general_settings/save'); // or "business_settings/save", "booking_settings/save", "legal_settings/save"
}
@@ -268,7 +268,7 @@ class Backend_api extends EA_Controller
/**
* This method checks whether the username already exists in the database.
*/
- public function ajax_validate_username()
+ public function ajax_validate_username(): void
{
redirect('account/validate_username');
}
@@ -276,7 +276,7 @@ class Backend_api extends EA_Controller
/**
* Change system language for current user.
*/
- public function ajax_change_language()
+ public function ajax_change_language(): void
{
redirect('account/change_language');
}
@@ -284,7 +284,7 @@ class Backend_api extends EA_Controller
/**
* This method will return a list of the available Google Calendars.
*/
- public function ajax_get_google_calendars()
+ public function ajax_get_google_calendars(): void
{
redirect('google/get_google_calendars');
}
@@ -292,7 +292,7 @@ class Backend_api extends EA_Controller
/**
* Select a specific google calendar for a provider.
*/
- public function ajax_select_google_calendar()
+ public function ajax_select_google_calendar(): void
{
redirect('google/select_google_calendar');
}
@@ -300,7 +300,7 @@ class Backend_api extends EA_Controller
/**
* Apply global working plan to all providers.
*/
- public function ajax_apply_global_working_plan()
+ public function ajax_apply_global_working_plan(): void
{
redirect('business_settings/apply_global_working_plan');
}
diff --git a/application/controllers/Blocked_periods.php b/application/controllers/Blocked_periods.php
index 3a8ca58c..f56a4f21 100644
--- a/application/controllers/Blocked_periods.php
+++ b/application/controllers/Blocked_periods.php
@@ -41,7 +41,7 @@ class Blocked_periods extends EA_Controller
* On this page admin users will be able to manage blocked-periods, which are eventually selected by customers during the
* booking process.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('blocked_periods')]);
@@ -81,7 +81,7 @@ class Blocked_periods extends EA_Controller
/**
* Filter blocked-periods by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_BLOCKED_PERIODS)) {
@@ -107,7 +107,7 @@ class Blocked_periods extends EA_Controller
/**
* Store a new service-category.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_BLOCKED_PERIODS)) {
@@ -136,7 +136,7 @@ class Blocked_periods extends EA_Controller
/**
* Find a service-category.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('view', PRIV_BLOCKED_PERIODS)) {
@@ -156,7 +156,7 @@ class Blocked_periods extends EA_Controller
/**
* Update a service-category.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_BLOCKED_PERIODS)) {
@@ -191,7 +191,7 @@ class Blocked_periods extends EA_Controller
/**
* Remove a service-category.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_BLOCKED_PERIODS)) {
diff --git a/application/controllers/Booking.php b/application/controllers/Booking.php
index e23597bb..cc0fae4b 100755
--- a/application/controllers/Booking.php
+++ b/application/controllers/Booking.php
@@ -54,7 +54,7 @@ class Booking extends EA_Controller
*
* @param string $appointment_hash
*/
- public function reschedule(string $appointment_hash)
+ public function reschedule(string $appointment_hash): void
{
html_vars(['appointment_hash' => $appointment_hash]);
@@ -66,7 +66,7 @@ class Booking extends EA_Controller
*
* This method creates the appointment book wizard.
*/
- public function index()
+ public function index(): void
{
if (!is_app_installed()) {
redirect('installation');
@@ -289,7 +289,7 @@ class Booking extends EA_Controller
/**
* Register the appointment to the database.
*/
- public function register()
+ public function register(): void
{
try {
$disable_booking = setting('disable_booking');
@@ -584,7 +584,7 @@ class Booking extends EA_Controller
* This method answers to an AJAX request. It calculates the available hours for the given service, provider and
* date.
*/
- public function get_available_hours()
+ public function get_available_hours(): void
{
try {
$disable_booking = setting('disable_booking');
@@ -666,7 +666,7 @@ class Booking extends EA_Controller
*
* Outputs a JSON string with the unavailability dates. that are unavailability.
*/
- public function get_unavailable_dates()
+ public function get_unavailable_dates(): void
{
try {
$disable_booking = setting('disable_booking');
diff --git a/application/controllers/Booking_cancellation.php b/application/controllers/Booking_cancellation.php
index 950ac461..d5ec7647 100755
--- a/application/controllers/Booking_cancellation.php
+++ b/application/controllers/Booking_cancellation.php
@@ -46,7 +46,7 @@ class Booking_cancellation extends EA_Controller
*
* @param string $appointment_hash This appointment hash identifier.
*/
- public function of(string $appointment_hash)
+ public function of(string $appointment_hash): void
{
try {
$disable_booking = setting('disable_booking');
diff --git a/application/controllers/Booking_confirmation.php b/application/controllers/Booking_confirmation.php
index 7e6fb689..d743678f 100755
--- a/application/controllers/Booking_confirmation.php
+++ b/application/controllers/Booking_confirmation.php
@@ -40,7 +40,7 @@ class Booking_confirmation extends EA_Controller
*
* @throws Exception
*/
- public function of()
+ public function of(): void
{
$appointment_hash = $this->uri->segment(3);
diff --git a/application/controllers/Booking_settings.php b/application/controllers/Booking_settings.php
index c3901cdb..15c5f88b 100644
--- a/application/controllers/Booking_settings.php
+++ b/application/controllers/Booking_settings.php
@@ -44,7 +44,7 @@ class Booking_settings extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('booking_settings')]);
@@ -80,7 +80,7 @@ class Booking_settings extends EA_Controller
/**
* Save booking settings.
*/
- public function save()
+ public function save(): void
{
try {
if (cannot('edit', PRIV_SYSTEM_SETTINGS)) {
diff --git a/application/controllers/Business_settings.php b/application/controllers/Business_settings.php
index 55b0e45a..cef2806b 100644
--- a/application/controllers/Business_settings.php
+++ b/application/controllers/Business_settings.php
@@ -44,7 +44,7 @@ class Business_settings extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('business_settings')]);
@@ -82,7 +82,7 @@ class Business_settings extends EA_Controller
/**
* Save general settings.
*/
- public function save()
+ public function save(): void
{
try {
if (cannot('edit', PRIV_SYSTEM_SETTINGS)) {
diff --git a/application/controllers/Captcha.php b/application/controllers/Captcha.php
index 31b69a39..467bbbc2 100644
--- a/application/controllers/Captcha.php
+++ b/application/controllers/Captcha.php
@@ -33,7 +33,7 @@ class Captcha extends EA_Controller
/**
* Make a request to this method to get a captcha image.
*/
- public function index()
+ public function index(): void
{
$this->captcha_builder->setDistortion(true);
$this->captcha_builder->setMaxBehindLines(1);
diff --git a/application/controllers/Consents.php b/application/controllers/Consents.php
index 3104deb0..bc8c3b3e 100644
--- a/application/controllers/Consents.php
+++ b/application/controllers/Consents.php
@@ -33,7 +33,7 @@ class Consents extends EA_Controller
/**
* Save (insert or update) the consent
*/
- public function save()
+ public function save(): void
{
try {
$consent = request('consent');
diff --git a/application/controllers/Console.php b/application/controllers/Console.php
index a81ad3d0..ce991d87 100644
--- a/application/controllers/Console.php
+++ b/application/controllers/Console.php
@@ -50,8 +50,10 @@ class Console extends EA_Controller
* Usage:
*
* php index.php console install
+ *
+ * @throws Exception
*/
- public function install()
+ public function install(): void
{
$this->instance->migrate('fresh');
@@ -70,7 +72,7 @@ class Console extends EA_Controller
* Notice:
*
* Do not use this method to install the app as it will not seed the database with the initial entries (admin,
- * provider, service, settings etc).
+ * provider, service, settings etc.).
*
* Usage:
*
@@ -80,7 +82,7 @@ class Console extends EA_Controller
*
* @param string $type
*/
- public function migrate(string $type = '')
+ public function migrate(string $type = ''): void
{
$this->instance->migrate($type);
}
@@ -93,8 +95,9 @@ class Console extends EA_Controller
* Usage:
*
* php index.php console seed
+ * @throws Exception
*/
- public function seed()
+ public function seed(): void
{
$this->instance->seed();
}
@@ -112,7 +115,7 @@ class Console extends EA_Controller
*
* @throws Exception
*/
- public function backup()
+ public function backup(): void
{
$this->instance->backup($GLOBALS['argv'][3] ?? null);
}
@@ -130,7 +133,7 @@ class Console extends EA_Controller
*
* php index.php console sync
*/
- public function sync()
+ public function sync(): void
{
$providers = $this->providers_model->get();
@@ -152,7 +155,7 @@ class Console extends EA_Controller
*
* php index.php console help
*/
- public function help()
+ public function help(): void
{
$help = [
'',
diff --git a/application/controllers/Customers.php b/application/controllers/Customers.php
index 134dfd83..2985d270 100644
--- a/application/controllers/Customers.php
+++ b/application/controllers/Customers.php
@@ -44,7 +44,7 @@ class Customers extends EA_Controller
* On this page admin users will be able to manage customers, which are eventually selected by customers during the
* booking process.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('customers')]);
@@ -114,7 +114,7 @@ class Customers extends EA_Controller
/**
* Find a customer.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('view', PRIV_CUSTOMERS)) {
@@ -140,7 +140,7 @@ class Customers extends EA_Controller
/**
* Filter customers by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_CUSTOMERS)) {
@@ -184,7 +184,7 @@ class Customers extends EA_Controller
/**
* Store a new customer.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_CUSTOMERS)) {
@@ -234,7 +234,7 @@ class Customers extends EA_Controller
/**
* Update a customer.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_CUSTOMERS)) {
@@ -287,7 +287,7 @@ class Customers extends EA_Controller
/**
* Remove a customer.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_CUSTOMERS)) {
diff --git a/application/controllers/General_settings.php b/application/controllers/General_settings.php
index 06354fc9..08c1f436 100644
--- a/application/controllers/General_settings.php
+++ b/application/controllers/General_settings.php
@@ -36,7 +36,7 @@ class General_settings extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('general_settings')]);
@@ -81,7 +81,7 @@ class General_settings extends EA_Controller
/**
* Save general settings.
*/
- public function save()
+ public function save(): void
{
try {
if (cannot('edit', PRIV_SYSTEM_SETTINGS)) {
diff --git a/application/controllers/Google_analytics_settings.php b/application/controllers/Google_analytics_settings.php
index 18c49e6a..ec48ce72 100644
--- a/application/controllers/Google_analytics_settings.php
+++ b/application/controllers/Google_analytics_settings.php
@@ -35,7 +35,7 @@ class Google_analytics_settings extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('google_analytics_settings')]);
@@ -71,7 +71,7 @@ class Google_analytics_settings extends EA_Controller
/**
* Save general settings.
*/
- public function save()
+ public function save(): void
{
try {
if (cannot('edit', PRIV_SYSTEM_SETTINGS)) {
diff --git a/application/controllers/Installation.php b/application/controllers/Installation.php
index 64a1b513..3cb571c9 100644
--- a/application/controllers/Installation.php
+++ b/application/controllers/Installation.php
@@ -39,7 +39,7 @@ class Installation extends EA_Controller
/**
* Display the installation page.
*/
- public function index()
+ public function index(): void
{
if (is_app_installed()) {
redirect();
diff --git a/application/controllers/Integrations.php b/application/controllers/Integrations.php
index ccc76a15..1f76480b 100644
--- a/application/controllers/Integrations.php
+++ b/application/controllers/Integrations.php
@@ -44,7 +44,7 @@ class Integrations extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('about')]);
diff --git a/application/controllers/Legal_settings.php b/application/controllers/Legal_settings.php
index f327b09c..aa16cda0 100644
--- a/application/controllers/Legal_settings.php
+++ b/application/controllers/Legal_settings.php
@@ -35,7 +35,7 @@ class Legal_settings extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('legal_settings')]);
@@ -71,7 +71,7 @@ class Legal_settings extends EA_Controller
/**
* Save legal settings.
*/
- public function save()
+ public function save(): void
{
try {
if (cannot('edit', PRIV_SYSTEM_SETTINGS)) {
diff --git a/application/controllers/Localization.php b/application/controllers/Localization.php
index 1cb6aa99..e7d605ef 100644
--- a/application/controllers/Localization.php
+++ b/application/controllers/Localization.php
@@ -27,7 +27,7 @@ class Localization extends EA_Controller
*
* Notice: This method used to be in the Backend_api.php.
*/
- public function change_language()
+ public function change_language(): void
{
try {
// Check if language exists in the available languages.
diff --git a/application/controllers/Login.php b/application/controllers/Login.php
index 735d2d23..65884558 100644
--- a/application/controllers/Login.php
+++ b/application/controllers/Login.php
@@ -38,7 +38,7 @@ class Login extends EA_Controller
/**
* Render the login page.
*/
- public function index()
+ public function index(): void
{
if (session('user_id')) {
redirect('calendar');
@@ -58,7 +58,7 @@ class Login extends EA_Controller
/**
* Validate the provided credentials and start a new session if the validation was successful.
*/
- public function validate()
+ public function validate(): void
{
try {
$username = request('username');
diff --git a/application/controllers/Logout.php b/application/controllers/Logout.php
index bab759b1..144099ed 100644
--- a/application/controllers/Logout.php
+++ b/application/controllers/Logout.php
@@ -23,7 +23,7 @@ class Logout extends EA_Controller
/**
* Render the logout page.
*/
- public function index()
+ public function index(): void
{
$this->session->sess_destroy();
diff --git a/application/controllers/Matomo_analytics_settings.php b/application/controllers/Matomo_analytics_settings.php
index f77cf558..b643db60 100644
--- a/application/controllers/Matomo_analytics_settings.php
+++ b/application/controllers/Matomo_analytics_settings.php
@@ -35,7 +35,7 @@ class Matomo_analytics_settings extends EA_Controller
/**
* Render the settings page.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('matomo_analytics_settings')]);
@@ -71,7 +71,7 @@ class Matomo_analytics_settings extends EA_Controller
/**
* Save general settings.
*/
- public function save()
+ public function save(): void
{
try {
if (cannot('edit', PRIV_SYSTEM_SETTINGS)) {
diff --git a/application/controllers/Privacy.php b/application/controllers/Privacy.php
index 2e1b1be1..08d14b5f 100644
--- a/application/controllers/Privacy.php
+++ b/application/controllers/Privacy.php
@@ -35,7 +35,7 @@ class Privacy extends EA_Controller
/**
* Remove all customer data (including appointments) from the system.
*/
- public function delete_personal_information()
+ public function delete_personal_information(): void
{
try {
$display_delete_personal_information = setting('display_delete_personal_information');
diff --git a/application/controllers/Providers.php b/application/controllers/Providers.php
index ee3ca765..67552880 100644
--- a/application/controllers/Providers.php
+++ b/application/controllers/Providers.php
@@ -42,7 +42,7 @@ class Providers extends EA_Controller
* On this page admin users will be able to manage providers, which are eventually selected by customers during the
* booking process.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('providers')]);
@@ -95,7 +95,7 @@ class Providers extends EA_Controller
/**
* Filter providers by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_USERS)) {
@@ -121,7 +121,7 @@ class Providers extends EA_Controller
/**
* Store a new provider.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_USERS)) {
@@ -180,7 +180,7 @@ class Providers extends EA_Controller
/**
* Find a provider.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('view', PRIV_USERS)) {
@@ -200,7 +200,7 @@ class Providers extends EA_Controller
/**
* Update a provider.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_USERS)) {
@@ -260,7 +260,7 @@ class Providers extends EA_Controller
/**
* Remove a provider.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_USERS)) {
diff --git a/application/controllers/Recovery.php b/application/controllers/Recovery.php
index ce6f156c..dc257315 100644
--- a/application/controllers/Recovery.php
+++ b/application/controllers/Recovery.php
@@ -34,7 +34,7 @@ class Recovery extends EA_Controller
/**
* Display the password recovery page.
*/
- public function index()
+ public function index(): void
{
$company_name = setting('company_name');
diff --git a/application/controllers/Secretaries.php b/application/controllers/Secretaries.php
index 196a8450..65ffc1ae 100644
--- a/application/controllers/Secretaries.php
+++ b/application/controllers/Secretaries.php
@@ -42,7 +42,7 @@ class Secretaries extends EA_Controller
* On this page secretary users will be able to manage secretaries, which are eventually selected by customers during the
* booking process.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('secretaries')]);
@@ -91,7 +91,7 @@ class Secretaries extends EA_Controller
/**
* Filter secretaries by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_USERS)) {
@@ -117,7 +117,7 @@ class Secretaries extends EA_Controller
/**
* Store a new secretary.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_USERS)) {
@@ -174,7 +174,7 @@ class Secretaries extends EA_Controller
/**
* Find a secretary.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('view', PRIV_USERS)) {
@@ -194,7 +194,7 @@ class Secretaries extends EA_Controller
/**
* Update a secretary.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_USERS)) {
@@ -252,7 +252,7 @@ class Secretaries extends EA_Controller
/**
* Remove a secretary.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_USERS)) {
diff --git a/application/controllers/Service_categories.php b/application/controllers/Service_categories.php
index 32e96c6a..ad53e542 100644
--- a/application/controllers/Service_categories.php
+++ b/application/controllers/Service_categories.php
@@ -41,7 +41,7 @@ class Service_categories extends EA_Controller
* On this page admin users will be able to manage service-categories, which are eventually selected by customers during the
* booking process.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('service_categories')]);
@@ -78,7 +78,7 @@ class Service_categories extends EA_Controller
/**
* Filter service-categories by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_SERVICES)) {
@@ -104,7 +104,7 @@ class Service_categories extends EA_Controller
/**
* Store a new service-category.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_SERVICES)) {
@@ -133,7 +133,7 @@ class Service_categories extends EA_Controller
/**
* Find a service-category.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('view', PRIV_SERVICES)) {
@@ -153,7 +153,7 @@ class Service_categories extends EA_Controller
/**
* Update a service-category.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_SERVICES)) {
@@ -182,7 +182,7 @@ class Service_categories extends EA_Controller
/**
* Remove a service-category.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_SERVICES)) {
diff --git a/application/controllers/Services.php b/application/controllers/Services.php
index 12c65c05..aff2aa96 100644
--- a/application/controllers/Services.php
+++ b/application/controllers/Services.php
@@ -41,7 +41,7 @@ class Services extends EA_Controller
* On this page admin users will be able to manage services, which are eventually selected by customers during the
* booking process.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('services')]);
@@ -79,7 +79,7 @@ class Services extends EA_Controller
/**
* Filter services by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_SERVICES)) {
@@ -105,7 +105,7 @@ class Services extends EA_Controller
/**
* Store a new service.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_SERVICES)) {
@@ -150,7 +150,7 @@ class Services extends EA_Controller
/**
* Find a service.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('delete', PRIV_SERVICES)) {
@@ -170,7 +170,7 @@ class Services extends EA_Controller
/**
* Update a service.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_SERVICES)) {
@@ -216,7 +216,7 @@ class Services extends EA_Controller
/**
* Remove a service.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_SERVICES)) {
diff --git a/application/controllers/Unavailabilities.php b/application/controllers/Unavailabilities.php
index 368ae794..ad19fd67 100644
--- a/application/controllers/Unavailabilities.php
+++ b/application/controllers/Unavailabilities.php
@@ -38,7 +38,7 @@ class Unavailabilities extends EA_Controller
/**
* Filter unavailabilities by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_APPOINTMENTS)) {
@@ -64,7 +64,7 @@ class Unavailabilities extends EA_Controller
/**
* Store a new unavailability.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_APPOINTMENTS)) {
@@ -109,7 +109,7 @@ class Unavailabilities extends EA_Controller
/**
* Find an unavailability.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('view', PRIV_APPOINTMENTS)) {
@@ -129,7 +129,7 @@ class Unavailabilities extends EA_Controller
/**
* Update a unavailability.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_APPOINTMENTS)) {
@@ -160,7 +160,7 @@ class Unavailabilities extends EA_Controller
/**
* Remove a unavailability.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_APPOINTMENTS)) {
diff --git a/application/controllers/Update.php b/application/controllers/Update.php
index f083314a..a4eae4ab 100644
--- a/application/controllers/Update.php
+++ b/application/controllers/Update.php
@@ -45,7 +45,7 @@ class Update extends EA_Controller
* This method can be used either by loading the page in the browser or by an ajax request. But it will answer with
* JSON encoded data.
*/
- public function index()
+ public function index(): void
{
try {
$user_id = session('user_id');
diff --git a/application/controllers/User.php b/application/controllers/User.php
index 10af0024..a71df12c 100644
--- a/application/controllers/User.php
+++ b/application/controllers/User.php
@@ -34,7 +34,7 @@ class User extends EA_Controller
/**
* Redirect to the login page.
*/
- public function index()
+ public function index(): void
{
redirect('login');
}
diff --git a/application/controllers/Webhooks.php b/application/controllers/Webhooks.php
index 57b3045c..3314d7f4 100644
--- a/application/controllers/Webhooks.php
+++ b/application/controllers/Webhooks.php
@@ -40,7 +40,7 @@ class Webhooks extends EA_Controller
* On this page admin users will be able to manage webhooks, which are eventually selected by customers during the
* booking process.
*/
- public function index()
+ public function index(): void
{
session(['dest_url' => site_url('webhooks')]);
@@ -97,7 +97,7 @@ class Webhooks extends EA_Controller
/**
* Filter webhooks by the provided keyword.
*/
- public function search()
+ public function search(): void
{
try {
if (cannot('view', PRIV_WEBHOOKS)) {
@@ -123,7 +123,7 @@ class Webhooks extends EA_Controller
/**
* Store a new webhook.
*/
- public function store()
+ public function store(): void
{
try {
if (cannot('add', PRIV_WEBHOOKS)) {
@@ -155,7 +155,7 @@ class Webhooks extends EA_Controller
/**
* Update a webhook.
*/
- public function update()
+ public function update(): void
{
try {
if (cannot('edit', PRIV_WEBHOOKS)) {
@@ -188,7 +188,7 @@ class Webhooks extends EA_Controller
/**
* Remove a webhook.
*/
- public function destroy()
+ public function destroy(): void
{
try {
if (cannot('delete', PRIV_WEBHOOKS)) {
@@ -210,7 +210,7 @@ class Webhooks extends EA_Controller
/**
* Find a webhook.
*/
- public function find()
+ public function find(): void
{
try {
if (cannot('view', PRIV_WEBHOOKS)) {
diff --git a/application/controllers/api/v1/Settings_api_v1.php b/application/controllers/api/v1/Settings_api_v1.php
index e32f237c..ee8cbb13 100644
--- a/application/controllers/api/v1/Settings_api_v1.php
+++ b/application/controllers/api/v1/Settings_api_v1.php
@@ -35,7 +35,7 @@ class Settings_api_v1 extends EA_Controller
/**
* Get a setting collection.
*/
- public function index()
+ public function index(): void
{
try {
$keyword = $this->api->request_keyword();
diff --git a/application/models/Admins_model.php b/application/models/Admins_model.php
index 8fe7d650..ac5fc5d8 100644
--- a/application/models/Admins_model.php
+++ b/application/models/Admins_model.php
@@ -76,7 +76,7 @@ class Admins_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $admin)
+ public function validate(array $admin): void
{
// If an admin ID is provided then check whether the record really exists in the database.
if (!empty($admin['id'])) {
@@ -277,7 +277,7 @@ class Admins_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- protected function save_settings(int $admin_id, array $settings)
+ protected function save_settings(int $admin_id, array $settings): void
{
if (empty($settings)) {
throw new InvalidArgumentException('The settings argument cannot be empty.');
@@ -302,7 +302,7 @@ class Admins_model extends EA_Model
* @param string $name Setting name.
* @param mixed|null $value Setting value.
*/
- public function set_setting(int $admin_id, string $name, mixed $value = null)
+ public function set_setting(int $admin_id, string $name, mixed $value = null): void
{
if (!$this->db->update('user_settings', [$name => $value], ['id_users' => $admin_id])) {
throw new RuntimeException('Could not set the new admin setting value: ' . $name);
@@ -534,7 +534,7 @@ class Admins_model extends EA_Model
*
* @param array $admin Admin data.
*/
- public function api_encode(array &$admin)
+ public function api_encode(array &$admin): void
{
$encoded_resource = [
'id' => array_key_exists('id', $admin) ? (int) $admin['id'] : null,
@@ -565,7 +565,7 @@ class Admins_model extends EA_Model
* @param array $admin API resource.
* @param array|null $base Base admin data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$admin, array $base = null)
+ public function api_decode(array &$admin, array $base = null): void
{
$decoded_resource = $base ?? [];
diff --git a/application/models/Blocked_periods_model.php b/application/models/Blocked_periods_model.php
index e42c5846..f8cd04ef 100644
--- a/application/models/Blocked_periods_model.php
+++ b/application/models/Blocked_periods_model.php
@@ -46,6 +46,7 @@ class Blocked_periods_model extends EA_Model
* @return int Returns the blocked-period ID.
*
* @throws InvalidArgumentException
+ * @throws Exception
*/
public function save(array $blocked_period): int
{
@@ -64,8 +65,9 @@ class Blocked_periods_model extends EA_Model
* @param array $blocked_period Associative array with the blocked-period data.
*
* @throws InvalidArgumentException
+ * @throws Exception
*/
- public function validate(array $blocked_period)
+ public function validate(array $blocked_period): void
{
// If a blocked-period ID is provided then check whether the record really exists in the database.
if (!empty($blocked_period['id'])) {
@@ -301,7 +303,7 @@ class Blocked_periods_model extends EA_Model
*
* @param array $blocked_period Blocked period data.
*/
- public function api_encode(array &$blocked_period)
+ public function api_encode(array &$blocked_period): void
{
$encoded_resource = [
'id' => array_key_exists('id', $blocked_period) ? (int) $blocked_period['id'] : null,
@@ -320,7 +322,7 @@ class Blocked_periods_model extends EA_Model
* @param array $blocked_period API resource.
* @param array|null $base Base blocked-period data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$blocked_period, array $base = null)
+ public function api_decode(array &$blocked_period, array $base = null): void
{
$decoded_resource = $base ?: [];
diff --git a/application/models/Consents_model.php b/application/models/Consents_model.php
index a58b247b..c7b8fc91 100644
--- a/application/models/Consents_model.php
+++ b/application/models/Consents_model.php
@@ -54,7 +54,7 @@ class Consents_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $consent)
+ public function validate(array $consent): void
{
if (empty($consent['ip']) || empty($consent['type'])) {
throw new InvalidArgumentException('Not all required fields are provided: ' . print_r($consent, true));
diff --git a/application/models/Customers_model.php b/application/models/Customers_model.php
index d97ac0f7..c698fd41 100644
--- a/application/models/Customers_model.php
+++ b/application/models/Customers_model.php
@@ -82,7 +82,7 @@ class Customers_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $customer)
+ public function validate(array $customer): void
{
// If a customer ID is provided then check whether the record really exists in the database.
if (!empty($customer['id'])) {
@@ -443,7 +443,7 @@ class Customers_model extends EA_Model
*
* @param array $customer Customer data.
*/
- public function api_encode(array &$customer)
+ public function api_encode(array &$customer): void
{
$encoded_resource = [
'id' => array_key_exists('id', $customer) ? (int) $customer['id'] : null,
@@ -472,7 +472,7 @@ class Customers_model extends EA_Model
* @param array $customer API resource.
* @param array|null $base Base customer data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$customer, array $base = null)
+ public function api_decode(array &$customer, array $base = null): void
{
$decoded_resource = $base ?: [];
diff --git a/application/models/Roles_model.php b/application/models/Roles_model.php
index 7f71d6f8..7f7fefd8 100644
--- a/application/models/Roles_model.php
+++ b/application/models/Roles_model.php
@@ -61,7 +61,7 @@ class Roles_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $role)
+ public function validate(array $role): void
{
// If a role ID is provided then check whether the record really exists in the database.
if (!empty($role['id'])) {
diff --git a/application/models/Secretaries_model.php b/application/models/Secretaries_model.php
index d76428a9..904e72f3 100644
--- a/application/models/Secretaries_model.php
+++ b/application/models/Secretaries_model.php
@@ -76,7 +76,7 @@ class Secretaries_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $secretary)
+ public function validate(array $secretary): void
{
// If a secretary ID is provided then check whether the record really exists in the database.
if (!empty($secretary['id'])) {
@@ -306,7 +306,7 @@ class Secretaries_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- protected function save_settings(int $secretary_id, array $settings)
+ protected function save_settings(int $secretary_id, array $settings): void
{
if (empty($settings)) {
throw new InvalidArgumentException('The settings argument cannot be empty.');
@@ -331,7 +331,7 @@ class Secretaries_model extends EA_Model
* @param string $name Setting name.
* @param mixed|null $value Setting value.
*/
- public function set_setting(int $secretary_id, string $name, mixed $value = null)
+ public function set_setting(int $secretary_id, string $name, mixed $value = null): void
{
if (!$this->db->update('user_settings', [$name => $value], ['id_users' => $secretary_id])) {
throw new RuntimeException('Could not set the new secretary setting value: ' . $name);
@@ -387,7 +387,7 @@ class Secretaries_model extends EA_Model
* @param int $secretary_id Secretary ID.
* @param array $provider_ids Provider IDs.
*/
- protected function save_provider_ids(int $secretary_id, array $provider_ids)
+ protected function save_provider_ids(int $secretary_id, array $provider_ids): void
{
// Re-insert the secretary-provider connections.
$this->db->delete('secretaries_providers', ['id_users_secretary' => $secretary_id]);
@@ -554,7 +554,7 @@ class Secretaries_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function load(array &$secretary, array $resources)
+ public function load(array &$secretary, array $resources): void
{
if (empty($secretary) || empty($resources)) {
return;
@@ -581,7 +581,7 @@ class Secretaries_model extends EA_Model
*
* @param array $secretary Secretary data.
*/
- public function api_encode(array &$secretary)
+ public function api_encode(array &$secretary): void
{
$encoded_resource = [
'id' => array_key_exists('id', $secretary) ? (int) $secretary['id'] : null,
@@ -613,7 +613,7 @@ class Secretaries_model extends EA_Model
* @param array $secretary API resource.
* @param array|null $base Base secretary data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$secretary, array $base = null)
+ public function api_decode(array &$secretary, array $base = null): void
{
$decoded_resource = $base ?: [];
diff --git a/application/models/Service_categories_model.php b/application/models/Service_categories_model.php
index 88d624d2..c0dda2e4 100644
--- a/application/models/Service_categories_model.php
+++ b/application/models/Service_categories_model.php
@@ -63,7 +63,7 @@ class Service_categories_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $service_category)
+ public function validate(array $service_category): void
{
// If a service-category ID is provided then check whether the record really exists in the database.
if (!empty($service_category['id'])) {
@@ -297,7 +297,7 @@ class Service_categories_model extends EA_Model
*
* @param array $service_category Category data.
*/
- public function api_encode(array &$service_category)
+ public function api_encode(array &$service_category): void
{
$encoded_resource = [
'id' => array_key_exists('id', $service_category) ? (int) $service_category['id'] : null,
@@ -316,7 +316,7 @@ class Service_categories_model extends EA_Model
* @param array $service_category API resource.
* @param array|null $base Base service-category data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$service_category, array $base = null)
+ public function api_decode(array &$service_category, array $base = null): void
{
$decoded_resource = $base ?: [];
diff --git a/application/models/Services_model.php b/application/models/Services_model.php
index 388610ea..f117f83b 100644
--- a/application/models/Services_model.php
+++ b/application/models/Services_model.php
@@ -76,7 +76,7 @@ class Services_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $service)
+ public function validate(array $service): void
{
// If a service ID is provided then check whether the record really exists in the database.
if (!empty($service['id'])) {
@@ -380,7 +380,7 @@ class Services_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function load(array &$service, array $resources)
+ public function load(array &$service, array $resources): void
{
if (empty($service) || empty($resources)) {
return;
@@ -405,7 +405,7 @@ class Services_model extends EA_Model
*
* @param array $service Service data.
*/
- public function api_encode(array &$service)
+ public function api_encode(array &$service): void
{
$encoded_resource = [
'id' => array_key_exists('id', $service) ? (int) $service['id'] : null,
@@ -430,7 +430,7 @@ class Services_model extends EA_Model
* @param array $service API resource.
* @param array|null $base Base service data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$service, array $base = null)
+ public function api_decode(array &$service, array $base = null): void
{
$decoded_resource = $base ?: [];
diff --git a/application/models/Settings_model.php b/application/models/Settings_model.php
index a3fb7416..93dc8030 100644
--- a/application/models/Settings_model.php
+++ b/application/models/Settings_model.php
@@ -62,7 +62,7 @@ class Settings_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $setting)
+ public function validate(array $setting): void
{
// If a setting ID is provided then check whether the record really exists in the database.
if (!empty($setting['id'])) {
@@ -288,7 +288,7 @@ class Settings_model extends EA_Model
*
* @param array $setting Setting data.
*/
- public function api_encode(array &$setting)
+ public function api_encode(array &$setting): void
{
$encoded_resource = [
'name' => $setting['name'],
@@ -304,7 +304,7 @@ class Settings_model extends EA_Model
* @param array $setting API resource.
* @param array|null $base Base setting data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$setting, array $base = null)
+ public function api_decode(array &$setting, array $base = null): void
{
$decoded_resource = $base ?: [];
diff --git a/application/models/Unavailabilities_model.php b/application/models/Unavailabilities_model.php
index d2711e52..86ad4253 100644
--- a/application/models/Unavailabilities_model.php
+++ b/application/models/Unavailabilities_model.php
@@ -73,7 +73,7 @@ class Unavailabilities_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $unavailability)
+ public function validate(array $unavailability): void
{
// If an unavailability ID is provided then check whether the record really exists in the database.
if (!empty($unavailability['id'])) {
@@ -349,7 +349,7 @@ class Unavailabilities_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function load(array &$unavailability, array $resources)
+ public function load(array &$unavailability, array $resources): void
{
if (empty($unavailability) || empty($resources)) {
return;
@@ -374,7 +374,7 @@ class Unavailabilities_model extends EA_Model
*
* @param array $unavailability Unavailability data.
*/
- public function api_encode(array &$unavailability)
+ public function api_encode(array &$unavailability): void
{
$encoded_resource = [
'id' => array_key_exists('id', $unavailability) ? (int) $unavailability['id'] : null,
@@ -399,7 +399,7 @@ class Unavailabilities_model extends EA_Model
* @param array $unavailability API resource.
* @param array|null $base Base unavailability data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$unavailability, array $base = null)
+ public function api_decode(array &$unavailability, array $base = null): void
{
$decoded_request = $base ?: [];
diff --git a/application/models/Users_model.php b/application/models/Users_model.php
index 3bc01245..1b071234 100644
--- a/application/models/Users_model.php
+++ b/application/models/Users_model.php
@@ -76,7 +76,7 @@ class Users_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $user)
+ public function validate(array $user): void
{
// If a user ID is provided then check whether the record really exists in the database.
if (!empty($user['id'])) {
@@ -138,7 +138,7 @@ class Users_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- protected function save_settings(int $user_id, array $settings)
+ protected function save_settings(int $user_id, array $settings): void
{
if (empty($settings)) {
throw new InvalidArgumentException('The settings argument cannot be empty.');
@@ -163,7 +163,7 @@ class Users_model extends EA_Model
* @param string $name Setting name.
* @param string $value Setting value.
*/
- public function set_setting(int $user_id, string $name, string $value)
+ public function set_setting(int $user_id, string $name, string $value): void
{
if (!$this->db->update('user_settings', [$name => $value], ['id_users' => $user_id])) {
throw new RuntimeException('Could not set the new user setting value: ' . $name);
diff --git a/application/models/Webhooks_model.php b/application/models/Webhooks_model.php
index 5ccc936a..e7eb1680 100644
--- a/application/models/Webhooks_model.php
+++ b/application/models/Webhooks_model.php
@@ -70,7 +70,7 @@ class Webhooks_model extends EA_Model
*
* @throws InvalidArgumentException
*/
- public function validate(array $webhook)
+ public function validate(array $webhook): void
{
if (empty($webhook['name']) || empty($webhook['url']) || empty($webhook['actions'])) {
throw new InvalidArgumentException('Not all required fields are provided: ' . print_r($webhook, true));
@@ -304,7 +304,7 @@ class Webhooks_model extends EA_Model
* @param array $webhook API resource.
* @param array|null $base Base webhook data to be overwritten with the provided values (useful for updates).
*/
- public function api_decode(array &$webhook, array $base = null)
+ public function api_decode(array &$webhook, array $base = null): void
{
$decoded_resource = $base ?: [];
From 6e8778919e77631a3dafc48d2ccae872a1d94fbf Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:40:33 +0200
Subject: [PATCH 25/72] Unset foreach variable
---
application/controllers/Calendar.php | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/application/controllers/Calendar.php b/application/controllers/Calendar.php
index fb568cf6..3761b85a 100644
--- a/application/controllers/Calendar.php
+++ b/application/controllers/Calendar.php
@@ -621,8 +621,9 @@ class Calendar extends EA_Controller
$record_id = request('record_id');
$filter_type = request('filter_type');
+ $is_all = request('record_id') === FILTER_TYPE_ALL;
- if (!$filter_type && $record_id !== FILTER_TYPE_ALL) {
+ if (!$filter_type && !$is_all) {
json_response([
'appointments' => [],
'unavailabilities' => [],
@@ -676,6 +677,8 @@ class Calendar extends EA_Controller
$appointment['customer'] = $this->customers_model->find($appointment['id_users_customer']);
}
+ unset($appointment);
+
// Get unavailability periods (only for provider).
$response['unavailabilities'] = [];
From d8845eca23bb4d91eec85d5a8e50a3b125af2f5a Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:41:38 +0200
Subject: [PATCH 26/72] Allow users to edit events in all views
---
assets/js/utils/calendar_default_view.js | 4 ----
1 file changed, 4 deletions(-)
diff --git a/assets/js/utils/calendar_default_view.js b/assets/js/utils/calendar_default_view.js
index 4d7b7805..0e05f230 100755
--- a/assets/js/utils/calendar_default_view.js
+++ b/assets/js/utils/calendar_default_view.js
@@ -303,12 +303,8 @@ App.Utils.CalendarDefaultView = (function () {
$selectFilterItem.val() === 'all'
) {
$('#google-sync, #enable-sync, #insert-appointment, #insert-dropdown').prop('disabled', true);
- fullCalendar.setOption('selectable', false);
- fullCalendar.setOption('editable', false);
} else {
$('#google-sync, #enable-sync, #insert-appointment, #insert-dropdown').prop('disabled', false);
- fullCalendar.setOption('selectable', true);
- fullCalendar.setOption('editable', true);
const providerId = $selectFilterItem.val();
From a8ac22fe006b417bc4a27cfe25a164975a20429e Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 16:45:31 +0200
Subject: [PATCH 27/72] Include the unavailabilities to the "all" display in
the calendar
---
application/controllers/Calendar.php | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/application/controllers/Calendar.php b/application/controllers/Calendar.php
index 3761b85a..8beef71e 100644
--- a/application/controllers/Calendar.php
+++ b/application/controllers/Calendar.php
@@ -620,9 +620,10 @@ class Calendar extends EA_Controller
$record_id = request('record_id');
- $filter_type = request('filter_type');
$is_all = request('record_id') === FILTER_TYPE_ALL;
+ $filter_type = request('filter_type');
+
if (!$filter_type && !$is_all) {
json_response([
'appointments' => [],
@@ -682,7 +683,7 @@ class Calendar extends EA_Controller
// Get unavailability periods (only for provider).
$response['unavailabilities'] = [];
- if ($filter_type == FILTER_TYPE_PROVIDER) {
+ if ($filter_type == FILTER_TYPE_PROVIDER || $is_all) {
$where_clause =
$where_id .
' = ' .
From 1e4fa887341f673cf14d4da91586bae414db2b54 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Wed, 24 Apr 2024 22:31:32 +0200
Subject: [PATCH 28/72] Fix untranslated secretaries + providers js (errors)
Fix provider : MIN_PASSWORD_LENGTH is undefined
A constant in php :)
---
assets/js/pages/providers.js | 2 +-
assets/js/pages/secretaries.js | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/assets/js/pages/providers.js b/assets/js/pages/providers.js
index 6b9afed0..93429fd5 100755
--- a/assets/js/pages/providers.js
+++ b/assets/js/pages/providers.js
@@ -288,7 +288,7 @@ App.Pages.Providers = (function () {
if ($password.val().length < vars('min_password_length') && $password.val() !== '') {
$('#password, #password-confirm').addClass('is-invalid');
- throw new Error(lang('password_length_notice').replace('$number', MIN_PASSWORD_LENGTH));
+ throw new Error(lang('password_length_notice').replace('$number', vars('min_password_length')));
}
// Validate user email.
diff --git a/assets/js/pages/secretaries.js b/assets/js/pages/secretaries.js
index bdcf274b..bf71b0d8 100644
--- a/assets/js/pages/secretaries.js
+++ b/assets/js/pages/secretaries.js
@@ -285,24 +285,24 @@ App.Pages.Secretaries = (function () {
}
});
if (missingRequired) {
- throw new Error('Fields with * are required.');
+ throw new Error(lang('fields_are_required'));
}
// Validate passwords.
if ($password.val() !== $passwordConfirmation.val()) {
$('#password, #password-confirm').addClass('is-invalid');
- throw new Error('Passwords mismatch!');
+ throw new Error(lang('passwords_mismatch'));
}
if ($password.val().length < vars('min_password_length') && $password.val() !== '') {
$('#password, #password-confirm').addClass('is-invalid');
- throw new Error('Password must be at least ' + vars('min_password_length') + ' characters long.');
+ throw new Error(lang('password_length_notice').replace('$number', vars('min_password_length')));
}
// Validate user email.
if (!App.Utils.Validation.email($email.val())) {
$email.addClass('is-invalid');
- throw new Error('Invalid email address!');
+ throw new Error(lang('invalid_email'));
}
// Validate phone number.
@@ -324,7 +324,7 @@ App.Pages.Secretaries = (function () {
// Check if username exists
if ($username.attr('already-exists') === 'true') {
$username.addClass('is-invalid');
- throw new Error('Username already exists.');
+ throw new Error(lang('username_already_exists'));
}
return true;
From b9a4efc3e8cfcd0ffeb10b5fd8fa192ca85dce72 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Sat, 11 May 2024 19:28:31 +0200
Subject: [PATCH 29/72] Resolve conflicts
---
assets/js/pages/customers.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/assets/js/pages/customers.js b/assets/js/pages/customers.js
index f8c0e235..cf371f4d 100644
--- a/assets/js/pages/customers.js
+++ b/assets/js/pages/customers.js
@@ -253,8 +253,7 @@ App.Pages.Customers = (function () {
$customers.find('.record-details').find('input, select, textarea').val('').prop('disabled', true);
$customers.find('.record-details .form-label span').prop('hidden', true);
$customers.find('.record-details #timezone').val(vars('default_timezone'));
-
- $language.val(vars('default_language'));
+ $customers.find('.record-details #language').val(vars('default_language'));
$customerAppointments.empty();
From 9ebeb89cb05f31016f0321e3f03ab6a11438016e Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Wed, 24 Apr 2024 13:29:10 +0200
Subject: [PATCH 30/72] Fix controller Booking : typo default phone_number
---
application/controllers/Booking.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/controllers/Booking.php b/application/controllers/Booking.php
index cc0fae4b..c67064d7 100755
--- a/application/controllers/Booking.php
+++ b/application/controllers/Booking.php
@@ -321,7 +321,7 @@ class Booking extends EA_Controller
}
if (!array_key_exists('phone_number', $customer)) {
- $customer['address'] = '';
+ $customer['phone_number'] = '';
}
// Check appointment availability before registering it to the database.
From d99709f39af347be1f05d85e6a7ff7ddd093dd80 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 17:03:00 +0200
Subject: [PATCH 31/72] Add the reload button to the page notifications so that
users can see the UI changes (#1510)
---
assets/js/pages/general_settings.js | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/assets/js/pages/general_settings.js b/assets/js/pages/general_settings.js
index e0e7bbca..751c74b2 100644
--- a/assets/js/pages/general_settings.js
+++ b/assets/js/pages/general_settings.js
@@ -104,14 +104,18 @@ App.Pages.GeneralSettings = (function () {
function onSaveSettingsClick() {
if (isInvalid()) {
App.Layouts.Backend.displayNotification(lang('settings_are_invalid'));
-
return;
}
const generalSettings = serialize();
App.Http.GeneralSettings.save(generalSettings).done(() => {
- App.Layouts.Backend.displayNotification(lang('settings_saved'));
+ App.Layouts.Backend.displayNotification(lang('settings_saved'), [
+ {
+ label: lang('reload'), // Reload Page
+ function: () => window.location.reload(),
+ },
+ ]);
});
}
From 39350c79b01e03fb5fc8f3cf7fe6eb62b11a3a78 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Wed, 24 Apr 2024 01:47:00 +0200
Subject: [PATCH 32/72] css layouts bg by theme
Found with Darkly theme
---
assets/css/layouts/account_layout.scss | 2 --
assets/css/layouts/backend_layout.scss | 2 +-
assets/css/layouts/booking_layout.scss | 7 +------
3 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/assets/css/layouts/account_layout.scss b/assets/css/layouts/account_layout.scss
index 23f95a4b..e24f322e 100644
--- a/assets/css/layouts/account_layout.scss
+++ b/assets/css/layouts/account_layout.scss
@@ -14,13 +14,11 @@ body {
height: 100vh;
display: table-cell;
vertical-align: middle;
- background-color: #f5f8fa;
}
#login-frame {
width: 630px;
margin: auto;
- background: #fff;
border: 1px solid #dddada;
padding: 70px;
}
diff --git a/assets/css/layouts/backend_layout.scss b/assets/css/layouts/backend_layout.scss
index bc4a9956..43f0516b 100644
--- a/assets/css/layouts/backend_layout.scss
+++ b/assets/css/layouts/backend_layout.scss
@@ -75,7 +75,7 @@ root {
}
#footer {
- background-color: #f7f7f7;
+ background-color: var(--bs-body-bg);
border-top: 1px solid #ddd;
font-size: 11px;
}
diff --git a/assets/css/layouts/booking_layout.scss b/assets/css/layouts/booking_layout.scss
index f60c1c88..1ad039d9 100644
--- a/assets/css/layouts/booking_layout.scss
+++ b/assets/css/layouts/booking_layout.scss
@@ -18,10 +18,6 @@ body {
height: 100%;
}
-body {
- background-color: #f5f8fa;
-}
-
#main {
min-height: 100%;
}
@@ -30,7 +26,6 @@ body {
------------------------------------------------------------------------------ */
#book-appointment-wizard {
- background: #fff;
min-height: 480px;
padding: 0;
margin: auto;
@@ -285,7 +280,7 @@ body {
#book-appointment-wizard {
border-radius: 0.25rem;
overflow: hidden;
- box-shadow: rgba(45, 62, 80, 0.12) 0 1px 5px 0;
+ box-shadow: rgba(138, 195, 255, 0.12) 0 1px 5px 0;
}
#book-appointment-wizard #company-name {
From 3b5a2e76a7dd0452b9a9b5c30e4a5c5da6043869 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Tue, 23 Apr 2024 19:20:46 +0200
Subject: [PATCH 33/72] Fix french typos, improve & add missing translations
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
\' TO ’
---
application/language/french/calendar_lang.php | 6 +-
application/language/french/date_lang.php | 2 +-
application/language/french/db_lang.php | 26 +--
application/language/french/email_lang.php | 28 +--
application/language/french/ftp_lang.php | 24 +-
application/language/french/imglib_lang.php | 36 +--
.../language/french/migration_lang.php | 10 +-
application/language/french/number_lang.php | 10 +-
.../language/french/pagination_lang.php | 4 +-
.../language/french/translations_lang.php | 212 +++++++++---------
application/language/french/upload_lang.php | 32 +--
11 files changed, 193 insertions(+), 197 deletions(-)
diff --git a/application/language/french/calendar_lang.php b/application/language/french/calendar_lang.php
index 72acd4c6..9b2acce6 100644
--- a/application/language/french/calendar_lang.php
+++ b/application/language/french/calendar_lang.php
@@ -65,7 +65,7 @@ $lang['cal_apr'] = 'Avr';
$lang['cal_may'] = 'Mai';
$lang['cal_jun'] = 'Jun';
$lang['cal_jul'] = 'Jul';
-$lang['cal_aug'] = 'Aou';
+$lang['cal_aug'] = 'Aoû';
$lang['cal_sep'] = 'Sep';
$lang['cal_oct'] = 'Oct';
$lang['cal_nov'] = 'Nov';
@@ -73,11 +73,11 @@ $lang['cal_dec'] = 'Déc';
$lang['cal_january'] = 'Janvier';
$lang['cal_february'] = 'Février';
$lang['cal_march'] = 'Mars';
-$lang['cal_april'] = 'April';
+$lang['cal_april'] = 'Avril';
$lang['cal_mayl'] = 'Mai';
$lang['cal_june'] = 'Juin';
$lang['cal_july'] = 'Juillet';
-$lang['cal_august'] = 'Aout';
+$lang['cal_august'] = 'Août';
$lang['cal_september'] = 'Septembre';
$lang['cal_october'] = 'Octobre';
$lang['cal_november'] = 'Novembre';
diff --git a/application/language/french/date_lang.php b/application/language/french/date_lang.php
index b1e1f4e6..67778783 100644
--- a/application/language/french/date_lang.php
+++ b/application/language/french/date_lang.php
@@ -45,7 +45,7 @@ $lang['date_week'] = 'Semaine';
$lang['date_weeks'] = 'Semaines';
$lang['date_day'] = 'Jour';
$lang['date_days'] = 'Jours';
-$lang['date_hour'] = 'Hoeure';
+$lang['date_hour'] = 'Heure';
$lang['date_hours'] = 'Heures';
$lang['date_minute'] = 'Minute';
$lang['date_minutes'] = 'Minutes';
diff --git a/application/language/french/db_lang.php b/application/language/french/db_lang.php
index 96b62361..153fa6e5 100644
--- a/application/language/french/db_lang.php
+++ b/application/language/french/db_lang.php
@@ -8,27 +8,27 @@
*/
defined('BASEPATH') or exit('No direct script access allowed');
-$lang['db_invalid_connection_str'] = "Impossible de déterminer les paramètres d'accès à la base de données en se basant sur la chaîne de connexion que vous avez fournie.";
+$lang['db_invalid_connection_str'] = 'Impossible de déterminer les paramètres d’accès à la base de données en se basant sur la chaîne de connexion que vous avez fournie.';
$lang['db_unable_to_connect'] = 'Impossible de se connecter à la base de données en utilisant les paramètres fournis.';
$lang['db_unable_to_select'] = 'Impossible de sélectionner cette base de données : %s';
$lang['db_unable_to_create'] = 'Impossible de créer cette base de données : %s';
$lang['db_invalid_query'] = 'La requête que vous avez fournie est invalide.';
$lang['db_must_set_table'] = 'Vous devez spécifier une table pour effectuer votre requête.';
-$lang['db_must_use_set'] = "Vous devez utiliser la méthode \"set()\" pour mettre à jour une entrée.";
+$lang['db_must_use_set'] = 'Vous devez utiliser la méthode "set()" pour mettre à jour une entrée.';
$lang['db_must_use_index'] = 'Vous devez spécifier un index pour les mises à jour groupées.';
-$lang['db_batch_missing_index'] = "Une ou plusieurs rangées de la mise à jour groupée ne disposent pas de l'index requis.";
-$lang['db_must_use_where'] = "Il faut obligatoirement spécifier la clause \"WHERE\" pour mettre à jour une entrée.";
-$lang['db_del_must_use_where'] = "Il faut obligatoirement spécifier la clause \"WHERE\" pour supprimer une entrée.";
-$lang['db_field_param_missing'] = "La méthode \"fetch_fields()\" requiert le nom de la table cible en paramètre.";
-$lang['db_unsupported_function'] = "Cette fonctionnalité n'est pas disponible pour la base de données utilisée.";
+$lang['db_batch_missing_index'] = 'Une ou plusieurs rangées de la mise à jour groupée ne disposent pas de l’index requis.';
+$lang['db_must_use_where'] = 'Il faut obligatoirement spécifier la clause "WHERE" pour mettre à jour une entrée.';
+$lang['db_del_must_use_where'] = 'Il faut obligatoirement spécifier la clause "WHERE" pour supprimer une entrée.';
+$lang['db_field_param_missing'] = 'La méthode "fetch_fields()" requiert le nom de la table cible en paramètre.';
+$lang['db_unsupported_function'] = 'Cette fonctionnalité n’est pas disponible pour la base de données utilisée.';
$lang['db_transaction_failure'] = 'Erreur de transaction : la transaction est annulée.';
-$lang['db_unable_to_drop'] = "Impossible d'effacer la base de données spécifiée.";
-$lang['db_unsupported_feature'] = "Cette fonctionnalité n'est pas supportée par le système de gestion de bases de données utilisé.";
-$lang['db_unsupported_compression'] = "Le format de compression choisi n'est pas supporté par votre serveur.";
-$lang['db_filepath_error'] = "Impossible d'écrire des données au chemin de fichiers indiqué.";
-$lang['db_invalid_cache_path'] = "Le chemin de mise en cache indiqué n'est pas valide ou inscriptible.";
+$lang['db_unable_to_drop'] = 'Impossible d’effacer la base de données spécifiée.';
+$lang['db_unsupported_feature'] = 'Cette fonctionnalité n’est pas supportée par le système de gestion de bases de données utilisé.';
+$lang['db_unsupported_compression'] = 'Le format de compression choisi n’est pas supporté par votre serveur.';
+$lang['db_filepath_error'] = 'Impossible d’écrire des données au chemin de fichiers indiqué.';
+$lang['db_invalid_cache_path'] = 'Le chemin de mise en cache indiqué n’est pas valide ou inscriptible.';
$lang['db_table_name_required'] = 'Un nom de table est requis pour cette opération.';
$lang['db_column_name_required'] = 'Un nom de champ est requis pour cette opération.';
$lang['db_column_definition_required'] = 'Une définition de champ est requise pour cette opération.';
$lang['db_unable_to_set_charset'] = 'Impossible de définir le jeu de caractères de la connexion client : %s';
-$lang['db_error_heading'] = "Une erreur de la base de données s'est produite.";
+$lang['db_error_heading'] = 'Une erreur de la base de données s’est produite.';
diff --git a/application/language/french/email_lang.php b/application/language/french/email_lang.php
index ca37d2e9..9c11b423 100644
--- a/application/language/french/email_lang.php
+++ b/application/language/french/email_lang.php
@@ -8,22 +8,22 @@
*/
defined('BASEPATH') or exit('No direct script access allowed');
-$lang['email_must_be_array'] = "La méthode de validation d'email n'accepte que les tableaux associatifs (array).";
+$lang['email_must_be_array'] = 'La méthode de validation d’email n’accepte que les tableaux associatifs (array).';
$lang['email_invalid_address'] = 'Adresse email invalide : %s';
$lang['email_attachment_missing'] = 'Impossible de localiser le fichier joint suivant : %s';
-$lang['email_attachment_unreadable'] = "Impossible d'ouvrir ce fichier joint : %s";
-$lang['email_no_from'] = "Impossible d'envoyer un email sans en-tête \"From\".";
+$lang['email_attachment_unreadable'] = 'Impossible d’ouvrir ce fichier joint : %s';
+$lang['email_no_from'] = 'Impossible d’envoyer un email sans en-tête "From".';
$lang['email_no_recipients'] = 'Vous devez spécifier des destinataires: To, Cc, ou Bcc';
-$lang['email_send_failure_phpmail'] = "Impossible d'envoyer des emails avec la fonction mail() de PHP. Votre serveur ne doit pas être configuré pour pouvoir utiliser cette méthode.";
-$lang['email_send_failure_sendmail'] = "Impossible d'envoyer des emails avec la méthode Sendmail de PHP. Votre serveur ne doit pas être configuré pour pouvoir utiliser cette méthode.";
-$lang['email_send_failure_smtp'] = "Impossible d'envoyer des emails avec la méthode SMTP de PHP. Votre serveur ne doit pas être configuré pour pouvoir utiliser cette méthode.";
+$lang['email_send_failure_phpmail'] = 'Impossible d’envoyer des emails avec la fonction mail() de PHP. Votre serveur ne doit pas être configuré pour pouvoir utiliser cette méthode.';
+$lang['email_send_failure_sendmail'] = 'Impossible d’envoyer des emails avec la méthode Sendmail de PHP. Votre serveur ne doit pas être configuré pour pouvoir utiliser cette méthode.';
+$lang['email_send_failure_smtp'] = 'Impossible d’envoyer des emails avec la méthode SMTP de PHP. Votre serveur ne doit pas être configuré pour pouvoir utiliser cette méthode.';
$lang['email_sent'] = 'Votre message a bien été expédié par le protocole suivant : %s';
-$lang['email_no_socket'] = "Impossible d'ouvrir un socket avec Sendmail. Veuillez vérifier la configuration de votre environnement.";
-$lang['email_no_hostname'] = "Vous n'avez pas spécificé d'hôte SMTP.";
-$lang['email_smtp_error'] = "L'erreur SMTP suivante s'est produite : %s";
-$lang['email_no_smtp_unpw'] = "Erreur : Vous devez spécifier un nom d'utilisateur et un mot de passe SMTP.";
-$lang['email_failed_smtp_login'] = "Échec lors de l'envoi de la commande AUTH LOGIN. Erreur : %s";
-$lang['email_smtp_auth_un'] = "Impossible d'identifier le nom d'utilisateur. Erreur : %s";
-$lang['email_smtp_auth_pw'] = "Impossible d'identifier le mot de passe. Erreur : %s";
-$lang['email_smtp_data_failure'] = "Impossible d'envoyer les données : %s";
+$lang['email_no_socket'] = 'Impossible d’ouvrir un socket avec Sendmail. Veuillez vérifier la configuration de votre environnement.';
+$lang['email_no_hostname'] = 'Vous n’avez pas spécificé d’hôte SMTP.';
+$lang['email_smtp_error'] = 'L’erreur SMTP suivante s’est produite : %s';
+$lang['email_no_smtp_unpw'] = 'Erreur : Vous devez spécifier un nom d’utilisateur et un mot de passe SMTP.';
+$lang['email_failed_smtp_login'] = 'Échec lors de l’envoi de la commande AUTH LOGIN. Erreur : %s';
+$lang['email_smtp_auth_un'] = 'Impossible d’identifier le nom d’utilisateur. Erreur : %s';
+$lang['email_smtp_auth_pw'] = 'Impossible d’identifier le mot de passe. Erreur : %s';
+$lang['email_smtp_data_failure'] = 'Impossible d’envoyer les données : %s';
$lang['email_exit_status'] = 'Code de retour : %s';
diff --git a/application/language/french/ftp_lang.php b/application/language/french/ftp_lang.php
index a15def8b..fb5a357e 100644
--- a/application/language/french/ftp_lang.php
+++ b/application/language/french/ftp_lang.php
@@ -37,15 +37,15 @@
*/
defined('BASEPATH') or exit('No direct script access allowed');
-$lang['ftp_no_connection'] = 'Unable to locate a valid connection ID. Please make sure you are connected before performing any file routines.';
-$lang['ftp_unable_to_connect'] = 'Unable to connect to your FTP server using the supplied hostname.';
-$lang['ftp_unable_to_login'] = 'Unable to login to your FTP server. Please check your username and password.';
-$lang['ftp_unable_to_mkdir'] = 'Unable to create the directory you have specified.';
-$lang['ftp_unable_to_changedir'] = 'Unable to change directories.';
-$lang['ftp_unable_to_chmod'] = 'Unable to set file permissions. Please check your path.';
-$lang['ftp_unable_to_upload'] = 'Unable to upload the specified file. Please check your path.';
-$lang['ftp_unable_to_download'] = 'Unable to download the specified file. Please check your path.';
-$lang['ftp_no_source_file'] = 'Unable to locate the source file. Please check your path.';
-$lang['ftp_unable_to_rename'] = 'Unable to rename the file.';
-$lang['ftp_unable_to_delete'] = 'Unable to delete the file.';
-$lang['ftp_unable_to_move'] = 'Unable to move the file. Please make sure the destination directory exists.';
+$lang['ftp_no_connection'] = 'Impossible de trouver un ID de connexion valide. Assurez-vous d’être connecté avant d’effectuer des routines de fichiers.';
+$lang['ftp_unable_to_connect'] = 'Impossible de se connecter à votre serveur FTP à l’aide du nom d’hôte fourni.';
+$lang['ftp_unable_to_login'] = 'Impossible de se connecter à votre serveur FTP. Veuillez vérifier votre nom d’utilisateur et votre mot de passe.';
+$lang['ftp_unable_to_mkdir'] = 'Impossible de créer le répertoire que vous avez spécifié.';
+$lang['ftp_unable_to_changedir'] = 'Impossible de changer de répertoire.';
+$lang['ftp_unable_to_chmod'] = 'Impossible de définir les autorisations de fichier. S’il vous plaît vérifier votre chemin.';
+$lang['ftp_unable_to_upload'] = 'Impossible de téléverser le fichier spécifié. S’il vous plaît vérifier votre chemin.';
+$lang['ftp_unable_to_download'] = 'Impossible de télécharger le fichier spécifié. S’il vous plaît vérifier votre chemin.';
+$lang['ftp_no_source_file'] = 'Impossible de localiser le fichier source. S’il vous plaît vérifier votre chemin.';
+$lang['ftp_unable_to_rename'] = 'Impossible de renommer le fichier.';
+$lang['ftp_unable_to_delete'] = 'Impossible de supprimer le fichier.';
+$lang['ftp_unable_to_move'] = 'Impossible de déplacer le fichier. Assurez-vous que le répertoire de destination existe.';
diff --git a/application/language/french/imglib_lang.php b/application/language/french/imglib_lang.php
index 383e9cda..5e98afec 100644
--- a/application/language/french/imglib_lang.php
+++ b/application/language/french/imglib_lang.php
@@ -37,21 +37,21 @@
*/
defined('BASEPATH') or exit('No direct script access allowed');
-$lang['imglib_source_image_required'] = 'You must specify a source image in your preferences.';
-$lang['imglib_gd_required'] = 'The GD image library is required for this feature.';
-$lang['imglib_gd_required_for_props'] = 'Your server must support the GD image library in order to determine the image properties.';
-$lang['imglib_unsupported_imagecreate'] = 'Your server does not support the GD function required to process this type of image.';
-$lang['imglib_gif_not_supported'] = 'GIF images are often not supported due to licensing restrictions. You may have to use JPG or PNG images instead.';
-$lang['imglib_jpg_not_supported'] = 'JPG images are not supported.';
-$lang['imglib_png_not_supported'] = 'PNG images are not supported.';
-$lang['imglib_jpg_or_png_required'] = 'The image resize protocol specified in your preferences only works with JPEG or PNG image types.';
-$lang['imglib_copy_error'] = 'An error was encountered while attempting to replace the file. Please make sure your file directory is writable.';
-$lang['imglib_rotate_unsupported'] = 'Image rotation does not appear to be supported by your server.';
-$lang['imglib_libpath_invalid'] = 'The path to your image library is not correct. Please set the correct path in your image preferences.';
-$lang['imglib_image_process_failed'] = 'Image processing failed. Please verify that your server supports the chosen protocol and that the path to your image library is correct.';
-$lang['imglib_rotation_angle_required'] = 'An angle of rotation is required to rotate the image.';
-$lang['imglib_invalid_path'] = 'The path to the image is not correct.';
-$lang['imglib_invalid_image'] = 'The provided image is not valid.';
-$lang['imglib_copy_failed'] = 'The image copy routine failed.';
-$lang['imglib_missing_font'] = 'Unable to find a font to use.';
-$lang['imglib_save_failed'] = 'Unable to save the image. Please make sure the image and file directory are writable.';
+$lang['imglib_source_image_required'] = 'Vous devez spécifier une image source dans vos préférences.';
+$lang['imglib_gd_required'] = 'La bibliothèque d’images GD est requise pour cette fonctionnalité.';
+$lang['imglib_gd_required_for_props'] = 'Votre serveur doit prendre en charge la bibliothèque d’images GD afin de déterminer les propriétés de l’image.';
+$lang['imglib_unsupported_imagecreate'] = 'Votre serveur ne prend pas en charge la fonction GD requise pour traiter ce type d’image.';
+$lang['imglib_gif_not_supported'] = 'Les images GIF ne sont souvent pas prises en charge en raison de restrictions de licence. Vous devrez peut-être utiliser des images JPG ou PNG à la place.';
+$lang['imglib_jpg_not_supported'] = 'Les images JPG ne sont pas prises en charge.';
+$lang['imglib_png_not_supported'] = 'Les images PNG ne sont pas prises en charge.';
+$lang['imglib_jpg_or_png_required'] = 'Le protocole de redimensionnement d’image spécifié dans vos préférences ne fonctionne qu’avec les types d’images JPEG ou PNG.';
+$lang['imglib_copy_error'] = 'Une erreur s’est produite lors de la tentative de remplacement du fichier. Assurez-vous que votre répertoire de fichiers est accessible en écriture.';
+$lang['imglib_rotate_unsupported'] = 'La rotation des images ne semble pas être prise en charge par votre serveur.';
+$lang['imglib_libpath_invalid'] = 'Le chemin d’accès à votre bibliothèque d’images n’est pas correct. Veuillez définir le chemin correct dans vos préférences d’image.';
+$lang['imglib_image_process_failed'] = 'Echec du traitement de l’image. Veuillez vérifier que votre serveur prend en charge le protocole choisi et que le chemin d’accès à votre bibliothèque d’images est correct.';
+$lang['imglib_rotation_angle_required'] = 'Un angle de rotation est nécessaire pour faire pivoter l’image.';
+$lang['imglib_invalid_path'] = 'Le chemin d’accès à l’image n’est pas correct.';
+$lang['imglib_invalid_image'] = 'L’image fournie n’est pas valide.';
+$lang['imglib_copy_failed'] = 'La routine de copie d’image a échoué.';
+$lang['imglib_missing_font'] = 'Impossible de trouver une police à utiliser.';
+$lang['imglib_save_failed'] = 'Impossible d’enregistrer l’image. Assurez-vous que l’image et le répertoire de fichiers sont accessibles en écriture.';
diff --git a/application/language/french/migration_lang.php b/application/language/french/migration_lang.php
index cae13ba4..e6ff3843 100644
--- a/application/language/french/migration_lang.php
+++ b/application/language/french/migration_lang.php
@@ -9,10 +9,10 @@
defined('BASEPATH') or exit('No direct script access allowed');
$lang['migration_none_found'] = 'Aucune migration trouvée.';
-$lang['migration_not_found'] = "Aucune migration n'a été trouvée avec le numéro de version : %d.";
+$lang['migration_not_found'] = 'Aucune migration n’a été trouvée avec le numéro de version : %d.';
$lang['migration_sequence_gap'] = 'Il y a un trou dans la séquence de migration près de la version numéro : %s.';
$lang['migration_multiple_version'] = 'Il y a plusieurs migrations avec le même numéro de version : %d.';
-$lang['migration_class_doesnt_exist'] = "La classe de migration \"%s\" n'a pas pu être trouvée.";
-$lang['migration_missing_up_method'] = "La classe de migration \"%s\" ne dispose pas d'une méthode 'up'.";
-$lang['migration_missing_down_method'] = "La classe de migration \"%s\" ne dispose pas d'une méthode 'down'.";
-$lang['migration_invalid_filename'] = "Le nom de fichier de la migration \"%s\" n'est pas valide.";
+$lang['migration_class_doesnt_exist'] = 'La classe de migration "%s" n’a pas pu être trouvée.';
+$lang['migration_missing_up_method'] = 'La classe de migration "%s" ne dispose pas d’une méthode "up".';
+$lang['migration_missing_down_method'] = 'La classe de migration "%s" ne dispose pas d’une méthode "down".';
+$lang['migration_invalid_filename'] = 'Le nom de fichier de la migration "%s" est invalide.';
diff --git a/application/language/french/number_lang.php b/application/language/french/number_lang.php
index af3d06d1..dfc0ba03 100644
--- a/application/language/french/number_lang.php
+++ b/application/language/french/number_lang.php
@@ -37,8 +37,8 @@
*/
defined('BASEPATH') or exit('No direct script access allowed');
-$lang['terabyte_abbr'] = 'TB';
-$lang['gigabyte_abbr'] = 'GB';
-$lang['megabyte_abbr'] = 'MB';
-$lang['kilobyte_abbr'] = 'KB';
-$lang['bytes'] = 'Bytes';
+$lang['terabyte_abbr'] = 'To';
+$lang['gigabyte_abbr'] = 'Go';
+$lang['megabyte_abbr'] = 'Mo';
+$lang['kilobyte_abbr'] = 'Ko';
+$lang['bytes'] = 'Octets';
diff --git a/application/language/french/pagination_lang.php b/application/language/french/pagination_lang.php
index 9a62cf94..8661f074 100644
--- a/application/language/french/pagination_lang.php
+++ b/application/language/french/pagination_lang.php
@@ -37,7 +37,7 @@
*/
defined('BASEPATH') or exit('No direct script access allowed');
-$lang['pagination_first_link'] = '‹ First';
+$lang['pagination_first_link'] = '‹ Début';
$lang['pagination_next_link'] = '>';
$lang['pagination_prev_link'] = '<';
-$lang['pagination_last_link'] = 'Last ›';
+$lang['pagination_last_link'] = 'Fin ›';
diff --git a/application/language/french/translations_lang.php b/application/language/french/translations_lang.php
index 9478b016..71f39e3b 100755
--- a/application/language/french/translations_lang.php
+++ b/application/language/french/translations_lang.php
@@ -8,9 +8,9 @@ $lang['duration'] = 'Durée';
$lang['minutes'] = 'Minutes';
$lang['price'] = 'Prix';
$lang['back'] = 'Retour';
-$lang['appointment_date_and_time'] = 'Choisissez la date et l\'heure de votre rendez-vous';
-$lang['no_available_hours'] = 'Il n\'y a pas d\'heures de rendez-vous disponibles pour la date sélectionnée. Choisissez une autre date s\'il vous plaît.';
-$lang['appointment_hour_missing'] = 'S\'il vous plaît, choisissez une heure de rendez-vous avant de pouvoir poursuivre.';
+$lang['appointment_date_and_time'] = 'Choisissez la date et l’heure de votre rendez-vous';
+$lang['no_available_hours'] = 'Il n’y a pas d’heures de rendez-vous disponibles pour la date sélectionnée. Choisissez une autre date s’il vous plaît.';
+$lang['appointment_hour_missing'] = 'S’il vous plaît, choisissez une heure de rendez-vous avant de pouvoir poursuivre.';
$lang['customer_information'] = 'Remplissez vos informations';
$lang['first_name'] = 'Prénom';
$lang['last_name'] = 'Nom';
@@ -27,14 +27,14 @@ $lang['fields_are_required'] = 'Les champs avec * sont obligatoires';
$lang['appointment_confirmation'] = 'Confirmez votre rendez-vous';
$lang['confirm'] = 'Confirmation';
$lang['update'] = 'Mise à jour';
-$lang['cancel_appointment_hint'] = 'Appuyer sur le bouton "Annuler" pour supprimer un rendez-vous de l\'agenda.';
+$lang['cancel_appointment_hint'] = 'Appuyer sur le bouton "Annuler" pour supprimer un rendez-vous de l’agenda.';
$lang['cancel'] = 'Annuler';
$lang['appointment_registered'] = 'Votre rendez-vous a été enregistré avec succès.';
$lang['cancel_appointment_title'] = 'Annuler le rendez-vous';
$lang['appointment_cancelled'] = 'Votre rendez-vous a bien été annulé.';
$lang['appointment_cancelled_title'] = 'Rendez-vous annulé';
$lang['reason'] = 'Motif';
-$lang['appointment_removed_from_schedule'] = 'Le rendez-vous suivant a été supprimé de l\'agenda.';
+$lang['appointment_removed_from_schedule'] = 'Le rendez-vous suivant a été supprimé de l’agenda.';
$lang['appointment_details_was_sent_to_you'] = 'Un email reprenant les détails de votre rendez-vous vient de vous être envoyé.';
$lang['add_to_google_calendar'] = 'Ajouter à Google Calendar';
$lang['appointment_booked'] = 'Votre rendez-vous a été confirmé avec succès.';
@@ -56,7 +56,7 @@ $lang['appointment_link_description'] = 'Vous pouvez faire des modifications en
$lang['appointment_locked'] = 'Modification impossible.';
$lang['appointment_locked_message'] = 'Le rendez-vous ne peut pas être modifié moins de {$limit} heures avant.';
$lang['appointment_not_found'] = 'Rendez-vous introuvable.';
-$lang['appointment_does_not_exist_in_db'] = 'Le rendez-vous demandé n\'existe plus dans la base de données système.';
+$lang['appointment_does_not_exist_in_db'] = 'Le rendez-vous demandé n’existe plus dans la base de données système.';
$lang['display_calendar'] = 'Afficher le calendrier.';
$lang['calendar'] = 'Calendrier';
$lang['users'] = 'Utilisateurs';
@@ -71,7 +71,7 @@ $lang['appointment'] = 'Rendez-vous';
$lang['unavailability'] = 'Indisponible';
$lang['week'] = 'Semaine';
$lang['month'] = 'Mois';
-$lang['today'] = 'Aujourd\'hui';
+$lang['today'] = 'Aujourd’hui';
$lang['not_working'] = 'Pas en fonction';
$lang['break'] = 'Pause';
$lang['add'] = 'Ajouter';
@@ -79,14 +79,14 @@ $lang['edit'] = 'Éditer';
$lang['hello'] = 'Bonjour';
$lang['all_day'] = 'Toute la journée';
$lang['manage_appointment_record_hint'] = 'Gérer tous les enregistrements de rendez-vous des exécutants et des prestations actives.';
-$lang['select_filter_item_hint'] = 'Choisir un exécutant ou une prestation et visualisez les rendez-vous sur l\'agenda.';
-$lang['enable_appointment_sync_hint'] = 'Activer la synchronisation des rendez-vous avec le calendrier Google de l\'exécutant.';
+$lang['select_filter_item_hint'] = 'Choisir un exécutant ou une prestation et visualisez les rendez-vous sur l’agenda.';
+$lang['enable_appointment_sync_hint'] = 'Activer la synchronisation des rendez-vous avec le calendrier Google de l’exécutant.';
$lang['manage_customers_hint'] = 'Gérer les clients enregistrés et voir leur historique de rendez-vous.';
$lang['manage_services_hint'] = 'Gérer les prestations et les catégories actives du système.';
-$lang['manage_users_hint'] = 'Gérer les utilisateurs back office (administrateurs, exécutants, secrétaires).';
+$lang['manage_users_hint'] = 'Gérer les utilisateurs du système (administrateurs, exécutants, secrétaires).';
$lang['settings_hint'] = 'Régler les paramètres système et utilisateurs.';
$lang['log_out_hint'] = 'Déconnexion du système.';
-$lang['unavailability_periods_hint'] = 'Durant les périodes d\'indisponibilité l\'exécutant n\'acceptera pas de nouvelle prestation.';
+$lang['unavailability_periods_hint'] = 'Durant les périodes d’indisponibilité l’exécutant n’acceptera pas de nouvelle prestation.';
$lang['new_appointment_hint'] = 'Créer un nouveau rendez-vous et le stocker dans la base de données.';
$lang['reload_appointments_hint'] = 'Actualiser le calendrier des rendez-vous.';
$lang['trigger_google_sync_hint'] = 'Démarrer la procédure de synchronisation du calendrier Google.';
@@ -104,17 +104,17 @@ $lang['pick_existing_customer_hint'] = 'Rechercher un client existant.';
$lang['new_appointment_title'] = 'Nouveau rendez-vous';
$lang['edit_appointment_title'] = 'Éditer rendez-vous';
$lang['delete_appointment_title'] = 'Effacer rendez-vous';
-$lang['write_appointment_removal_reason'] = 'S\'il vous plaît, veuillez bien prendre quelques secondes pour nous expliquer les raisons de l\'annulation du rendez-vous.';
+$lang['write_appointment_removal_reason'] = 'S’il vous plaît, veuillez bien prendre quelques secondes pour nous expliquer les raisons de l’annulation du rendez-vous.';
$lang['appointment_saved'] = 'Rendez-vous sauvegardé avec succès.';
-$lang['new_unavailability_title'] = 'Nouvelle période d\'indisponibilité';
-$lang['edit_unavailability_title'] = 'Éditer une période d\'indisponibilité';
-$lang['unavailability_saved'] = 'Période d\'indisponibilité sauvegardée avec succès.';
+$lang['new_unavailability_title'] = 'Nouvelle période d’indisponibilité';
+$lang['edit_unavailability_title'] = 'Éditer une période d’indisponibilité';
+$lang['unavailability_saved'] = 'Période d’indisponibilité sauvegardée avec succès.';
$lang['start_date_before_end_error'] = 'La date de début est ultérieure à la date de fin.';
$lang['invalid_duration'] = 'Durée invalide.';
-$lang['invalid_email'] = 'Adresse email non valide.';
+$lang['invalid_email'] = 'Adresse email invalide .';
$lang['customers'] = 'Clients';
$lang['details'] = 'Détails';
-$lang['no_records_found'] = 'Pas d\'enregistrement trouvé...';
+$lang['no_records_found'] = 'Pas d’enregistrement trouvé...';
$lang['services'] = 'Prestations';
$lang['duration_minutes'] = 'Durée (Minutes)';
$lang['currency'] = 'Devise';
@@ -128,7 +128,7 @@ $lang['secretaries'] = 'Secrétaires';
$lang['mobile_number'] = 'Téléphone portable';
$lang['mobile'] = 'Portable';
$lang['state'] = 'État / Pays';
-$lang['username'] = 'Nom d\'utilisateur';
+$lang['username'] = 'Nom d’utilisateur';
$lang['password'] = 'Mot de passe';
$lang['retype_password'] = 'Réinscription du mot de passe';
$lang['receive_notifications'] = 'Recevoir les notifications';
@@ -156,51 +156,51 @@ $lang['friday'] = 'Vendredi';
$lang['saturday'] = 'Samedi';
$lang['sunday'] = 'Dimanche';
$lang['breaks'] = 'Pauses';
-$lang['add_breaks_during_each_day'] = 'Ajoutez ici les périodes de pause pour chaque jour. Pendant ces pauses l\'exécutant n\'acceptera pas de rendez-vous...';
+$lang['add_breaks_during_each_day'] = 'Ajoutez ici les périodes de pause pour chaque jour. Pendant ces pauses l’exécutant n’acceptera pas de rendez-vous...';
$lang['day'] = 'Jour';
$lang['days'] = 'Jours';
$lang['actions'] = 'Actions';
-$lang['reset_working_plan_hint'] = 'Restaurer les valeurs d\'origine du planning de travail.';
+$lang['reset_working_plan_hint'] = 'Restaurer les valeurs d’origine du planning de travail.';
$lang['company_name'] = 'Nom de la société';
$lang['company_name_hint'] = 'Le nom de la société sera affiché et utilisé un peu partout dans le système (obligatoire).';
$lang['company_email'] = 'Email de la société';
-$lang['company_email_hint'] = 'Ceci sera l\'adresse email de la société. Elle sera utilisée comme adresse d\'envoi et de réponse par le système de messagerie électronique (obligatoire).';
+$lang['company_email_hint'] = 'Ceci sera l’adresse email de la société. Elle sera utilisée comme adresse d’envoi et de réponse par le système de messagerie électronique (obligatoire).';
$lang['company_link'] = 'Site web de la société';
$lang['company_link_hint'] = 'Le lien de la société doit pointer vers le site web officiel de la société (obligatoire).';
$lang['go_to_booking_page'] = 'Aller à la page de rendez-vous';
$lang['settings_saved'] = 'Paramètres sauvegardés avec succès.';
$lang['general'] = 'Général';
-$lang['booking'] = 'Booking';
+$lang['booking'] = 'Réservation';
$lang['visible'] = 'Visible';
$lang['hidden'] = 'Caché';
$lang['business_logic'] = 'Logique commerciale';
$lang['current_user'] = 'Utilisateur actuel';
-$lang['about_app'] = 'Au sujet d\'Easy!Appointments';
-$lang['edit_working_plan_hint'] = 'Indiquer ici les jours et les heures pendant lesquels votre société accepte les rendez-vous. Il est possible de fixer vous-même un rendez-vous en dehors des heures de travail tandis que les clients ne pourront pas prendre d\'eux-mêmes un rendez-vous en dehors des périodes de travail indiquées ici. Ce planning de travail sera celui proposé par défaut pour chaque nouvel enregistrement. Toutefois il vous sera possible de changer séparément chaque planning de travail individuel en l\'éditant. Après cela vous pouvez encore ajouter les périodes de pause.';
+$lang['about_app'] = 'Au sujet d’Easy!Appointments';
+$lang['edit_working_plan_hint'] = 'Indiquer ici les jours et les heures pendant lesquels votre société accepte les rendez-vous. Il est possible de fixer vous-même un rendez-vous en dehors des heures de travail tandis que les clients ne pourront pas prendre d’eux-mêmes un rendez-vous en dehors des périodes de travail indiquées ici. Ce planning de travail sera celui proposé par défaut pour chaque nouvel enregistrement. Toutefois il vous sera possible de changer séparément chaque planning de travail individuel en l’éditant. Après cela vous pouvez encore ajouter les périodes de pause.';
$lang['edit_breaks_hint'] = 'Indiquer ici les périodes des pauses quotidiennes. Ces pauses seront disponibles à chaque nouvel exécutant.';
$lang['book_advance_timeout'] = 'Paramètres de réservation';
$lang['book_advance_timeout_hint'] = 'Les réservations ne peuvent pas être créées, modifiées ou annulées moins de ## heures avant le rendez-vous.';
$lang['timeout_minutes'] = 'Délai de réservation (en minutes)';
-$lang['about_app_info'] = 'Easy!Appointments est une application Web hautement personnalisable qui permet à vos clients de prendre rendez-vous avec vous via le web. En outre, elle offre la possibilité de synchroniser vos données avec un calendrier Google afin que vous puissiez les utiliser avec d\'autres services. Easy!Appointments est un projet open source et vous pouvez le télécharger et l\'installer même pour un usage commercial. Easy!Appointments fonctionnera sans problème avec votre site web existant car il peut être installé dans un dossier spécifique du serveur et bien sûr, les deux sites peuvent partager la même base de données.';
+$lang['about_app_info'] = 'Easy!Appointments est une application Web hautement personnalisable qui permet à vos clients de prendre rendez-vous avec vous via le web. En outre, elle offre la possibilité de synchroniser vos données avec un calendrier Google afin que vous puissiez les utiliser avec d’autres services. Easy!Appointments est un projet open source et vous pouvez le télécharger et l’installer même pour un usage commercial. Easy!Appointments fonctionnera sans problème avec votre site web existant car il peut être installé dans un dossier spécifique du serveur et bien sûr, les deux sites peuvent partager la même base de données.';
$lang['current_version'] = 'Version actuelle';
$lang['support'] = 'Support';
-$lang['about_app_support'] = 'Si vous rencontrez des problèmes pour installer ou configurer l\'application, allez chercher les réponses dans le groupe Google officiel. Vous pouvez également avoir besoin de créer une demande sur la page code de Google pour permettre l\'avancée du projet.';
+$lang['about_app_support'] = 'Si vous rencontrez des problèmes pour installer ou configurer l’application, allez chercher les réponses dans le groupe Google officiel. Vous pouvez également avoir besoin de créer une demande sur la page code de Google pour permettre l’avancée du projet.';
$lang['official_website'] = 'Site Web officiel';
$lang['google_plus_community'] = 'Communauté Google+';
$lang['support_group'] = 'Groupe de soutien';
$lang['project_issues'] = 'Questions sur le projet';
$lang['license'] = 'Licence';
-$lang['about_app_license'] = 'Easy!Appointments est fourni sous licence GPLv3. En utilisant le code d\'Easy!Appointments, quelqu\'en soit l\'usage, vous êtes tenu d\'accepter les termes décrits dans l\'URL suivante :';
-$lang['logout_success'] = 'Vous avez bien été déconnecté ! Cliquez sur l\'un des boutons suivants pour naviguer dans les différentes pages';
+$lang['about_app_license'] = 'Easy!Appointments est fourni sous licence GPLv3. En utilisant le code d’Easy!Appointments, quelqu’en soit l’usage, vous êtes tenu d’accepter les termes décrits dans l’URL suivante :';
+$lang['logout_success'] = 'Vous avez bien été déconnecté ! Cliquez sur l’un des boutons suivants pour naviguer dans les différentes pages';
$lang['book_appointment_title'] = 'Carnet de rendez-vous';
-$lang['backend_section'] = 'Section back office';
-$lang['you_need_to_login'] = 'Bonjour ! Vous devez vous connecter pour voir les pages back office.';
-$lang['enter_username_here'] = 'Entrez votre nom d\'utilisateur ici...';
+$lang['backend_section'] = 'Administration';
+$lang['you_need_to_login'] = 'Bonjour ! Vous devez vous connecter pour voir les pages d’administration.';
+$lang['enter_username_here'] = 'Entrez votre nom d’utilisateur ici...';
$lang['enter_password_here'] = 'Entrez votre mot de passe ici...';
$lang['login'] = 'Connexion';
$lang['forgot_your_password'] = 'Mot de passe oublié ?';
-$lang['login_failed'] = 'La connexion a échoué. S\'il vous plaît entrez les informations d\'identification correctes et ré-essayez.';
-$lang['type_username_and_email_for_new_password'] = 'Inscrivez votre nom d\'utilisateur et adresse email pour recevoir un nouveau mot de passe.';
+$lang['login_failed'] = 'La connexion a échoué. S’il vous plaît entrez les informations d’identification correctes et ré-essayez.';
+$lang['type_username_and_email_for_new_password'] = 'Inscrivez votre nom d’utilisateur et adresse email pour recevoir un nouveau mot de passe.';
$lang['enter_email_here'] = 'Entrez votre email ici...';
$lang['regenerate_password'] = 'Régénération du mot de passe';
$lang['go_to_login'] = 'Retourner à la page de connexion';
@@ -208,38 +208,38 @@ $lang['new_password_sent_with_email'] = 'Votre nouveau mot de passe vous a été
$lang['new_account_password'] = 'Nouveau mot de passe du compte';
$lang['new_password_is'] = 'Votre nouveau mot de passe est $password. Conservez cet email afin de pouvoir retrouver votre mot de passe si nécessaire. Vous pouvez aussi modifier ce mot de passe par un nouveau dans la page des paramètres.';
$lang['delete_record_prompt'] = 'Êtes-vous sûr de vouloir supprimer cet enregistrement ? Cette action est irréversible.';
-$lang['delete_admin'] = 'Supprimer l\'administrateur';
+$lang['delete_admin'] = 'Supprimer l’administrateur';
$lang['delete_customer'] = 'Supprimer le client';
$lang['delete_service'] = 'Supprimer la prestation';
$lang['delete_service_category'] = 'Supprimer la catégorie de prestation';
$lang['delete_provider'] = 'Supprimer un exécutant';
$lang['delete_secretary'] = 'Supprimer un·e secrétaire';
$lang['delete_appointment'] = 'Supprimer un rendez-vous';
-$lang['delete_unavailability'] = 'Supprimer une période d\'indisponibilité';
+$lang['delete_unavailability'] = 'Supprimer une période d’indisponibilité';
$lang['delete'] = 'Supprimer';
$lang['unexpected_issues'] = 'Résultats inattendus';
-$lang['unexpected_issues_message'] = 'L\'opération n\'a pu être terminée à cause de résultats inattendus.';
+$lang['unexpected_issues_message'] = 'L’opération n’a pu être terminée à cause de résultats inattendus.';
$lang['close'] = 'Fermer';
$lang['page_not_found'] = 'Page non trouvée';
-$lang['page_not_found_message'] = 'Malheureusement la page demandée n\'existe pas. Vérifiez l\'URL de votre navigateur ou naviguez vers une autre page en utilisant les boutons ci-dessous.';
+$lang['page_not_found_message'] = 'Malheureusement la page demandée n’existe pas. Vérifiez l’URL de votre navigateur ou naviguez vers une autre page en utilisant les boutons ci-dessous.';
$lang['error'] = 'Erreur';
$lang['no_privileges'] = 'Aucun privilège';
-$lang['no_privileges_message'] = 'Vous n\'avez pas les privilèges nécessaires pour voir cette page. Veuillez s\'il vous plaît naviguer vers une section différente.';
-$lang['backend_calendar'] = 'Back office du calendrier';
+$lang['no_privileges_message'] = 'Vous n’avez pas les privilèges nécessaires pour voir cette page. Veuillez s’il vous plaît naviguer vers une section différente.';
+$lang['backend_calendar'] = 'Administration du calendrier';
$lang['start_date_time'] = 'Date/heure de début';
$lang['end_date_time'] = 'Date/heure de fin';
$lang['licensed_under'] = 'Licencié sous';
$lang['unexpected_issues_occurred'] = 'Une erreur inattendue est survenue.';
-$lang['service_communication_error'] = 'Erreur de communication avec le serveur, Veuillez s\'il vous plait réessayer.';
-$lang['no_privileges_edit_appointments'] = 'Vous n\'avez pas les privilèges nécessaires pour modifier les rendez-vous.';
-$lang['unavailability_updated'] = 'La période d\'indisponibilité a bien été actualisée.';
+$lang['service_communication_error'] = 'Erreur de communication avec le serveur, Veuillez s’il vous plait réessayer.';
+$lang['no_privileges_edit_appointments'] = 'Vous n’avez pas les privilèges nécessaires pour modifier les rendez-vous.';
+$lang['unavailability_updated'] = 'La période d’indisponibilité a bien été actualisée.';
$lang['appointments'] = 'Rendez-vous';
$lang['unexpected_warnings'] = 'Avertissements inattendus';
$lang['unexpected_warnings_message'] = 'Opération terminée mais des avertissements sont survenus.';
$lang['filter'] = 'Filtrer';
$lang['clear'] = 'Effacer';
$lang['uncategorized'] = 'Non catégorisé';
-$lang['username_already_exists'] = 'Ce nom d\'utilisateur existe déjà.';
+$lang['username_already_exists'] = 'Ce nom d’utilisateur existe déjà.';
$lang['password_length_notice'] = 'Le mot de passe doit avoir au moins $number caractères de long.';
$lang['general_settings'] = 'Paramètres généraux';
$lang['personal_information'] = 'Informations personnelles';
@@ -261,41 +261,41 @@ $lang['december'] = 'Décembre';
$lang['previous'] = 'Précédent';
$lang['next'] = 'Suivant';
$lang['now'] = 'Maintenant';
-$lang['select_time'] = 'Choisir l\'heure';
+$lang['select_time'] = 'Choisir l’heure';
$lang['time'] = 'Heure du RDV';
$lang['hour'] = 'Heure';
$lang['minute'] = 'Minute';
-$lang['google_sync_completed'] = 'La synchronisation Google s\'est terminée avec succès.';
+$lang['google_sync_completed'] = 'La synchronisation Google s’est terminée avec succès.';
$lang['google_sync_failed'] = 'La synchronisation Google a échoué : Échec de connexion avec le serveur.';
$lang['select_google_calendar'] = 'Choisir un calendrier Google';
$lang['select_google_calendar_prompt'] = 'Sélectionnez le calendrier souhaité pour synchroniser votre rendez-vous. Si vous ne sélectionnez pas de calendrier spécifique, le calendrier par défaut sera sélectionné pour vous.';
$lang['google_calendar_selected'] = 'Le calendrier Google a été sélectionné avec succès.';
-$lang['oops_something_went_wrong'] = 'Oups ! Une erreur s\'est produite.';
+$lang['oops_something_went_wrong'] = 'Oups ! Une erreur s’est produite.';
$lang['could_not_add_to_google_calendar'] = 'Votre rendez-vous ne peut pas être ajouté à votre calendrier Google.';
$lang['ea_update_success'] = 'Easy!Appointments à été mis à jour avec succès.';
$lang['require_captcha'] = 'CAPTCHA obligatoire';
-$lang['require_captcha_hint'] = 'Lorsque l\'option est activée, les clients doivent taper un code de vérification CAPTCHA avant de pouvoir réserver ou mettre à jour un rendez-vous.';
+$lang['require_captcha_hint'] = 'Lorsque l’option est activée, les clients doivent taper un code de vérification CAPTCHA avant de pouvoir réserver ou mettre à jour un rendez-vous.';
$lang['captcha_is_wrong'] = 'Le code de vérification CAPTCHA est erroné, merci de réessayer.';
$lang['any_provider'] = 'Toute personne disponible';
-$lang['requested_hour_is_unavailable'] = 'Cette heure de rendez n\'est malheureusement pas disponible. Merci de sélectionner une autre heure pour votre rendez-vous.';
+$lang['requested_hour_is_unavailable'] = 'Cette heure de rendez n’est malheureusement pas disponible. Merci de sélectionner une autre heure pour votre rendez-vous.';
$lang['customer_notifications'] = 'Notifications aux clients';
-$lang['customer_notifications_hint'] = 'Définit si les clients reçoivent des notifications par email chaque fois qu\'il y a un changement d\'horaire de l\'un de leurs rendez-vous.';
+$lang['customer_notifications_hint'] = 'Définit si les clients reçoivent des notifications par email chaque fois qu’il y a un changement d’horaire de l’un de leurs rendez-vous.';
$lang['date_format'] = 'Format des dates';
-$lang['date_format_hint'] = 'Change le format d\'affichage des dates (D - Jour, M - Mois, Y - Année).';
-$lang['time_format'] = 'Format de l\'heure';
-$lang['time_format_hint'] = 'Change le format d\'affichage de l\'heure (H - Heures, M - Minutes).';
+$lang['date_format_hint'] = 'Change le format d’affichage des dates (D - Jour, M - Mois, Y - Année).';
+$lang['time_format'] = 'Format de l’heure';
+$lang['time_format_hint'] = 'Change le format d’affichage de l’heure (H - Heures, M - Minutes).';
$lang['first_weekday'] = 'Premier jour de la semaine';
$lang['first_weekday_hint'] = 'Définit le premier jour de la semaine calendaire.';
-$lang['google_analytics_code_hint'] = 'Renseigner l\'ID Google Analytics à utiliser dans la page des réservations.';
+$lang['google_analytics_code_hint'] = 'Renseigner l’ID Google Analytics à utiliser dans la page des réservations.';
$lang['availabilities_type'] = 'Type de disponibilités';
$lang['flexible'] = 'Flexible';
$lang['fixed'] = 'Fixe';
$lang['attendants_number'] = 'Nombre de participants';
-$lang['reset_working_plan'] = 'Restaurer les valeurs d\'origine du planning de travail.';
+$lang['reset_working_plan'] = 'Restaurer les valeurs d’origine du planning de travail.';
$lang['legal_contents'] = 'Contenu juridique';
$lang['cookie_notice'] = 'Informations sur les cookies';
$lang['display_cookie_notice'] = 'Afficher les informations sur les cookies';
-$lang['cookie_notice_content'] = 'Description de la politique d\'utilisation des cookies';
+$lang['cookie_notice_content'] = 'Description de la politique d’utilisation des cookies';
$lang['terms_and_conditions'] = 'Conditions générales';
$lang['display_terms_and_conditions'] = 'Afficher les conditions générales';
$lang['terms_and_conditions_content'] = 'Description des conditions générales';
@@ -303,15 +303,15 @@ $lang['privacy_policy'] = 'Politique de confidentialité';
$lang['display_privacy_policy'] = 'Afficher la politique de confidentialité';
$lang['privacy_policy_content'] = 'Description de la politique de confidentialité';
$lang['website_using_cookies_to_ensure_best_experience'] = 'Ce site web utilise des cookies pour vous assurer la meilleure expérience utilisateur.';
-$lang['read_and_agree_to_terms_and_conditions'] = 'J\'ai lu, compris et accepte les {$link}Conditions Générales{/$link}.';
-$lang['read_and_agree_to_privacy_policy'] = 'J\'ai lu, compris et accepte la {$link}politique de confidentialité{/$link}.';
+$lang['read_and_agree_to_terms_and_conditions'] = 'J’ai lu, compris et accepte les {$link}Conditions Générales{/$link}.';
+$lang['read_and_agree_to_privacy_policy'] = 'J’ai lu, compris et accepte la {$link}politique de confidentialité{/$link}.';
$lang['delete_personal_information_hint'] = 'Effacer toutes vos données personnelles du système.';
$lang['delete_personal_information'] = 'Effacer toutes mes données personnelles';
$lang['delete_personal_information_prompt'] = 'Êtes-vous sûr·e de vouloir effacer toutes vos données personnelles ? Cette action est irréversible.';
-$lang['location'] = 'Location';
+$lang['location'] = 'Emplacement';
$lang['working_plan_exception'] = 'Exception au planning';
$lang['working_plan_exceptions'] = 'Exceptions au planning';
-$lang['working_plan_exceptions_hint'] = 'Ajouter un jour d\'exception au planning, en dehors du planning.';
+$lang['working_plan_exceptions_hint'] = 'Ajouter un jour d’exception au planning, en dehors du planning.';
$lang['new_working_plan_exception_title'] = 'Nouvelle exception au planning';
$lang['working_plan_exception_saved'] = 'Exception au planning enregistrée avec succès.';
$lang['working_plan_exception_deleted'] = 'Exception au planning supprimée avec succès.';
@@ -319,8 +319,8 @@ $lang['add_working_plan_exceptions_during_each_day'] = 'Ajouter des exceptions a
$lang['add_working_plan_exception'] = 'Ajouter une exception au planning';
$lang['require_phone_number'] = 'Exiger un numéro de téléphone';
$lang['require_phone_number_hint'] = 'Lorsque activé, les clients et les utilisateurs devront entrer le numéro de téléphone du client lors de la prise de rendez-vous.';
-$lang['check_spam_folder'] = 'Veuillez vérifier votre dossier de courrier indésirable si l\'email n\'arrive pas dans les minutes qui suivent.';
-$lang['api_token_hint'] = 'Définissez un jeton secret afin d\'activer l\'authentification basée sur le jeton de l\'API Easy!Appointments. ';
+$lang['check_spam_folder'] = 'Veuillez vérifier votre dossier de courrier indésirable si l’email n’arrive pas dans les minutes qui suivent.';
+$lang['api_token_hint'] = 'Définissez un jeton secret afin d’activer l’authentification basée sur le jeton de l’API Easy!Appointments. ';
$lang['timezone'] = 'Fuseau horaire';
$lang['overwrite_existing_working_plans'] = 'Cela écrasera les plannings existants du fournisseur. Êtes-vous sûr de vouloir continuer ?';
$lang['working_plans_got_updated'] = 'Tous les plannings ont été mis à jour.';
@@ -337,7 +337,7 @@ $lang['booking_settings'] = 'Paramètres de réservation';
$lang['display'] = 'Afficher';
$lang['require'] = 'Requis';
$lang['color'] = 'Couleur';
-$lang['matomo_analytics_url_hint'] = 'Ajoutez l\'URL à votre propre installation Matomo pour activer le suivi Matomo sur les pages de réservation.';
+$lang['matomo_analytics_url_hint'] = 'Ajoutez l’URL à votre propre installation Matomo pour activer le suivi Matomo sur les pages de réservation.';
$lang['invalid_phone'] = 'Numéro de téléphone invalide.';
$lang['legal'] = 'Juridique';
$lang['business'] = 'Entreprise';
@@ -347,10 +347,10 @@ $lang['disable_booking_hint'] = 'La page de réservation sera désactivée tant
$lang['display_message'] = 'Afficher le message';
$lang['booking_is_disabled'] = 'La réservation est désactivée!';
$lang['appearance'] = 'Apparence';
-$lang['company_logo'] = 'Logo d\'entreprise';
-$lang['company_logo_hint'] = 'Le logo de l\'entreprise sera affiché dans de nombreux endroits de l\'application, y compris la page de réservation et les e-mails de notification (fichier image, max 2 Mo).';
-$lang['company_color'] = 'Couleur de l\'entreprise';
-$lang['company_color_hint'] = 'La couleur de l\'entreprise sera appliquée dans l\'application afin qu\'elle utilise votre marque.';
+$lang['company_logo'] = 'Logo d’entreprise';
+$lang['company_logo_hint'] = 'Le logo de l’entreprise sera affiché dans de nombreux endroits de l’application, y compris la page de réservation et les e-mails de notification (fichier image, max 2 Mo).';
+$lang['company_color'] = 'Couleur de l’entreprise';
+$lang['company_color_hint'] = 'La couleur de l’entreprise sera appliquée dans l’application afin qu’elle utilise votre marque.';
$lang['localization'] = 'Localisation';
$lang['integrations'] = 'Intégrations';
$lang['company'] = 'Entreprise';
@@ -363,51 +363,51 @@ $lang['reset'] = 'Réinitialiser';
$lang['all'] = 'Tout';
$lang['booking_link'] = 'Lien de réservation';
$lang['add_new_event'] = 'Ajouter un nouvel événement';
-$lang['what_kind_of_event'] = 'Quel genre d\'événement aimeriez-vous ajouter?';
+$lang['what_kind_of_event'] = 'Quel genre d’événement aimeriez-vous ajouter?';
$lang['theme'] = 'Thème';
-$lang['limit_customer_access'] = 'Limiter l\'accès des clients';
-$lang['limit_customer_access_hint'] = 'S\'ils sont activés, les fournisseurs et les secrétaires ne pourront accéder qu\'à des clients avec lesquels ils ont rendez-vous.';
+$lang['limit_customer_access'] = 'Limiter l’accès des clients';
+$lang['limit_customer_access_hint'] = 'S’ils sont activés, les fournisseurs et les secrétaires ne pourront accéder qu’à des clients avec lesquels ils ont rendez-vous.';
$lang['url'] = 'URL';
$lang['secret_token'] = 'Token secret';
$lang['verify_ssl'] = 'Vérifiez SSL';
$lang['appointment_save'] = 'Sauver le rendez-vous';
$lang['appointment_delete'] = 'Effacer le rendez-vous';
-$lang['unavailability_save'] = 'Sauver l\'indisponibilité';
-$lang['unavailability_delete'] = 'Effacer l\'indisponibilité';
+$lang['unavailability_save'] = 'Sauver l’indisponibilité';
+$lang['unavailability_delete'] = 'Effacer l’indisponibilité';
$lang['customer_save'] = 'Sauvegarde du client';
$lang['customer_delete'] = 'Supprimer le client';
$lang['service_save'] = 'Sauvegarde du service';
$lang['service_delete'] = 'Supprimer le service';
$lang['service_category_save'] = 'Sauvegarde de la catégorie';
$lang['service_category_delete'] = 'Supprimer la catégorie';
-$lang['provider_save'] = 'Sauvegarde de l\'exécutant';
-$lang['provider_delete'] = 'Supprimer l\'exécutant';
+$lang['provider_save'] = 'Sauvegarde de l’exécutant';
+$lang['provider_delete'] = 'Supprimer l’exécutant';
$lang['secretary_save'] = 'Sauvegarde de la secrétaire';
$lang['secretary_delete'] = 'Supprimer la secrétaire';
-$lang['admin_save'] = 'Sauvegarde de l\administrateur';
-$lang['admin_delete'] = 'Supprimer l\'administrateur';
+$lang['admin_save'] = 'Sauvegarde de l’administrateur';
+$lang['admin_delete'] = 'Supprimer l’administrateur';
$lang['options'] = 'Options';
$lang['webhooks'] = 'Webhooks';
-$lang['webhooks_info'] = 'les Webhooks vous permettent d\'envoyer des notifications HTTP aux applications Web externes en réponse à divers événements d\'application, tels que la création d\'un rendez-vous ou la suppression d\'un client.';
-$lang['integrations_info'] = 'Les intégrations vous permettent d\'établir des connexions tierces avec des applications externes et des API.';
+$lang['webhooks_info'] = 'les Webhooks vous permettent d’envoyer des notifications HTTP aux applications Web externes en réponse à divers événements d’application, tels que la création d’un rendez-vous ou la suppression d’un client.';
+$lang['integrations_info'] = 'Les intégrations vous permettent d’établir des connexions tierces avec des applications externes et des API.';
$lang['configure'] = 'Configurer';
$lang['google_analytics'] = 'Google Analytics';
-$lang['google_analytics_info'] = 'Google Analytics vous permet d\'ajouter automatiquement le code de suivi et le balisage HTML à la page publique et de suivre toutes les sessions de réservation publique.';
+$lang['google_analytics_info'] = 'Google Analytics vous permet d’ajouter automatiquement le code de suivi et le balisage HTML à la page publique et de suivre toutes les sessions de réservation publique.';
$lang['matomo_analytics'] = 'Matomo Analytics';
-$lang['matomo_analytics_info'] = 'MATOMO Analytics vous permet d\'ajouter automatiquement le code de suivi et le balisage HTML à la page publique et de suivre toutes les sessions de réservation publique.';
+$lang['matomo_analytics_info'] = 'Matomo Analytics vous permet d’ajouter automatiquement le code de suivi et le balisage HTML à la page publique et de suivre toutes les sessions de réservation publique.';
$lang['api'] = 'API';
-$lang['api_info'] = 'L\'API vous permet d\'interagir avec toutes les données de Easy!Appointments via le protocole HTTP et les points de terminaison API disponibles et créer vos propres intégrations.';
-$lang['google_analytics_code'] = 'Google Analytics Code';
-$lang['matomo_analytics_url'] = 'Matomo Analytics URL';
-$lang['future_booking_limit'] = 'Future Booking Limit';
+$lang['api_info'] = 'L’API vous permet d’interagir avec toutes les données de Easy!Appointments via le protocole HTTP et les points de terminaison API disponibles et créer vos propres intégrations.';
+$lang['google_analytics_code'] = 'Code de Google analytics';
+$lang['matomo_analytics_url'] = 'URL de Matomo analytics';
+$lang['future_booking_limit'] = 'Limite des réservations futures';
$lang['limit_days'] = 'Limite (jours)';
$lang['future_booking_limit_hint'] = 'Définissez la limite future en jours que les clients peuvent prendre rendez-vous via la page de réservation publique.';
-$lang['api_token'] = 'API Token';
+$lang['api_token'] = 'Jeton de l’API';
$lang['allow_rescheduling_cancellation_before'] = 'Autoriser le reprogrammation/annulation passée';
$lang['at_least_one_field'] = 'Au moins un champ doit être affiché dans la page de réservation.';
$lang['status'] = 'Statut';
$lang['appointment_status_options'] = 'Options de statut de rendez-vous';
-$lang['appointment_status_options_info'] = 'Définissez une liste des options d\'état de rendez-vous disponibles qui peuvent être utilisées dans la page du calendrier (la première deviendra automatiquement la valeur par défaut).';
+$lang['appointment_status_options_info'] = 'Définissez une liste des options d’état de rendez-vous disponibles qui peuvent être utilisées dans la page du calendrier (la première deviendra automatiquement la valeur par défaut).';
$lang['sunday_short'] = 'Dim';
$lang['monday_short'] = 'Lun';
$lang['tuesday_short'] = 'Mar';
@@ -434,27 +434,23 @@ $lang['click_to_toggle'] = 'Cliquez pour basculer';
$lang['week_short'] = 'Se';
$lang['scroll_to_increment'] = 'Faire défiler pour incrémenter';
$lang['year'] = 'Année';
-$lang['make_non_working_day'] = 'This provider will not be available for work on the selected day.';
-$lang['no_breaks'] = 'No Breaks';
-$lang['service_categories'] = 'Service Categories';
-$lang['service_category'] = 'Service Category';
-$lang['blocked_period_saved'] = 'Blocked period saved successfully.';
-$lang['blocked_period_deleted'] = 'Blocked period deleted successfully.';
-$lang['delete_blocked_period'] = 'Delete Blocked Period';
-$lang['blocked_period'] = 'Blocked Period';
-$lang['blocked_periods'] = 'Blocked Periods';
-$lang['blocked_period_save'] = 'Blocked Period Save';
-$lang['blocked_period_delete'] = 'Blocked Period Delete';
-$lang['blocked_periods_hint'] = 'Define periods of time where public bookings will be disabled for all providers (e.g. closed dates, holidays etc.).';
-$lang['custom_field'] = 'Custom Field';
-$lang['custom_fields'] = 'Custom Fields';
-$lang['label'] = 'Label';
-$lang['webhook_saved'] = 'Webhook saved successfully.';
-$lang['webhook_deleted'] = 'Webhook deleted successfully.';
-$lang['delete_webhook'] = 'Delete Webhook';
-$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['make_non_working_day'] = 'Cet exécutant ne sera pas disponible pour travailler le jour sélectionné.';
+$lang['no_breaks'] = 'Pas de pauses';
+$lang['service_categories'] = 'Catégories de services';
+$lang['service_category'] = 'Catégorie de service';
+$lang['blocked_period_saved'] = 'La période bloquée a été enregistrée avec succès.';
+$lang['blocked_period_deleted'] = 'La période bloquée a été supprimée avec succès.';
+$lang['delete_blocked_period'] = 'Supprimer la période bloquée';
+$lang['blocked_period'] = 'Période bloquée';
+$lang['blocked_periods'] = 'Périodes bloquées';
+$lang['blocked_period_save'] = 'Sauvegarde de la période bloquée';
+$lang['blocked_period_delete'] = 'Suppression de la période bloquée';
+$lang['blocked_periods_hint'] = 'Définissez des périodes pendant lesquelles les réservations publiques seront désactivées pour tous les fournisseurs (par exemple, les dates de fermeture, les jours fériés, etc.).';
+$lang['custom_field'] = 'Champ personnalisé';
+$lang['custom_fields'] = 'Champs personnalisés';
+$lang['label'] = 'Étiquette';
+$lang['webhook_saved'] = 'Webhook enregistré avec succès.';
+$lang['webhook_deleted'] = 'Webhook supprimé avec succès.';
+$lang['delete_webhook'] = 'Supprimer le webhook';
+$lang['contact_info'] = 'Coordonnées';
// End
diff --git a/application/language/french/upload_lang.php b/application/language/french/upload_lang.php
index c2d4c41f..e60459cf 100644
--- a/application/language/french/upload_lang.php
+++ b/application/language/french/upload_lang.php
@@ -37,19 +37,19 @@
*/
defined('BASEPATH') or exit('No direct script access allowed');
-$lang['upload_userfile_not_set'] = 'Unable to find a post variable called userfile.';
-$lang['upload_file_exceeds_limit'] = 'The uploaded file exceeds the maximum allowed size in your PHP configuration file.';
-$lang['upload_file_exceeds_form_limit'] = 'The uploaded file exceeds the maximum size allowed by the submission form.';
-$lang['upload_file_partial'] = 'The file was only partially uploaded.';
-$lang['upload_no_temp_directory'] = 'The temporary folder is missing.';
-$lang['upload_unable_to_write_file'] = 'The file could not be written to disk.';
-$lang['upload_stopped_by_extension'] = 'The file upload was stopped by extension.';
-$lang['upload_no_file_selected'] = 'You did not select a file to upload.';
-$lang['upload_invalid_filetype'] = 'The filetype you are attempting to upload is not allowed.';
-$lang['upload_invalid_filesize'] = 'The file you are attempting to upload is larger than the permitted size.';
-$lang['upload_invalid_dimensions'] = 'The image you are attempting to upload doesn\'t fit into the allowed dimensions.';
-$lang['upload_destination_error'] = 'A problem was encountered while attempting to move the uploaded file to the final destination.';
-$lang['upload_no_filepath'] = 'The upload path does not appear to be valid.';
-$lang['upload_no_file_types'] = 'You have not specified any allowed file types.';
-$lang['upload_bad_filename'] = 'The file name you submitted already exists on the server.';
-$lang['upload_not_writable'] = 'The upload destination folder does not appear to be writable.';
+$lang['upload_userfile_not_set'] = 'Impossible de trouver une variable post appelée userfile.';
+$lang['upload_file_exceeds_limit'] = 'Le fichier téléversé dépasse la taille maximale autorisée dans votre fichier de configuration PHP.';
+$lang['upload_file_exceeds_form_limit'] = 'Le fichier téléversé dépasse la taille maximale autorisée par le formulaire de soumission.';
+$lang['upload_file_partial'] = 'Le fichier n’a été que partiellement téléversé.';
+$lang['upload_no_temp_directory'] = 'Le dossier temporaire est manquant.';
+$lang['upload_unable_to_write_file'] = 'Le fichier n’a pas pu être écrit sur le disque.';
+$lang['upload_stopped_by_extension'] = 'Le téléversement du fichier a été arrêté par extension.';
+$lang['upload_no_file_selected'] = 'Vous n’avez pas sélectionné de fichier à télécharger.';
+$lang['upload_invalid_filetype'] = 'Le type de fichier que vous tentez de télécharger n’est pas autorisé.';
+$lang['upload_invalid_filesize'] = 'Le fichier que vous tentez de télécharger est plus volumineux que la taille autorisée.';
+$lang['upload_invalid_dimensions'] = 'L’image que vous tentez de télécharger ne rentre pas dans les dimensions autorisées.';
+$lang['upload_destination_error'] = 'Un problème s’est produit lors de la tentative de déplacement du fichier téléversé vers la destination finale.';
+$lang['upload_no_filepath'] = 'Le chemin de téléversement ne semble pas valide.';
+$lang['upload_no_file_types'] = 'Vous n’avez spécifié aucun type de fichier autorisé.';
+$lang['upload_bad_filename'] = 'Le nom de fichier que vous avez envoyé existe déjà sur le serveur.';
+$lang['upload_not_writable'] = 'Le dossier de destination du téléversement ne semble pas être accessible en écriture.';
From 626d777bbbb5235b1e7852d31118bd8c2e1acd54 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Tue, 23 Apr 2024 21:04:13 +0200
Subject: [PATCH 34/72] Idea : initialize calendar view scroll at time
https://www.freecodecamp.org/news/the-ultimate-guide-to-javascript-date-and-moment-js/#format-the-date-and-time-with-moment-js
---
assets/js/utils/calendar_default_view.js | 2 +-
assets/js/utils/calendar_table_view.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/assets/js/utils/calendar_default_view.js b/assets/js/utils/calendar_default_view.js
index 0e05f230..2484f2ea 100755
--- a/assets/js/utils/calendar_default_view.js
+++ b/assets/js/utils/calendar_default_view.js
@@ -1485,7 +1485,7 @@ App.Utils.CalendarDefaultView = (function () {
firstDay: firstWeekdayNumber,
slotDuration: '00:15:00',
snapDuration: '00:15:00',
- scrollTime: '07:00:00',
+ scrollTime: moment().format('HH') + ':00:00',
slotLabelInterval: '01:00',
eventTimeFormat: timeFormat,
eventTextColor: '#333',
diff --git a/assets/js/utils/calendar_table_view.js b/assets/js/utils/calendar_table_view.js
index 0f1e9490..c436effc 100755
--- a/assets/js/utils/calendar_table_view.js
+++ b/assets/js/utils/calendar_table_view.js
@@ -697,7 +697,7 @@ App.Utils.CalendarTableView = (function () {
firstDay: firstWeekdayNumber,
slotDuration: '00:15:00',
snapDuration: '00:15:00',
- scrollTime: '07:00:00',
+ scrollTime: moment().format('HH') + ':00:00',
slotLabelInterval: '01:00',
eventTimeFormat: timeFormat,
eventTextColor: '#333',
From f3209b5c10d4f7bd85f9a4f94b34e528af5abb69 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Krn=C3=A1=C4=8D?=
Date: Wed, 17 Apr 2024 08:02:36 +0200
Subject: [PATCH 35/72] Slovak translations
---
.../language/slovak/translations_lang.php | 302 +++++++++---------
1 file changed, 149 insertions(+), 153 deletions(-)
diff --git a/application/language/slovak/translations_lang.php b/application/language/slovak/translations_lang.php
index b27c7697..3c155bf3 100755
--- a/application/language/slovak/translations_lang.php
+++ b/application/language/slovak/translations_lang.php
@@ -284,177 +284,173 @@ $lang['date_format'] = 'Formát dátumu';
$lang['date_format_hint'] = 'Zmeňte formát zobrazenia dátumu (D - Dátum, M - Mesiac, Y - Rok).';
$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'] = 'Prvý deň v týždni';
+$lang['first_weekday_hint'] = 'Nastavte prvý deň kalendárneho týždňa.';
$lang['google_analytics_code_hint'] = 'Pridajte svoje ID služby Google Analytics, aby ste bola zahrnutá do stránky rezervácie.';
$lang['availabilities_type'] = 'Typ dostupnosti';
$lang['flexible'] = 'Flexibilný';
$lang['fixed'] = 'Fixný';
$lang['attendants_number'] = 'Počet účastníkov';
$lang['reset_working_plan'] = 'Obnovte pracovný plán späť na predvolené hodnoty.';
-$lang['legal_contents'] = 'Legal Contents';
-$lang['cookie_notice'] = 'Cookie Notice';
-$lang['display_cookie_notice'] = 'Display Cookie Notice';
-$lang['cookie_notice_content'] = 'Cookie Notice Content';
-$lang['terms_and_conditions'] = 'Terms & Conditions';
-$lang['display_terms_and_conditions'] = 'Display Terms & Conditions';
-$lang['terms_and_conditions_content'] = 'Terms & Conditions Content';
-$lang['privacy_policy'] = 'Privacy Policy';
-$lang['display_privacy_policy'] = 'Display Privacy Policy';
-$lang['privacy_policy_content'] = 'Privacy Policy Content';
-$lang['website_using_cookies_to_ensure_best_experience'] = 'This website uses cookies to ensure you get the best experience on our website.';
-$lang['read_and_agree_to_terms_and_conditions'] = 'I have read and agree to the {$link}Terms & Conditions{/$link}.';
-$lang['read_and_agree_to_privacy_policy'] = 'I have read and agree to the {$link}Privacy Policy{/$link}.';
-$lang['delete_personal_information_hint'] = 'Remove all your appointments and personal information from the system.';
-$lang['delete_personal_information'] = 'Delete Personal Information';
-$lang['delete_personal_information_prompt'] = 'Are you sure that you want to delete your personal information? This action cannot be undone.';
-$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['about'] = 'About';
-$lang['booking_settings'] = 'Booking Settings';
-$lang['display'] = 'Display';
-$lang['require'] = 'Require';
-$lang['color'] = 'Color';
-$lang['matomo_analytics_url_hint'] = 'Add the URL to your own Matomo installation to enable Matomo tracking on the booking pages.';
-$lang['invalid_phone'] = 'Invalid phone number.';
-$lang['legal'] = 'Legal';
-$lang['business'] = 'Business';
-$lang['account'] = 'Account';
-$lang['disable_booking'] = 'Disable Booking';
-$lang['disable_booking_hint'] = 'The booking page will be disabled for as long as this setting is active and customers will not be able to register new appointments.';
-$lang['display_message'] = 'Display Message';
-$lang['booking_is_disabled'] = 'Booking Is Disabled!';
-$lang['appearance'] = 'Appearance';
-$lang['company_logo'] = 'Company Logo';
-$lang['company_logo_hint'] = 'The company logo will be displayed in many places of the app, including the booking page and the notification emails (image file, max 2MB).';
-$lang['company_color'] = 'Company Color';
-$lang['company_color_hint'] = 'The company color will be applied across the app so that it the app uses your branding.';
-$lang['localization'] = 'Localization';
-$lang['integrations'] = 'Integrations';
-$lang['company'] = 'Company';
-$lang['remove'] = 'Remove';
-$lang['login_button'] = 'Login Button';
-$lang['display_login_button_hint'] = 'Defines whether the login button is being displayed in the booking page.';
-$lang['private'] = 'Private';
-$lang['private_hint'] = 'Private records will not be displayed or processed in public pages such as the booking page.';
-$lang['reset'] = 'Reset';
-$lang['all'] = 'All';
-$lang['booking_link'] = 'Booking Link';
-$lang['add_new_event'] = 'Add New Event';
-$lang['what_kind_of_event'] = 'What kind of event would you like to add?';
-$lang['theme'] = 'Theme';
-$lang['limit_customer_access'] = 'Limit Customer Access';
-$lang['limit_customer_access_hint'] = 'If enabled, providers and secretaries will only be able to access customers they have an appointment with.';
+$lang['legal_contents'] = 'Právny obsah';
+$lang['cookie_notice'] = 'Oznámenie o súboroch cookie';
+$lang['display_cookie_notice'] = 'Zobraziť oznámenie o súboroch cookie';
+$lang['cookie_notice_content'] = 'Obsah oznámenia o súboroch cookie';
+$lang['terms_and_conditions'] = 'Zmluvné podmienky';
+$lang['display_terms_and_conditions'] = 'Zobraziť zmluvné podmienky';
+$lang['terms_and_conditions_content'] = 'Obsah zmluvných podmienok';
+$lang['privacy_policy'] = 'Zásady ochrany osobných údajov';
+$lang['display_privacy_policy'] = 'Zobraziť Zásady ochrany osobných údajov';
+$lang['privacy_policy_content'] = 'Obsah Zásad ochrany osobných údajov';
+$lang['website_using_cookies_to_ensure_best_experience'] = 'Táto webová stránka používa súbory cookie, aby sme vám zabezpečili čo najlepší zážitok z našej webovej stránky.';
+$lang['read_and_agree_to_terms_and_conditions'] = 'Súhlasím so {$link}spracovaním osobných údajov{/$link}.';
+$lang['read_and_agree_to_privacy_policy'] = 'Súhlasím so {$link}spracovaním osobných údajov{/$link}.';
+$lang['delete_personal_information_hint'] = 'Odstráňte všetky svoje stretnutia a osobné informácie zo systému.';
+$lang['delete_personal_information'] = 'Vymazať osobné údaje';
+$lang['delete_personal_information_prompt'] = 'Ste si istý, že chcete vymazať svoje osobné údaje? Túto akciu nie je možné vrátiť späť.';
+$lang['location'] = 'Miesto';
+$lang['working_plan_exception'] = 'Výnimka pracovného plánu';
+$lang['working_plan_exceptions'] = 'Výnimky pracovného plánu';
+$lang['working_plan_exceptions_hint'] = 'Pridajte deň výnimky pracovného plánu mimo pracovného plánu.';
+$lang['new_working_plan_exception_title'] = 'Výnimka nového pracovného plánu';
+$lang['working_plan_exception_saved'] = 'Výnimka pracovného plánu bola úspešne uložená.';
+$lang['working_plan_exception_deleted'] = 'Výnimka pracovného plánu bola úspešne odstránená.';
+$lang['add_working_plan_exceptions_during_each_day'] = 'Pridajte výnimky pracovného plánu mimo pracovného plánu.';
+$lang['add_working_plan_exception'] = 'Pridať výnimku pracovného plánu';
+$lang['require_phone_number'] = 'Pridať výnimku pracovného plánu';
+$lang['require_phone_number_hint'] = 'Keď je táto možnosť povolená, zákazníci a používatelia budú musieť pri rezervácii stretnutia zadať telefónne číslo zákazníka';
+$lang['check_spam_folder'] = 'Ak e-mail nepríde do niekoľkých minút, skontrolujte priečinok so spamom.';
+$lang['api_token_hint'] = 'Nastavte tajný token, aby ste povolili autentifikáciu na základe tokenov rozhrania Easy!Appointments API.';
+$lang['timezone'] = 'Časové pásmo';
+$lang['overwrite_existing_working_plans'] = 'Týmto sa prepíšu existujúce pracovné plány poskytovateľa. Ste si istý, že chcete pokračovať?';
+$lang['working_plans_got_updated'] = 'Všetky pracovné plány boli aktualizované.';
+$lang['apply_to_all_providers'] = 'Použiť pre všetkých poskytovateľov';
+$lang['display_any_provider'] = 'Zobraziť možnosť ľubovoľného poskytovateľa';
+$lang['display_any_provider_hint'] = 'Rezervačná stránka získa dodatočnú možnosť, ktorá umožňuje zákazníkom rezervovať bez uvedenia poskytovateľa.';
+$lang['load_more'] = 'Zobraziť viac';
+$lang['list'] = 'Zoznam';
+$lang['default'] = 'Prevolené';
+$lang['table'] = 'Tabuľka';
+$lang['date'] = 'Dátum';
+$lang['about'] = 'O programe';
+$lang['booking_settings'] = 'Nastavenia rezervácie';
+$lang['display'] = 'Zobraziť';
+$lang['require'] = 'Vyžadovať';
+$lang['color'] = 'Farba';
+$lang['matomo_analytics_url_hint'] = 'Zadajte URL svojej vlastnej inštalácie Matomo, aby ste povolili sledovanie Matomo na rezervačných stránkach.';
+$lang['invalid_phone'] = 'Neplatné telefónne číslo.';
+$lang['legal'] = 'Právne';
+$lang['business'] = 'Obchod';
+$lang['account'] = 'Účet';
+$lang['disable_booking'] = 'Zakázať rezerváciu';
+$lang['disable_booking_hint'] = 'Rezervačná stránka bude zakázaná, kým bude toto nastavenie aktívne a zákazníci nebudú môcť registrovať nové stretnutia.';
+$lang['display_message'] = 'Zobraziť správu';
+$lang['booking_is_disabled'] = 'Rezervácia je zakázaná!';
+$lang['appearance'] = 'Vzhľad';
+$lang['company_logo'] = 'Logo spoločnosti';
+$lang['company_logo_hint'] = 'Logo spoločnosti bude zobrazené na mnohých miestach aplikácie, vrátane rezervačnej stránky a e-mailov s upozornením (súbor s obrázkom, max 2 MB).';
+$lang['company_color'] = 'Farba spoločnosti';
+$lang['company_color_hint'] = 'Farba spoločnosti bude použitá v celej aplikácii, aby aplikácia používala vašu značku.';
+$lang['localization'] = 'Lokalizácia';
+$lang['integrations'] = 'Integrácie';
+$lang['company'] = 'Spoločnosť';
+$lang['remove'] = 'Odstrániť';
+$lang['login_button'] = 'Tlačidlo na prihlásenie';
+$lang['display_login_button_hint'] = 'Definuje, či sa prihlasovacie tlačidlo zobrazuje na stránke rezervácie.';
+$lang['private'] = 'Súkromné';
+$lang['private_hint'] = 'Súkromné záznamy nebudú zobrazené ani spracované na verejných stránkach, ako je napríklad stránka rezervácie.';
+$lang['reset'] = 'Resetovať';
+$lang['all'] = 'Všetko';
+$lang['booking_link'] = 'Odkaz na rezerváciu';
+$lang['add_new_event'] = 'Pridať novú udalosť';
+$lang['what_kind_of_event'] = 'Aký druh udalosti by ste chceli pridať?';
+$lang['theme'] = 'Téma';
+$lang['limit_customer_access'] = 'Obmedziť zákaznícky prístup';
+$lang['limit_customer_access_hint'] = 'Ak je povolené, poskytovatelia a sekretárky budú mať prístup len k zákazníkom, s ktorými majú stretnutie.';
$lang['url'] = 'URL';
-$lang['secret_token'] = 'Secret Token';
-$lang['verify_ssl'] = 'Verify SSL';
-$lang['appointment_save'] = 'Appointment Save';
-$lang['appointment_delete'] = 'Appointment Delete';
-$lang['unavailability_save'] = 'Unavailability Save';
-$lang['unavailability_delete'] = 'Unavailability Delete';
-$lang['customer_save'] = 'Customer Save';
-$lang['customer_delete'] = 'Customer Delete';
-$lang['service_save'] = 'Service Save';
-$lang['service_delete'] = 'Service Delete';
-$lang['service_category_save'] = 'Category Save';
-$lang['service_category_delete'] = 'Category Delete';
-$lang['provider_save'] = 'Provider Save';
-$lang['provider_delete'] = 'Provider Delete';
-$lang['secretary_save'] = 'Secretary Save';
-$lang['secretary_delete'] = 'Secretary Delete';
-$lang['admin_save'] = 'Admin Save';
-$lang['admin_delete'] = 'Admin Delete';
-$lang['options'] = 'Options';
-$lang['webhooks'] = 'Webhooks';
-$lang['webhooks_info'] = 'Webhooks enable you to send HTTP notifications to external web applications in response to various application events, such as the creation of an appointment or the removal of a customer.';
-$lang['integrations_info'] = 'Integrations enable you to make third-party connections with external applications and APIs.';
-$lang['configure'] = 'Configure';
+$lang['secret_token'] = 'Tajný token';
+$lang['verify_ssl'] = 'Overiť SSL';
+$lang['appointment_save'] = 'Uloženie stretnutia';
+$lang['appointment_delete'] = 'Vymazanie schôdzky';
+$lang['unavailability_save'] = 'Uložiť pre nedostupnosť';
+$lang['unavailability_delete'] = 'Vymazanie nedostupnosti';
+$lang['customer_save'] = 'Uložiť zákazníka';
+$lang['customer_delete'] = 'Vymazanie zákazníka';
+$lang['service_save'] = 'Uloženie služby';
+$lang['service_delete'] = 'Vymazanie služby';
+$lang['service_category_save'] = 'Uložiť kategóriu';
+$lang['service_category_delete'] = 'Vymazanie kategórie';
+$lang['provider_save'] = 'Uložiť poskytovateľa';
+$lang['provider_delete'] = 'Vymazať poskytovateľa';
+$lang['secretary_save'] = 'Uložiť sekretárku';
+$lang['secretary_delete'] = 'Vymazanie sekretárky';
+$lang['admin_save'] = 'Uloženie správcu';
+$lang['admin_delete'] = 'Odstrániť správcu';
+$lang['options'] = 'Možnosti';
+$lang['webhooks'] = 'Webhooky';
+$lang['webhooks_info'] = 'Webhooky vám umožňujú odosielať upozornenia HTTP externým webovým aplikáciám v reakcii na rôzne udalosti aplikácie, ako je vytvorenie stretnutia alebo odstránenie zákazníka.';
+$lang['integrations_info'] = 'Integrácie vám umožňujú vytvárať spojenia tretích strán s externými aplikáciami a API.';
+$lang['configure'] = 'Konfigurovať';
$lang['google_analytics'] = 'Google Analytics';
-$lang['google_analytics_info'] = 'Google Analytics enable you to automatically add the tracking code and HTML markup to the public page and track all the public booking sessions.';
+$lang['google_analytics_info'] = 'Google Analytics vám umožňuje automaticky pridať sledovací kód a označenie HTML na verejnú stránku a sledovať všetky relácie verejnej rezervácie.';
$lang['matomo_analytics'] = 'Matomo Analytics';
-$lang['matomo_analytics_info'] = 'Matomo Analytics enable you to automatically add the tracking code and HTML markup to the public page and track all the public booking sessions.';
+$lang['matomo_analytics_info'] = 'Matomo Analytics vám umožňuje automaticky pridať sledovací kód a označenie HTML na verejnú stránku a sledovať všetky relácie verejnej rezervácie.';
$lang['api'] = 'API';
-$lang['api_info'] = 'API enable you to interact with all the Easy!Appointments data via the HTTP protocol and the available API endpoints and create your own integrations.';
-$lang['google_analytics_code'] = 'Google Analytics Code';
-$lang['matomo_analytics_url'] = 'Matomo Analytics URL';
-$lang['future_booking_limit'] = 'Future Booking Limit';
-$lang['limit_days'] = 'Limit (Days)';
-$lang['future_booking_limit_hint'] = 'Set the future limit in days customers can make appointments via the public booking page.';
-$lang['api_token'] = 'API Token';
-$lang['allow_rescheduling_cancellation_before'] = 'Allow Rescheduling/Cancellation Before';
-$lang['at_least_one_field'] = 'At least one field must be displayed in the booking page.';
-$lang['status'] = 'Status';
-$lang['appointment_status_options'] = 'Appointment Status Options';
-$lang['appointment_status_options_info'] = 'Define a list of available appointment status options that can be used in the the calendar page (the first one will automatically become the default value).';
-$lang['sunday_short'] = 'Sun';
-$lang['monday_short'] = 'Mon';
-$lang['tuesday_short'] = 'Tue';
-$lang['wednesday_short'] = 'Wed';
-$lang['thursday_short'] = 'Thu';
-$lang['friday_short'] = 'Fri';
-$lang['saturday_short'] = 'Sat';
+$lang['api_info'] = 'API umožňuje interakciu so všetkými údajmi Easy!Appointments cez protokol HTTP a dostupné koncové body API a vytváranie vlastných integrácií.';
+$lang['google_analytics_code'] = 'Kód Google Analytics';
+$lang['matomo_analytics_url'] = 'Adresa URL Matomo Analytics';
+$lang['future_booking_limit'] = 'Budúci limit rezervácie';
+$lang['limit_days'] = 'Limit (dni)';
+$lang['future_booking_limit_hint'] = 'Nastavte budúci limit v dňoch, kedy si zákazníci môžu dohodnúť schôdzky cez verejnú rezervačnú stránku.';
+$lang['api_token'] = 'Token API';
+$lang['allow_rescheduling_cancellation_before'] = 'Povoliť preplánovanie/zrušenie skôr';
+$lang['at_least_one_field'] = 'Na rezervačnej stránke musí byť zobrazené aspoň jedno pole.';
+$lang['status'] = 'Stav';
+$lang['appointment_status_options'] = 'Možnosti stavu stretnutia';
+$lang['appointment_status_options_info'] = 'Definujte zoznam dostupných možností stavu stretnutia, ktoré možno použiť na stránke kalendára (prvá sa automaticky stane predvolenou hodnotou).';
+$lang['sunday_short'] = 'Ned';
+$lang['monday_short'] = 'Pon';
+$lang['tuesday_short'] = 'Ut';
+$lang['wednesday_short'] = 'Str';
+$lang['thursday_short'] = 'Št';
+$lang['friday_short'] = 'Pia';
+$lang['saturday_short'] = 'So';
$lang['january_short'] = 'Jan';
$lang['february_short'] = 'Feb';
$lang['march_short'] = 'Mar';
$lang['april_short'] = 'Apr';
-$lang['may_short'] = 'May';
-$lang['june_short'] = 'Jun';
-$lang['july_short'] = 'Jul';
+$lang['may_short'] = 'Máj';
+$lang['june_short'] = 'Jún';
+$lang['july_short'] = 'Júl';
$lang['august_short'] = 'Aug';
-$lang['september_short'] = 'Sep';
+$lang['september_short'] = 'Sept';
$lang['october_short'] = 'Oct';
$lang['november_short'] = 'Nov';
$lang['december_short'] = 'Dec';
$lang['am'] = 'am';
$lang['pm'] = 'pm';
-$lang['to'] = 'to';
-$lang['click_to_toggle'] = 'Click To Toggle';
-$lang['week_short'] = 'Wk';
-$lang['scroll_to_increment'] = 'Scroll To Increment';
-$lang['year'] = 'Year';
-$lang['make_non_working_day'] = 'This provider will not be available for work on the selected day.';
-$lang['no_breaks'] = 'No Breaks';
-$lang['service_categories'] = 'Service Categories';
-$lang['service_category'] = 'Service Category';
-$lang['blocked_period_saved'] = 'Blocked period saved successfully.';
-$lang['blocked_period_deleted'] = 'Blocked period deleted successfully.';
-$lang['delete_blocked_period'] = 'Delete Blocked Period';
-$lang['blocked_period'] = 'Blocked Period';
-$lang['blocked_periods'] = 'Blocked Periods';
-$lang['blocked_period_save'] = 'Blocked Period Save';
-$lang['blocked_period_delete'] = 'Blocked Period Delete';
-$lang['blocked_periods_hint'] = 'Define periods of time where public bookings will be disabled for all providers (e.g. closed dates, holidays etc.).';
-$lang['custom_field'] = 'Custom Field';
-$lang['custom_fields'] = 'Custom Fields';
-$lang['label'] = 'Label';
-$lang['webhook_saved'] = 'Webhook saved successfully.';
-$lang['webhook_deleted'] = 'Webhook deleted successfully.';
-$lang['delete_webhook'] = 'Delete Webhook';
-$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['to'] = 'do';
+$lang['click_to_toggle'] = 'Prepnite kliknutím';
+$lang['week_short'] = 'Týž.';
+$lang['scroll_to_increment'] = 'Posunúť sa na prírastok';
+$lang['year'] = 'Rok';
+$lang['make_non_working_day'] = 'Tento poskytovateľ nebude vo vybratý deň k dispozícii pre prácu.';
+$lang['no_breaks'] = 'Žiadne prestávky';
+$lang['service_categories'] = 'Kategórie služieb';
+$lang['service_category'] = 'Kategória služieb';
+$lang['blocked_period_saved'] = 'Blokované obdobie bolo úspešne uložené.';
+$lang['blocked_period_deleted'] = 'Blokované obdobie bolo úspešne odstránené.';
+$lang['delete_blocked_period'] = 'Odstrániť blokované obdobie';
+$lang['blocked_period'] = 'Blokované obdobie';
+$lang['blocked_periods'] = 'Blokované obdobia';
+$lang['blocked_period_save'] = 'Uloženie zablokovaného obdobia';
+$lang['blocked_period_delete'] = 'Vymazanie blokovaného obdobia';
+$lang['blocked_periods_hint'] = 'Definujte časové obdobia, počas ktorých budú verejné rezervácie pre všetkých poskytovateľov zakázané (napr. dátumy zatvorenia, sviatky atď.).';
+$lang['custom_field'] = 'Vlastné pole';
+$lang['custom_fields'] = 'Vlastné polia';
+$lang['label'] = 'Štítok';
+$lang['webhook_saved'] = 'Webhook bol úspešne uložený.';
+$lang['webhook_deleted'] = 'Webhook bol úspešne odstránený.';
+$lang['delete_webhook'] = 'Odstrániť webhook';
+$lang['contact_info'] = 'Kontaktné informácie';
// End
From a5aa7da361868d40f2514bd9a223f234055df939 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 17:13:50 +0200
Subject: [PATCH 36/72] Revert scroll down
---
assets/js/utils/calendar_default_view.js | 4 ++--
assets/js/utils/calendar_table_view.js | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/assets/js/utils/calendar_default_view.js b/assets/js/utils/calendar_default_view.js
index 2484f2ea..85a67166 100755
--- a/assets/js/utils/calendar_default_view.js
+++ b/assets/js/utils/calendar_default_view.js
@@ -868,7 +868,7 @@ App.Utils.CalendarDefaultView = (function () {
.add({days: -info.delta.days, milliseconds: -info.delta.milliseconds})
.format('YYYY-MM-DD HH:mm:ss');
- App.Http.Calendar.saveAppointment(unavailability).done(() => {
+ App.Http.Calendar.saveUnavailability(unavailability).done(() => {
$notification.hide('blind');
});
@@ -1485,7 +1485,7 @@ App.Utils.CalendarDefaultView = (function () {
firstDay: firstWeekdayNumber,
slotDuration: '00:15:00',
snapDuration: '00:15:00',
- scrollTime: moment().format('HH') + ':00:00',
+ scrollTime: '07:00:00',
slotLabelInterval: '01:00',
eventTimeFormat: timeFormat,
eventTextColor: '#333',
diff --git a/assets/js/utils/calendar_table_view.js b/assets/js/utils/calendar_table_view.js
index c436effc..0f1e9490 100755
--- a/assets/js/utils/calendar_table_view.js
+++ b/assets/js/utils/calendar_table_view.js
@@ -697,7 +697,7 @@ App.Utils.CalendarTableView = (function () {
firstDay: firstWeekdayNumber,
slotDuration: '00:15:00',
snapDuration: '00:15:00',
- scrollTime: moment().format('HH') + ':00:00',
+ scrollTime: '07:00:00',
slotLabelInterval: '01:00',
eventTimeFormat: timeFormat,
eventTextColor: '#333',
From 171623c6a0e95506ffd6ca2f91a9cd7a1d8edf42 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 17:25:31 +0200
Subject: [PATCH 37/72] Fix the calendar drop and resize "undo" functionality
---
assets/js/utils/calendar_default_view.js | 6 +++---
assets/js/utils/calendar_table_view.js | 12 ++++++++----
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/assets/js/utils/calendar_default_view.js b/assets/js/utils/calendar_default_view.js
index 85a67166..a02cc737 100755
--- a/assets/js/utils/calendar_default_view.js
+++ b/assets/js/utils/calendar_default_view.js
@@ -865,7 +865,7 @@ App.Utils.CalendarDefaultView = (function () {
unavailability.end_datetime = info.event.extendedProps.data.end_datetime = moment(
unavailability.end_datetime,
)
- .add({days: -info.delta.days, milliseconds: -info.delta.milliseconds})
+ .add({days: -info.endDelta.days, milliseconds: -info.endDelta.milliseconds})
.format('YYYY-MM-DD HH:mm:ss');
App.Http.Calendar.saveUnavailability(unavailability).done(() => {
@@ -955,7 +955,7 @@ App.Utils.CalendarDefaultView = (function () {
.add({days: info.delta.days, millisecond: info.delta.milliseconds})
.format('YYYY-MM-DD HH:mm:ss');
- appointment.is_unavailability = Number(appointment.is_unavailability);
+ appointment.is_unavailability = 0;
info.event.extendedProps.data.start_datetime = appointment.start_datetime;
info.event.extendedProps.data.end_datetime = appointment.end_datetime;
@@ -1014,7 +1014,7 @@ App.Utils.CalendarDefaultView = (function () {
.add({days: -info.delta.days, milliseconds: -info.delta.milliseconds})
.format('YYYY-MM-DD HH:mm:ss');
- unavailability.is_unavailability = Number(unavailability.is_unavailability);
+ unavailability.is_unavailability = 1;
info.event.extendedProps.data.start_datetime = unavailability.start_datetime;
info.event.extendedProps.data.end_datetime = unavailability.end_datetime;
diff --git a/assets/js/utils/calendar_table_view.js b/assets/js/utils/calendar_table_view.js
index 0f1e9490..f2ab0bcf 100755
--- a/assets/js/utils/calendar_table_view.js
+++ b/assets/js/utils/calendar_table_view.js
@@ -1514,6 +1514,8 @@ App.Utils.CalendarTableView = (function () {
const appointment = {...info.event.extendedProps.data};
+ appointment.is_unavailability = 0;
+
// Must delete the following because only appointment data should be provided to the AJAX call.
delete appointment.customer;
delete appointment.provider;
@@ -1546,7 +1548,7 @@ App.Utils.CalendarTableView = (function () {
$footer.css('position', 'static'); // Footer position fix.
// Update the event data for later use.
- info.event.setProp('data', event.extendedProps.data);
+ info.event.setProp('data', info.event.extendedProps.data);
};
// Update appointment data.
@@ -1634,7 +1636,7 @@ App.Utils.CalendarTableView = (function () {
.add({days: info.delta.days, millisecond: info.delta.milliseconds})
.format('YYYY-MM-DD HH:mm:ss');
- appointment.is_unavailability = Number(appointment.is_unavailability);
+ appointment.is_unavailability = 0;
info.event.extendedProps.data.start_datetime = appointment.start_datetime;
info.event.extendedProps.data.end_datetime = appointment.end_datetime;
@@ -1688,13 +1690,15 @@ App.Utils.CalendarTableView = (function () {
successCallback = () => {
const undoFunction = () => {
unavailability.start_datetime = moment(unavailability.start_datetime)
- .add({days: -info.endDelta.days, milliseconds: -info.endDelta.milliseconds})
+ .add({days: -info.delta.days, milliseconds: -info.delta.milliseconds})
.format('YYYY-MM-DD HH:mm:ss');
unavailability.end_datetime = moment(unavailability.end_datetime)
- .add({days: -info.endDelta.days, milliseconds: -info.endDelta.milliseconds})
+ .add({days: -info.delta.days, milliseconds: -info.delta.milliseconds})
.format('YYYY-MM-DD HH:mm:ss');
+ unavailability.is_unavailability = 1;
+
info.event.extendedProps.data.start_datetime = unavailability.start_datetime;
info.event.extendedProps.data.end_datetime = unavailability.end_datetime;
From 078442719c3eecf81bc4efa153984fb8e0fd31f3 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 17:28:02 +0200
Subject: [PATCH 38/72] Set the Google attendee data only if all the values are
available
---
application/libraries/Google_sync.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/application/libraries/Google_sync.php b/application/libraries/Google_sync.php
index fb2e4e08..42ea5c5c 100644
--- a/application/libraries/Google_sync.php
+++ b/application/libraries/Google_sync.php
@@ -181,7 +181,7 @@ class Google_sync
$event_provider->setEmail($provider['email']);
$event->attendees[] = $event_provider;
- if (!empty($customer)) {
+ if (!empty($customer['first_name']) && !empty($customer['last_name']) && !empty($customer['email'])) {
$event_customer = new Google_Service_Calendar_EventAttendee();
$event_customer->setDisplayName($customer['first_name'] . ' ' . $customer['last_name']);
$event_customer->setEmail($customer['email']);
@@ -243,7 +243,7 @@ class Google_sync
$event_provider->setEmail($provider['email']);
$event->attendees[] = $event_provider;
- if (!empty($customer)) {
+ if (!empty($customer['first_name']) && !empty($customer['last_name']) && !empty($customer['email'])) {
$event_customer = new Google_Service_Calendar_EventAttendee();
$event_customer->setDisplayName($customer['first_name'] . ' ' . $customer['last_name']);
$event_customer->setEmail($customer['email']);
From 55bdcf49a108aeba35b0252f71692b64d515addd Mon Sep 17 00:00:00 2001
From: Nikke <62788198+zikkee@users.noreply.github.com>
Date: Tue, 20 Feb 2024 16:03:57 +0200
Subject: [PATCH 39/72] Added and improved Finnish translations
---
.../language/finnish/translations_lang.php | 86 +++++++++----------
1 file changed, 41 insertions(+), 45 deletions(-)
diff --git a/application/language/finnish/translations_lang.php b/application/language/finnish/translations_lang.php
index df3fdd5c..d0602c22 100755
--- a/application/language/finnish/translations_lang.php
+++ b/application/language/finnish/translations_lang.php
@@ -126,7 +126,7 @@ $lang['admins'] = 'Järjestelmänvalvojat';
$lang['providers'] = 'Palveluntuottajat';
$lang['secretaries'] = 'Sihteerit';
$lang['mobile_number'] = 'Matkapuhelinnumero';
-$lang['mobile'] = 'Mobile';
+$lang['mobile'] = 'Matkapuhelin';
$lang['state'] = 'Maa';
$lang['username'] = 'Käyttäjätunnus';
$lang['password'] = 'Salasana';
@@ -263,8 +263,8 @@ $lang['next'] = 'Seuraava';
$lang['now'] = 'Nyt';
$lang['select_time'] = 'Valitse aika';
$lang['time'] = 'Aika';
-$lang['hour'] = 'Tunti';
-$lang['minute'] = 'Minuutti';
+$lang['hour'] = 'tunti';
+$lang['minute'] = 'minuutti';
$lang['google_sync_completed'] = 'Google synkronointi onnistui.';
$lang['google_sync_failed'] = 'Google synkronointi epäonnistui: Palvelimeen ei saatu muodostettua yhteyttä.';
$lang['select_google_calendar'] = 'Valitse Google-kalenteri';
@@ -415,46 +415,42 @@ $lang['wednesday_short'] = 'Wed';
$lang['thursday_short'] = 'Thu';
$lang['friday_short'] = 'Fri';
$lang['saturday_short'] = 'Sat';
-$lang['january_short'] = 'Jan';
-$lang['february_short'] = 'Feb';
-$lang['march_short'] = 'Mar';
-$lang['april_short'] = 'Apr';
-$lang['may_short'] = 'May';
-$lang['june_short'] = 'Jun';
-$lang['july_short'] = 'Jul';
-$lang['august_short'] = 'Aug';
-$lang['september_short'] = 'Sep';
-$lang['october_short'] = 'Oct';
-$lang['november_short'] = 'Nov';
-$lang['december_short'] = 'Dec';
-$lang['am'] = 'am';
-$lang['pm'] = 'pm';
-$lang['to'] = 'to';
-$lang['click_to_toggle'] = 'Click To Toggle';
-$lang['week_short'] = 'Wk';
-$lang['scroll_to_increment'] = 'Scroll To Increment';
-$lang['year'] = 'Year';
-$lang['make_non_working_day'] = 'This provider will not be available for work on the selected day.';
-$lang['no_breaks'] = 'No Breaks';
-$lang['service_categories'] = 'Service Categories';
-$lang['service_category'] = 'Service Category';
-$lang['blocked_period_saved'] = 'Blocked period saved successfully.';
-$lang['blocked_period_deleted'] = 'Blocked period deleted successfully.';
-$lang['delete_blocked_period'] = 'Delete Blocked Period';
-$lang['blocked_period'] = 'Blocked Period';
-$lang['blocked_periods'] = 'Blocked Periods';
-$lang['blocked_period_save'] = 'Blocked Period Save';
-$lang['blocked_period_delete'] = 'Blocked Period Delete';
-$lang['blocked_periods_hint'] = 'Define periods of time where public bookings will be disabled for all providers (e.g. closed dates, holidays etc.).';
-$lang['custom_field'] = 'Custom Field';
-$lang['custom_fields'] = 'Custom Fields';
-$lang['label'] = 'Label';
-$lang['webhook_saved'] = 'Webhook saved successfully.';
-$lang['webhook_deleted'] = 'Webhook deleted successfully.';
-$lang['delete_webhook'] = 'Delete Webhook';
-$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Oletusaikavyöhyke';
-$lang['default_timezone_hint'] = 'Tämä tulee uusien käyttäjien ja varausten oletusaikavyöhykkeeksi';
-$lang['default_language'] = 'Oletuskieli';
-$lang['default_language_hint'] = 'Tämä tulee uusien käyttäjien oletuskieleksi';
+$lang['january_short'] = 'Tammi';
+$lang['february_short'] = 'Helmi';
+$lang['march_short'] = 'Maalis';
+$lang['april_short'] = 'Huhti';
+$lang['may_short'] = 'Touko';
+$lang['june_short'] = 'Kesä';
+$lang['july_short'] = 'Heinä';
+$lang['august_short'] = 'Elo';
+$lang['september_short'] = 'Syys';
+$lang['october_short'] = 'Loka';
+$lang['november_short'] = 'Marras';
+$lang['december_short'] = 'Joulu';
+$lang['am'] = 'ap';
+$lang['pm'] = 'ip';
+$lang['to'] = '->';
+$lang['click_to_toggle'] = 'Klikkaa kytkeäksesi';
+$lang['week_short'] = 'vk';
+$lang['scroll_to_increment'] = 'Vieritä kohtaan Lisäys';
+$lang['year'] = 'vuosi';
+$lang['make_non_working_day'] = 'Tämä palveluntarjoaja ei ole käytettävissä töihin valittuna päivänä.';
+$lang['no_breaks'] = 'Ei taukoja';
+$lang['service_categories'] = 'Palveluluokat';
+$lang['service_category'] = 'Palveluluokka';
+$lang['blocked_period_saved'] = 'Estetty ajanjakso tallennettu onnistuneesti.';
+$lang['blocked_period_deleted'] = 'Estetty ajanjakso poistettu onnistuneesti.';
+$lang['delete_blocked_period'] = 'Poistettu estetty ajanjakso';
+$lang['blocked_period'] = 'Estetty ajanjakso';
+$lang['blocked_periods'] = 'Estetyt ajanjaksot';
+$lang['blocked_period_save'] = 'Tallenna estetty ajanjakso';
+$lang['blocked_period_delete'] = 'Poista estetty ajanjakso';
+$lang['blocked_periods_hint'] = 'Määritä ajanjaksot, jolloin julkiset varaukset poistetaan käytöstä kaikilta palveluntarjoajilta (esim. suljetut päivämäärät, lomat jne.).';
+$lang['custom_field'] = 'Mukautettu kenttä';
+$lang['custom_fields'] = 'Mukautetut kentät';
+$lang['label'] = 'Merkki';
+$lang['webhook_saved'] = 'Webhook tallennettu onnistuneesti.';
+$lang['webhook_deleted'] = 'Webhook poistettu onnistuneesti.';
+$lang['delete_webhook'] = 'Poista Webhook';
+$lang['contact_info'] = 'Yhteystiedot';
// End
From b0c0acde6217af0a6779ca2e58f56c0dad328d92 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Fri, 26 Apr 2024 17:32:39 +0200
Subject: [PATCH 40/72] French translation fixes
---
application/language/french/calendar_lang.php | 8 ++++----
application/language/french/pagination_lang.php | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/application/language/french/calendar_lang.php b/application/language/french/calendar_lang.php
index 9b2acce6..59a27114 100644
--- a/application/language/french/calendar_lang.php
+++ b/application/language/french/calendar_lang.php
@@ -54,7 +54,7 @@ $lang['cal_sat'] = 'Sam';
$lang['cal_sunday'] = 'Dimanche';
$lang['cal_monday'] = 'Lundi';
$lang['cal_tuesday'] = 'Mardi';
-$lang['cal_wednesday'] = 'mercredi';
+$lang['cal_wednesday'] = 'Mercredi';
$lang['cal_thursday'] = 'Jeudi';
$lang['cal_friday'] = 'Vendredi';
$lang['cal_saturday'] = 'Samedi';
@@ -63,9 +63,9 @@ $lang['cal_feb'] = 'Fév';
$lang['cal_mar'] = 'Mar';
$lang['cal_apr'] = 'Avr';
$lang['cal_may'] = 'Mai';
-$lang['cal_jun'] = 'Jun';
-$lang['cal_jul'] = 'Jul';
-$lang['cal_aug'] = 'Aoû';
+$lang['cal_jun'] = 'Jui';
+$lang['cal_jul'] = 'Jui';
+$lang['cal_aug'] = 'Aou';
$lang['cal_sep'] = 'Sep';
$lang['cal_oct'] = 'Oct';
$lang['cal_nov'] = 'Nov';
diff --git a/application/language/french/pagination_lang.php b/application/language/french/pagination_lang.php
index 8661f074..d3c72d59 100644
--- a/application/language/french/pagination_lang.php
+++ b/application/language/french/pagination_lang.php
@@ -37,7 +37,7 @@
*/
defined('BASEPATH') or exit('No direct script access allowed');
-$lang['pagination_first_link'] = '‹ Début';
+$lang['pagination_first_link'] = '‹ Première';
$lang['pagination_next_link'] = '>';
$lang['pagination_prev_link'] = '<';
-$lang['pagination_last_link'] = 'Fin ›';
+$lang['pagination_last_link'] = 'Dernière ›';
From 0d89bb7a6ada63ab892cdfd32269031cc906e7a3 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Wed, 8 May 2024 21:41:37 +0200
Subject: [PATCH 41/72] Switch the duration with the appointment date time in
the confirmation step
---
assets/js/pages/booking.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/assets/js/pages/booking.js b/assets/js/pages/booking.js
index b89124d4..608b5841 100644
--- a/assets/js/pages/booking.js
+++ b/assets/js/pages/booking.js
@@ -673,14 +673,14 @@ App.Pages.Booking = (function () {
@@ -137,6 +141,8 @@
+
+
From 8294dba6f2a48473d9836bba264b353fa684f77a Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Sat, 11 May 2024 17:57:17 +0200
Subject: [PATCH 54/72] Wording
---
application/language/english/translations_lang.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/language/english/translations_lang.php b/application/language/english/translations_lang.php
index 04f35a6d..b92e1f59 100755
--- a/application/language/english/translations_lang.php
+++ b/application/language/english/translations_lang.php
@@ -92,7 +92,7 @@ $lang['reload_appointments_hint'] = 'Reload calendar appointments.';
$lang['trigger_google_sync_hint'] = 'Trigger the Google Calendar synchronization process.';
$lang['appointment_updated'] = 'Appointment updated successfully.';
$lang['undo'] = 'Undo';
-$lang['appointment_details_changed'] = 'Appointment details have changed.';
+$lang['appointment_details_changed'] = 'Appointment details have changed';
$lang['appointment_changes_saved'] = 'Appointment changes have been successfully saved.';
$lang['save'] = 'Save';
$lang['new'] = 'New';
From 3e0f7e5452590d29730ae7da00c21ed2470e2e95 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Sat, 11 May 2024 18:00:52 +0200
Subject: [PATCH 55/72] Rename the private switch label for more clarity
---
application/language/arabic/translations_lang.php | 5 +----
application/language/bulgarian/translations_lang.php | 5 +----
application/language/catalan/translations_lang.php | 5 +----
application/language/chinese/translations_lang.php | 5 +----
application/language/croatian/translations_lang.php | 5 +----
application/language/czech/translations_lang.php | 5 +----
application/language/danish/translations_lang.php | 5 +----
application/language/dutch/translations_lang.php | 5 +----
application/language/english/translations_lang.php | 5 +----
application/language/estonian/translations_lang.php | 5 +----
application/language/finnish/translations_lang.php | 1 +
application/language/french/translations_lang.php | 1 +
application/language/german/translations_lang.php | 5 +----
application/language/greek/translations_lang.php | 5 +----
application/language/hebrew/translations_lang.php | 5 +----
application/language/hindi/translations_lang.php | 5 +----
application/language/hungarian/translations_lang.php | 5 +----
application/language/italian/translations_lang.php | 5 +----
application/language/japanese/translations_lang.php | 5 +----
application/language/luxembourgish/translations_lang.php | 5 +----
application/language/marathi/translations_lang.php | 5 +----
application/language/persian/translations_lang.php | 5 +----
application/language/polish/translations_lang.php | 5 +----
application/language/portuguese-br/translations_lang.php | 5 +----
application/language/portuguese/translations_lang.php | 5 +----
application/language/romanian/translations_lang.php | 5 +----
application/language/russian/translations_lang.php | 5 +----
application/language/serbian/translations_lang.php | 5 +----
application/language/slovak/translations_lang.php | 1 +
application/language/spanish/translations_lang.php | 5 +----
application/language/swedish/translations_lang.php | 5 +----
application/language/thai/translations_lang.php | 5 +----
application/language/turkish/translations_lang.php | 5 +----
application/views/pages/providers.php | 2 +-
application/views/pages/services.php | 2 +-
35 files changed, 35 insertions(+), 122 deletions(-)
diff --git a/application/language/arabic/translations_lang.php b/application/language/arabic/translations_lang.php
index a0bd3a5e..50022e9e 100755
--- a/application/language/arabic/translations_lang.php
+++ b/application/language/arabic/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/bulgarian/translations_lang.php b/application/language/bulgarian/translations_lang.php
index c7098328..59b56e34 100755
--- a/application/language/bulgarian/translations_lang.php
+++ b/application/language/bulgarian/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/catalan/translations_lang.php b/application/language/catalan/translations_lang.php
index 2442f380..cbbad7b8 100644
--- a/application/language/catalan/translations_lang.php
+++ b/application/language/catalan/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/chinese/translations_lang.php b/application/language/chinese/translations_lang.php
index cd7bdcab..6c1cd6c7 100755
--- a/application/language/chinese/translations_lang.php
+++ b/application/language/chinese/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/croatian/translations_lang.php b/application/language/croatian/translations_lang.php
index 8e8765f1..d8d32e05 100644
--- a/application/language/croatian/translations_lang.php
+++ b/application/language/croatian/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/czech/translations_lang.php b/application/language/czech/translations_lang.php
index 6a9f18a0..8365924d 100644
--- a/application/language/czech/translations_lang.php
+++ b/application/language/czech/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/danish/translations_lang.php b/application/language/danish/translations_lang.php
index 97567b04..aff427ac 100755
--- a/application/language/danish/translations_lang.php
+++ b/application/language/danish/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/dutch/translations_lang.php b/application/language/dutch/translations_lang.php
index 2bb51780..b810e656 100755
--- a/application/language/dutch/translations_lang.php
+++ b/application/language/dutch/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/english/translations_lang.php b/application/language/english/translations_lang.php
index b92e1f59..b4bee64a 100755
--- a/application/language/english/translations_lang.php
+++ b/application/language/english/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/estonian/translations_lang.php b/application/language/estonian/translations_lang.php
index 756d6ed3..ad868c8d 100644
--- a/application/language/estonian/translations_lang.php
+++ b/application/language/estonian/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/finnish/translations_lang.php b/application/language/finnish/translations_lang.php
index d0602c22..0ddcae72 100755
--- a/application/language/finnish/translations_lang.php
+++ b/application/language/finnish/translations_lang.php
@@ -453,4 +453,5 @@ $lang['webhook_saved'] = 'Webhook tallennettu onnistuneesti.';
$lang['webhook_deleted'] = 'Webhook poistettu onnistuneesti.';
$lang['delete_webhook'] = 'Poista Webhook';
$lang['contact_info'] = 'Yhteystiedot';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/french/translations_lang.php b/application/language/french/translations_lang.php
index 71f39e3b..22f1feaf 100755
--- a/application/language/french/translations_lang.php
+++ b/application/language/french/translations_lang.php
@@ -453,4 +453,5 @@ $lang['webhook_saved'] = 'Webhook enregistré avec succès.';
$lang['webhook_deleted'] = 'Webhook supprimé avec succès.';
$lang['delete_webhook'] = 'Supprimer le webhook';
$lang['contact_info'] = 'Coordonnées';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/german/translations_lang.php b/application/language/german/translations_lang.php
index 58fa0fc0..46d56526 100755
--- a/application/language/german/translations_lang.php
+++ b/application/language/german/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/greek/translations_lang.php b/application/language/greek/translations_lang.php
index 097ca11c..eb6b242d 100755
--- a/application/language/greek/translations_lang.php
+++ b/application/language/greek/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/hebrew/translations_lang.php b/application/language/hebrew/translations_lang.php
index e06cd11f..1ee34cc5 100644
--- a/application/language/hebrew/translations_lang.php
+++ b/application/language/hebrew/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/hindi/translations_lang.php b/application/language/hindi/translations_lang.php
index ceb03e45..477c7a1a 100755
--- a/application/language/hindi/translations_lang.php
+++ b/application/language/hindi/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/hungarian/translations_lang.php b/application/language/hungarian/translations_lang.php
index 33b21d4f..5de61b87 100755
--- a/application/language/hungarian/translations_lang.php
+++ b/application/language/hungarian/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/italian/translations_lang.php b/application/language/italian/translations_lang.php
index 3e259d2c..4ca0ebf7 100755
--- a/application/language/italian/translations_lang.php
+++ b/application/language/italian/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/japanese/translations_lang.php b/application/language/japanese/translations_lang.php
index 6bde7eb8..2c50ae13 100755
--- a/application/language/japanese/translations_lang.php
+++ b/application/language/japanese/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/luxembourgish/translations_lang.php b/application/language/luxembourgish/translations_lang.php
index e9ba5007..7b129db5 100755
--- a/application/language/luxembourgish/translations_lang.php
+++ b/application/language/luxembourgish/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/marathi/translations_lang.php b/application/language/marathi/translations_lang.php
index b78050b0..bcde8c4a 100644
--- a/application/language/marathi/translations_lang.php
+++ b/application/language/marathi/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/persian/translations_lang.php b/application/language/persian/translations_lang.php
index c9dd3b51..5adf9fa9 100644
--- a/application/language/persian/translations_lang.php
+++ b/application/language/persian/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/polish/translations_lang.php b/application/language/polish/translations_lang.php
index a17a1762..5832fdaa 100755
--- a/application/language/polish/translations_lang.php
+++ b/application/language/polish/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/portuguese-br/translations_lang.php b/application/language/portuguese-br/translations_lang.php
index 3097a7c5..b493d538 100755
--- a/application/language/portuguese-br/translations_lang.php
+++ b/application/language/portuguese-br/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/portuguese/translations_lang.php b/application/language/portuguese/translations_lang.php
index de80b7cf..e6743030 100755
--- a/application/language/portuguese/translations_lang.php
+++ b/application/language/portuguese/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/romanian/translations_lang.php b/application/language/romanian/translations_lang.php
index a56f3c67..07f7a210 100755
--- a/application/language/romanian/translations_lang.php
+++ b/application/language/romanian/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/russian/translations_lang.php b/application/language/russian/translations_lang.php
index aa53efc1..640819d1 100644
--- a/application/language/russian/translations_lang.php
+++ b/application/language/russian/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/serbian/translations_lang.php b/application/language/serbian/translations_lang.php
index 4fc84d83..3491e149 100644
--- a/application/language/serbian/translations_lang.php
+++ b/application/language/serbian/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/slovak/translations_lang.php b/application/language/slovak/translations_lang.php
index 3c155bf3..1a833008 100755
--- a/application/language/slovak/translations_lang.php
+++ b/application/language/slovak/translations_lang.php
@@ -453,4 +453,5 @@ $lang['webhook_saved'] = 'Webhook bol úspešne uložený.';
$lang['webhook_deleted'] = 'Webhook bol úspešne odstránený.';
$lang['delete_webhook'] = 'Odstrániť webhook';
$lang['contact_info'] = 'Kontaktné informácie';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/spanish/translations_lang.php b/application/language/spanish/translations_lang.php
index ca4a4912..e11229d3 100755
--- a/application/language/spanish/translations_lang.php
+++ b/application/language/spanish/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/swedish/translations_lang.php b/application/language/swedish/translations_lang.php
index 44ae8b45..4171dad0 100644
--- a/application/language/swedish/translations_lang.php
+++ b/application/language/swedish/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/thai/translations_lang.php b/application/language/thai/translations_lang.php
index 55894c5b..67ad0841 100644
--- a/application/language/thai/translations_lang.php
+++ b/application/language/thai/translations_lang.php
@@ -454,8 +454,5 @@ $lang['sync_method_prompt'] = 'คุณต้องการใช้วิธ
$lang['caldav_server'] = 'เซิร์ฟเวอร์ CalDAV';
$lang['caldav_connection_info_prompt'] = 'โปรดป้อนข้อมูลการเชื่อมต่อของเซิร์ฟเวอร์ CalDAV เป้าหมาย';
$lang['connect'] = 'เชื่อมต่อ';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/language/turkish/translations_lang.php b/application/language/turkish/translations_lang.php
index a66d7c80..b976f435 100755
--- a/application/language/turkish/translations_lang.php
+++ b/application/language/turkish/translations_lang.php
@@ -453,8 +453,5 @@ $lang['webhook_saved'] = 'Webhook saved successfully.';
$lang['webhook_deleted'] = 'Webhook deleted successfully.';
$lang['delete_webhook'] = 'Delete Webhook';
$lang['contact_info'] = 'Contact Info';
-$lang['default_timezone'] = 'Default Timezone';
-$lang['default_timezone_hint'] = 'This will be the Default Timezome for new Users, new Customers and new Appointments';
-$lang['default_language'] = 'Default Language';
-$lang['default_language_hint'] = 'This will be the Default Language for new Users and new Customers';
+$lang['hide_from_public'] = 'Hide From Public';
// End
diff --git a/application/views/pages/providers.php b/application/views/pages/providers.php
index 3bee14a6..2aa21cc1 100755
--- a/application/views/pages/providers.php
+++ b/application/views/pages/providers.php
@@ -240,7 +240,7 @@
diff --git a/application/views/pages/services.php b/application/views/pages/services.php
index d5625042..2799e268 100755
--- a/application/views/pages/services.php
+++ b/application/views/pages/services.php
@@ -150,7 +150,7 @@
From cde5801059bc7c9eeb6bbbbcb26052560eb5bdb1 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Sat, 11 May 2024 18:02:42 +0200
Subject: [PATCH 56/72] GitHub Actions with PHP 8.2
---
.github/workflows/ci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 3b723b7d..c330f722 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -12,7 +12,7 @@ jobs:
- name: Install dependencies
uses: php-actions/composer@v6
with:
- php_version: 8.1
+ php_version: 8.2
php_extensions: gd
version: 2
- name: PHPUnit Tests
From 6213471e36b47526f5f22229ef45ef6b45a76f46 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Sat, 11 May 2024 18:41:30 +0200
Subject: [PATCH 57/72] Restructure the links of the about page and add
customize link
---
application/views/pages/about.php | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/application/views/pages/about.php b/application/views/pages/about.php
index 322a2384..ac785082 100755
--- a/application/views/pages/about.php
+++ b/application/views/pages/about.php
@@ -40,44 +40,51 @@
Welcome to the Easy!Appointments installation page.
-
+
This page will help you set the main settings of your Easy!Appointments installation. You will be able to
edit these settings and many more in the backend session of your system. Remember to use the
= site_url('user/login') ?> URL to connect to the backend section
@@ -36,68 +36,115 @@
submit new issues on
GitHub Issues
in order to help our development process.
-
+
-
Administrator
+
Administrator
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
-
Company
+
= lang('company') ?>
-
-
+
+
+
+
+ = lang('company_name_hint') ?>
+
+
-
-
+
+
+
+
+ = lang('company_email_hint') ?>
+
+
-
-
+
+
+
+
+ = lang('company_link_hint') ?>
+
+
+
From a04c0cafdf3d605fd28bfbab56b2c6f53f988261 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Tue, 30 Apr 2024 14:25:25 +0200
Subject: [PATCH 62/72] Fix install alert msg not showed, pw confirm id + js
errors lang
js #retype-password to #password-confirm
---
application/views/pages/installation.php | 2 +-
assets/js/pages/installation.js | 18 +++++++++---------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/application/views/pages/installation.php b/application/views/pages/installation.php
index a1529d69..0a7f9e49 100755
--- a/application/views/pages/installation.php
+++ b/application/views/pages/installation.php
@@ -39,7 +39,7 @@
-
+
diff --git a/assets/js/pages/installation.js b/assets/js/pages/installation.js
index 34708551..28ba50af 100644
--- a/assets/js/pages/installation.js
+++ b/assets/js/pages/installation.js
@@ -25,7 +25,7 @@ App.Pages.Installation = (function () {
const $phoneNumber = $('#phone-number');
const $username = $('#username');
const $password = $('#password');
- const $retypePassword = $('#retype-password');
+ const $passwordConfirm = $('#password-confirm');
const $companyName = $('#company-name');
const $companyEmail = $('#company-email');
const $companyLink = $('#company-link');
@@ -97,31 +97,31 @@ App.Pages.Installation = (function () {
});
if (missingRequired) {
- throw new Error('All the page fields are required.');
+ throw new Error(lang('fields_are_required'));
}
// Validate Passwords
- if ($password.val() !== $retypePassword.val()) {
+ if ($password.val() !== $passwordConfirm.val()) {
$password.addClass('is-invalid');
- $retypePassword.addClass('is-invalid');
- throw new Error('Passwords do not match!');
+ $passwordConfirm.addClass('is-invalid');
+ throw new Error(lang('passwords_mismatch'));
}
if ($password.val().length < MIN_PASSWORD_LENGTH) {
$password.addClass('is-invalid');
- $retypePassword.addClass('is-invalid');
- throw new Error(`The password must be at least ${MIN_PASSWORD_LENGTH} characters long.`);
+ $passwordConfirm.addClass('is-invalid');
+ throw new Error(lang('password_length_notice').replace('$number', MIN_PASSWORD_LENGTH));
}
// Validate Email
if (!App.Utils.Validation.email($email.val())) {
$email.addClass('is-invalid');
- throw new Error('The email address is invalid!');
+ throw new Error(lang('invalid_email'));
}
if (!App.Utils.Validation.email($companyEmail.val())) {
$companyEmail.addClass('is-invalid');
- throw new Error('The email address is invalid!');
+ throw new Error(lang('invalid_email'));
}
return true;
From 80ada71558075dfa1d18b1fd256f9fec58d00517 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Tue, 30 Apr 2024 17:21:20 +0200
Subject: [PATCH 63/72] Install: Admin Add Language selector + set timezone by
server
---
application/controllers/Installation.php | 3 ++-
application/views/pages/installation.php | 15 +++++++++++++++
assets/js/pages/installation.js | 2 ++
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/application/controllers/Installation.php b/application/controllers/Installation.php
index 3cb571c9..cb2f6624 100644
--- a/application/controllers/Installation.php
+++ b/application/controllers/Installation.php
@@ -67,7 +67,7 @@ class Installation extends EA_Controller
$this->instance->migrate();
// Insert admin
- $admin['timezone'] = 'UTC';
+ $admin['timezone'] = date_default_timezone_get();
$admin['settings']['username'] = $admin['username'];
$admin['settings']['password'] = $admin['password'];
$admin['settings']['notifications'] = true;
@@ -79,6 +79,7 @@ class Installation extends EA_Controller
'user_id' => $admin['id'],
'user_email' => $admin['email'],
'role_slug' => DB_SLUG_ADMIN,
+ 'language' => $admin['language'],
'timezone' => $admin['timezone'],
'username' => $admin['settings']['username'],
]);
diff --git a/application/views/pages/installation.php b/application/views/pages/installation.php
index 0a7f9e49..08265f07 100755
--- a/application/views/pages/installation.php
+++ b/application/views/pages/installation.php
@@ -101,6 +101,21 @@
+
+
+
+
+
diff --git a/assets/js/pages/installation.js b/assets/js/pages/installation.js
index 28ba50af..6a4f2f83 100644
--- a/assets/js/pages/installation.js
+++ b/assets/js/pages/installation.js
@@ -26,6 +26,7 @@ App.Pages.Installation = (function () {
const $username = $('#username');
const $password = $('#password');
const $passwordConfirm = $('#password-confirm');
+ const $language = $('#language');
const $companyName = $('#company-name');
const $companyEmail = $('#company-email');
const $companyLink = $('#company-link');
@@ -145,6 +146,7 @@ App.Pages.Installation = (function () {
phone_number: $phoneNumber.val(),
username: $username.val(),
password: $password.val(),
+ language: $language.val(),
};
}
From 2e9bcacbfc9d5bf21b4fca755c158e72d733feb9 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Tue, 30 Apr 2024 20:49:27 +0200
Subject: [PATCH 64/72] Install: html lang + language & timezone provider same
as admin
---
application/controllers/Installation.php | 2 ++
application/views/pages/installation.php | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/application/controllers/Installation.php b/application/controllers/Installation.php
index cb2f6624..bc4e43c7 100644
--- a/application/controllers/Installation.php
+++ b/application/controllers/Installation.php
@@ -108,6 +108,8 @@ class Installation extends EA_Controller
'email' => 'jane@example.org',
'phone_number' => '+1 (000) 000-0000',
'services' => [$service_id],
+ 'language' => $admin['language'],
+ 'timezone' => $admin['timezone'],
'settings' => [
'username' => 'janedoe',
'password' => random_string(),
diff --git a/application/views/pages/installation.php b/application/views/pages/installation.php
index 08265f07..0ccb71ec 100755
--- a/application/views/pages/installation.php
+++ b/application/views/pages/installation.php
@@ -1,5 +1,5 @@
-
+
From 1788f209eb50f8b4efd85af63f51814e0b0358ad Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Tue, 30 Apr 2024 02:03:27 +0200
Subject: [PATCH 65/72] Fix App lib Timezones::get_default_timezone() always
UTC
If none of the above succeed,
will return a default timezone of UTC.
https://www.php.net/manual/en/function.date-default-timezone-get.php
---
application/libraries/Timezones.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/libraries/Timezones.php b/application/libraries/Timezones.php
index 05b2e55a..e46b99e9 100644
--- a/application/libraries/Timezones.php
+++ b/application/libraries/Timezones.php
@@ -530,7 +530,7 @@ class Timezones
*/
public function get_default_timezone(): string
{
- return 'UTC';
+ return date_default_timezone_get();
}
/**
From 97d9219484247bd251821ff21a44dfba6cbda2d1 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Tue, 30 Apr 2024 01:44:20 +0200
Subject: [PATCH 66/72] Fix CodeIgniter creating a lot of session files
Fix When login CI call sess_regenerate() but do not apply
config 'sess_regenerate_destroy' & always create new file
After this, a session folder have one file by user logged
and clean old session files in storage/sessions folder
To test : in application/config.php
`$config['sess_time_to_update'] = 3;`
see
https://bobcares.com/blog/codeigniter-generating-too-many-sessions-files-resolved
---
application/config/config.php | 2 +-
system/libraries/Session/Session.php | 7 ++++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/application/config/config.php b/application/config/config.php
index 4ca2c802..adefd2fc 100644
--- a/application/config/config.php
+++ b/application/config/config.php
@@ -353,7 +353,7 @@ $config['sess_expiration'] = 7200;
$config['sess_save_path'] = __DIR__ . '/../../storage/sessions';
$config['sess_match_ip'] = false;
$config['sess_time_to_update'] = 300;
-$config['sess_regenerate_destroy'] = false;
+$config['sess_regenerate_destroy'] = true;
/*
|--------------------------------------------------------------------------
diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php
index 19a63223..24255020 100644
--- a/system/libraries/Session/Session.php
+++ b/system/libraries/Session/Session.php
@@ -124,7 +124,7 @@ class CI_Session {
unset($_COOKIE[$this->_config['cookie_name']]);
}
- @session_start();
+ session_start();
// Is session ID auto-regeneration configured? (ignoring ajax requests)
if ((empty($_SERVER['HTTP_X_REQUESTED_WITH']) OR strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest')
@@ -137,7 +137,7 @@ class CI_Session {
}
elseif ($_SESSION['__ci_last_regenerate'] < (time() - $regenerate_time))
{
- $this->sess_regenerate((bool) config_item('sess_regenerate_destroy'));
+ $this->sess_regenerate();
}
}
// Another work-around ... PHP doesn't seem to send the session cookie
@@ -691,8 +691,9 @@ class CI_Session {
* @param bool $destroy Destroy old session data flag
* @return void
*/
- public function sess_regenerate($destroy = FALSE)
+ public function sess_regenerate($destroy = null)
{
+ $destroy = (bool) $destroy !== null ? $destroy : config_item('sess_regenerate_destroy');
$_SESSION['__ci_last_regenerate'] = time();
session_regenerate_id($destroy);
}
From 40cab55a029e19c873a02e922480feb6a0b32057 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Tue, 30 Apr 2024 15:52:34 +0200
Subject: [PATCH 67/72] Fix session::sess_regenerate $delete_old_session always
null
Fix bad transtyped bool
throw error on login
session_regenerate_id(): Passing null to parameter #1
($delete_old_session) of type bool is deprecated
---
system/libraries/Session/Session.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php
index 24255020..4ee7c2a9 100644
--- a/system/libraries/Session/Session.php
+++ b/system/libraries/Session/Session.php
@@ -693,7 +693,7 @@ class CI_Session {
*/
public function sess_regenerate($destroy = null)
{
- $destroy = (bool) $destroy !== null ? $destroy : config_item('sess_regenerate_destroy');
+ $destroy = boolval($destroy !== null ? $destroy : config_item('sess_regenerate_destroy'));
$_SESSION['__ci_last_regenerate'] = time();
session_regenerate_id($destroy);
}
From ea4be0162eee04a01e305323cf0cc3381c42d9d7 Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Mon, 29 Apr 2024 23:45:29 +0200
Subject: [PATCH 68/72] Fix refresh Appointments MONTH calendarView :
current2active
Fix undisplayed appointments if not in this current month
and if moved by D&D on prev/next month days view (displace OK),
but after auto refresh, appointment disapear in view...
After little fear, it exist in db :)
Need to choose prev/next month (where is moved) to see it.
see https://fullcalendar.io/docs/view-object
---
assets/js/utils/calendar_default_view.js | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/assets/js/utils/calendar_default_view.js b/assets/js/utils/calendar_default_view.js
index a02cc737..2758af96 100755
--- a/assets/js/utils/calendar_default_view.js
+++ b/assets/js/utils/calendar_default_view.js
@@ -56,8 +56,8 @@ App.Utils.CalendarDefaultView = (function () {
$calendar,
$selectFilterItem.val(),
$selectFilterItem.find('option:selected').attr('type'),
- calendarView.currentStart,
- calendarView.currentEnd,
+ calendarView.activeStart,
+ calendarView.activeEnd,
);
});
@@ -1153,8 +1153,8 @@ App.Utils.CalendarDefaultView = (function () {
$calendar,
$selectFilterItem.val(),
$('#select-filter-item option:selected').attr('type'),
- fullCalendar.view.currentStart,
- fullCalendar.view.currentEnd,
+ fullCalendar.view.activeStart,
+ fullCalendar.view.activeEnd,
);
$(window).trigger('resize'); // Places the footer on the bottom.
@@ -1641,8 +1641,8 @@ App.Utils.CalendarDefaultView = (function () {
$calendar,
$selectFilterItem.val(),
$selectFilterItem.find('option:selected').attr('type'),
- fullCalendar.view.currentStart,
- fullCalendar.view.currentEnd,
+ fullCalendar.view.activeStart,
+ fullCalendar.view.activeEnd,
);
}, 60000);
}
From 505abd043002f6caf78e261ea72fcdec8cfe0ffe Mon Sep 17 00:00:00 2001
From: Thomas Ingles
Date: Mon, 29 Apr 2024 23:06:42 +0200
Subject: [PATCH 69/72] Add missing lang() : Calendar view (default|table)
selectors
views/pages/(account|admins|providers|secretaries).php
---
application/views/pages/account.php | 4 ++--
application/views/pages/admins.php | 4 ++--
application/views/pages/providers.php | 4 ++--
application/views/pages/secretaries.php | 4 ++--
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/application/views/pages/account.php b/application/views/pages/account.php
index 4639aa6e..5f1888c8 100644
--- a/application/views/pages/account.php
+++ b/application/views/pages/account.php
@@ -130,8 +130,8 @@
*
diff --git a/application/views/pages/secretaries.php b/application/views/pages/secretaries.php
index 83dd21df..f5c2050f 100755
--- a/application/views/pages/secretaries.php
+++ b/application/views/pages/secretaries.php
@@ -177,8 +177,8 @@
*
From ffde07a483f9c3fd53cb18ba684926e62e4c4aa2 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Sat, 11 May 2024 19:19:52 +0200
Subject: [PATCH 70/72] Suppress session start warning
---
system/libraries/Session/Session.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php
index 4ee7c2a9..587e366c 100644
--- a/system/libraries/Session/Session.php
+++ b/system/libraries/Session/Session.php
@@ -124,7 +124,7 @@ class CI_Session {
unset($_COOKIE[$this->_config['cookie_name']]);
}
- session_start();
+ @session_start();
// Is session ID auto-regeneration configured? (ignoring ajax requests)
if ((empty($_SERVER['HTTP_X_REQUESTED_WITH']) OR strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest')
From 9ad660836b4d8635d040a790a19f4718efdbfc04 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Sat, 11 May 2024 19:33:45 +0200
Subject: [PATCH 71/72] Update translations for new timezone and language
settings
---
application/language/arabic/translations_lang.php | 4 ++++
application/language/bulgarian/translations_lang.php | 4 ++++
application/language/catalan/translations_lang.php | 4 ++++
application/language/chinese/translations_lang.php | 4 ++++
application/language/croatian/translations_lang.php | 4 ++++
application/language/czech/translations_lang.php | 4 ++++
application/language/danish/translations_lang.php | 4 ++++
application/language/dutch/translations_lang.php | 4 ++++
application/language/english/translations_lang.php | 4 ++++
application/language/estonian/translations_lang.php | 4 ++++
application/language/finnish/translations_lang.php | 4 ++++
application/language/french/translations_lang.php | 4 ++++
application/language/german/translations_lang.php | 4 ++++
application/language/greek/translations_lang.php | 4 ++++
application/language/hebrew/translations_lang.php | 4 ++++
application/language/hindi/translations_lang.php | 4 ++++
application/language/hungarian/translations_lang.php | 4 ++++
application/language/italian/translations_lang.php | 4 ++++
application/language/japanese/translations_lang.php | 4 ++++
application/language/luxembourgish/translations_lang.php | 4 ++++
application/language/marathi/translations_lang.php | 4 ++++
application/language/persian/translations_lang.php | 4 ++++
application/language/polish/translations_lang.php | 4 ++++
application/language/portuguese-br/translations_lang.php | 4 ++++
application/language/portuguese/translations_lang.php | 4 ++++
application/language/romanian/translations_lang.php | 4 ++++
application/language/russian/translations_lang.php | 4 ++++
application/language/serbian/translations_lang.php | 4 ++++
application/language/slovak/translations_lang.php | 4 ++++
application/language/spanish/translations_lang.php | 4 ++++
application/language/swedish/translations_lang.php | 4 ++++
application/language/thai/translations_lang.php | 4 ++++
application/language/turkish/translations_lang.php | 4 ++++
33 files changed, 132 insertions(+)
diff --git a/application/language/arabic/translations_lang.php b/application/language/arabic/translations_lang.php
index 13c20502..749eeda2 100755
--- a/application/language/arabic/translations_lang.php
+++ b/application/language/arabic/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/bulgarian/translations_lang.php b/application/language/bulgarian/translations_lang.php
index 80f591db..db6e4fb4 100755
--- a/application/language/bulgarian/translations_lang.php
+++ b/application/language/bulgarian/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/catalan/translations_lang.php b/application/language/catalan/translations_lang.php
index 80e6af36..839648eb 100644
--- a/application/language/catalan/translations_lang.php
+++ b/application/language/catalan/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/chinese/translations_lang.php b/application/language/chinese/translations_lang.php
index 4ef22ac8..84fe6aa4 100755
--- a/application/language/chinese/translations_lang.php
+++ b/application/language/chinese/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/croatian/translations_lang.php b/application/language/croatian/translations_lang.php
index 497fd887..4d2a519f 100644
--- a/application/language/croatian/translations_lang.php
+++ b/application/language/croatian/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/czech/translations_lang.php b/application/language/czech/translations_lang.php
index a2a3431b..670e6f7f 100644
--- a/application/language/czech/translations_lang.php
+++ b/application/language/czech/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/danish/translations_lang.php b/application/language/danish/translations_lang.php
index 07a1f748..ebf52a5c 100755
--- a/application/language/danish/translations_lang.php
+++ b/application/language/danish/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/dutch/translations_lang.php b/application/language/dutch/translations_lang.php
index a0f95ad8..8abb59b9 100755
--- a/application/language/dutch/translations_lang.php
+++ b/application/language/dutch/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/english/translations_lang.php b/application/language/english/translations_lang.php
index cc542de6..0e84e0d0 100755
--- a/application/language/english/translations_lang.php
+++ b/application/language/english/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/estonian/translations_lang.php b/application/language/estonian/translations_lang.php
index 67e825d5..f3b01646 100644
--- a/application/language/estonian/translations_lang.php
+++ b/application/language/estonian/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/finnish/translations_lang.php b/application/language/finnish/translations_lang.php
index 95fe24be..e69534eb 100755
--- a/application/language/finnish/translations_lang.php
+++ b/application/language/finnish/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Yhteystiedot';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/french/translations_lang.php b/application/language/french/translations_lang.php
index ba717a10..5549acd0 100755
--- a/application/language/french/translations_lang.php
+++ b/application/language/french/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Coordonnées';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/german/translations_lang.php b/application/language/german/translations_lang.php
index 71324023..76f01fa1 100755
--- a/application/language/german/translations_lang.php
+++ b/application/language/german/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/greek/translations_lang.php b/application/language/greek/translations_lang.php
index 6a1041a3..00a8f0a3 100755
--- a/application/language/greek/translations_lang.php
+++ b/application/language/greek/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/hebrew/translations_lang.php b/application/language/hebrew/translations_lang.php
index 701e042b..64a22fcb 100644
--- a/application/language/hebrew/translations_lang.php
+++ b/application/language/hebrew/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/hindi/translations_lang.php b/application/language/hindi/translations_lang.php
index 1956aa1d..68588f89 100755
--- a/application/language/hindi/translations_lang.php
+++ b/application/language/hindi/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/hungarian/translations_lang.php b/application/language/hungarian/translations_lang.php
index 4be0a400..f5d8269c 100755
--- a/application/language/hungarian/translations_lang.php
+++ b/application/language/hungarian/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/italian/translations_lang.php b/application/language/italian/translations_lang.php
index 5efc4f3b..abada81e 100755
--- a/application/language/italian/translations_lang.php
+++ b/application/language/italian/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/japanese/translations_lang.php b/application/language/japanese/translations_lang.php
index 1a0caea0..b50d5119 100755
--- a/application/language/japanese/translations_lang.php
+++ b/application/language/japanese/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/luxembourgish/translations_lang.php b/application/language/luxembourgish/translations_lang.php
index 4393f8eb..5fcce889 100755
--- a/application/language/luxembourgish/translations_lang.php
+++ b/application/language/luxembourgish/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/marathi/translations_lang.php b/application/language/marathi/translations_lang.php
index 469cafb2..7df6c13d 100644
--- a/application/language/marathi/translations_lang.php
+++ b/application/language/marathi/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/persian/translations_lang.php b/application/language/persian/translations_lang.php
index 4596a68c..ee6c36ff 100644
--- a/application/language/persian/translations_lang.php
+++ b/application/language/persian/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/polish/translations_lang.php b/application/language/polish/translations_lang.php
index 0a11a196..db7a8042 100755
--- a/application/language/polish/translations_lang.php
+++ b/application/language/polish/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/portuguese-br/translations_lang.php b/application/language/portuguese-br/translations_lang.php
index 011b92bb..1ba9c5c7 100755
--- a/application/language/portuguese-br/translations_lang.php
+++ b/application/language/portuguese-br/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/portuguese/translations_lang.php b/application/language/portuguese/translations_lang.php
index 13c30ea6..c86b612d 100755
--- a/application/language/portuguese/translations_lang.php
+++ b/application/language/portuguese/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/romanian/translations_lang.php b/application/language/romanian/translations_lang.php
index 87de9421..a4143b3c 100755
--- a/application/language/romanian/translations_lang.php
+++ b/application/language/romanian/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/russian/translations_lang.php b/application/language/russian/translations_lang.php
index 0bba063e..a66bc54c 100644
--- a/application/language/russian/translations_lang.php
+++ b/application/language/russian/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/serbian/translations_lang.php b/application/language/serbian/translations_lang.php
index eef11550..2448f706 100644
--- a/application/language/serbian/translations_lang.php
+++ b/application/language/serbian/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/slovak/translations_lang.php b/application/language/slovak/translations_lang.php
index e9386089..bcc7e700 100755
--- a/application/language/slovak/translations_lang.php
+++ b/application/language/slovak/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Kontaktné informácie';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/spanish/translations_lang.php b/application/language/spanish/translations_lang.php
index d2d5c584..fd893f61 100755
--- a/application/language/spanish/translations_lang.php
+++ b/application/language/spanish/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/swedish/translations_lang.php b/application/language/swedish/translations_lang.php
index 1562f011..0272eda3 100644
--- a/application/language/swedish/translations_lang.php
+++ b/application/language/swedish/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/thai/translations_lang.php b/application/language/thai/translations_lang.php
index bbe0cc57..a8bd5efd 100644
--- a/application/language/thai/translations_lang.php
+++ b/application/language/thai/translations_lang.php
@@ -457,4 +457,8 @@ $lang['connect'] = 'เชื่อมต่อ';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
diff --git a/application/language/turkish/translations_lang.php b/application/language/turkish/translations_lang.php
index 18f84dba..6702a6f5 100755
--- a/application/language/turkish/translations_lang.php
+++ b/application/language/turkish/translations_lang.php
@@ -456,4 +456,8 @@ $lang['contact_info'] = 'Contact Info';
$lang['hide_from_public'] = 'Hide From Public';
$lang['matomo_analytics_site_id'] = 'Matomo Analytics Site ID';
$lang['matomo_analytics_site_id_hint'] = 'Set the site ID that will be tracked by Matomo (the default site has the ID "1").';
+$lang['default_timezone'] = 'Default Timezone';
+$lang['default_timezone_hint'] = 'Set the default timezone value that will be used for new records.';
+$lang['default_language'] = 'Default Language';
+$lang['default_language_hint'] = 'Set the default language value that will be used for new records.';
// End
From 4cf7c1e3495197847597b938b63ebee7550dcdc2 Mon Sep 17 00:00:00 2001
From: Alex Tselegidis
Date: Sat, 11 May 2024 19:33:51 +0200
Subject: [PATCH 72/72] Rename the migration classes
---
...guage_to_settings.php => 053_add_default_language_setting.php} | 0
...mezone_to_setting.php => 054_add_default_timezone_setting.php} | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename application/migrations/{053_add_default_language_to_settings.php => 053_add_default_language_setting.php} (100%)
rename application/migrations/{054_add_default_timezone_to_setting.php => 054_add_default_timezone_setting.php} (100%)
diff --git a/application/migrations/053_add_default_language_to_settings.php b/application/migrations/053_add_default_language_setting.php
similarity index 100%
rename from application/migrations/053_add_default_language_to_settings.php
rename to application/migrations/053_add_default_language_setting.php
diff --git a/application/migrations/054_add_default_timezone_to_setting.php b/application/migrations/054_add_default_timezone_setting.php
similarity index 100%
rename from application/migrations/054_add_default_timezone_to_setting.php
rename to application/migrations/054_add_default_timezone_setting.php