From 5ddc942a9340af5f8274d36e0421c1ecaf2e781f Mon Sep 17 00:00:00 2001 From: Karl Cordes Date: Thu, 21 Jul 2011 07:01:50 +1000 Subject: [PATCH] Removed AJAX loading of User Enquiries view. This will make the initial load time of the View User page longer, but you can now update the status of the Enquiry again from that page. closes issue #52. --- controllers/users_controller.php | 267 ++++++++++++++++--------------- views/layouts/default.ctp | 1 - views/users/view.ctp | 2 +- views/users/view_user.ctp | 17 +- webroot/js/view_user.js | 30 ---- 5 files changed, 143 insertions(+), 174 deletions(-) diff --git a/controllers/users_controller.php b/controllers/users_controller.php index 3342dfe9..3ea4990d 100755 --- a/controllers/users_controller.php +++ b/controllers/users_controller.php @@ -6,60 +6,60 @@ class UsersController extends AppController { var $helpers = array('Html', 'Form', 'Javascript', 'Text'); var $components = array('Acl', 'Auth', 'Cookie'); var $paginate = array( - 'limit' => 500, - 'order' => 'User.id asc', - 'Users' => array('order' => array('User.id' => 'asc'), - ), - 'Enquiry' => array('order' => array('Enquiry.id' => 'desc'), 'limit' => 250) + 'limit' => 500, + 'order' => 'User.id asc', + 'Users' => array('order' => array('User.id' => 'asc'), + ), + 'Enquiry' => array('order' => array('Enquiry.id' => 'desc'), 'limit' => 250) ); function beforeFilter() { - $this->Auth->allow('add'); - $this->set('currentuser', $this->Auth->user()); - $this->Auth->autoRedirect = false; - //$this->login(); + $this->Auth->allow('add'); + $this->set('currentuser', $this->Auth->user()); + $this->Auth->autoRedirect = false; + //$this->login(); } function login() { //Provided by the authComponent - $this->pageTitle = ': Login'; - //$this->Session->setFlash(__('Please enter your Username and Password to continue', true)); + $this->pageTitle = ': Login'; + //$this->Session->setFlash(__('Please enter your Username and Password to continue', true)); - /* Auth Cookie code from http://www.webdevelopment2.com/cakephp-auth-component-tutorial-3/ */ - //– code inside this function will execute only when autoRedirect was set to false (i.e. in a beforeFilter). - if ($this->Auth->user()) { - if (!empty($this->data) && $this->data['User']['remember_me']) { - $cookie = array(); - $cookie['username'] = $this->data['User']['username']; - $cookie['password'] = $this->data['User']['password']; - $this->Cookie->write('Auth.User', $cookie, true, '+2 weeks'); - unset($this->data['User']['remember_me']); - } - $this->redirect($this->Auth->redirect()); - } - if (empty($this->data)) { - $cookie = $this->Cookie->read('Auth.User'); - if (!is_null($cookie)) { - if ($this->Auth->login($cookie)) { - // Clear auth message, just in case we use it. - // $this->Session->setFlash(__('Welcome back '.$cookie['username']), true); - $this->Session->del('Message.auth'); - $this->redirect($this->Auth->redirect()); - } else { // Delete invalid Cookie - $this->Cookie->del('Auth.User'); - } - } - } + /* Auth Cookie code from http://www.webdevelopment2.com/cakephp-auth-component-tutorial-3/ */ + //– code inside this function will execute only when autoRedirect was set to false (i.e. in a beforeFilter). + if ($this->Auth->user()) { + if (!empty($this->data) && $this->data['User']['remember_me']) { + $cookie = array(); + $cookie['username'] = $this->data['User']['username']; + $cookie['password'] = $this->data['User']['password']; + $this->Cookie->write('Auth.User', $cookie, true, '+2 weeks'); + unset($this->data['User']['remember_me']); + } + $this->redirect($this->Auth->redirect()); + } + if (empty($this->data)) { + $cookie = $this->Cookie->read('Auth.User'); + if (!is_null($cookie)) { + if ($this->Auth->login($cookie)) { + // Clear auth message, just in case we use it. + // $this->Session->setFlash(__('Welcome back '.$cookie['username']), true); + $this->Session->del('Message.auth'); + $this->redirect($this->Auth->redirect()); + } else { // Delete invalid Cookie + $this->Cookie->del('Auth.User'); + } + } + } } function logout() { - $this->Cookie->del('Auth.User'); - $this->redirect($this->Auth->logout()); + $this->Cookie->del('Auth.User'); + $this->redirect($this->Auth->logout()); } function index() { - $this->User->recursive = 0; - $this->set('users', $this->paginate()); + $this->User->recursive = 0; + $this->set('users', $this->paginate()); } /** @@ -70,24 +70,24 @@ class UsersController extends AppController { * @param int $id */ function view($id = null) { - if (!$id) { - $this->Session->setFlash(__('Invalid User.', true)); - $this->redirect(array('action' => 'index')); - } + if (!$id) { + $this->Session->setFlash(__('Invalid User.', true)); + $this->redirect(array('action' => 'index')); + } - //$user = $this->User->read(null, $id); + //$user = $this->User->read(null, $id); - $userFields = array('User.id', 'User.principle_id', 'User.customer_id', 'User.type', - 'User.access_level', 'User.username', 'User.first_name', 'User.last_name', - 'User.email', 'User.job_title', 'User.phone', 'User.mobile', 'User.fax', 'User.phone_extension', 'User.direct_phone', - 'User.notes', 'User.by_vault', 'User.blacklisted' - ); + $userFields = array('User.id', 'User.principle_id', 'User.customer_id', 'User.type', + 'User.access_level', 'User.username', 'User.first_name', 'User.last_name', + 'User.email', 'User.job_title', 'User.phone', 'User.mobile', 'User.fax', 'User.phone_extension', 'User.direct_phone', + 'User.notes', 'User.by_vault', 'User.blacklisted' + ); - $user = $this->User->find('first', array('conditions' => array('User.id' => $id), 'fields' => $userFields, 'recursive' => 0)); + $user = $this->User->find('first', array('conditions' => array('User.id' => $id), 'fields' => $userFields, 'recursive' => 0)); - $this->set('user', $user); + $this->set('user', $user); - /* $emailIDs = array(); + /* $emailIDs = array(); foreach($user['Email'] as $email) { $emailIDs[] = $email['id']; } @@ -96,82 +96,83 @@ class UsersController extends AppController { / */ - switch ($user['User']['type']) { - case 'contact': + switch ($user['User']['type']) { + case 'contact': - if (isset($user['User']['customer_id'])) { - $this->set('customer', $this->User->Customer->find('first', array('conditions' => array('Customer.id' => $user['User']['customer_id']), 'recursive' => 0))); - } - $this->render('viewContact'); - break; + if (isset($user['User']['customer_id'])) { + $this->set('customer', $this->User->Customer->find('first', array('conditions' => array('Customer.id' => $user['User']['customer_id']), 'recursive' => 0))); + } + $this->render('viewContact'); + break; - case 'principle': + case 'principle': - $this->render('viewPrinciple'); - break; + $this->render('viewPrinciple'); + break; - case 'user': - //$this->set('enquiries', $this->paginate('Enquiry', array('Enquiry.user_id' => $id))); + case 'user': + $this->set('enquiries', $this->paginate('Enquiry', array('Enquiry.user_id' => $id))); + $status_list = $this->User->Enquiry->Status->getJSON(); + + $this->set('status_list', $status_list); + $classNames = $this->User->Enquiry->Status->getClassNamesJSON(); + $this->set('class_names', $classNames); + $this->render('viewUser'); + break; - - - $this->render('viewUser'); - - break; - - default: - break; - } + default: + break; + } } function add_edit() { - Configure::write('debug', 0); + Configure::write('debug', 0); - if (isset($this->params['named']['type'])) { - $this->set('type', $this->params['named']['type']); - } + if (isset($this->params['named']['type'])) { + $this->set('type', $this->params['named']['type']); + } - if (isset($this->params['named']['principle_id'])) { - $this->set('principle_id', $this->params['named']['principle_id']); - } + if (isset($this->params['named']['principle_id'])) { + $this->set('principle_id', $this->params['named']['principle_id']); + } - if (isset($this->params['named']['customer_id'])) { - $this->set('customer_id', $this->params['named']['customer_id']); - } + if (isset($this->params['named']['customer_id'])) { + $this->set('customer_id', $this->params['named']['customer_id']); + } - if (isset($this->params['named']['user_id'])) { - $userID = $this->params['named']['user_id']; - $this->set('user_id', $userID); - } + if (isset($this->params['named']['user_id'])) { + $userID = $this->params['named']['user_id']; + $this->set('user_id', $userID); + } - if (isset($this->params['named']['action'])) { - $action = $this->params['named']['action']; - $this->set('action', $action); - } + if (isset($this->params['named']['action'])) { + $action = $this->params['named']['action']; + $this->set('action', $action); + } - if (isset($action) && isset($userID)) { - $this->data = $this->User->read(null, $userID); - } + if (isset($action) && isset($userID)) { + $this->data = $this->User->read(null, $userID); + } } function add_user() { - Configure::write('debug', 0); - $this->layout = 'ajax'; - if (!empty($this->data)) { - $this->User->create(); - $this->User->set($this->data['User']); + Configure::write('debug', 0); + $this->layout = 'ajax'; + if (!empty($this->data)) { + $this->User->create(); + $this->User->set($this->data['User']); - if ($this->User->save($this->data)) { - $message = __('The User has been saved.', true); - $data = $this->data; - $this->set('status', array('status'=>'success')); - } else { - $message = __('The User could not be saved.', true); - $this->set('status', array('status'=>'failure')); - } - } + if ($this->User->save($this->data)) { + $message = __('The User has been saved.', true); + $data = $this->data; + $this->set('status', array('status'=>'success')); + } else { + $message = __('The User could not be saved.', true); + $this->set('status', array('status'=>'failure')); + } + } } /* if (!empty($this->data)) { @@ -190,33 +191,33 @@ class UsersController extends AppController { */ function add() { - if (!empty($this->data)) { - $this->User->create(); - if ($this->User->save($this->data)) { - $this->Session->setFlash(__('The User has been saved', true)); - $this->redirect(array('action' => 'index')); - } else { - $this->Session->setFlash(__('The User could not be saved. Please, try again.', true)); - } - } + if (!empty($this->data)) { + $this->User->create(); + if ($this->User->save($this->data)) { + $this->Session->setFlash(__('The User has been saved', true)); + $this->redirect(array('action' => 'index')); + } else { + $this->Session->setFlash(__('The User could not be saved. Please, try again.', true)); + } + } } function edit($id = null) { - if (!$id && empty($this->data)) { - $this->Session->setFlash(__('Invalid User', true)); - $this->redirect(array('action' => 'index')); - } - if (!empty($this->data)) { - if ($this->User->save($this->data)) { - $this->Session->setFlash(__('The User has been saved', true)); - $this->redirect(array('action' => 'index')); - } else { - $this->Session->setFlash(__('The User could not be saved. Please, try again.', true)); - } - } - if (empty($this->data)) { - $this->data = $this->User->read(null, $id); - } + if (!$id && empty($this->data)) { + $this->Session->setFlash(__('Invalid User', true)); + $this->redirect(array('action' => 'index')); + } + if (!empty($this->data)) { + if ($this->User->save($this->data)) { + $this->Session->setFlash(__('The User has been saved', true)); + $this->redirect(array('action' => 'index')); + } else { + $this->Session->setFlash(__('The User could not be saved. Please, try again.', true)); + } + } + if (empty($this->data)) { + $this->data = $this->User->read(null, $id); + } } } diff --git a/views/layouts/default.ctp b/views/layouts/default.ctp index 7ac4976b..8e713311 100755 --- a/views/layouts/default.ctp +++ b/views/layouts/default.ctp @@ -33,7 +33,6 @@ echo $javascript->link('global'); echo $javascript->link('search'); echo $javascript->link('jquery.jeditable.mini'); - //echo $javascript->link('ckeditor/adapters/jquery'); echo $javascript->link('jquery.validate'); echo $scripts_for_layout; diff --git a/views/users/view.ctp b/views/users/view.ctp index 14c68dbe..8c4fdad3 100755 --- a/views/users/view.ctp +++ b/views/users/view.ctp @@ -37,7 +37,7 @@

element('enquiry_table', $enquiries); + echo $this->element('enquiry_table', $enquiries, $status_list); } else { echo "No Enquiries for this User"; diff --git a/views/users/view_user.ctp b/views/users/view_user.ctp index 6aacbaed..da5e63b0 100644 --- a/views/users/view_user.ctp +++ b/views/users/view_user.ctp @@ -1,4 +1,3 @@ -link('view_user'); ?> link('view_user_email'); ?> @@ -33,15 +32,15 @@ diff --git a/webroot/js/view_user.js b/webroot/js/view_user.js index feadb870..4bca6810 100644 --- a/webroot/js/view_user.js +++ b/webroot/js/view_user.js @@ -1,26 +1,6 @@ $(function() { $('#show').hide(); - - $("#ajaxLoadEnquiry").hide(); - - - - - var userID = $('#userID').text(); - - - var enquiriesURL = '/enquiries/view_user_enquiries/'+userID; - - getPage(enquiriesURL); - - - $("div.paging > a, div.paging > span > a, th.paginatorSort > a").live('click',function() { - destination = $(this).attr('href'); - getPage(destination); - return false; - - }); $('#hide').click(function() { $(this).hide(); @@ -35,14 +15,4 @@ $(function() { $('#enquiryTable').slideDown('fast'); }); - - - function getPage(url) { - - $.get(url, function(data) { - $('#enquiryTable').html(data); - }); - - } - }); \ No newline at end of file