diff --git a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php index 6d142424..3718b9fc 100644 --- a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php +++ b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php @@ -34,6 +34,8 @@ protected function _prepareLayout() { return parent::_prepareLayout(); } + Mage::helper('zendesk')->storeDependenciesInCachedRegistry(); + //check if module is setted up $configured = (bool) Mage::getStoreConfig('zendesk/general/domain'); $viewsIds = Mage::getStoreConfig('zendesk/backend_features/show_views') ? Mage::helper('zendesk')->getChosenViews() : array(); diff --git a/src/app/code/community/Zendesk/Zendesk/Helper/Data.php b/src/app/code/community/Zendesk/Zendesk/Helper/Data.php index 3196817a..247eb61c 100644 --- a/src/app/code/community/Zendesk/Zendesk/Helper/Data.php +++ b/src/app/code/community/Zendesk/Zendesk/Helper/Data.php @@ -370,4 +370,27 @@ public function getConnectionStatus() { } } + public function storeDependenciesInCachedRegistry() { + $cache = Mage::app()->getCache(); + + if (null == Mage::registry('zendesk_users')) { + if( $cache->load('zendesk_users') === false) { + $users = serialize( Mage::getModel('zendesk/api_users')->all() ); + $cache->save($users, 'zendesk_users', array('zendesk', 'zendesk_users'), 300); + } + + $users = unserialize( $cache->load('zendesk_users') ); + Mage::register('zendesk_users', $users); + } + + if (null == Mage::registry('zendesk_groups')) { + if( $cache->load('zendesk_groups') === false) { + $groups = serialize( Mage::getModel('zendesk/api_groups')->all() ); + $cache->save($groups, 'zendesk_groups', array('zendesk', 'zendesk_groups'), 1200); + } + + $groups = unserialize( $cache->load('zendesk_groups') ); + Mage::register('zendesk_groups', $groups); + } + } } diff --git a/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php b/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php index 37c34b95..f6c01fe9 100644 --- a/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php +++ b/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php @@ -35,8 +35,8 @@ public function indexAction() $this->_redirect('adminhtml/dashboard'); return; } - - $this->storeDependenciesInCachedRegistry(); + + Mage::helper('zendesk')->storeDependenciesInCachedRegistry(); $this->_title($this->__('Zendesk Dashboard')); $this->loadLayout(); @@ -629,7 +629,7 @@ public function ticketsAllAction() { $isAjax = Mage::app()->getRequest()->isAjax(); if ($isAjax) { - $this->storeDependenciesInCachedRegistry(); + Mage::helper('zendesk')->storeDependenciesInCachedRegistry(); $this->getResponse()->setBody($this->getLayout()->createBlock('zendesk/adminhtml_dashboard_tab_tickets_grid_all')->toHtml()); } } @@ -638,7 +638,7 @@ public function ticketsViewAction() { $isAjax = Mage::app()->getRequest()->isAjax(); if ($isAjax) { - $this->storeDependenciesInCachedRegistry(); + Mage::helper('zendesk')->storeDependenciesInCachedRegistry(); $viewId = (int) $this->getRequest()->getParam('viewid'); Mage::register('zendesk_tickets_view', $viewId); @@ -646,26 +646,6 @@ public function ticketsViewAction() { } } - protected function storeDependenciesInCachedRegistry() { - $cache = Mage::app()->getCache(); - - if( $cache->load('zendesk_users') === false) { - $users = serialize( Mage::getModel('zendesk/api_users')->all() ); - $cache->save($users, 'zendesk_users', array('zendesk', 'zendesk_users'), 300); - } - - if( $cache->load('zendesk_groups') === false) { - $groups = serialize( Mage::getModel('zendesk/api_groups')->all() ); - $cache->save($groups, 'zendesk_groups', array('zendesk', 'zendesk_groups'), 1200); - } - - $users = unserialize( $cache->load('zendesk_users') ); - $groups = unserialize( $cache->load('zendesk_groups') ); - - Mage::register('zendesk_users', $users); - Mage::register('zendesk_groups', $groups); - } - protected function getMassActionResponse($response, $ids, $message = '%d out of %d ticket(s) were updated.') { if (isset($response['job_status']) && isset($response['job_status']['url'])) {