diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 44c6f8f36a..e5046d4280 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -1404,6 +1404,7 @@ $lang->resource->sonarqube->browseProject = 'browseProject'; $lang->resource->sonarqube->deleteProject = 'deleteProject'; $lang->resource->sonarqube->execJob = 'execJob'; $lang->resource->sonarqube->reportView = 'reportView'; +$lang->resource->sonarqube->browseIssue = 'browseIssue'; $lang->sonarqube->methodOrder[5] = 'browse'; $lang->sonarqube->methodOrder[10] = 'create'; @@ -1412,6 +1413,8 @@ $lang->sonarqube->methodOrder[20] = 'delete'; $lang->sonarqube->methodOrder[25] = 'browseProject'; $lang->sonarqube->methodOrder[35] = 'deleteProject'; $lang->sonarqube->methodOrder[40] = 'execJob'; +$lang->sonarqube->methodOrder[45] = 'reportView'; +$lang->sonarqube->methodOrder[50] = 'browseIssue'; /* merge request. */ $lang->resource->mr = new stdclass(); diff --git a/module/sonarqube/control.php b/module/sonarqube/control.php index f30170956e..215056b83d 100644 --- a/module/sonarqube/control.php +++ b/module/sonarqube/control.php @@ -86,6 +86,7 @@ class sonarqube extends control $this->view->measures = $measures; $this->view->qualitygate = $qualitygate; $this->view->projectName = $projectName; + $this->view->sonarqubeID = $job->sonarqubeServer; $this->display(); } @@ -269,14 +270,19 @@ class sonarqube extends control $pager = new pager($recTotal, $recPerPage, $pageID); $sonarqubeProjectList = array_chunk($sonarqubeProjectList, $pager->recPerPage); + /* Get success jobs of sonarqube.*/ + $projectJobPairs = $this->loadModel('job')->getJobBySonarqubeProject($sonarqubeID, $projectKeyList); + $successJobs = $this->loadModel('compile')->getSuccessJobs($projectJobPairs); + $this->view->sonarqube = $this->loadModel('pipeline')->getByID($sonarqubeID); $this->view->keyword = urldecode(urldecode($keyword)); $this->view->pager = $pager; $this->view->title = $this->lang->sonarqube->common . $this->lang->colon . $this->lang->sonarqube->browseProject; $this->view->sonarqubeID = $sonarqubeID; $this->view->sonarqubeProjectList = (empty($sonarqubeProjectList) or empty($sonarqubeProjectList[$pageID - 1])) ? array() : $sonarqubeProjectList[$pageID - 1]; - $this->view->projectJobPairs = $this->loadModel('job')->getJobBySonarqubeProject($sonarqubeID, $projectKeyList); + $this->view->projectJobPairs = $projectJobPairs; $this->view->orderBy = $orderBy; + $this->view->successJobs = $successJobs; $this->display(); } diff --git a/module/sonarqube/lang/en.php b/module/sonarqube/lang/en.php index e3f1f3c00b..a14e263602 100644 --- a/module/sonarqube/lang/en.php +++ b/module/sonarqube/lang/en.php @@ -14,6 +14,7 @@ $lang->sonarqube->placeholderSearch = 'Project name'; $lang->sonarqube->execJob = "Exec SonarQube Job"; $lang->sonarqube->desc = 'Description'; $lang->sonarqube->reportView = "SonarQube Report"; +$lang->sonarqube->browseIssue = "SonarQube Issue List"; $lang->sonarqube->id = 'ID'; $lang->sonarqube->name = "Server Name"; diff --git a/module/sonarqube/lang/zh-cn.php b/module/sonarqube/lang/zh-cn.php index 583300c3cd..40750f815f 100644 --- a/module/sonarqube/lang/zh-cn.php +++ b/module/sonarqube/lang/zh-cn.php @@ -14,6 +14,7 @@ $lang->sonarqube->placeholderSearch = '请输入项目名称'; $lang->sonarqube->execJob = "执行SonarQube任务"; $lang->sonarqube->desc = '描述'; $lang->sonarqube->reportView = "SonarQube报告"; +$lang->sonarqube->browseIssue = "SonarQube问题列表"; $lang->sonarqube->id = 'ID'; $lang->sonarqube->name = "服务器名称"; diff --git a/module/sonarqube/view/browseproject.html.php b/module/sonarqube/view/browseproject.html.php index f068913912..9e769f166d 100644 --- a/module/sonarqube/view/browseproject.html.php +++ b/module/sonarqube/view/browseproject.html.php @@ -49,7 +49,7 @@ sonarqube->projectKey);?> sonarqube->projectName);?> sonarqube->projectlastAnalysis);?> - actions;?> + actions;?> @@ -67,6 +67,7 @@ { $jobID = $projectJobPairs[$sonarqubeProject->key]; common::printIcon('sonarqube', 'execJob', "jobID=$jobID", '', 'list', 'sonarqube', 'hiddenwin'); + if(in_array($jobID, $successJobs)) common::printIcon('sonarqube', 'reportView', "jobID=$jobID", '', 'list', 'audit', '', 'iframe', true); } ?> diff --git a/module/sonarqube/view/reportview.html.php b/module/sonarqube/view/reportview.html.php index e64ed8387e..801902d98b 100644 --- a/module/sonarqube/view/reportview.html.php +++ b/module/sonarqube/view/reportview.html.php @@ -19,7 +19,7 @@

- + createLink('sonarqube', 'browseIssue', "sonarqubeID={$sonarqubeID}&project={$projectName}"), $projectName, '_parent') : $projectName;?> projectStatus->status) and $qualitygate->projectStatus->status != 'NONE'):?> sonarqube->qualitygateList, $qualitygate->projectStatus->status);?>