* Fix bug#37283

This commit is contained in:
zenggang
2023-08-15 08:12:16 +00:00
parent ccc2514810
commit 1b3ef26bd2
5 changed files with 25 additions and 18 deletions
+12
View File
@@ -223,6 +223,18 @@ class job extends control
$this->view->repo = $this->loadModel('repo')->getByID($job->repo);
if($repo->SCM == 'Gitlab') $this->view->refList = $this->loadModel('gitlab')->getReferenceOptions($repo->gitService, $repo->project);
if($repo->SCM == 'Subversion')
{
$dirs = array();
$tags = $this->loadModel('svn')->getRepoTags($repo, $path);
if($tags)
{
$path = empty($repo->prefix) ? '/' : $this->repo->decodePath('');
$dirs['/'] = $this->loadrepo->encodePath($path);
foreach($tags as $dirPath => $dirName) $dirs[$dirPath] = $this->repo->encodePath($dirPath);
}
$this->view->dirs = $dirs;
}
$repoList = $this->repo->getList($this->projectID);
$repoPairs = array(0 => '', $repo->id => $repo->name);
+1 -1
View File
@@ -99,7 +99,7 @@ function changeRepo(event)
else
{
$('.reference').removeClass('gitRepo');
if($('#triggerType').val() == 'tag') $('.svn-fields').removeClass('hidden');
if($('[name=triggerType]').val() == 'tag') $('.svn-fields').removeClass('hidden');
$('#svnDir').remove();
$('#svnDirBox').append("<div class='load-indicator loading'></div>");
+1 -8
View File
@@ -91,7 +91,7 @@ function changeRepo(event)
else
{
$('.reference').removeClass('gitRepo');
if($('#triggerType').val() == 'tag') $('.svn-fields').removeClass('hidden');
if($('[name=triggerType]').val() == 'tag') $('.svn-fields').removeClass('hidden');
$('#svnDir').remove();
$('#svnDirBox').append("<div class='load-indicator loading'></div>");
@@ -108,13 +108,6 @@ function changeRepo(event)
$('#svnDirBox').append(html);
})
}
var triggerOptions = $('#triggerType').zui('picker').options.items;
for(i in triggerOptions)
{
if(triggerOptions[i].value == 'tag') triggerOptions[i].text = data.type == 'gitlab' ? buildTag : dirChange;
}
$('#triggerType').zui('picker').render({items: triggerOptions});
}
});
+8 -8
View File
@@ -179,6 +179,7 @@ class jobModel extends model
->remove('repoType,reference')
->cleanInt('product')
->get();
$repo = $this->loadModel('repo')->getByID($job->repo);
if($job->engine == 'jenkins')
{
@@ -188,7 +189,6 @@ class jobModel extends model
if(strtolower($job->engine) == 'gitlab')
{
$repo = $this->loadModel('repo')->getByID($job->repo);
$project = zget($repo, 'project');
if($job->repo && !empty($repo))
{
@@ -240,7 +240,7 @@ class jobModel extends model
if($job->triggerType == 'schedule') $job->atDay = empty($_POST['atDay']) ? '' : implode(',', $this->post->atDay);
$job->svnDir = '';
if($job->triggerType == 'tag' and $this->post->repoType == 'Subversion')
if($job->triggerType == 'tag' and $repo->SCM == 'Subversion')
{
$job->svnDir = array_pop($_POST['svnDir']);
if($job->svnDir == '/' and $_POST['svnDir']) $job->svnDir = array_pop($_POST['svnDir']);
@@ -275,14 +275,14 @@ class jobModel extends model
->batchCheckIF($job->triggerType === 'schedule' and $job->atDay !== '0', "atDay", 'notempty')
->batchCheckIF($job->triggerType === 'schedule', "atTime", 'notempty')
->batchCheckIF($job->triggerType === 'commit', "comment", 'notempty')
->batchCheckIF(($this->post->repoType == 'Subversion' and $job->triggerType == 'tag'), "svnDir", 'notempty')
->batchCheckIF(($repo->SCM == 'Subversion' and $job->triggerType == 'tag'), "svnDir", 'notempty')
->batchCheckIF($job->frame === 'sonarqube', "sonarqubeServer,projectKey", 'notempty')
->autoCheck()
->exec();
if(dao::isError()) return false;
$id = $this->dao->lastInsertId();
if(strtolower($job->engine) == 'jenkins') $this->initJob($id, $job, $this->post->repoType);
if(strtolower($job->engine) == 'jenkins') $this->initJob($id, $job, $repo->SCM);
return $id;
}
@@ -305,6 +305,7 @@ class jobModel extends model
->add('editedDate', helper::now())
->remove('repoType,reference')
->get();
$repo = $this->loadModel('repo')->getByID($job->gitlabRepo);
if($job->engine == 'jenkins')
{
@@ -314,7 +315,6 @@ class jobModel extends model
if(strtolower($job->engine) == 'gitlab')
{
$repo = $this->loadModel('repo')->getByID($job->gitlabRepo);
$project = zget($repo, 'project');
if(!empty($repo))
{
@@ -367,7 +367,7 @@ class jobModel extends model
if($job->triggerType == 'schedule') $job->atDay = empty($_POST['atDay']) ? '' : implode(',', $this->post->atDay);
$job->svnDir = '';
if($job->triggerType == 'tag' and $this->post->repoType == 'Subversion')
if($job->triggerType == 'tag' and $repo->SCM == 'Subversion')
{
$job->svnDir = array_pop($_POST['svnDir']);
if($job->svnDir == '/' and $_POST['svnDir']) $job->svnDir = array_pop($_POST['svnDir']);
@@ -403,14 +403,14 @@ class jobModel extends model
->batchCheckIF($job->triggerType === 'schedule' and $job->atDay !== '0', "atDay", 'notempty')
->batchCheckIF($job->triggerType === 'schedule', "atTime", 'notempty')
->batchCheckIF($job->triggerType === 'commit', "comment", 'notempty')
->batchCheckIF(($this->post->repoType == 'Subversion' and $job->triggerType == 'tag'), "svnDir", 'notempty')
->batchCheckIF(($repo->SCM == 'Subversion' and $job->triggerType == 'tag'), "svnDir", 'notempty')
->batchCheckIF($job->frame === 'sonarqube', "sonarqubeServer,projectKey", 'notempty')
->autoCheck()
->where('id')->eq($id)
->exec();
if(dao::isError()) return false;
$this->initJob($id, $job, $this->post->repoType);
$this->initJob($id, $job, $repo->SCM);
return true;
}
+3 -1
View File
@@ -146,7 +146,7 @@ formPanel
set::label($lang->job->branch),
set::required(true),
set::name('reference'),
set::items($refList),
set::items(!empty($refList) ? $refList : array()),
set::value(isset($job->reference) ? $job->reference : ''),
),
),
@@ -183,6 +183,8 @@ formPanel
set::name('svnDir[]'),
set::label($lang->job->svnDir),
set::control('select'),
set::items(!empty($dirs) ? $dirs : array()),
set::value($job->svnDir),
),
),
formRow