Merge branch 'master' into develop

This commit is contained in:
Alex Tselegidis 2016-01-02 21:01:12 +01:00
commit f03e01bf64
61 changed files with 787 additions and 677 deletions

View file

@ -5,16 +5,20 @@ their custom modifications on the main project codebase.
### Version 1.1.0
- Issue #4: Raising more useful exceptions and enable error logging by default.
- Issue #6: Business Logic created is not getting assigned to service provider.
- Issue #10: Unable to use address tags in email address.
- Issue #13 + #16: Updated project to Bootstrap v3.3.4 and modified frontend CSS so that it is responsive.
- Issue #13: Upgrade to Bootstrap 3.x.x.
- Issue #14: Add Google Analytics tracking for the booking page.
- Issue #15: Add captcha to booking page.
- Issue #16: Responsive Frontend
- Issue #18: Duration is not changing when adding a new appointment.
- Issue #21: Fix E!A installation problems with AJAX requests.
- Issue #22: Google Calendar Sync - Time Zone Issue
- Issue #25: Add a disable customer mail notifications setting
- Issue #27: Support american time format within the app.
- Issue #31: Double booking when two users try to book the same appointment hour and at the same time.
- Issue #38: Renamed `configuration.php` file to `config.php` and changed the `SystemConfiguration` class to `Config`. This class will contain constants with the project configuration and will be statically used.
- Issue #39: Added new translations to project (japanese, polish, luxembourgish, protuguese-br, french, chinese, italian, spanish, dutch, danish, slovak, finnish).
- Issue #39: Add latest translations to source code so that user can select them immediately.
- Issue #40: Removed `.htaccess` file and updated all the URLs with the `index.php` file so that mod_rewrite problems are eliminated.
- Issue #41: Removed `cancel.php` file. Frontend must use the `message.php` file for displaying simple messages to user.
- Issue #42: Place all external assets to "ext" directory.
- Issue #66: Trouble with breaks for providers.

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0
@ -62,6 +62,17 @@ class Appointments extends CI_Controller {
$company_name = $this->settings_model->get_setting('company_name');
$date_format = $this->settings_model->get_setting('date_format');
// Remove the data that are not needed inside the $available_providers array.
foreach ($available_providers as $index=>$provider) {
$stripped_data = array(
'id' => $provider['id'],
'first_name' => $provider['first_name'],
'last_name' => $provider['last_name'],
'services' => $provider['services']
);
$available_providers[$index] = $stripped_data;
}
// If an appointment hash is provided then it means that the customer
// is trying to edit a registered appointment record.
if ($appointment_hash !== ''){
@ -328,7 +339,11 @@ class Appointments extends CI_Controller {
// Validate the CAPTCHA string.
if ($this->settings_model->get_setting('require_captcha') === '1'
&& $this->session->userdata('captcha_phrase') !== $_POST['captcha']) {
throw new Exception($this->lang->line('captcha_is_wrong'));
echo json_encode(array(
'captcha_verification' => FALSE,
'expected_phrase' => $this->session->userdata('captcha_phrase')
));
return;
}
// Check appointment availability.

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0
@ -259,21 +259,6 @@ class Backend extends CI_Controller {
return TRUE;
}
/**
* Set the user data in order to be available at the view and js code.
*
* @param array $view Contains the view data.
*/
public function set_user_data(&$view) {
$this->load->model('roles_model');
// Get privileges
$view['user_id'] = $this->session->userdata('user_id');
$view['user_email'] = $this->session->userdata('user_email');
$view['role_slug'] = $this->session->userdata('role_slug');
$view['privileges'] = $this->roles_model->get_privileges($this->session->userdata('role_slug'));
}
/**
* This method will update the installation to the latest available
* version in the server. IMPORTANT: The code files must exist in the
@ -301,6 +286,21 @@ class Backend extends CI_Controller {
));
}
}
/**
* Set the user data in order to be available at the view and js code.
*
* @param array $view Contains the view data.
*/
private function set_user_data(&$view) {
$this->load->model('roles_model');
// Get privileges
$view['user_id'] = $this->session->userdata('user_id');
$view['user_email'] = $this->session->userdata('user_email');
$view['role_slug'] = $this->session->userdata('role_slug');
$view['privileges'] = $this->roles_model->get_privileges($this->session->userdata('role_slug'));
}
}
/* End of file backend.php */

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0
@ -32,8 +32,9 @@ class Captcha extends CI_Controller {
public function index() {
header('Content-type: image/jpeg');
$builder = new Gregwar\Captcha\CaptchaBuilder;
$builder->build()->output();
$builder->build();
$this->session->set_userdata('captcha_phrase', $builder->getPhrase());
$builder->output();
}
}

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.1.0
@ -100,6 +100,16 @@ class Installation extends CI_Controller {
$this->settings_model->set_setting('company_email', $company['company_email']);
$this->settings_model->set_setting('company_link', $company['company_link']);
// Create sample records.
$this->load->model('services_model');
$this->load->model('providers_model');
$sample_service = get_sample_service();
$sample_service['id'] = $this->services_model->add($sample_service);
$sample_provider = get_sample_provider();
$sample_provider['services'][] = $sample_service['id'];
$this->providers_model->add($sample_provider);
echo json_encode(AJAX_SUCCESS);
} catch (Exception $exc) {

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -1,5 +1,16 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/* ----------------------------------------------------------------------------
* Easy!Appointments - Open Source Web Scheduler
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.1.0
* ---------------------------------------------------------------------------- */
/**
* Check if Easy!Appointments is installed.
*
@ -16,3 +27,44 @@ function is_ea_installed() {
$ci =& get_instance();
return $ci->db->table_exists('ea_users');
}
/**
* Get the data of a sample service.
*
* @return array
*/
function get_sample_service() {
return array(
'name' => 'Test Service',
'duration' => 30,
'price' => 50.0,
'currency' => 'Euro',
'description' => 'This is a test service automatically inserted by the installer.',
'id_service_categories' => NULL
);
}
/**
* Get the data of a sample provider.
*
* @return array
*/
function get_sample_provider() {
return array(
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'john@doe.com',
'phone_number' => '0123456789',
'services' => array(),
'settings' => array(
'username' => 'johndoe',
'password' => '59fe9d073a9c3c606a7e01e402dca4b49b6aa517bd0fdf940c46cb13a7b63dd0',
'salt' => 'dc5570debc71fc1fe94b1b0aee444fcde5b8cb83d62a6a2b736ead6557d7a2e1',
'working_plan' => '{"monday":{"start":"09:00","end":"18:00","breaks":[{"start":"14:30","end":"15:00"}]},"tuesday":{"start":"09:00","end":"18:00","breaks":[{"start":"14:30","end":"15:00"}]},"wednesday":{"start":"09:00","end":"18:00","breaks":[{"start":"14:30","end":"15:00"}]},"thursday":{"start":"09:00","end":"18:00","breaks":[{"start":"14:30","end":"15:00"}]},"friday":{"start":"09:00","end":"18:00","breaks":[{"start":"14:30","end":"15:00"}]},"saturday":null,"sunday":null}',
'notifications' => FALSE,
'google_sync' => FALSE,
'sync_past_days' => 5,
'sync_future_days' => 5
)
);
}

View file

@ -264,13 +264,13 @@ $lang['google_calendar_selected'] = 'Google-Kalender ausgewählt wurde erfolgrei
$lang['oops_something_went_wrong'] = 'Oops! Etwas ist schiefgelaufen!';
$lang['could_not_add_to_google_calendar'] = 'Ihr Termin konnte nicht in den Google-Kalender-Konto hinzugefügt werden.';
$lang['ea_update_success'] = 'Easy!Appointments wurde erfolgreich aktualisiert!';
$lang['require_captcha'] = 'Require CAPTCHA';
$lang['require_captcha_hint'] = 'When enabled, the customers will have to type a random generated CAPTCHA string before booking/updating an appointment.';
$lang['require_captcha'] = 'Erfordern CAPTCHA';
$lang['require_captcha_hint'] = 'Wenn Aktiv, werden die Kunden eine zufällig generierte Zeichenfolge (CAPTCHA) eintippen vor die eine Termin buchen/speichern dürfen.';
$lang['captcha_is_wrong'] = 'CAPTCHA Überprüfung fehlgeschlagen, bitte versuchen Sie es wieder.';
$lang['any_provider'] = 'Jeder Anbieter';
$lang['requested_hour_is_unavailable'] = 'The requested appointment is unfornately not available. Please select a different hour for your appointment.';
$lang['customer_notifications'] = 'Customer Notifications';
$lang['customer_notifications_hint'] = 'Defines whether the customer will receive email notifications whenever there is a schedule change on one of his appointments.';
$lang['requested_hour_is_unavailable'] = 'Der gewünschte Termin ist leider nicht verfügbar. Bitte wählen Sie eine andere Zeit für den Termin.';
$lang['customer_notifications'] = 'Kunden Benachrichtigungen';
$lang['customer_notifications_hint'] = 'Stellen Sie ein, ob die Kunden eine E-Mail-Benachrichtigungen erhalten, jedes mal es gibt ein neue änderung auf ein Termin.';
$lang['date_format'] = 'Datumsformat';
$lang['date_format_hint'] = 'Ändern Sie das Datumsanzeigeformat (D - Datum, M - Monat, Y - Jahr).';
$lang['google_analytics_code_hint'] = 'Fügen Sie Ihre Google Analytics-ID hinzu, das auf der Buchungsseite enthalten wird.';

View file

@ -264,13 +264,13 @@ $lang['google_calendar_selected'] = 'Το ημερολόγιο της Google ε
$lang['oops_something_went_wrong'] = 'Ώχ! Κάτι πήγε στραβά!';
$lang['could_not_add_to_google_calendar'] = 'Το ραντεβού σας δεν μπόρεσε να προστεθεί στον λογαριασμό σας στο Google Calendar.';
$lang['ea_update_success'] = 'Το Easy!Appointments ενημερώθηκε με επιτυχία!';
$lang['require_captcha'] = 'Απαιτώ CAPTCHA';
$lang['require_captcha'] = 'Απαίτηση CAPTCHA';
$lang['require_captcha_hint'] = 'Όταν είναι ενεργοποιημένο, οι πελάτες θα χρειαστεί να πληκτρολογήσουν μια τυχαία παραγόμενη συμβολοσειρά CAPTCHA πριν κλείσουν/αποθηκεύσουν ένα ραντεβού.';
$lang['captcha_is_wrong'] = 'Η επαλήθευση του CAPTCHA απέτυχε, παρακαλώ δοκιμάστε πάλι.';
$lang['any_provider'] = 'Οποιοσδήποτε Πάροχος';
$lang['requested_hour_is_unavailable'] = 'Το απαιτούμενο ραντεβού δεν είναι δυστυχώς διαθέσιμο. Παρακαλώ επιλέξτε κάποια άλλη ώρα για το ραντεβού σας.';
$lang['customer_notifications'] = 'Customer Notifications';
$lang['customer_notifications_hint'] = 'Defines whether the customer will receive email notifications whenever there is a schedule change on one of his appointments.';
$lang['customer_notifications'] = 'Ειδοποιήσεις Πελατών';
$lang['customer_notifications_hint'] = 'Ορίζει αν οι πελάτες θα λαμβάνουν ειδοποιήσεις μέσω email κάθε φορά που θα υπαχει μια αλλαγή σε κάποιο από τα ραντεβού τους.';
$lang['date_format'] = 'Μορφή Ημερομηνίας';
$lang['date_format_hint'] = 'Αλλάξτε την μορφή ημερομηνίας (D - Ημέρα, M - Μήνας, Y - Χρόνος).';
$lang['google_analytics_code_hint'] = 'Προσθέστε τον Google Analytics ID σας το οποίο θα συμπεριληφθεί στην σελίδα κράτησης.';

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.1.0

View file

@ -5,13 +5,13 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.1.0
* ---------------------------------------------------------------------------- */
class Migration_Add_google_analytics_setting extends CI_Migration {
class Migration_Add_customer_notifications_setting extends CI_Migration {
public function up() {
$this->load->model('settings_model');
$this->settings_model->set_setting('customer_notifications', '1');

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.1.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.1.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -5,7 +5,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -373,6 +373,7 @@
</h4>
<img class="captcha-image" src="<?php echo $this->config->item('base_url'); ?>/index.php/captcha">
<input class="captcha-text" type="text" value="" />
<span id="captcha-hint" class="help-block" style="opacity:0">&nbsp;</span>
</div>
</div>
<?php endif; ?>

View file

@ -117,6 +117,17 @@
<?php echo $this->lang->line('date_format_hint'); ?>
</span>
</div>
<div class="form-group">
<label><?php echo $this->lang->line('customer_notifications'); ?></label>
<br>
<button type="button" id="customer-notifications" class="btn btn-default" data-toggle="button" aria-pressed="false">
<span class="glyphicon glyphicon-envelope"></span>
<?php echo $this->lang->line('receive_notifications'); ?>
</button>
<span class="help-block">
<?php echo $this->lang->line('customer_notifications_hint'); ?>
</span>
</div>
<div class="form-group">
<label for="require-captcha">
CAPTCHA
@ -270,19 +281,6 @@
<label for="book-advance-timeout"><?php echo $this->lang->line('timeout_minutes'); ?></label>
<input type="text" id="book-advance-timeout" data-field="book_advance_timeout" class="form-control" />
</div>
<br>
<h4><?php echo $this->lang->line('customer_notifications'); ?></h4>
<span class="help-block">
<?php echo $this->lang->line('customer_notifications_hint'); ?>
</span>
<div class="form-group">
<button type="button" id="customer-notifications" class="btn btn-default" data-toggle="button" aria-pressed="false">
<span class="glyphicon glyphicon-envelope"></span>
<?php echo $this->lang->line('receive_notifications'); ?>
</button>
</div>
</div>
<div class="col-md-5 breaks-wrapper">
<h4><?php echo $this->lang->line('breaks'); ?></h4>

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0
@ -54,6 +54,7 @@ root {
#header #header-menu .menu-item {
float: left;
padding: 18px 18px 19px;
height: 70px;
min-width: 130px;
text-align: center;
font-weight: bold;
@ -634,8 +635,8 @@ body .form-horizontal .controls {
}
#users-page #providers .breaks .btn {
margin-right: 5px;
padding: 4px 7px;
margin-right: 5px;
padding: 4px 7px;
}
@ -666,6 +667,7 @@ padding: 4px 7px;
#settings-page .tab-content {
margin: 15px;
overflow: auto;
}
#settings-page .nav {

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0
@ -198,6 +198,8 @@ body {
#book-appointment-wizard .captcha-image {
float: right;
margin-bottom: 20px;
border-radius: 3px;
box-shadow: 1px 1px 4px rgba(0,0,0,0.4);
}
#book-appointment-wizard .captcha-text {

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0
@ -13,6 +13,10 @@
* Main javascript code for the backend of Easy!Appointments.
*/
$(document).ready(function() {
if (window.console === undefined) {
window.console = function() {} // IE compatibility
}
$(window).resize(function() {
Backend.placeFooterToBottom();
}).trigger('resize');

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0
@ -271,6 +271,11 @@ SystemSettings.prototype.get = function() {
});
});
settings.push({
'name': 'customer_notifications',
'value': $('#customer-notifications').hasClass('active') === true ? '1' : '0'
});
settings.push({
'name': 'require_captcha',
'value': $('#require-captcha').hasClass('active') === true ? '1' : '0'
@ -287,11 +292,6 @@ SystemSettings.prototype.get = function() {
'value': $('#book-advance-timeout').val()
});
settings.push({
'name': 'customer_notifications',
'value': $('#customer-notifications').hasClass('active') === true ? '1' : '0'
});
return settings;
};

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0
@ -41,6 +41,10 @@ var FrontendBook = {
manageMode = false; // Default Value
}
if (window.console === undefined) {
window.console = function() {} // IE compatibility
}
FrontendBook.manageMode = manageMode;
// Initialize page's components (tooltips, datepickers etc).
@ -620,7 +624,7 @@ var FrontendBook = {
if ($captchaText.length > 0) {
$captchaText.css('border', '');
if ($captchaText.val() === '') {
$captchaText.css('border', '1px solid red');
$captchaText.css('border', '1px solid #dc3b40');
return;
}
}
@ -668,6 +672,22 @@ var FrontendBook = {
return false;
}
if (response.captcha_verification === false) {
$('#captcha-hint')
.text(EALang['captcha_is_wrong'] + '(' + response.expected_phrase + ')')
.fadeTo(400, 1);
setTimeout(function() {
$('#captcha-hint').fadeTo(400, 0);
}, 3000);
$('.captcha-title small').trigger('click');
$captchaText.css('border', '1px solid #dc3b40');
return false;
}
window.location.replace(GlobalVariables.baseUrl
+ '/index.php/appointments/book_success/' + response.appointment_id);
})

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0

View file

@ -3,7 +3,7 @@
--
-- @package EasyAppointments
-- @author A.Tselegidis <alextselegidis@gmail.com>
-- @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
-- @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
-- @license http://opensource.org/licenses/GPL-3.0 - GPLv3
-- @link http://easyappointments.org
-- @since v1.0.0

View file

@ -4,7 +4,7 @@
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @copyright Copyright (c) 2013 - 2016, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org
* @since v1.0.0