Skip to content
Extraits de code Groupes Projets
Valider c097f42a rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

refs #1816 by generating total values before the generic filters, we only have...

refs #1816 by generating total values before the generic filters, we only have to request the first level dataTable in case it is a subtable
parent 5e569492
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -62,7 +62,7 @@ class Totals extends DataTableManipulator ...@@ -62,7 +62,7 @@ class Totals extends DataTableManipulator
$this->totalValues = array(); $this->totalValues = array();
$metricsToCalculate = Metrics::getMetricIdsToProcessRatio(); $metricsToCalculate = Metrics::getMetricIdsToProcessReportTotal();
$parentTable = $this->getFirstLevelDataTable($dataTable); $parentTable = $this->getFirstLevelDataTable($dataTable);
foreach ($metricsToCalculate as $metricId) { foreach ($metricsToCalculate as $metricId) {
...@@ -126,6 +126,10 @@ class Totals extends DataTableManipulator ...@@ -126,6 +126,10 @@ class Totals extends DataTableManipulator
protected function getFirstLevelDataTable($table) protected function getFirstLevelDataTable($table)
{ {
if (!array_key_exists('idSubtable', $this->request)) {
return $table;
}
$firstLevelReport = array(); $firstLevelReport = array();
foreach ($this->getReportMetadata() as $report) { foreach ($this->getReportMetadata() as $report) {
if (!empty($report['actionToLoadSubTables']) if (!empty($report['actionToLoadSubTables'])
......
...@@ -300,17 +300,17 @@ class ResponseBuilder ...@@ -300,17 +300,17 @@ class ResponseBuilder
$datatable = $flattener->flatten($datatable); $datatable = $flattener->flatten($datatable);
} }
if (1 == Common::getRequestVar('totals', '1', 'integer', $this->request)) {
$genericFilter = new Totals($this->apiModule, $this->apiMethod, $this->request);
$datatable = $genericFilter->generate($datatable);
}
// if the flag disable_generic_filters is defined we skip the generic filters // if the flag disable_generic_filters is defined we skip the generic filters
if (0 == Common::getRequestVar('disable_generic_filters', '0', 'string', $this->request)) { if (0 == Common::getRequestVar('disable_generic_filters', '0', 'string', $this->request)) {
$genericFilter = new DataTableGenericFilter($this->request); $genericFilter = new DataTableGenericFilter($this->request);
$genericFilter->filter($datatable); $genericFilter->filter($datatable);
} }
if (1 == Common::getRequestVar('totals', '1', 'integer', $this->request)) {
$genericFilter = new Totals($this->apiModule, $this->apiMethod, $this->request);
$datatable = $genericFilter->generate($datatable);
}
// we automatically safe decode all datatable labels (against xss) // we automatically safe decode all datatable labels (against xss)
$datatable->queueFilter('SafeDecodeLabel'); $datatable->queueFilter('SafeDecodeLabel');
......
...@@ -298,15 +298,9 @@ class Metrics ...@@ -298,15 +298,9 @@ class Metrics
return $columnIdRaw; return $columnIdRaw;
} }
static public function getMetricIdsToProcessRatio() static public function getMetricIdsToProcessReportTotal()
{ {
return array( return array(
self::$mappingFromIdToNameGoal[self::INDEX_GOAL_REVENUE],
self::$mappingFromIdToNameGoal[self::INDEX_GOAL_ECOMMERCE_REVENUE_SUBTOTAL],
self::$mappingFromIdToNameGoal[self::INDEX_GOAL_ECOMMERCE_REVENUE_TAX],
self::$mappingFromIdToNameGoal[self::INDEX_GOAL_ECOMMERCE_REVENUE_SHIPPING],
self::$mappingFromIdToNameGoal[self::INDEX_GOAL_ECOMMERCE_REVENUE_DISCOUNT],
self::$mappingFromIdToNameGoal[self::INDEX_GOAL_ECOMMERCE_ITEMS],
self::INDEX_NB_VISITS, self::INDEX_NB_VISITS,
self::INDEX_NB_UNIQ_VISITORS, self::INDEX_NB_UNIQ_VISITORS,
self::INDEX_NB_ACTIONS, self::INDEX_NB_ACTIONS,
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter