Minor code format corrections.

This commit is contained in:
Alex Tselegidis 2015-12-30 12:02:14 +01:00
parent 739368c00f
commit af976440f8
8 changed files with 316 additions and 281 deletions

View file

@ -72,7 +72,6 @@ class Backend extends CI_Controller {
$view['secretary_providers'] = array(); $view['secretary_providers'] = array();
} }
$results = $this->appointments_model->get_batch(array('hash' => $appointment_hash)); $results = $this->appointments_model->get_batch(array('hash' => $appointment_hash));
if ($appointment_hash != '' && count($results) > 0) { if ($appointment_hash != '' && count($results) > 0) {
$appointment = $results[0]; $appointment = $results[0];
@ -232,6 +231,7 @@ class Backend extends CI_Controller {
* @param bool $redirect (OPTIONAL - TRUE) If the user has not the required privileges * @param bool $redirect (OPTIONAL - TRUE) If the user has not the required privileges
* (either not logged in or insufficient role privileges) then the user will be redirected * (either not logged in or insufficient role privileges) then the user will be redirected
* to another page. Set this argument to FALSE when using ajax. * to another page. Set this argument to FALSE when using ajax.
*
* @return bool Returns whether the user has the required privileges to view the page or * @return bool Returns whether the user has the required privileges to view the page or
* not. If the user is not logged in then he will be prompted to log in. If he hasn't the * not. If the user is not logged in then he will be prompted to log in. If he hasn't the
* required privileges then an info message will be displayed. * required privileges then an info message will be displayed.

View file

@ -48,10 +48,10 @@ class Backend_api extends CI_Controller {
* This method returns the database appointments and unavailable periods for the * This method returns the database appointments and unavailable periods for the
* user selected date period and record type (provider or service). * user selected date period and record type (provider or service).
* *
* @param {numeric} $_POST['record_id'] Selected record id. * @param numeric $_POST['record_id'] Selected record id.
* @param {string} $_POST['filter_type'] Could be either FILTER_TYPE_PROVIDER or FILTER_TYPE_SERVICE. * @param string $_POST['filter_type'] Could be either FILTER_TYPE_PROVIDER or FILTER_TYPE_SERVICE.
* @param {string} $_POST['start_date'] The user selected start date. * @param string $_POST['start_date'] The user selected start date.
* @param {string} $_POST['end_date'] The user selected end date. * @param string $_POST['end_date'] The user selected end date.
*/ */
public function ajax_get_calendar_appointments() { public function ajax_get_calendar_appointments() {
try { try {
@ -113,13 +113,10 @@ class Backend_api extends CI_Controller {
} }
/** /**
* [AJAX] Save appointment changes that are made from the backend calendar * [AJAX] Save appointment changes that are made from the backend calendar page.
* page.
* *
* @param array $_POST['appointment_data'] (OPTIONAL) Array with the * @param array $_POST['appointment_data'] (OPTIONAL) Array with the appointment data.
* appointment data. * @param array $_POST['customer_data'] (OPTIONAL) Array with the customer data.
* @param array $_POST['customer_data'] (OPTIONAL) Array with the customer
* data.
*/ */
public function ajax_save_appointment() { public function ajax_save_appointment() {
try { try {
@ -374,7 +371,6 @@ class Backend_api extends CI_Controller {
if (!isset($_POST['provider_id'])) if (!isset($_POST['provider_id']))
throw new Exception('Provider id not specified.'); throw new Exception('Provider id not specified.');
if ($this->privileges[PRIV_USERS]['edit'] == FALSE if ($this->privileges[PRIV_USERS]['edit'] == FALSE
&& $this->session->userdata('user_id') != $_POST['provider_id']) { && $this->session->userdata('user_id') != $_POST['provider_id']) {
throw new Exception('You do not have the required privileges for this task.'); throw new Exception('You do not have the required privileges for this task.');
@ -398,7 +394,8 @@ class Backend_api extends CI_Controller {
/** /**
* [AJAX] Filter the customer records with the given key string. * [AJAX] Filter the customer records with the given key string.
* *
* @param string $_POST['key'] The filter key string * @param string $_POST['key'] The filter key string.
*
* @return array Returns the search results. * @return array Returns the search results.
*/ */
public function ajax_filter_customers() { public function ajax_filter_customers() {
@ -666,6 +663,7 @@ class Backend_api extends CI_Controller {
* [AJAX] Filter service records by given key string. * [AJAX] Filter service records by given key string.
* *
* @param string $_POST['key'] Key string used to filter the records. * @param string $_POST['key'] Key string used to filter the records.
*
* @return array Returns a json encoded array back to client. * @return array Returns a json encoded array back to client.
*/ */
public function ajax_filter_services() { public function ajax_filter_services() {
@ -744,6 +742,7 @@ class Backend_api extends CI_Controller {
* [AJAX] Filter services categories with key string. * [AJAX] Filter services categories with key string.
* *
* @param string $_POST['key'] The key string used to filter the records. * @param string $_POST['key'] The key string used to filter the records.
*
* @return array Returns a json encoded array back to client with the category records. * @return array Returns a json encoded array back to client with the category records.
*/ */
public function ajax_filter_service_categories() { public function ajax_filter_service_categories() {
@ -768,6 +767,7 @@ class Backend_api extends CI_Controller {
* [AJAX] Filter admin records with string key. * [AJAX] Filter admin records with string key.
* *
* @param string $_POST['key'] The key string used to filter the records. * @param string $_POST['key'] The key string used to filter the records.
*
* @return array Returns a json encoded array back to client with the admin records. * @return array Returns a json encoded array back to client with the admin records.
*/ */
public function ajax_filter_admins() { public function ajax_filter_admins() {
@ -798,6 +798,7 @@ class Backend_api extends CI_Controller {
* *
* @param array $_POST['admin'] A json encoded array that contains the admin data. If an 'id' * @param array $_POST['admin'] A json encoded array that contains the admin data. If an 'id'
* value is provided then the record is going to be updated. * value is provided then the record is going to be updated.
*
* @return array Returns an array with the operation status and the record id that was * @return array Returns an array with the operation status and the record id that was
* saved into the database. * saved into the database.
*/ */
@ -832,6 +833,7 @@ class Backend_api extends CI_Controller {
* [AJAX] Delete an admin record from the database. * [AJAX] Delete an admin record from the database.
* *
* @param numeric $_POST['admin_id'] The id of the record to be deleted. * @param numeric $_POST['admin_id'] The id of the record to be deleted.
*
* @return string Returns the operation result constant (AJAX_SUCESS or AJAX_FAILURE). * @return string Returns the operation result constant (AJAX_SUCESS or AJAX_FAILURE).
*/ */
public function ajax_delete_admin() { public function ajax_delete_admin() {
@ -854,6 +856,7 @@ class Backend_api extends CI_Controller {
* [AJAX] Filter provider records with string key. * [AJAX] Filter provider records with string key.
* *
* @param string $_POST['key'] The key string used to filter the records. * @param string $_POST['key'] The key string used to filter the records.
*
* @return array Returns a json encoded array back to client with the provider records. * @return array Returns a json encoded array back to client with the provider records.
*/ */
public function ajax_filter_providers() { public function ajax_filter_providers() {
@ -884,6 +887,7 @@ class Backend_api extends CI_Controller {
* *
* @param array $_POST['provider'] A json encoded array that contains the provider data. If an 'id' * @param array $_POST['provider'] A json encoded array that contains the provider data. If an 'id'
* value is provided then the record is going to be updated. * value is provided then the record is going to be updated.
*
* @return string Returns the success contant 'AJAX_SUCCESS' so javascript knows that * @return string Returns the success contant 'AJAX_SUCCESS' so javascript knows that
* everything completed successfully. * everything completed successfully.
*/ */
@ -923,6 +927,7 @@ class Backend_api extends CI_Controller {
* [AJAX] Delete a provider record from the database. * [AJAX] Delete a provider record from the database.
* *
* @param numeric $_POST['provider_id'] The id of the record to be deleted. * @param numeric $_POST['provider_id'] The id of the record to be deleted.
*
* @return string Returns the operation result constant (AJAX_SUCESS or AJAX_FAILURE). * @return string Returns the operation result constant (AJAX_SUCESS or AJAX_FAILURE).
*/ */
public function ajax_delete_provider() { public function ajax_delete_provider() {
@ -945,6 +950,7 @@ class Backend_api extends CI_Controller {
* [AJAX] Filter secretary records with string key. * [AJAX] Filter secretary records with string key.
* *
* @param string $_POST['key'] The key string used to filter the records. * @param string $_POST['key'] The key string used to filter the records.
*
* @return array Returns a json encoded array back to client with the secretary records. * @return array Returns a json encoded array back to client with the secretary records.
*/ */
public function ajax_filter_secretaries() { public function ajax_filter_secretaries() {
@ -975,6 +981,7 @@ class Backend_api extends CI_Controller {
* *
* @param array $_POST['secretary'] A json encoded array that contains the secretary data. * @param array $_POST['secretary'] A json encoded array that contains the secretary data.
* If an 'id' value is provided then the record is going to be updated. * If an 'id' value is provided then the record is going to be updated.
*
* @return string Returns the success contant 'AJAX_SUCCESS' so javascript knows that * @return string Returns the success contant 'AJAX_SUCCESS' so javascript knows that
* everything completed successfully. * everything completed successfully.
*/ */
@ -1007,6 +1014,7 @@ class Backend_api extends CI_Controller {
* [AJAX] Delete a secretary record from the database. * [AJAX] Delete a secretary record from the database.
* *
* @param numeric $_POST['secretary_id'] The id of the record to be deleted. * @param numeric $_POST['secretary_id'] The id of the record to be deleted.
*
* @return string Returns the operation result constant (AJAX_SUCESS or AJAX_FAILURE). * @return string Returns the operation result constant (AJAX_SUCESS or AJAX_FAILURE).
*/ */
public function ajax_delete_secretary() { public function ajax_delete_secretary() {

View file

@ -1,44 +1,47 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/* ---------------------------------------------------------------------------- /* ----------------------------------------------------------------------------
* Easy!Appointments - Open Source Web Scheduler * Easy!Appointments - Open Source Web Scheduler
* *
* @package EasyAppointments * @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com> * @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis * @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3 * @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org * @link http://easyappointments.org
* @since v1.0.0 * @since v1.0.0
* ---------------------------------------------------------------------------- */ * ---------------------------------------------------------------------------- */
/** /**
* Errors Controller * Errors Controller
* *
* @package Controllers * @package Controllers
*/ */
class Errors extends CI_Controller { class Errors extends CI_Controller {
public function __construct() { /**
parent::__construct(); * Class Constructor
$this->load->library('session'); */
// Set user's selected language. public function __construct() {
if ($this->session->userdata('language')) { parent::__construct();
$this->config->set_item('language', $this->session->userdata('language')); $this->load->library('session');
$this->lang->load('translations', $this->session->userdata('language')); // Set user's selected language.
} else { if ($this->session->userdata('language')) {
$this->lang->load('translations', $this->config->item('language')); // default $this->config->set_item('language', $this->session->userdata('language'));
} $this->lang->load('translations', $this->session->userdata('language'));
} } else {
$this->lang->load('translations', $this->config->item('language')); // default
public function index() { }
$this->e404(); }
}
public function index() {
public function error404() { $this->e404();
$this->load->model('settings_model'); }
$view['company_name'] = $this->settings_model->get_setting('company_name');
$this->load->view('general/error404', $view); public function error404() {
} $this->load->model('settings_model');
} $view['company_name'] = $this->settings_model->get_setting('company_name');
$this->load->view('general/error404', $view);
/* End of file errors.php */ }
/* Location: ./application/controllers/errors.php */ }
/* End of file errors.php */
/* Location: ./application/controllers/errors.php */

View file

@ -14,9 +14,14 @@
/** /**
* Google Controller * Google Controller
* *
* This controller handles the Google Calendar synchronization operations.
*
* @package Controllers * @package Controllers
*/ */
class Google extends CI_Controller { class Google extends CI_Controller {
/**
* Class Constructor
*/
public function __construct() { public function __construct() {
parent::__construct(); parent::__construct();
} }

View file

@ -19,7 +19,6 @@
* @package Controllers * @package Controllers
*/ */
class Installation extends CI_Controller { class Installation extends CI_Controller {
/** /**
* Class Constructor * Class Constructor
*/ */
@ -37,7 +36,6 @@ class Installation extends CI_Controller {
} }
} }
/** /**
* Display the installation page. * Display the installation page.
*/ */

View file

@ -1,71 +1,75 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/* ---------------------------------------------------------------------------- /* ----------------------------------------------------------------------------
* Easy!Appointments - Open Source Web Scheduler * Easy!Appointments - Open Source Web Scheduler
* *
* @package EasyAppointments * @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com> * @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis * @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3 * @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org * @link http://easyappointments.org
* @since v1.0.0 * @since v1.0.0
* ---------------------------------------------------------------------------- */ * ---------------------------------------------------------------------------- */
/** /**
* Test Controller * Test Controller
* *
* @package Controllers * NOTICE: This controller is outdated and must not be used.
*/ *
class Test extends CI_Controller { * @deprecated v1.1.0
/** *
* Class Constructor * @package Controllers
*/ */
public function __construct() { class Test extends CI_Controller {
parent::__construct(); /**
$this->load->driver('Unit_tests'); * Class Constructor
} */
public function __construct() {
/** parent::__construct();
* Run all available unit tests. $this->load->driver('Unit_tests');
* }
* We only test models at the moment. In the future the unit test will be
* improved. /**
*/ * Run all available unit tests.
public function index() { *
// User must be logged in as an admin in order to run the tests. * We only test models at the moment. In the future the unit test will be
$this->load->library('session'); * improved.
$this->session->set_userdata('dest_url', $this->config->item('base_url') . '/index.php/test'); */
if ($this->session->userdata('role_slug') != DB_SLUG_ADMIN) { public function index() {
header('Location: ' . $this->config->item('base_url') . '/index.php/user/login'); // User must be logged in as an admin in order to run the tests.
return; $this->load->library('session');
} $this->session->set_userdata('dest_url', $this->config->item('base_url') . '/index.php/test');
if ($this->session->userdata('role_slug') != DB_SLUG_ADMIN) {
if (ENVIRONMENT !== 'development') { header('Location: ' . $this->config->item('base_url') . '/index.php/user/login');
$this->output->set_output('Tests are available only at development environment. ' return;
. 'Please check your "index.php" file settings.'); }
return;
} if (ENVIRONMENT !== 'development') {
$this->output->set_output('Tests are available only at development environment. '
$this->load->view('general/test'); . 'Please check your "index.php" file settings.');
$this->unit_tests->run_all_tests(); return;
} }
/** $this->load->view('general/test');
* Test only the app models. $this->unit_tests->run_all_tests();
*/ }
public function models() {
//$this->load->view('general/test'); /**
//$this->unit_tests->run_model_tests(); * Test only the app models.
} */
public function models() {
/** //$this->load->view('general/test');
* Test only the app libraries. //$this->unit_tests->run_model_tests();
*/ }
public function libraries() {
//$this->load->view('general/test'); /**
//$this->unit_tests->run_library_tests(); * Test only the app libraries.
} */
} public function libraries() {
//$this->load->view('general/test');
/* End of file test.php */ //$this->unit_tests->run_library_tests();
/* Location: ./application/controllers/test.php */ }
}
/* End of file test.php */
/* Location: ./application/controllers/test.php */

View file

@ -1,150 +1,167 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/* ---------------------------------------------------------------------------- /* ----------------------------------------------------------------------------
* Easy!Appointments - Open Source Web Scheduler * Easy!Appointments - Open Source Web Scheduler
* *
* @package EasyAppointments * @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com> * @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) 2013 - 2015, Alex Tselegidis * @copyright Copyright (c) 2013 - 2015, Alex Tselegidis
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3 * @license http://opensource.org/licenses/GPL-3.0 - GPLv3
* @link http://easyappointments.org * @link http://easyappointments.org
* @since v1.0.0 * @since v1.0.0
* ---------------------------------------------------------------------------- */ * ---------------------------------------------------------------------------- */
/** /**
* User Controller * User Controller
* *
* @package Controllers * @package Controllers
*/ */
class User extends CI_Controller { class User extends CI_Controller {
public function __construct() { /**
parent::__construct(); * Class Constructor
$this->load->library('session'); */
public function __construct() {
// Set user's selected language. parent::__construct();
if ($this->session->userdata('language')) { $this->load->library('session');
$this->config->set_item('language', $this->session->userdata('language'));
$this->lang->load('translations', $this->session->userdata('language')); // Set user's selected language.
} else { if ($this->session->userdata('language')) {
$this->lang->load('translations', $this->config->item('language')); // default $this->config->set_item('language', $this->session->userdata('language'));
} $this->lang->load('translations', $this->session->userdata('language'));
} } else {
$this->lang->load('translations', $this->config->item('language')); // default
public function index() { }
header('Location: ' . $this->config->item('base_url') . '/index.php/user/login'); }
}
/**
public function login() { * Default Method
$this->load->model('settings_model'); *
* The default method will redirect the browser to the user/login URL.
$view['base_url'] = $this->config->item('base_url'); */
$view['dest_url'] = $this->session->userdata('dest_url'); public function index() {
header('Location: ' . $this->config->item('base_url') . '/index.php/user/login');
if (!$view['dest_url']) { }
$view['dest_url'] = $view['base_url'] . '/index.php/backend';
} /**
* Display the login page.
$view['company_name'] = $this->settings_model->get_setting('company_name'); */
$this->load->view('user/login', $view); public function login() {
} $this->load->model('settings_model');
public function logout() { $view['base_url'] = $this->config->item('base_url');
$this->load->model('settings_model'); $view['dest_url'] = $this->session->userdata('dest_url');
$this->session->unset_userdata('user_id'); if (!$view['dest_url']) {
$this->session->unset_userdata('user_email'); $view['dest_url'] = $view['base_url'] . '/index.php/backend';
$this->session->unset_userdata('role_slug'); }
$this->session->unset_userdata('username');
$this->session->unset_userdata('dest_url'); $view['company_name'] = $this->settings_model->get_setting('company_name');
$this->load->view('user/login', $view);
$view['base_url'] = $this->config->item('base_url'); }
$view['company_name'] = $this->settings_model->get_setting('company_name');
$this->load->view('user/logout', $view); /**
} * Display the logout page.
*/
public function forgot_password() { public function logout() {
$this->load->model('settings_model'); $this->load->model('settings_model');
$view['base_url'] = $this->config->item('base_url');
$view['company_name'] = $this->settings_model->get_setting('company_name'); $this->session->unset_userdata('user_id');
$this->load->view('user/forgot_password', $view); $this->session->unset_userdata('user_email');
} $this->session->unset_userdata('role_slug');
$this->session->unset_userdata('username');
public function no_privileges() { $this->session->unset_userdata('dest_url');
$this->load->model('settings_model');
$view['base_url'] = $this->config->item('base_url'); $view['base_url'] = $this->config->item('base_url');
$view['company_name'] = $this->settings_model->get_setting('company_name'); $view['company_name'] = $this->settings_model->get_setting('company_name');
$this->load->view('user/no_privileges', $view); $this->load->view('user/logout', $view);
} }
/** /**
* [AJAX] Check whether the user has entered the correct login credentials. * Display the forgot password page.
* */
* The session data of a logged in user are the following: public function forgot_password() {
* 'user_id' $this->load->model('settings_model');
* 'user_email' $view['base_url'] = $this->config->item('base_url');
* 'role_slug' $view['company_name'] = $this->settings_model->get_setting('company_name');
* 'dest_url' $this->load->view('user/forgot_password', $view);
*/ }
public function ajax_check_login() {
try { public function no_privileges() {
if (!isset($_POST['username']) || !isset($_POST['password'])) { $this->load->model('settings_model');
throw new Exception('Invalid credentials given!'); $view['base_url'] = $this->config->item('base_url');
} $view['company_name'] = $this->settings_model->get_setting('company_name');
$this->load->view('user/no_privileges', $view);
$this->load->model('user_model'); }
$user_data = $this->user_model->check_login($_POST['username'], $_POST['password']);
/**
if ($user_data) { * [AJAX] Check whether the user has entered the correct login credentials.
$this->session->set_userdata($user_data); // Save data on user's session. *
echo json_encode(AJAX_SUCCESS); * The session data of a logged in user are the following:
} else { * - 'user_id'
echo json_encode(AJAX_FAILURE); * - 'user_email'
} * - 'role_slug'
* - 'dest_url'
} catch(Exception $exc) { */
echo json_encode(array( public function ajax_check_login() {
'exceptions' => array(exceptionToJavaScript($exc)) try {
)); if (!isset($_POST['username']) || !isset($_POST['password'])) {
} throw new Exception('Invalid credentials given!');
} }
/** $this->load->model('user_model');
* Regenerate a new password for the current user, only if the username and $user_data = $this->user_model->check_login($_POST['username'], $_POST['password']);
* email address given corresond to an existing user in db.
* if ($user_data) {
* @param string $_POST['username'] $this->session->set_userdata($user_data); // Save data on user's session.
* @param string $_POST['email'] echo json_encode(AJAX_SUCCESS);
*/ } else {
public function ajax_forgot_password() { echo json_encode(AJAX_FAILURE);
try { }
if (!isset($_POST['username']) || !isset($_POST['email'])) {
throw new Exception('You must enter a valid username and email address in ' } catch(Exception $exc) {
. 'order to get a new password!'); echo json_encode(array(
} 'exceptions' => array(exceptionToJavaScript($exc))
));
$this->load->model('user_model'); }
$this->load->model('settings_model'); }
$new_password = $this->user_model->regenerate_password($_POST['username'], $_POST['email']); /**
* Regenerate a new password for the current user, only if the username and
if ($new_password != FALSE) { * email address given corresond to an existing user in db.
$this->load->library('notifications'); *
$company_settings = array( * @param string $_POST['username']
'company_name' => $this->settings_model->get_setting('company_name'), * @param string $_POST['email']
'company_link' => $this->settings_model->get_setting('company_link'), */
'company_email' => $this->settings_model->get_setting('company_email') public function ajax_forgot_password() {
); try {
$this->notifications->send_password($new_password, $_POST['email'], $company_settings); if (!isset($_POST['username']) || !isset($_POST['email'])) {
} throw new Exception('You must enter a valid username and email address in '
. 'order to get a new password!');
echo ($new_password != FALSE) ? json_encode(AJAX_SUCCESS) : json_encode(AJAX_FAILURE); }
} catch(Exception $exc) {
echo json_encode(array( $this->load->model('user_model');
'exceptions' => array(exceptionToJavaScript($exc)) $this->load->model('settings_model');
));
} $new_password = $this->user_model->regenerate_password($_POST['username'], $_POST['email']);
}
} if ($new_password != FALSE) {
$this->load->library('notifications');
/* End of file user.php */ $company_settings = array(
/* Location: ./application/controllers/user.php */ 'company_name' => $this->settings_model->get_setting('company_name'),
'company_link' => $this->settings_model->get_setting('company_link'),
'company_email' => $this->settings_model->get_setting('company_email')
);
$this->notifications->send_password($new_password, $_POST['email'], $company_settings);
}
echo ($new_password != FALSE) ? json_encode(AJAX_SUCCESS) : json_encode(AJAX_FAILURE);
} catch(Exception $exc) {
echo json_encode(array(
'exceptions' => array(exceptionToJavaScript($exc))
));
}
}
}
/* End of file user.php */
/* Location: ./application/controllers/user.php */

View file

@ -13,7 +13,6 @@ root {
display: block; display: block;
} }
html, html,
body { body {
height: 100%; height: 100%;
@ -241,6 +240,7 @@ body {
margin-bottom: 0; margin-bottom: 0;
} }
/* MOBILE DEVICES /* MOBILE DEVICES
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
@media(max-width:768px) { @media(max-width:768px) {