From 8a3d924e2b1b30c88f25a102a27bf9bf0201ccb5 Mon Sep 17 00:00:00 2001 From: liyuchun <563917701@qq.com> Date: Tue, 5 Jul 2022 08:42:48 +0000 Subject: [PATCH] * Finish task #59451. --- config/zentaopms.php | 2 ++ module/common/lang/common.php | 1 + module/common/lang/de.php | 3 ++- module/common/lang/en.php | 3 ++- module/common/lang/fr.php | 3 ++- module/common/lang/menu.php | 13 +++++----- module/common/lang/vi.php | 7 +++--- module/common/lang/zh-cn.php | 3 ++- module/common/lang/zh-tw.php | 3 ++- module/common/model.php | 43 ++++++++++++++++++++++++++++++++++ module/group/lang/resource.php | 7 ++++++ 11 files changed, 74 insertions(+), 14 deletions(-) diff --git a/config/zentaopms.php b/config/zentaopms.php index 7c03077b46..d9c38acf9c 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -377,6 +377,8 @@ $config->objectTables['apistruct'] = TABLE_APISTRUCT; $config->newFeatures = array('introduction', 'tutorial', 'youngBlueTheme', 'visions'); +$config->pipelineTypeList = array('gitlab', 'sonarqube', 'jenkins'); + /* Program privs.*/ $config->programPriv = new stdclass(); $config->programPriv->scrum = array('story', 'projectstory', 'projectrelease', 'project', 'execution', 'build', 'bug', 'testcase', 'testreport', 'doc', 'repo', 'meeting', 'stakeholder', 'testtask'); diff --git a/module/common/lang/common.php b/module/common/lang/common.php index 38d73ae72d..e13dc7e346 100644 --- a/module/common/lang/common.php +++ b/module/common/lang/common.php @@ -80,6 +80,7 @@ $lang->misc = new stdclass(); $lang->acl = new stdclass(); $lang->curd = new stdclass(); $lang->sonarqube = new stdclass(); +$lang->app = new stdclass(); $lang->projectbuild = new stdclass(); $lang->projectrelease = new stdclass(); diff --git a/module/common/lang/de.php b/module/common/lang/de.php index 9ae9956be8..d5bcf7f08f 100644 --- a/module/common/lang/de.php +++ b/module/common/lang/de.php @@ -84,7 +84,6 @@ $lang->waterfallModel = 'Waterfall'; $lang->scrumModel = 'Scrum'; $lang->all = 'All'; $lang->viewDetails = 'View Details'; -$lang->app = 'APP'; $lang->actions = 'Aktionen'; $lang->restore = 'Wiederherstellen'; @@ -197,6 +196,8 @@ $lang->execution->list = "{$lang->executionCommon} List"; $lang->kanban->common = 'Kanban'; $lang->backup->common = 'Backup'; $lang->action->trash = 'Recycle'; +$lang->app->common = 'APP'; +$lang->app->serverLink = 'Server Link'; $lang->personnel->common = 'Member'; $lang->personnel->invest = 'Investment'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 39f7d632cf..de9c5c39bd 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -84,7 +84,6 @@ $lang->waterfallModel = 'Waterfall'; $lang->scrumModel = 'Scrum'; $lang->all = 'All'; $lang->viewDetails = 'View Details'; -$lang->app = 'APP'; $lang->actions = 'Action'; $lang->restore = 'Reset'; @@ -197,6 +196,8 @@ $lang->execution->list = "{$lang->executionCommon} List"; $lang->kanban->common = 'Kanban'; $lang->backup->common = 'Backup'; $lang->action->trash = 'Recycle'; +$lang->app->common = 'APP'; +$lang->app->serverLink = 'Server Link'; $lang->personnel->common = 'Member'; $lang->personnel->invest = 'Investment'; diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php index 4c59c89061..30d0bddb40 100644 --- a/module/common/lang/fr.php +++ b/module/common/lang/fr.php @@ -84,7 +84,6 @@ $lang->waterfallModel = 'Waterfall'; $lang->scrumModel = 'Scrum'; $lang->all = 'All'; $lang->viewDetails = 'View Details'; -$lang->app = 'APP'; $lang->actions = 'Action'; $lang->restore = 'Réinitialiser'; @@ -197,6 +196,8 @@ $lang->execution->list = "{$lang->executionCommon} List"; $lang->kanban->common = 'Kanban'; $lang->backup->common = 'Backup'; $lang->action->trash = 'Recycle'; +$lang->app->common = 'APP'; +$lang->app->serverLink = 'Server Link'; $lang->personnel->common = 'Member'; $lang->personnel->invest = 'Investment'; diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index ce828790b9..f06a6a8b0d 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -393,12 +393,12 @@ $lang->qa->menuOrder[45] = 'automation'; $lang->qa->dividerMenu = ',bug,testtask,caselib,'; /* DevOps menu. */ -$lang->devops->menu = new stdclass(); -$lang->devops->menu->code = array('link' => "{$lang->repo->common}|repo|browse|repoID=%s", 'alias' => 'diff,view,revision,log,blame,showsynccommit'); -$lang->devops->menu->mr = array('link' => "{$lang->devops->mr}|mr|browse|repoID=%s"); -$lang->devops->menu->compile = array('link' => "{$lang->devops->compile}|job|browse|repoID=%s", 'subModule' => 'compile,job'); -$lang->devops->menu->app = array('link' => "{$lang->app}|devops|app|%s"); -$lang->devops->menu->set = array('link' => "{$lang->devops->set}|repo|maintain", 'subModule' => 'gitlab,jenkins,sonarqube', 'alias' => 'setrules,create,edit'); +$lang->devops->menu = new stdclass(); +$lang->devops->menu->code = array('link' => "{$lang->repo->common}|repo|browse|repoID=%s", 'alias' => 'diff,view,revision,log,blame,showsynccommit'); +$lang->devops->menu->mr = array('link' => "{$lang->devops->mr}|mr|browse|repoID=%s"); +$lang->devops->menu->compile = array('link' => "{$lang->devops->compile}|job|browse|repoID=%s", 'subModule' => 'compile,job'); +$lang->devops->menu->app = array('link' => "{$lang->app->common}|app|serverlink|%s"); +$lang->devops->menu->set = array('link' => "{$lang->devops->set}|repo|maintain", 'subModule' => 'gitlab,jenkins,sonarqube', 'alias' => 'setrules,create,edit'); $lang->devops->menuOrder[5] = 'code'; $lang->devops->menuOrder[10] = 'mr'; @@ -650,6 +650,7 @@ $lang->navGroup->compile = 'devops'; $lang->navGroup->ci = 'devops'; $lang->navGroup->svn = 'devops'; $lang->navGroup->git = 'devops'; +$lang->navGroup->app = 'devops'; $lang->navGroup->company = 'system'; diff --git a/module/common/lang/vi.php b/module/common/lang/vi.php index bd2c74d203..e2e12d543c 100644 --- a/module/common/lang/vi.php +++ b/module/common/lang/vi.php @@ -65,7 +65,6 @@ $lang->noData = 'Không có dữ liệu.'; $lang->fullscreen = 'Fullscreen'; $lang->retrack = 'Retrack'; $lang->whitelist = 'Lista bianca'; -$lang->app = 'APP'; $lang->actions = 'Hành động'; $lang->restore = 'Thiết lập lại'; @@ -125,8 +124,10 @@ $lang->typeAB = 'Loại'; $lang->nameAB = 'Name'; $lang->common = new stdclass(); -$lang->common->common = 'Module chung'; -$lang->devops->common = 'DevOps'; +$lang->common->common = 'Module chung'; +$lang->devops->common = 'DevOps'; +$lang->app->common = 'APP'; +$lang->app->serverLink = 'Server Link'; global $config; list($programModule, $programMethod) = explode('-', $config->programLink); diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index afa633fae1..e063aad4af 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -84,7 +84,6 @@ $lang->waterfallModel = '瀑布模型'; $lang->scrumModel = '敏捷模型'; $lang->all = '所有'; $lang->viewDetails = '查看详情'; -$lang->app = '应用'; $lang->actions = '操作'; $lang->restore = '恢复默认'; @@ -197,6 +196,8 @@ $lang->execution->list = "{$lang->executionCommon}列表"; $lang->kanban->common = '看板'; $lang->backup->common = '备份'; $lang->action->trash = '回收站'; +$lang->app->common = '应用'; +$lang->app->serverLink = '服务器链接'; $lang->personnel->common = '人员'; $lang->personnel->invest = '投入人员'; diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php index 251718278e..efb472f9ac 100644 --- a/module/common/lang/zh-tw.php +++ b/module/common/lang/zh-tw.php @@ -78,7 +78,6 @@ $lang->globalSetting = '全局設置'; $lang->waterfallModel = '瀑布模型'; $lang->all = '所有'; $lang->viewDetails = '查看詳情'; -$lang->app = '應用'; $lang->actions = '操作'; $lang->restore = '恢復預設'; @@ -182,6 +181,8 @@ $lang->stage->common = '階段'; $lang->stage->list = '階段列表'; $lang->execution->list = "{$lang->executionCommon}列表"; $lang->kanban->common = '看板'; +$lang->app->common = '應用'; +$lang->app->serverLink = '服務器鏈接'; $lang->personnel->common = '人員'; $lang->personnel->invest = '投入人員'; diff --git a/module/common/model.php b/module/common/model.php index 94b8c4d0dc..c8412b3bb8 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -1104,6 +1104,10 @@ class commonModel extends model $executionID = $menuItem->link['vars']; commonModel::buildMoreButton($executionID); } + elseif($menuItem->link['module'] == 'app' and $menuItem->link['method'] == 'serverlink') + { + commonModel::buildAppButton(); + } else { if($menuItem->link) @@ -1746,6 +1750,45 @@ EOD; echo $html; } + /** + * Build devops app button. + * + * @static + * @access public + * @return void + */ + public static function buildAppButton() + { + if(defined('TUTORIAL')) return; + global $app, $config, $lang; + + $pipelinePairs = array(); + $condition = ''; + if(!$app->user->admin) + { + $types = ''; + foreach($config->pipelineTypeList as $pipelineType) + { + if(commonModel::hasPriv($pipelineType, 'browse')) $types .= "'$pipelineType',"; + } + if(empty($types)) return; + $condition .= ' AND `type` in (' . trim($types, ',') . ')'; + } + $pipelineList = $app->dbh->query("SELECT type,name,url FROM " . TABLE_PIPELINE . " WHERE `deleted` = '0' $condition order by type")->fetchAll(); + if(empty($pipelineList)) return; + + $html = "