From b4685be3dedf11a8ff5d688ef16b7170cd7325df Mon Sep 17 00:00:00 2001 From: zenggang Date: Tue, 7 Dec 2021 08:15:04 +0000 Subject: [PATCH] * Finish task#45500 --- module/gitlab/control.php | 46 ++++++++++++++++ module/gitlab/lang/en.php | 6 +++ module/gitlab/lang/zh-cn.php | 6 +++ module/gitlab/view/browsebranch.html.php | 64 +++++++++++++++++++++++ module/gitlab/view/browseproject.html.php | 1 + module/group/lang/resource.php | 2 + 6 files changed, 125 insertions(+) create mode 100644 module/gitlab/view/browsebranch.html.php diff --git a/module/gitlab/control.php b/module/gitlab/control.php index e56cae595d..ed54708167 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -712,6 +712,52 @@ class gitlab extends control die(js::alert($reponse->message)); } + /** + * Browse gitlab branch. + * + * @param int $gitlabID + * @param int $projectID + * @param string $orderBy + * @param int $recTotal + * @param int $recPerPage + * @param int $pageID + * @access public + * @return void + */ + public function browseBranch($gitlabID, $projectID, $orderBy = 'name_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1) + { + $branchList = array(); + $result = $this->gitlab->apiGetBranches($gitlabID, $projectID); + foreach($result as $gitlabBranch) + { + $branch = new stdClass(); + $branch->name = $gitlabBranch->name; + $branch->lastCommitter = $gitlabBranch->commit->committer_name; + $branch->lastCommittedDate = date('Y-m-d H:i:s', strtotime($gitlabBranch->commit->committed_date)); + + $branchList[] = $branch; + } + + /* Data sort. */ + list($order, $sort) = explode('_', $orderBy); + array_multisort(array_column($branchList, $order), $sort == 'desc' ? SORT_DESC : SORT_ASC, $branchList); + + /* Pager. */ + $this->app->loadClass('pager', $static = true); + $recTotal = count($branchList); + $pager = new pager($recTotal, $recPerPage, $pageID); + $branchList = array_chunk($branchList, $pager->recPerPage); + + $this->view->gitlab = $this->gitlab->getByID($gitlabID); + $this->view->pager = $pager; + $this->view->title = $this->lang->gitlab->common . $this->lang->colon . $this->lang->gitlab->browseBranch; + $this->view->gitlabID = $gitlabID; + $this->view->projectID = $projectID; + $this->view->gitlabBranchList = empty($branchList) ? $branchList: $branchList[$pageID - 1]; + $this->view->orderBy = $orderBy; + $this->display(); + } + /** * Import gitlab issue to zentaopms. * diff --git a/module/gitlab/lang/en.php b/module/gitlab/lang/en.php index 07c7ad4e7f..60c92fd148 100644 --- a/module/gitlab/lang/en.php +++ b/module/gitlab/lang/en.php @@ -30,6 +30,7 @@ $lang->gitlab->gitlabProject = "GitLab Project"; $lang->gitlab->browseProject = "GitLab Project List"; $lang->gitlab->browseUser = "User List"; $lang->gitlab->browseGroup = "Group List"; +$lang->gitlab->browseBranch = "Branch List"; $lang->gitlab->gitlabIssue = "GitLab Issue"; $lang->gitlab->zentaoProduct = 'Zentao Product'; $lang->gitlab->objectType = 'Type'; // task, bug, story @@ -43,6 +44,7 @@ $lang->gitlab->deleteGroup = 'Delete group'; $lang->gitlab->createUser = 'Create user'; $lang->gitlab->editUser = 'Edit user'; $lang->gitlab->deleteUser = 'Delete user'; +$lang->gitlab->createBranch = 'Add branch'; $lang->gitlab->manageGroupMembers = 'Manage group member'; $lang->gitlab->createWebhook = 'Create Webhook'; @@ -58,6 +60,10 @@ $lang->gitlab->desc = 'Description'; $lang->gitlab->tokenFirst = 'When the Token is not empty, the Token will be used first'; $lang->gitlab->tips = 'When using a password, please disable the "Prevent cross-site request forgery" option in the GitLab global security settings.'; +$lang->gitlab->branchName = 'Branch Name'; +$lang->gitlab->branchLastCommitter = 'Last Committer'; +$lang->gitlab->branchLastCommittedDate = 'Last Committed Date'; + $lang->gitlab->placeholder = new stdclass; $lang->gitlab->placeholder->name = ''; $lang->gitlab->placeholder->url = "Please fill in the access address of the GitLab Server homepage, as: https://gitlab.zentao.net."; diff --git a/module/gitlab/lang/zh-cn.php b/module/gitlab/lang/zh-cn.php index d911572925..4d226bec95 100644 --- a/module/gitlab/lang/zh-cn.php +++ b/module/gitlab/lang/zh-cn.php @@ -30,6 +30,7 @@ $lang->gitlab->gitlabProject = "{$lang->gitlab->common}项目"; $lang->gitlab->browseProject = "{$lang->gitlab->common}项目列表"; $lang->gitlab->browseUser = "用户列表"; $lang->gitlab->browseGroup = "群组列表"; +$lang->gitlab->browseBranch = "分支列表"; $lang->gitlab->gitlabIssue = "{$lang->gitlab->common} issue"; $lang->gitlab->zentaoProduct = '禅道产品'; $lang->gitlab->objectType = '类型'; // task, bug, story @@ -43,6 +44,7 @@ $lang->gitlab->deleteGroup = '删除群组'; $lang->gitlab->createUser = '添加用户'; $lang->gitlab->editUser = '编辑用户'; $lang->gitlab->deleteUser = '删除用户'; +$lang->gitlab->createBranch = '添加分支'; $lang->gitlab->manageGroupMembers = '群组成员管理'; $lang->gitlab->createWebhook = '创建Webhook'; @@ -58,6 +60,10 @@ $lang->gitlab->desc = '描述'; $lang->gitlab->tokenFirst = 'Token不为空时,优先使用Token。'; $lang->gitlab->tips = '使用密码时,请在GitLab全局安全设置中禁用"防止跨站点请求伪造"选项。'; +$lang->gitlab->branchName = '分支名'; +$lang->gitlab->branchLastCommitter = '最后提交'; +$lang->gitlab->branchLastCommittedDate = '最后修改时间'; + $lang->gitlab->placeholder = new stdclass; $lang->gitlab->placeholder->name = ''; $lang->gitlab->placeholder->url = "请填写GitLab Server首页的访问地址,如:https://gitlab.zentao.net。"; diff --git a/module/gitlab/view/browsebranch.html.php b/module/gitlab/view/browsebranch.html.php new file mode 100644 index 0000000000..4b48e77368 --- /dev/null +++ b/module/gitlab/view/browsebranch.html.php @@ -0,0 +1,64 @@ + + * @package gitlab + * @version $Id$ + * @link http://www.zentao.net + */ +?> + +recTotal}&recPerPage={$pager->recPerPage}&pageID=1")?> + + + +
+

+ noData;?> + + createLink('gitlab', 'createBranch', "gitlabID=$gitlabID"), " " . $lang->gitlab->createBranch, '', "class='btn btn-info'");?> + +

+
+ +
+
+ + recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?> + + + + + + + + + + $gitlabBranch): ?> + + + + + + + + +
gitlab->branchName);?>gitlab->branchLastCommitter;?>gitlab->branchLastCommittedDate);?>actions;?>
name;?>lastCommitter;?>lastCommittedDate?> +
+ + + +
+
+ + diff --git a/module/gitlab/view/browseproject.html.php b/module/gitlab/view/browseproject.html.php index 40eea5877c..56eadf0b97 100644 --- a/module/gitlab/view/browseproject.html.php +++ b/module/gitlab/view/browseproject.html.php @@ -67,6 +67,7 @@ last_activity_at, 0, 10);?> id", " ", '', "title={$lang->gitlab->browseBranch} class='btn btn-primary'"); common::printLink('gitlab', 'editProject', "gitlabID=$gitlabID&projectID=$gitlabProject->id", " ", '', "title={$lang->gitlab->project->edit} class='btn btn-primary'"); if(common::hasPriv('gitlab', 'delete')) echo html::a($this->createLink('gitlab', 'deleteProject', "gitlabID=$gitlabID&projectID=$gitlabProject->id"), '', 'hiddenwin', "title='{$lang->gitlab->deleteProject}' class='btn'"); ?> diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index f4abbb41bb..14d563691a 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -1248,6 +1248,7 @@ $lang->resource->gitlab->deleteUser = 'deleteUser'; $lang->resource->gitlab->webhook = 'webhook'; $lang->resource->gitlab->createWebhook = 'createWebhook'; $lang->resource->gitlab->manageProjectMembers = 'manageProjectMembers'; +$lang->resource->gitlab->browseBranch = 'browseBranch'; $lang->gitlab->methodOrder[5] = 'browse'; $lang->gitlab->methodOrder[10] = 'create'; @@ -1272,6 +1273,7 @@ $lang->gitlab->methodOrder[105] = 'deleteUser'; $lang->gitlab->methodOrder[110] = 'webhook'; $lang->gitlab->methodOrder[115] = 'createWebhook'; $lang->gitlab->methodOrder[120] = 'manageProjectMembers'; +$lang->gitlab->methodOrder[125] = 'browseBranch'; /* merge request. */ $lang->resource->mr = new stdclass();