diff --git a/module/metric/config.php b/module/metric/config.php index 6da743af6f..39f82b4823 100644 --- a/module/metric/config.php +++ b/module/metric/config.php @@ -9,6 +9,9 @@ $config->metric->orMetricList = array('count_of_assigned_demand_in_user'); $config->metric->maxSelectNum = 10; +$config->metric->collapseList = array('codebase', 'pipeline', 'artifact', 'deployment', 'node', 'application', 'cpu', 'memory', 'commit', 'mergeRequest', 'code', 'vulnerability', 'codeAnalysis'); +if(in_array($config->edition, array('max', 'ipd'))) $config->metric->collapseList = array_merge($config->metric->collapseList, array('risk', 'issue')); + global $lang; $this->loadLang('metric'); $config->metric->actionList = array(); diff --git a/module/metric/js/preview.ui.js b/module/metric/js/preview.ui.js index 6135f7d247..896f93bcf4 100644 --- a/module/metric/js/preview.ui.js +++ b/module/metric/js/preview.ui.js @@ -743,3 +743,16 @@ window.toggleSearchBtn = function(active = null) } } } + +window.collapseFilters = function() +{ + $('.collapse-icon').toggleClass('icon-chevron-double-up'); + $('.collapse-icon').toggleClass('icon-chevron-double-down'); + + $('[data-collapse=true]').parent('.checkbox-primary').toggleClass('hidden'); +} + +$(document).ready(function() +{ + $('[data-collapse=true]').parent('.checkbox-primary').addClass('hidden'); +}) diff --git a/module/metric/model.php b/module/metric/model.php index 7085f2c3a2..0cf898912e 100755 --- a/module/metric/model.php +++ b/module/metric/model.php @@ -1601,7 +1601,8 @@ class metricModel extends model foreach($this->lang->metric->objectList as $value => $text) { $isChecked = (isset($filters['object']) and in_array($value, $filters['object'])); - $objectItems[] = array('text' => $text, 'value' => $value, 'onchange' => $onchange, 'checked' => $isChecked); + $collapse = in_array($value, $this->config->metric->collapseList) && !$isChecked; + $objectItems[] = array('text' => $text, 'value' => $value, 'onchange' => $onchange, 'checked' => $isChecked, 'data-collapse' => $collapse); } $filterItems['object'] = array ( diff --git a/module/metric/ui/component/filterpanel.html.php b/module/metric/ui/component/filterpanel.html.php index d05375502e..42c0d05309 100644 --- a/module/metric/ui/component/filterpanel.html.php +++ b/module/metric/ui/component/filterpanel.html.php @@ -34,6 +34,12 @@ $fnGenerateFilterBlock = function($code, $filterItem) use($lang) set::inline(true), set::items($items) ), + $code == 'object' ? icon + ( + 'chevron-double-down', + setClass('pull-right collapse-icon'), + on::click('collapseFilters') + ) : null, set::headingActions(array($removeAction)) ); };