From 82640f28f48286a560f41a4f3b85103ab91e20f6 Mon Sep 17 00:00:00 2001 From: zenggang Date: Fri, 11 Aug 2023 08:41:31 +0000 Subject: [PATCH] * Fix bug#37219,37218 --- lib/scm/gitlab.class.php | 6 +++--- module/git/model.php | 2 +- module/gitlab/model.php | 2 +- module/repo/js/create.ui.js | 7 +++++++ module/repo/lang/zh-cn.php | 2 +- module/repo/model.php | 4 ++-- module/repo/ui/create.html.php | 3 +-- module/repo/zen.php | 12 ++++++------ 8 files changed, 22 insertions(+), 16 deletions(-) diff --git a/lib/scm/gitlab.class.php b/lib/scm/gitlab.class.php index 2bae876809..fcd158f277 100644 --- a/lib/scm/gitlab.class.php +++ b/lib/scm/gitlab.class.php @@ -146,7 +146,7 @@ class gitlab { $params['page'] = $page; $list = $this->fetch($api, $params); - if(empty($list)) break; + if(empty($list) || !is_array($list)) break; foreach($list as $tag) $tags[] = $tag->name; if(count($list) < $params['per_page']) break; @@ -173,7 +173,7 @@ class gitlab { $params['page'] = $page; $branchList = $this->fetch("branches", $params); - if(empty($branchList)) break; + if(empty($branchList) || !is_array($branchList)) break; foreach($branchList as $branch) { @@ -835,7 +835,7 @@ class gitlab return array(); } - if($response[1] == 500 or $response[1] == 404) return array(); + if(in_array($response[1], array(500, 404, 401))) return array(); return json_decode($response['body']); } } diff --git a/module/git/model.php b/module/git/model.php index 3606fff72e..2cea1db380 100644 --- a/module/git/model.php +++ b/module/git/model.php @@ -82,7 +82,7 @@ class gitModel extends model { $this->updateCommit($repo, $commentGroup, true); - if($repo->SCM == 'Gitlab') $this->loadModel('gitlab')->updateCodePath($repo->serviceHost, $repo->serviceProject, $repo->id); + if($repo->SCM == 'Gitlab') $this->loadModel('gitlab')->updateCodePath((int)$repo->serviceHost, (int)$repo->serviceProject, (int)$repo->id); /* Create compile by tag. */ $jobs = zget($tagGroup, $repoID, array()); diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 79f5158e22..09c21884d8 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -538,7 +538,7 @@ class gitlabModel extends model $url = sprintf($apiRoot, "/users") . "&order_by={$order}&sort={$sort}&page={$page}&per_page={$perPage}&active=true"; $httpData = commonModel::http($url, null, array(), array(), 'data', 'GET', 30, true, false); $result = json_decode($httpData['body']); - if(!empty($result)) + if(!empty($result) && is_array($result)) { $response = array_merge($response, $result); $page += 1; diff --git a/module/repo/js/create.ui.js b/module/repo/js/create.ui.js index dfcd8275c4..ee67cca556 100644 --- a/module/repo/js/create.ui.js +++ b/module/repo/js/create.ui.js @@ -1,6 +1,7 @@ $(function() { onScmChange(); + $('div.service-project .form-label').addClass('required'); }); function onProductChange(event) @@ -43,6 +44,12 @@ function onProjectChange() { var serviceProject = $('#serviceProject').zui('picker').$.state.value; var items = $('#serviceProject').zui('picker').$.state.items; + if(!serviceProject) + { + $('#name').val(''); + return; + } + for(i in items) { if(items[i].value == serviceProject) diff --git a/module/repo/lang/zh-cn.php b/module/repo/lang/zh-cn.php index 915e9a0ada..dfcb43ed43 100644 --- a/module/repo/lang/zh-cn.php +++ b/module/repo/lang/zh-cn.php @@ -202,7 +202,7 @@ $lang->repo->error->version = "https和svn协议需要1.8及以上版本 $lang->repo->error->path = '代码库地址直接填写文件路径,如:/home/test。'; $lang->repo->error->cmd = '客户端错误!'; $lang->repo->error->diff = '必须选择两个版本'; -$lang->repo->error->safe = '因为安全原因,需要检测客户端版本,请将版本号写入文件 %s
可以执行命令:%s'; +$lang->repo->error->safe = "因为安全原因,需要检测客户端版本,请将版本号写入文件 %s \n 可以执行命令:%s"; $lang->repo->error->product = "请选择{$lang->productCommon}!"; $lang->repo->error->commentText = '请填写评审内容'; $lang->repo->error->comment = '请填写内容'; diff --git a/module/repo/model.php b/module/repo/model.php index 978e8eb954..f968d2eb3a 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -239,7 +239,7 @@ class repoModel extends model ->batchCheckIF($isPipelineServer, 'serviceHost,serviceProject', 'notempty') ->batchCheckIF($repo->SCM == 'Subversion', $this->config->repo->svn->requiredFields, 'notempty') ->check('name', 'unique', "`SCM` = '{$repo->SCM}'") - ->checkIF($isPipelineServer, 'serviceProject', 'unique', "`SCM` = '{$repo->SCM}' and `serviceHost` = '{$repo->serviceHost}'") + ->checkIF($isPipelineServer && $repo->serviceProject, 'serviceProject', 'unique', "`SCM` = '{$repo->SCM}' and `serviceHost` = '{$repo->serviceHost}'") ->checkIF(!$isPipelineServer, 'path', 'unique', "`SCM` = '{$repo->SCM}' and `serviceHost` = '{$repo->serviceHost}'") ->autoCheck() ->exec(); @@ -352,7 +352,7 @@ class repoModel extends model ->batchCheckIF($isPipelineServer, 'serviceHost,serviceProject', 'notempty') ->batchCheckIF($data->SCM == 'Subversion', $this->config->repo->svn->requiredFields, 'notempty') ->check('name', 'unique', "`SCM` = '{$data->SCM}' and `id` <> $id") - ->checkIF($isPipelineServer, 'serviceProject', 'unique', "`SCM` = '{$data->SCM}' and `serviceHost` = '{$data->serviceHost}' and `id` <> $id") + ->checkIF($isPipelineServer && $data->serviceProject, 'serviceProject', 'unique', "`SCM` = '{$data->SCM}' and `serviceHost` = '{$data->serviceHost}' and `id` <> $id") ->checkIF(!$isPipelineServer, 'path', 'unique', "`SCM` = '{$data->SCM}' and `serviceHost` = '{$data->serviceHost}' and `id` <> $id") ->autoCheck() ->where('id')->eq($id)->exec(); diff --git a/module/repo/ui/create.html.php b/module/repo/ui/create.html.php index e3317f14a0..70f350f0f9 100644 --- a/module/repo/ui/create.html.php +++ b/module/repo/ui/create.html.php @@ -76,13 +76,12 @@ formPanel ), formRow ( - setClass('service hide'), + setClass('service hide service-project'), formGroup ( set::width('1/2'), set::name("serviceProject"), set::label($lang->repo->serviceProject), - set::required(true), set::control("picker"), ), ), diff --git a/module/repo/zen.php b/module/repo/zen.php index ce1f163719..779a1dcc9d 100644 --- a/module/repo/zen.php +++ b/module/repo/zen.php @@ -122,8 +122,8 @@ class repoZen extends repo exec($versionCommand, $versionOutput, $versionResult); if($versionResult) { - $message = sprintf($this->lang->repo->error->output, $versionCommand, $versionResult, implode("
", $versionOutput)); - dao::$errors['client'] = $this->lang->repo->error->cmd . "
" . nl2br($message); + $message = sprintf($this->lang->repo->error->output, $versionCommand, $versionResult, implode("\n", $versionOutput)); + dao::$errors['client'] = $this->lang->repo->error->cmd . "\n" . $message; return false; } $svnVersion = end($versionOutput); @@ -152,7 +152,7 @@ class repoZen extends repo exec($command, $output, $result); if($result) { - $message = sprintf($this->lang->repo->error->output, $command, $result, implode("
", $output)); + $message = sprintf($this->lang->repo->error->output, $command, $result, implode("\n", $output)); if(stripos($message, 'Expected FS format between') !== false and strpos($message, 'found format') !== false) { dao::$errors['client'] = $this->lang->repo->error->clientVersion; @@ -160,11 +160,11 @@ class repoZen extends repo } if(preg_match('/[^\:\/A-Za-z0-9_\-\'\"\.]/', $path)) { - dao::$errors['encoding'] = $this->lang->repo->error->encoding . "
" . nl2br($message); + dao::$errors['encoding'] = $this->lang->repo->error->encoding . "\n" . $message; return false; } - dao::$errors['submit'] = $this->lang->repo->error->connect . "
" . nl2br($message); + dao::$errors['submit'] = $this->lang->repo->error->connect . "\n" . $message; return false; } } @@ -215,7 +215,7 @@ class repoZen extends repo exec($command, $output, $result); if($result) { - dao::$errors['submit'] = $this->lang->repo->error->connect . "
" . sprintf($this->lang->repo->error->output, $command, $result, implode("
", $output)); + dao::$errors['submit'] = $this->lang->repo->error->connect . "\n" . sprintf($this->lang->repo->error->output, $command, $result, implode("\n", $output)); return false; } }