* Fix switch metric after filter,bug#38652,task#103053.

This commit is contained in:
qixinzhi
2023-09-20 03:26:25 +00:00
parent e0d26d9096
commit c86d07d6af
3 changed files with 19 additions and 15 deletions
+13 -12
View File
@@ -102,13 +102,13 @@ class metric extends control
* @access public
* @return void
*/
public function preview($scope = 'project', $viewType = 'single', $metricID = 0, $filters = '')
public function preview($scope = 'project', $viewType = 'single', $metricID = 0, $filtersBase64 = '')
{
$this->metric->processScopeList('released');
if($scope == 'filter')
{
$filters = json_decode(base64_decode($filters), true);
$filters = json_decode(base64_decode($filtersBase64), true);
if(!is_array($filters)) $filters = array();
$metrics = $this->metric->getListByFilter($filters, 'released');
}
@@ -133,16 +133,17 @@ class metric extends control
$resultData = $this->metricZen->getViewTableData($metric, $result);
}
$this->view->metrics = $metrics;
$this->view->current = $current;
$this->view->metricList = $this->lang->metric->metricList;
$this->view->scope = $scope;
$this->view->title = $this->lang->metric->common;
$this->view->viewType = $viewType;
$this->view->recTotal = count($metrics);
$this->view->filters = $filters;
$this->view->resultHeader = $resultHeader;
$this->view->resultData = $resultData;
$this->view->metrics = $metrics;
$this->view->current = $current;
$this->view->metricList = $this->lang->metric->metricList;
$this->view->scope = $scope;
$this->view->title = $this->lang->metric->common;
$this->view->viewType = $viewType;
$this->view->recTotal = count($metrics);
$this->view->filters = $filters;
$this->view->filtersBase64 = $filtersBase64;
$this->view->resultHeader = $resultHeader;
$this->view->resultData = $resultData;
$this->display();
}
+1 -1
View File
@@ -239,7 +239,7 @@ window.handleFilterClick = function()
});
return;
}
loadPage($.createLink('metric', 'preview', 'scope=filter&viewType=' + viewType + '&metricID=0&filters=' + filterBase64));
loadPage($.createLink('metric', 'preview', 'scope=filter&viewType=' + viewType + '&metricID=0&filtersBase64=' + filterBase64));
}
window.afterPageUpdate = function($target, info, options)
+5 -2
View File
@@ -10,18 +10,21 @@ declare(strict_types=1);
*/
namespace zin;
$fnGenerateSide = function() use($metrics, $current, $viewType, $scope)
$fnGenerateSide = function() use($metrics, $current, $viewType, $scope, $filtersBase64)
{
$metricList = array();
foreach($metrics as $key => $metric)
{
$class = $metric->id == $current->id ? 'metric-current' : '';
$params = "scope=$scope&viewType=$viewType&metricID={$metric->id}";
if(!empty($filtersBase64)) $params .= "&filtersBase64={$filtersBase64}";
$metricList[] = li
(
set::className($class . ' metric-item font-medium'),
a(
$metric->name,
set::href(helper::createLink('metric', 'preview', "scope=$scope&viewType=$viewType&metricID={$metric->id}")),
set::href(helper::createLink('metric', 'preview', $params)),
)
);
}