diff --git a/module/screen/control.php b/module/screen/control.php index 49df97e4f3..81f5967d51 100644 --- a/module/screen/control.php +++ b/module/screen/control.php @@ -141,6 +141,8 @@ class screen extends control foreach($filters as $index => $filter) { + if($filterParams[$index]['default'] === null) continue; + $default = isset($filterParams[$index]['default']) ? $filterParams[$index]['default'] : null; $filterType = $filter['type']; if($filterType == 'date' or $filterType == 'datetime') @@ -188,7 +190,7 @@ class screen extends control if($type == 'metric') { - $chartData = $this->screen->genMetricComponent($chart, $component, $filterParams); + $chartData = $this->screen->genMetricComponent($chart, $component, (array)$filterParams); } else { diff --git a/module/screen/model.php b/module/screen/model.php index f6d3c851dc..ffa0def1fd 100644 --- a/module/screen/model.php +++ b/module/screen/model.php @@ -234,13 +234,13 @@ class screenModel extends model /** * Generate metric component. * - * @param object $metric - * @param object $component - * @param object $filterParams + * @param object $metric + * @param object|null $component + * @param array $filterParams * @access public * @return object */ - public function genMetricComponent($metric, $component = null, $filterParams = null) + public function genMetricComponent($metric, $component = null, $filterParams = array()) { list($component, $typeChanged) = $this->initMetricComponent($metric, $component); @@ -1593,6 +1593,8 @@ class screenModel extends model * Get option of metric chart. * * @param object $metric + * @param array $resultHeader + * @param array $resultData * @access public * @return object */ @@ -1611,11 +1613,13 @@ class screenModel extends model * Get option of metric table. * * @param object $metric - * @param object $filterParams + * @param array $resultHeader + * @param array $resultData + * @param array $filterParams * @access public * @return object */ - public function getMetricTableOption($metric, $resultHeader, $resultData, $filterParams = null) + public function getMetricTableOption($metric, $resultHeader, $resultData, $filterParams = array()) { $this->loadModel('metric'); @@ -1642,16 +1646,19 @@ class screenModel extends model * Filter metric data. * * @param array $data - * @param array $filter + * @param array $filters * @access public * @return array */ - public function filterMetricData($data, $filters = null) + public function filterMetricData($data, $filters = array()) { + $filters = array_filter($filters, function($item) + { + return $item['default'] !== null; + }); if(empty($filters)) return $data; $objectPairs = $this->loadModel('metric')->getPairsByScope($filters[0]['field']); - $filteredData = array(); foreach($data as $row) {