// add push

This commit is contained in:
Rémi Gaillard
2013-09-04 19:33:05 +02:00
parent 114b86ed43
commit 6e3d24b567
6 changed files with 95 additions and 6 deletions
@@ -25,7 +25,7 @@
<script> <script>
var dashboard_ajax_url = '{$link->getAdminLink('AdminDashboard')}'; var dashboard_ajax_url = '{$link->getAdminLink('AdminDashboard')}';
var no_results_translation = '{l s='No result'}'; var use_push = 1;
</script> </script>
<div class="page-head"> <div class="page-head">
View File
+27
View File
@@ -2572,6 +2572,33 @@ exit;
} }
return $fileAttachment; return $fileAttachment;
} }
public static function changeFileMTime($file_name, $time = null)
{
if ($time === null)
$time = time();
touch($file_name, $time);
}
public static function waitUntilFileIsModified($file_name, $timeout = 180)
{
@ini_set('max_execution_time', $timeout);
if (($time_limit = ini_get('max_execution_time')) === null)
$time_limit = 30;
$time_limit -= 5;
$start_time = microtime(true);
$last_modified = filemtime($file_name);
while(true)
{
if (((microtime(true) - $start_time) > $time_limit) || filemtime($file_name) > $last_modified)
break;
clearstatcache();
usleep(300);
}
}
} }
/** /**
@@ -71,16 +71,17 @@ class AdminDashboardControllerCore extends AdminController
); );
return parent::renderView(); return parent::renderView();
} }
public function ajaxProcessRefreshDashboard() public function ajaxProcessRefreshDashboard()
{ {
$id_module = null; $id_module = null;
if ($module = Tools::getValue('module')) if ($module = Tools::getValue('module'))
$id_module = Module::getInstanceByName($module)->id; $id_module = Module::getInstanceByName($module)->id;
$params = array( $params = array(
'date_from' => $this->context->employee->stats_date_from, 'date_from' => $this->context->employee->stats_date_from,
'date_to' => $this->context->employee->stats_date_to, 'date_to' => $this->context->employee->stats_date_to,
'use_push' => (int)Tools::getValue('use_push')
); );
die(Tools::jsonEncode(Hook::exec('dashboardData', $params, $id_module, true))); die(Tools::jsonEncode(Hook::exec('dashboardData', $params, $id_module, true)));
+23
View File
@@ -24,8 +24,31 @@
$(document).ready( function () { $(document).ready( function () {
refreshDashbard(); refreshDashbard();
if (use_push)
launchPush();
}); });
function launchPush()
{
$.ajax({
url : dashboard_ajax_url,
data : {
ajax:true,
action:'refreshDashboard',
module:'dashactivity',
use_push:1,
},
dataType: 'json',
success : function(widgets){
for (var name in widgets)
{
for (data_type in widgets[name])
window[data_type](widgets[name][data_type]);
}
launchPush();
},
});
}
function refreshDashbard(module_name) function refreshDashbard(module_name)
{ {
+41 -3
View File
@@ -36,13 +36,23 @@ class Dashactivity extends Module
$this->tab = ''; $this->tab = '';
$this->version = '0.1'; $this->version = '0.1';
$this->author = 'PrestaShop'; $this->author = 'PrestaShop';
$this->push_filename = _PS_CACHE_DIR_.'push/activity';
parent::__construct(); parent::__construct();
} }
public function install() public function install()
{ {
if (!parent::install() || !$this->registerHook('dashboardZoneOne') || !$this->registerHook('dashboardData')) if (!parent::install()
|| !$this->registerHook('dashboardZoneOne')
|| !$this->registerHook('dashboardData')
|| !$this->registerHook('actionObjectOrderAddAfter')
|| !$this->registerHook('actionObjectCustomerAddAfter')
|| !$this->registerHook('actionObjectCustomerMessageAddAfter')
|| !$this->registerHook('actionObjectCustomerThreadAddAfter')
|| !$this->registerHook('actionObjectOrderReturnAddAfter')
)
return false; return false;
return true; return true;
} }
@@ -54,6 +64,9 @@ class Dashactivity extends Module
public function hookDashboardData($params) public function hookDashboardData($params)
{ {
if ($params['use_push'])
Tools::waitUntilFileIsModified($this->push_filename, 30);
$gapi = Module::isInstalled('gapi') ? Module::getInstanceByName('gapi') : false; $gapi = Module::isInstalled('gapi') ? Module::getInstanceByName('gapi') : false;
if (Validate::isLoadedObject($gapi) && $gapi->isConfigured()) if (Validate::isLoadedObject($gapi) && $gapi->isConfigured())
{ {
@@ -187,4 +200,29 @@ class Dashactivity extends Module
) )
); );
} }
}
public function hookActionObjectCustomerMessageAddAfter($params)
{
return $this->hookActionObjectOrderAddAfter($params);
}
public function hookActionObjectCustomerThreadAddAfter($params)
{
return $this->hookActionObjectOrderAddAfter($params);
}
public function hookActionObjectCustomerAddAfter($params)
{
return $this->hookActionObjectOrderAddAfter($params);
}
public function hookActionObjectOrderReturnAddAfter($params)
{
return $this->hookActionObjectOrderAddAfter($params);
}
public function hookActionObjectOrderAddAfter($params)
{
Tools::changeFileMTime($this->push_filename);
}
}