Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/API/DataTableGenericFilter.php')
-rw-r--r--core/API/DataTableGenericFilter.php23
1 files changed, 14 insertions, 9 deletions
diff --git a/core/API/DataTableGenericFilter.php b/core/API/DataTableGenericFilter.php
index d339a080e7..c8843059c6 100644
--- a/core/API/DataTableGenericFilter.php
+++ b/core/API/DataTableGenericFilter.php
@@ -58,7 +58,8 @@ class Piwik_API_DataTableGenericFilter
'filter_add_columns_when_show_all_columns' => array('integer')
),
'UpdateColumnsWhenShowAllGoals' => array(
- 'filter_update_columns_when_show_all_goals' => array('integer')
+ 'filter_update_columns_when_show_all_goals' => array('integer'),
+ 'filter_only_display_idgoal' => array('integer', Piwik_DataTable_Filter_UpdateColumnsWhenShowAllGoals::GOALS_OVERVIEW),
),
'Sort' => array(
'filter_sort_column' => array('string'),
@@ -84,15 +85,23 @@ class Piwik_API_DataTableGenericFilter
if($datatable instanceof Piwik_DataTable_Array )
{
$tables = $datatable->getArray();
+ $filterWasApplied = false;
foreach($tables as $table)
{
- $this->applyGenericFilters($table);
+ $filterWasApplied = $this->applyGenericFilters($table);
+ // if no generic filter was applied to the first table, we can return
+ // as no filter would be applied to any other dataTable
+ if(!$filterWasApplied)
+ {
+ return;
+ }
}
return;
}
$genericFilters = self::getGenericFiltersInformation();
+ $filterApplied = false;
foreach($genericFilters as $filterName => $parameters)
{
$filterParameters = array();
@@ -123,18 +132,14 @@ class Piwik_API_DataTableGenericFilter
if(!$exceptionRaised)
{
- // a generic filter class name must follow this pattern
- $class = "Piwik_DataTable_Filter_".$filterName;
if($filterName == 'Limit')
{
$datatable->setRowsCountBeforeLimitFilter();
}
- // build the set of parameters for the filter
- $filterParameters = array_merge(array($datatable), $filterParameters);
- // use Reflection to create a new instance of the filter, given parameters $filterParameters
- $reflectionObj = new ReflectionClass($class);
- $filter = $reflectionObj->newInstanceArgs($filterParameters);
+ $datatable->filter($filterName, $filterParameters);
+ $filterApplied = true;
}
}
+ return $filterApplied;
}
}