From 0679729a7e1098d4f930e48fc9765b693c1875e9 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 5 Aug 2022 15:39:24 +0800 Subject: [PATCH] * Modify server delete tip. --- module/ci/model.php | 4 +++- module/gitea/control.php | 2 +- module/gitlab/control.php | 7 +++---- module/gogs/control.php | 2 +- module/pipeline/lang/de.php | 1 + module/pipeline/lang/en.php | 1 + module/pipeline/lang/fr.php | 1 + module/pipeline/lang/vi.php | 1 + module/pipeline/lang/zh-cn.php | 1 + module/pipeline/model.php | 20 +++++++++++++++++++- module/repo/js/create.js | 2 -- module/repo/model.php | 2 +- module/sonarqube/control.php | 1 + module/sonarqube/lang/de.php | 1 + module/sonarqube/lang/en.php | 1 + module/sonarqube/lang/fr.php | 1 + module/sonarqube/lang/vi.php | 1 + module/sonarqube/lang/zh-cn.php | 1 + 18 files changed, 39 insertions(+), 11 deletions(-) diff --git a/module/ci/model.php b/module/ci/model.php index 510cb7c282..c1e74dca09 100644 --- a/module/ci/model.php +++ b/module/ci/model.php @@ -31,7 +31,9 @@ class ciModel extends model $repo = $this->loadModel('repo')->getRepoByID($this->session->repoID); if(!empty($repo) and !in_array(strtolower($repo->SCM), $this->config->repo->gitServiceList)) unset($this->lang->devops->menu->mr); - $this->lang->switcherMenu = $this->loadModel('repo')->getSwitcher($this->session->repoID); + $tab = $this->app->tab; + $repos = $this->repo->getRepoPairs($tab); + if(count($repos) > 1) $this->lang->switcherMenu = $this->loadModel('repo')->getSwitcher($this->session->repoID); } } diff --git a/module/gitea/control.php b/module/gitea/control.php index cd18b89de5..7d7f851726 100644 --- a/module/gitea/control.php +++ b/module/gitea/control.php @@ -141,9 +141,9 @@ class gitea extends control { if($confirm != 'yes') return print(js::confirm($this->lang->gitea->confirmDelete, inlink('delete', "id=$giteaID&confirm=yes"))); - $oldGitea = $this->loadModel('pipeline')->getByID($giteaID); $actionID = $this->pipeline->delete($giteaID, 'gitea'); + if(!$actionID) return print(js::error($this->lang->pipeline->delError)); $gitea = $this->pipeline->getByID($giteaID); $changes = common::createChanges($oldGitea, $gitea); diff --git a/module/gitlab/control.php b/module/gitlab/control.php index 6cd8195de4..622ee928bd 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -228,11 +228,10 @@ class gitlab extends control { if($confirm != 'yes') return print(js::confirm($this->lang->gitlab->confirmDelete, inlink('delete', "id=$id&confirm=yes"))); - $oldGitLab = $this->gitlab->getByID($id); - $this->loadModel('action'); - $this->gitlab->delete(TABLE_PIPELINE, $id); + $oldGitea = $this->loadModel('pipeline')->getByID($id); + $actionID = $this->pipeline->delete($id, 'gitlab'); + if(!$actionID) return print(js::error($this->lang->pipeline->delError)); - $actionID = $this->dao->lastInsertID(); $gitLab = $this->gitlab->getByID($id); $changes = common::createChanges($oldGitLab, $gitLab); $this->action->logHistory($actionID, $changes); diff --git a/module/gogs/control.php b/module/gogs/control.php index 50121cd32a..8944cc130e 100644 --- a/module/gogs/control.php +++ b/module/gogs/control.php @@ -141,9 +141,9 @@ class gogs extends control { if($confirm != 'yes') return print(js::confirm($this->lang->gogs->confirmDelete, inlink('delete', "id=$gogsID&confirm=yes"))); - $oldGogs = $this->loadModel('pipeline')->getByID($gogsID); $actionID = $this->pipeline->delete($gogsID, 'gogs'); + if(!$actionID) return print(js::error($this->lang->pipeline->delError)); $gogs = $this->pipeline->getByID($gogsID); $changes = common::createChanges($oldGogs, $gogs); diff --git a/module/pipeline/lang/de.php b/module/pipeline/lang/de.php index c3a226f3fd..34072e6ece 100644 --- a/module/pipeline/lang/de.php +++ b/module/pipeline/lang/de.php @@ -5,3 +5,4 @@ $lang->pipeline->url = 'Server URL'; $lang->pipeline->token = 'Token'; $lang->pipeline->account = 'Username'; $lang->pipeline->password = 'Password'; +$lang->pipeline->delError = 'The server has some repos, please delete them and operate'; diff --git a/module/pipeline/lang/en.php b/module/pipeline/lang/en.php index c3a226f3fd..34072e6ece 100644 --- a/module/pipeline/lang/en.php +++ b/module/pipeline/lang/en.php @@ -5,3 +5,4 @@ $lang->pipeline->url = 'Server URL'; $lang->pipeline->token = 'Token'; $lang->pipeline->account = 'Username'; $lang->pipeline->password = 'Password'; +$lang->pipeline->delError = 'The server has some repos, please delete them and operate'; diff --git a/module/pipeline/lang/fr.php b/module/pipeline/lang/fr.php index c3a226f3fd..34072e6ece 100644 --- a/module/pipeline/lang/fr.php +++ b/module/pipeline/lang/fr.php @@ -5,3 +5,4 @@ $lang->pipeline->url = 'Server URL'; $lang->pipeline->token = 'Token'; $lang->pipeline->account = 'Username'; $lang->pipeline->password = 'Password'; +$lang->pipeline->delError = 'The server has some repos, please delete them and operate'; diff --git a/module/pipeline/lang/vi.php b/module/pipeline/lang/vi.php index c3a226f3fd..34072e6ece 100644 --- a/module/pipeline/lang/vi.php +++ b/module/pipeline/lang/vi.php @@ -5,3 +5,4 @@ $lang->pipeline->url = 'Server URL'; $lang->pipeline->token = 'Token'; $lang->pipeline->account = 'Username'; $lang->pipeline->password = 'Password'; +$lang->pipeline->delError = 'The server has some repos, please delete them and operate'; diff --git a/module/pipeline/lang/zh-cn.php b/module/pipeline/lang/zh-cn.php index bef6c98880..75d1d9a52f 100644 --- a/module/pipeline/lang/zh-cn.php +++ b/module/pipeline/lang/zh-cn.php @@ -5,3 +5,4 @@ $lang->pipeline->url = '服务器地址'; $lang->pipeline->token = 'Token'; $lang->pipeline->account = '用户名'; $lang->pipeline->password = '密码'; +$lang->pipeline->delError = '当前服务器下有代码库,请删除代码库后操作'; diff --git a/module/pipeline/model.php b/module/pipeline/model.php index 3d858314f2..ee8554972b 100644 --- a/module/pipeline/model.php +++ b/module/pipeline/model.php @@ -131,10 +131,28 @@ class pipelineModel extends model * @param string $id the id to be deleted * @param string $object the action object * @access public - * @return int + * @return int|bool */ public function delete($id, $object = 'gitlab') { + if(in_array($object, array('gitlab', 'gitea', 'gogs'))) + { + $repo = $this->dao->select('*')->from(TABLE_REPO) + ->where('deleted')->eq('0') + ->andWhere('SCM')->eq(ucfirst($object)) + ->andWhere('serviceHost')->eq($id) + ->fetch(); + if($repo) return false; + } + elseif($object == 'sonarqube') + { + $job = $this->dao->select('id,name,repo,deleted')->from(TABLE_JOB) + ->where('frame')->eq('sonarqube') + ->andWhere('server')->eq($id) + ->andWhere('deleted')->eq('0') + ->fetch(); + if($job) return false; + } $this->dao->update(TABLE_PIPELINE)->set('deleted')->eq(1)->where('id')->eq($id)->exec(); $this->loadModel('action')->create($object, $id, 'deleted', '', ACTIONMODEL::CAN_UNDELETED); diff --git a/module/repo/js/create.js b/module/repo/js/create.js index 3d17fb25a6..3c9acf4838 100644 --- a/module/repo/js/create.js +++ b/module/repo/js/create.js @@ -57,14 +57,12 @@ function scmChanged(scm) if(scm == 'Git' || scm == 'Gitea' || scm == 'Gogs') { $('.account-fields').addClass('hidden'); - $('.tips-git').removeClass('hidden'); $('.tips-svn').addClass('hidden'); } else { $('.account-fields').removeClass('hidden'); - $('.tips-git').addClass('hidden'); $('.tips-svn').removeClass('hidden'); } diff --git a/module/repo/model.php b/module/repo/model.php index 37f4c0ec3f..48e56b6791 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -58,7 +58,7 @@ class repoModel extends model } if(!in_array(strtolower($repo->SCM), $this->config->repo->gitServiceList)) unset($this->lang->devops->menu->mr); - $this->lang->switcherMenu = $this->getSwitcher($repoID); + if(count($repos) > 1) $this->lang->switcherMenu = $this->getSwitcher($repoID); } common::setMenuVars('devops', $repoID); diff --git a/module/sonarqube/control.php b/module/sonarqube/control.php index 3d7a018851..ad1a3eb851 100644 --- a/module/sonarqube/control.php +++ b/module/sonarqube/control.php @@ -215,6 +215,7 @@ class sonarqube extends control $oldSonarQube = $this->loadModel('pipeline')->getByID($sonarqubeID); $this->loadModel('action'); $actionID = $this->pipeline->delete($sonarqubeID, 'sonarqube'); + if($actionID) return print(js::error($this->lang->sonarqube->delError)); $sonarQube = $this->pipeline->getByID($sonarqubeID); $changes = common::createChanges($oldSonarQube, $sonarQube); diff --git a/module/sonarqube/lang/de.php b/module/sonarqube/lang/de.php index eea5a9c5fb..2eafb85548 100644 --- a/module/sonarqube/lang/de.php +++ b/module/sonarqube/lang/de.php @@ -16,6 +16,7 @@ $lang->sonarqube->desc = 'Description'; $lang->sonarqube->reportView = "SonarQube Report"; $lang->sonarqube->browseIssue = "SonarQube Issue List"; $lang->sonarqube->createBug = "Create Bug"; +$lang->sonarqube->delError = "There are bound jobs under this server, please delete the association and then operate"; $lang->sonarqube->id = 'ID'; $lang->sonarqube->name = "Server Name"; diff --git a/module/sonarqube/lang/en.php b/module/sonarqube/lang/en.php index eea5a9c5fb..2eafb85548 100644 --- a/module/sonarqube/lang/en.php +++ b/module/sonarqube/lang/en.php @@ -16,6 +16,7 @@ $lang->sonarqube->desc = 'Description'; $lang->sonarqube->reportView = "SonarQube Report"; $lang->sonarqube->browseIssue = "SonarQube Issue List"; $lang->sonarqube->createBug = "Create Bug"; +$lang->sonarqube->delError = "There are bound jobs under this server, please delete the association and then operate"; $lang->sonarqube->id = 'ID'; $lang->sonarqube->name = "Server Name"; diff --git a/module/sonarqube/lang/fr.php b/module/sonarqube/lang/fr.php index eea5a9c5fb..2eafb85548 100644 --- a/module/sonarqube/lang/fr.php +++ b/module/sonarqube/lang/fr.php @@ -16,6 +16,7 @@ $lang->sonarqube->desc = 'Description'; $lang->sonarqube->reportView = "SonarQube Report"; $lang->sonarqube->browseIssue = "SonarQube Issue List"; $lang->sonarqube->createBug = "Create Bug"; +$lang->sonarqube->delError = "There are bound jobs under this server, please delete the association and then operate"; $lang->sonarqube->id = 'ID'; $lang->sonarqube->name = "Server Name"; diff --git a/module/sonarqube/lang/vi.php b/module/sonarqube/lang/vi.php index eea5a9c5fb..2eafb85548 100644 --- a/module/sonarqube/lang/vi.php +++ b/module/sonarqube/lang/vi.php @@ -16,6 +16,7 @@ $lang->sonarqube->desc = 'Description'; $lang->sonarqube->reportView = "SonarQube Report"; $lang->sonarqube->browseIssue = "SonarQube Issue List"; $lang->sonarqube->createBug = "Create Bug"; +$lang->sonarqube->delError = "There are bound jobs under this server, please delete the association and then operate"; $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 af3d95c826..897dcc9ad4 100644 --- a/module/sonarqube/lang/zh-cn.php +++ b/module/sonarqube/lang/zh-cn.php @@ -16,6 +16,7 @@ $lang->sonarqube->desc = '描述'; $lang->sonarqube->reportView = "SonarQube报告"; $lang->sonarqube->browseIssue = "SonarQube问题列表"; $lang->sonarqube->createBug = "转bug"; +$lang->sonarqube->delError = "该服务器下有绑定的构建,请删除关联之后操作"; $lang->sonarqube->id = 'ID'; $lang->sonarqube->name = "服务器名称";