mirror of
https://github.com/alextselegidis/easyappointments.git
synced 2024-11-08 17:12:25 +03:00
Merge branch 'popod-book-advance-timeout-improvements' into develop
This commit is contained in:
commit
8c2058d70f
8 changed files with 48 additions and 7 deletions
|
@ -97,6 +97,7 @@ class Appointments extends CI_Controller {
|
||||||
$available_services = $this->services_model->get_available_services();
|
$available_services = $this->services_model->get_available_services();
|
||||||
$available_providers = $this->providers_model->get_available_providers();
|
$available_providers = $this->providers_model->get_available_providers();
|
||||||
$company_name = $this->settings_model->get_setting('company_name');
|
$company_name = $this->settings_model->get_setting('company_name');
|
||||||
|
$book_advance_timeout = $this->settings_model->get_setting('book_advance_timeout');
|
||||||
$date_format = $this->settings_model->get_setting('date_format');
|
$date_format = $this->settings_model->get_setting('date_format');
|
||||||
$time_format = $this->settings_model->get_setting('time_format');
|
$time_format = $this->settings_model->get_setting('time_format');
|
||||||
$first_weekday = $this->settings_model->get_setting('first_weekday');
|
$first_weekday = $this->settings_model->get_setting('first_weekday');
|
||||||
|
@ -146,6 +147,27 @@ class Appointments extends CI_Controller {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the requested apppointment begin date is lower than book_advance_timeout. Display
|
||||||
|
// a message to the customer.
|
||||||
|
$startDate = strtotime($results[0]['start_datetime']);
|
||||||
|
$limit = strtotime('+' . $book_advance_timeout . ' minutes', strtotime('now'));
|
||||||
|
|
||||||
|
if ($startDate < $limit)
|
||||||
|
{
|
||||||
|
$hours = floor($book_advance_timeout / 60);
|
||||||
|
$minutes = ($book_advance_timeout % 60);
|
||||||
|
|
||||||
|
$view = [
|
||||||
|
'message_title' => $this->lang->line('appointment_locked'),
|
||||||
|
'message_text' => strtr($this->lang->line('appointment_locked_message'), [
|
||||||
|
'{$limit}' => sprintf('%02d:%02d', $hours, $minutes)
|
||||||
|
]),
|
||||||
|
'message_icon' => base_url('assets/img/error.png')
|
||||||
|
];
|
||||||
|
$this->load->view('appointments/message', $view);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$appointment = $results[0];
|
$appointment = $results[0];
|
||||||
$provider = $this->providers_model->get_row($appointment['id_users_provider']);
|
$provider = $this->providers_model->get_row($appointment['id_users_provider']);
|
||||||
$customer = $this->customers_model->get_row($appointment['id_users_customer']);
|
$customer = $this->customers_model->get_row($appointment['id_users_customer']);
|
||||||
|
|
|
@ -99,7 +99,6 @@ class Backend extends CI_Controller {
|
||||||
$view['base_url'] = $this->config->item('base_url');
|
$view['base_url'] = $this->config->item('base_url');
|
||||||
$view['user_display_name'] = $this->user_model->get_user_display_name($this->session->userdata('user_id'));
|
$view['user_display_name'] = $this->user_model->get_user_display_name($this->session->userdata('user_id'));
|
||||||
$view['active_menu'] = PRIV_APPOINTMENTS;
|
$view['active_menu'] = PRIV_APPOINTMENTS;
|
||||||
$view['book_advance_timeout'] = $this->settings_model->get_setting('book_advance_timeout');
|
|
||||||
$view['date_format'] = $this->settings_model->get_setting('date_format');
|
$view['date_format'] = $this->settings_model->get_setting('date_format');
|
||||||
$view['time_format'] = $this->settings_model->get_setting('time_format');
|
$view['time_format'] = $this->settings_model->get_setting('time_format');
|
||||||
$view['first_weekday'] = $this->settings_model->get_setting('first_weekday');
|
$view['first_weekday'] = $this->settings_model->get_setting('first_weekday');
|
||||||
|
@ -375,6 +374,13 @@ class Backend extends CI_Controller {
|
||||||
$view['system_settings'] = $this->settings_model->get_settings();
|
$view['system_settings'] = $this->settings_model->get_settings();
|
||||||
$view['user_settings'] = $this->user_model->get_user($user_id);
|
$view['user_settings'] = $this->user_model->get_user($user_id);
|
||||||
$view['timezones'] = $this->timezones->to_array();
|
$view['timezones'] = $this->timezones->to_array();
|
||||||
|
|
||||||
|
// book_advance_timeout preview
|
||||||
|
$book_advance_timeout = $this->settings_model->get_setting('book_advance_timeout');
|
||||||
|
$hours = floor($book_advance_timeout / 60);
|
||||||
|
$minutes = $book_advance_timeout % 60;
|
||||||
|
$view['book_advance_timeout_preview'] = sprintf('%02d:%02d', $hours, $minutes);
|
||||||
|
|
||||||
$this->set_user_data($view);
|
$this->set_user_data($view);
|
||||||
|
|
||||||
$this->load->view('backend/header', $view);
|
$this->load->view('backend/header', $view);
|
||||||
|
|
|
@ -53,6 +53,8 @@ $lang['appointment_added_to_google_calendar'] = 'Your appointment has been added
|
||||||
$lang['view_appointment_in_google_calendar'] = 'Click here to view your appointment on Google Calendar.';
|
$lang['view_appointment_in_google_calendar'] = 'Click here to view your appointment on Google Calendar.';
|
||||||
$lang['appointment_added_to_your_plan'] = 'A new appointment has been added to your plan.';
|
$lang['appointment_added_to_your_plan'] = 'A new appointment has been added to your plan.';
|
||||||
$lang['appointment_link_description'] = 'You can make changes by clicking the appointment link below.';
|
$lang['appointment_link_description'] = 'You can make changes by clicking the appointment link below.';
|
||||||
|
$lang['appointment_locked'] = 'Modification impossible!';
|
||||||
|
$lang['appointment_locked_message'] = 'The appointment cannot be changed less than {$limit} hours in advance.';
|
||||||
$lang['appointment_not_found'] = 'Appointment Not Found!';
|
$lang['appointment_not_found'] = 'Appointment Not Found!';
|
||||||
$lang['appointment_does_not_exist_in_db'] = 'The appointment you requested does not exist in the system database anymore.';
|
$lang['appointment_does_not_exist_in_db'] = 'The appointment you requested does not exist in the system database anymore.';
|
||||||
$lang['display_calendar'] = 'Display Calendar';
|
$lang['display_calendar'] = 'Display Calendar';
|
||||||
|
|
|
@ -52,6 +52,8 @@ $lang['appointment_added_to_google_calendar'] = 'Votre rendez-vous a été ajout
|
||||||
$lang['view_appointment_in_google_calendar'] = 'Cliquez ici pour voir votre rendez-vous dans le calendrier Google.';
|
$lang['view_appointment_in_google_calendar'] = 'Cliquez ici pour voir votre rendez-vous dans le calendrier Google.';
|
||||||
$lang['appointment_added_to_your_plan'] = 'Un nouveau rendez-vous a été ajouté à votre planning.';
|
$lang['appointment_added_to_your_plan'] = 'Un nouveau rendez-vous a été ajouté à votre planning.';
|
||||||
$lang['appointment_link_description'] = 'Vous pouvez faires des modifications en cliquant sur le lien suivant.';
|
$lang['appointment_link_description'] = 'Vous pouvez faires des modifications en cliquant sur le lien suivant.';
|
||||||
|
$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_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['display_calendar'] = 'Afficher le calendrier.';
|
||||||
|
@ -169,9 +171,9 @@ $lang['current_user'] = 'Utilisateur actuel';
|
||||||
$lang['about_app'] = 'Au sujet d\'Easy!Appointments';
|
$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_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['edit_breaks_hint'] = 'Indiquer ici les périodes des pauses quotidiennes. Ces pauses seront disponibles à chaque nouvel exécutant.';
|
||||||
$lang['book_advance_timeout'] = 'Temporisation avancée de l\'agenda';
|
$lang['book_advance_timeout'] = 'Paramètres de réservation';
|
||||||
$lang['book_advance_timeout_hint'] = 'Définir la temporisation (en minutes) avant que les clients ne puissent prendre ou modifier les rendez-vous avec la société.';
|
$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'] = 'Temporisation (Minutes)';
|
$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['current_version'] = 'Version actuelle';
|
||||||
$lang['support'] = 'Support';
|
$lang['support'] = 'Support';
|
||||||
|
|
|
@ -51,6 +51,8 @@ $lang['appointment_added_to_google_calendar'] = 'Ihr Termin ist zu Ihrem Google
|
||||||
$lang['view_appointment_in_google_calendar'] = 'Bitte klicken Sie hier, um Ihren Termin im Google Kalender zu sehen.';
|
$lang['view_appointment_in_google_calendar'] = 'Bitte klicken Sie hier, um Ihren Termin im Google Kalender zu sehen.';
|
||||||
$lang['appointment_added_to_your_plan'] = 'Ein neuer Termin ist zu Ihrer Planung hinzugefügt worden.';
|
$lang['appointment_added_to_your_plan'] = 'Ein neuer Termin ist zu Ihrer Planung hinzugefügt worden.';
|
||||||
$lang['appointment_link_description'] = 'Sie können Änderungen durch Klicken auf den Termin-Link durchführen.';
|
$lang['appointment_link_description'] = 'Sie können Änderungen durch Klicken auf den Termin-Link durchführen.';
|
||||||
|
$lang['appointment_locked'] = 'Änderungen unmöglich!';
|
||||||
|
$lang['appointment_locked_message'] = 'Der Termin kann nicht weniger als {$limit} Stunden im Voraus geändert werden.';
|
||||||
$lang['appointment_not_found'] = 'Termin nicht gefunden!';
|
$lang['appointment_not_found'] = 'Termin nicht gefunden!';
|
||||||
$lang['appointment_does_not_exist_in_db'] = 'Der von Ihnen angeforderte Termin existiert nicht in der Systemdatenbank.';
|
$lang['appointment_does_not_exist_in_db'] = 'Der von Ihnen angeforderte Termin existiert nicht in der Systemdatenbank.';
|
||||||
$lang['display_calendar'] = 'Kalender anzeigen';
|
$lang['display_calendar'] = 'Kalender anzeigen';
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
availableProviders: <?= json_encode($available_providers) ?>,
|
availableProviders: <?= json_encode($available_providers) ?>,
|
||||||
availableServices: <?= json_encode($available_services) ?>,
|
availableServices: <?= json_encode($available_services) ?>,
|
||||||
baseUrl: <?= json_encode($base_url) ?>,
|
baseUrl: <?= json_encode($base_url) ?>,
|
||||||
bookAdvanceTimeout: <?= $book_advance_timeout ?>,
|
|
||||||
dateFormat: <?= json_encode($date_format) ?>,
|
dateFormat: <?= json_encode($date_format) ?>,
|
||||||
timeFormat: <?= json_encode($time_format) ?>,
|
timeFormat: <?= json_encode($time_format) ?>,
|
||||||
firstWeekday: <?= json_encode($first_weekday) ?>,
|
firstWeekday: <?= json_encode($first_weekday) ?>,
|
||||||
|
|
|
@ -392,8 +392,8 @@ window.BackendCalendarAppointmentsModal = window.BackendCalendarAppointmentsModa
|
||||||
|
|
||||||
var duration = service ? service.duration : 0;
|
var duration = service ? service.duration : 0;
|
||||||
|
|
||||||
var startDatetime = new Date().addMinutes(GlobalVariables.bookAdvanceTimeout);
|
var startDatetime = new Date();
|
||||||
var endDatetime = new Date().addMinutes(GlobalVariables.bookAdvanceTimeout).addMinutes(duration);
|
var endDatetime = new Date().addMinutes(duration);
|
||||||
var dateFormat;
|
var dateFormat;
|
||||||
|
|
||||||
switch (GlobalVariables.dateFormat) {
|
switch (GlobalVariables.dateFormat) {
|
||||||
|
|
|
@ -44,6 +44,14 @@
|
||||||
// Update the logo title on the header.
|
// Update the logo title on the header.
|
||||||
$('#header-logo span').text($('#company-name').val());
|
$('#header-logo span').text($('#company-name').val());
|
||||||
|
|
||||||
|
// Update book_advance_timeout preview
|
||||||
|
var totalMinutes = $('#book-advance-timeout').val();
|
||||||
|
var hours = Math.floor(totalMinutes / 60);
|
||||||
|
var minutes = totalMinutes % 60;
|
||||||
|
$('#book-advance-timeout-helper').text(
|
||||||
|
EALang.book_advance_timeout_hint.replace('{$limit}', ('0' + hours).slice(-2) + ':' + ('0' + minutes).slice(-2))
|
||||||
|
);
|
||||||
|
|
||||||
// Update variables also used in other setting tabs
|
// Update variables also used in other setting tabs
|
||||||
GlobalVariables.timeFormat = $('#time-format').val();
|
GlobalVariables.timeFormat = $('#time-format').val();
|
||||||
GlobalVariables.firstWeekday = $('#first-weekday').val();
|
GlobalVariables.firstWeekday = $('#first-weekday').val();
|
||||||
|
|
Loading…
Reference in a new issue