Merge branch 'devops_caoyanyi_bug' into devops19
This commit is contained in:
@@ -123,7 +123,7 @@ class job extends control
|
||||
$this->view->products = array(0 => '') + $this->loadModel('product')->getProductPairsByProject($this->projectID);
|
||||
|
||||
$this->view->jenkinsServerList = array('' => '') + $this->loadModel('jenkins')->getPairs();
|
||||
$this->view->sonarqubeServerList = array('' => '') + $this->loadModel('sonarqube')->getPairs();
|
||||
$this->view->sonarqubeServerList = array('') + $this->loadModel('sonarqube')->getPairs();
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -202,9 +202,9 @@ class job extends control
|
||||
$this->view->repoTypes = $repoTypes;
|
||||
$this->view->repoType = zget($repoTypes, $job->repo, 'Git');
|
||||
$this->view->job = $job;
|
||||
$this->view->products = array(0 => '') + $products;
|
||||
$this->view->products = array('') + $products;
|
||||
$this->view->jenkinsServerList = $this->loadModel('jenkins')->getPairs();
|
||||
$this->view->sonarqubeServerList = array('' => '') + $this->loadModel('sonarqube')->getPairs();
|
||||
$this->view->sonarqubeServerList = array('') + $this->loadModel('sonarqube')->getPairs();
|
||||
$this->view->pipelines = $this->jenkins->getTasks($job->server);
|
||||
|
||||
$this->display();
|
||||
@@ -430,10 +430,10 @@ class job extends control
|
||||
*/
|
||||
public function ajaxCheckSonarqubeLink($repoID, $jobID = 0)
|
||||
{
|
||||
$repo = $this->loadModel('job')->getSonarqubeByRepo(array($repoID), $jobID);
|
||||
if(!empty($repo))
|
||||
$repo = $this->loadModel('job')->getSonarqubeByRepo(array($repoID), $jobID, true);
|
||||
if(!empty($repo))
|
||||
{
|
||||
$message = sprintf($this->lang->job->repoExists, $repo[$repoID]->id . '-' . $repo[$repoID]->name);
|
||||
$message = $repo[$repoID]->deleted ? $this->lang->job->jobIsDeleted : sprintf($this->lang->job->repoExists, $repo[$repoID]->id . '-' . $repo[$repoID]->name);
|
||||
$this->send(array('result' => 'fail', 'message' => $message));
|
||||
}
|
||||
$this->send(array('result' => 'success', 'message' => ''));
|
||||
|
||||
@@ -18,6 +18,8 @@ $(document).ready(function()
|
||||
$('#frameBox .loading').remove();
|
||||
$('#frameBox .input-group').append(html);
|
||||
$('#frameBox #frame').chosen();
|
||||
|
||||
$('#frame').change();
|
||||
}
|
||||
getFrameSelect('');
|
||||
|
||||
@@ -241,10 +243,10 @@ $(document).ready(function()
|
||||
$('tr.gitlabRepo').hide();
|
||||
$('tr.commonRepo').show();
|
||||
}
|
||||
|
||||
getFrameSelect(engine);
|
||||
});
|
||||
|
||||
$('#engine').change();
|
||||
|
||||
$('#triggerType').change();
|
||||
});
|
||||
|
||||
@@ -57,7 +57,9 @@ $lang->job->sendExec = 'Send execute request success.';
|
||||
$lang->job->inputName = 'Please enter parameter name.';
|
||||
$lang->job->invalidName = 'The parameter name should be letters, numbers or underlines.';
|
||||
$lang->job->repoExists = 'This repository has a build task associated with it『%s』';
|
||||
$lang->job->projectExists = 'This SonarQube Project has a build task associated with it『%s』';
|
||||
$lang->job->mustUseJenkins = 'SonarQube frame is only used if the build engine is JenKins.';
|
||||
$lang->job->jobIsDeleted = 'This repository is associated with a build task, please view the data from the recycle bin';
|
||||
|
||||
$lang->job->buildTypeList['build'] = 'Only Build';
|
||||
$lang->job->buildTypeList['buildAndDeploy'] = 'Build And Deploy';
|
||||
|
||||
@@ -57,7 +57,9 @@ $lang->job->sendExec = '发送执行请求成功!执行结果:%s';
|
||||
$lang->job->inputName = '请输入参数名称。';
|
||||
$lang->job->invalidName = '参数名称应该是英文字母、数字或下划线的组合。';
|
||||
$lang->job->repoExists = '此版本库已关联构建任务『%s』';
|
||||
$lang->job->projectExists = '此SonarQube项目已关联构建任务『%s』';
|
||||
$lang->job->mustUseJenkins = 'SonarQube工具/框架仅在构建引擎为JenKins的情况下使用';
|
||||
$lang->job->jobIsDeleted = '此版本库已关联构建任务,请从回收站查看数据';
|
||||
|
||||
$lang->job->buildTypeList['build'] = '仅构建';
|
||||
$lang->job->buildTypeList['buildAndDeploy'] = '构建部署';
|
||||
|
||||
+33
-8
@@ -194,12 +194,23 @@ class jobModel extends model
|
||||
$sonarqubeJob = $this->getSonarqubeByRepo(array($job->repo));
|
||||
if(!empty($sonarqubeJob))
|
||||
{
|
||||
$message = sprintf($this->lang->job->repoExists, $repo[$repoID]->id . '-' . $repo[$repoID]->name);
|
||||
$message = sprintf($this->lang->job->repoExists, $sonarqubeJob[$job->repo]->id . '-' . $sonarqubeJob[$job->repo]->name);
|
||||
dao::$errors[]['repo'] = $message;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($job->projectKey) and $job->frame == 'sonarqube')
|
||||
{
|
||||
$projectList = $this->getJobBySonarqubeProject($job->sonarqubeServer, array($job->projectKey));
|
||||
if(!empty($projectList))
|
||||
{
|
||||
$message = sprintf($this->lang->job->projectExists, $projectList[$job->projectKey]->id);
|
||||
dao::$errors[]['projectKey'] = $message;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if($job->triggerType == 'schedule') $job->atDay = empty($_POST['atDay']) ? '' : join(',', $this->post->atDay);
|
||||
|
||||
$job->svnDir = '';
|
||||
@@ -300,12 +311,23 @@ class jobModel extends model
|
||||
$sonarqubeJob = $this->getSonarqubeByRepo(array($job->repo), $id);
|
||||
if(!empty($sonarqubeJob))
|
||||
{
|
||||
$message = sprintf($this->lang->job->repoExists, $repo[$repoID]->id . '-' . $repo[$repoID]->name);
|
||||
$message = sprintf($this->lang->job->repoExists, $sonarqubeJob[$job->repo]->id . '-' . $sonarqubeJob[$job->repo]->name);
|
||||
dao::$errors[]['repo'] = $message;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($job->projectKey) and $job->frame == 'sonarqube')
|
||||
{
|
||||
$projectList = $this->getJobBySonarqubeProject($job->sonarqubeServer, array($job->projectKey));
|
||||
if(!empty($projectList) && $projectList[$job->projectKey]->id != $id)
|
||||
{
|
||||
$message = sprintf($this->lang->job->projectExists, $projectList[$job->projectKey]->id);
|
||||
dao::$errors[]['projectKey'] = $message;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if($job->triggerType == 'schedule') $job->atDay = empty($_POST['atDay']) ? '' : join(',', $this->post->atDay);
|
||||
|
||||
$job->svnDir = '';
|
||||
@@ -581,15 +603,17 @@ class jobModel extends model
|
||||
* Get sonarqube by RepoID.
|
||||
*
|
||||
* @param array $repoIDList
|
||||
* @param int $jobID
|
||||
* @param bool $showDeleted
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getSonarqubeByRepo($repoIDList, $jobID = 0)
|
||||
public function getSonarqubeByRepo($repoIDList, $jobID = 0, $showDeleted = false)
|
||||
{
|
||||
return $this->dao->select('id,name,repo')->from(TABLE_JOB)
|
||||
->where('deleted')->eq('0')
|
||||
->andWhere('frame')->eq('sonarqube')
|
||||
return $this->dao->select('id,name,repo,deleted')->from(TABLE_JOB)
|
||||
->where('frame')->eq('sonarqube')
|
||||
->andWhere('repo')->in($repoIDList)
|
||||
->beginIF(!$showDeleted)->andWhere('deleted')->eq('0')->fi()
|
||||
->beginIF($jobID > 0)->andWhere('id')->ne($jobID)->fi()
|
||||
->fetchAll('repo');
|
||||
}
|
||||
@@ -599,16 +623,17 @@ class jobModel extends model
|
||||
*
|
||||
* @param int $sonarqubeID
|
||||
* @param array $projectKeys
|
||||
* @param bool $emptyShowAll
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getJobBySonarqubeProject($sonarqubeID, $projectKeys = array())
|
||||
public function getJobBySonarqubeProject($sonarqubeID, $projectKeys = array(), $emptyShowAll = false)
|
||||
{
|
||||
return $this->dao->select('projectKey,id')->from(TABLE_JOB)
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('frame')->eq('sonarqube')
|
||||
->andWhere('sonarqubeServer')->eq($sonarqubeID)
|
||||
->andWhere('projectKey')->in($projectKeys)
|
||||
->beginIF(!empty($projectKeys) or !$emptyShowAll)->andWhere('projectKey')->in($projectKeys)->fi()
|
||||
->fetchPairs();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,10 +60,16 @@ class sonarqube extends control
|
||||
*/
|
||||
public function ajaxGetProjectList($sonarqubeID, $projectKey = '')
|
||||
{
|
||||
$projectList = $this->loadModel('sonarqube')->apiGetProjects($sonarqubeID);
|
||||
$jobPairs = $this->loadModel('job')->getJobBySonarqubeProject($sonarqubeID, array(), true);
|
||||
$existsProject = array_diff(array_keys($jobPairs), array($projectKey));
|
||||
|
||||
$projectList = $this->sonarqube->apiGetProjects($sonarqubeID);
|
||||
|
||||
$projectPairs = array('' => '');
|
||||
foreach($projectList as $project) $projectPairs[$project->key] = $project->name;
|
||||
foreach($projectList as $project)
|
||||
{
|
||||
if(!empty($project) and !in_array($project->key, $existsProject)) $projectPairs[$project->key] = $project->name;
|
||||
}
|
||||
|
||||
echo html::select('projectKey', $projectPairs, str_replace('*', '-', $projectKey), "class='form-control chosen'");
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ class sonarqubeModel extends model
|
||||
public function getApiBase($sonarqubeID)
|
||||
{
|
||||
$sonarqube = $this->getByID($sonarqubeID);
|
||||
if(!$sonarqube) return '';
|
||||
if(!$sonarqube) return array('', array());
|
||||
|
||||
$url = rtrim($sonarqube->url, '/') . '/api/%s';
|
||||
$header[] = 'Authorization: Basic ' . $sonarqube->token;
|
||||
|
||||
Reference in New Issue
Block a user