From 3bce793b94a104bd419045b054e687213d374784 Mon Sep 17 00:00:00 2001 From: dingguodong Date: Thu, 4 Nov 2021 16:03:20 +0800 Subject: [PATCH] * Optimize view MR and prepare for approve MR. --- config/filter.php | 3 +++ module/mr/control.php | 20 +++++++++++++------- module/mr/lang/en.php | 12 +++++++++++- module/mr/lang/zh-cn.php | 12 +++++++++++- module/mr/lang/zh-tw.php | 12 +++++++++++- module/mr/model.php | 8 +++++++- module/mr/view/browse.html.php | 21 +++++++++++++++++++-- 7 files changed, 75 insertions(+), 13 deletions(-) diff --git a/config/filter.php b/config/filter.php index 73c0b303ce..adc4f579e7 100644 --- a/config/filter.php +++ b/config/filter.php @@ -146,6 +146,7 @@ $filter->search->index = new stdclass(); $filter->gitlab->webhook = new stdclass(); $filter->gitlab->importissue = new stdclass(); $filter->mr->diff = new stdclass(); +$filter->mr->browse = new stdclass(); $filter->ci->checkCompileStatus = new stdclass(); $filter->execution->export = new stdclass(); @@ -374,5 +375,7 @@ $filter->gitlab->importissue->get['project'] = 'int'; $filter->gitlab->importissue->get['repo'] = 'int'; $filter->mr->diff->cookie['arrange'] = 'reg::word'; +$filter->mr->browse->get['assignee'] = 'string'; +$filter->mr->browse->get['creator'] = 'string'; $filter->ci->checkCompileStatus->get['gitlabOnly'] = 'string'; diff --git a/module/mr/control.php b/module/mr/control.php index b6e953866a..53414d7654 100644 --- a/module/mr/control.php +++ b/module/mr/control.php @@ -26,11 +26,14 @@ class mr extends control * @access public * @return void */ - public function browse($objectID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) + public function browse($browseType = 'all', $assignee = 'all', $creator = 'all', $objectID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) { + $assignee = isset($_GET['assignee']) ? $this->get->assignee : "all"; + $creator = isset($_GET['creator']) ? $this->get->creator : "all"; + $this->app->loadClass('pager', $static = true); $pager = new pager($recTotal, $recPerPage, $pageID); - $MRList = $this->mr->getList($orderBy, $pager); + $MRList = $this->mr->getList($browseType, $assignee, $creator, $orderBy, $pager); /* Save current URI to session. */ $this->session->set('mrList', $this->app->getURI(true), 'repo'); @@ -38,11 +41,14 @@ class mr extends control /* Sync GitLab MR to ZenTao Database. */ $MRList = $this->mr->batchSyncMR($MRList); - $this->view->title = $this->lang->mr->common . $this->lang->colon . $this->lang->mr->browse; - $this->view->MRList = $MRList; - $this->view->orderBy = $orderBy; - $this->view->objectID = $objectID; - $this->view->pager = $pager; + $this->view->title = $this->lang->mr->common . $this->lang->colon . $this->lang->mr->browse; + $this->view->MRList = $MRList; + $this->view->pager = $pager; + $this->view->browseType = $browseType; + $this->view->assignee = $assignee; + $this->view->creator = $creator; + $this->view->objectID = $objectID; + $this->view->orderBy = $orderBy; $this->display(); } diff --git a/module/mr/lang/en.php b/module/mr/lang/en.php index dcea3ba71f..cccd19b849 100644 --- a/module/mr/lang/en.php +++ b/module/mr/lang/en.php @@ -25,10 +25,20 @@ $lang->mr->commits = 'commits'; $lang->mr->changes = 'changes'; $lang->mr->gitlabID = 'GitLab'; +$lang->mr->approveStatus = 'Approve status'; +$lang->mr->approveStatusList = array(); +$lang->mr->approveStatusList['approved'] = 'Approved'; +$lang->mr->approveStatusList['rejected'] = 'Rejected'; + +$lang->mr->notApproved = 'Rejected'; +$lang->mr->assignedToMe = 'AssignedToMe'; +$lang->mr->createdByMe = 'CreatedByMe'; + $lang->mr->statusList = array(); +$lang->mr->statusList['all'] = 'all'; $lang->mr->statusList['opened'] = 'opened'; -$lang->mr->statusList['closed'] = 'closed'; $lang->mr->statusList['merged'] = 'merged'; +$lang->mr->statusList['closed'] = 'closed'; $lang->mr->mergeStatusList = array(); $lang->mr->mergeStatusList['checking'] = 'checking'; diff --git a/module/mr/lang/zh-cn.php b/module/mr/lang/zh-cn.php index 5167c60291..2a36ca3e15 100644 --- a/module/mr/lang/zh-cn.php +++ b/module/mr/lang/zh-cn.php @@ -25,10 +25,20 @@ $lang->mr->commits = '提交数'; $lang->mr->changes = '更改数'; $lang->mr->gitlabID = 'GitLab'; +$lang->mr->approveStatus = '审核状态'; +$lang->mr->approveStatusList = array(); +$lang->mr->approveStatusList['approved'] = '通过'; +$lang->mr->approveStatusList['rejected'] = '拒绝'; + +$lang->mr->notApproved = '审核拒绝的'; +$lang->mr->assignedToMe = '指派给我的'; +$lang->mr->createdByMe = '我创建的'; + $lang->mr->statusList = array(); +$lang->mr->statusList['all'] = '所有'; $lang->mr->statusList['opened'] = '开放中'; -$lang->mr->statusList['closed'] = '已关闭'; $lang->mr->statusList['merged'] = '已合并'; +$lang->mr->statusList['closed'] = '已关闭'; $lang->mr->mergeStatusList = array(); $lang->mr->mergeStatusList['checking'] = '检查中'; diff --git a/module/mr/lang/zh-tw.php b/module/mr/lang/zh-tw.php index 528cd78390..022f43ee8c 100644 --- a/module/mr/lang/zh-tw.php +++ b/module/mr/lang/zh-tw.php @@ -25,10 +25,20 @@ $lang->mr->commits = '提交數'; $lang->mr->changes = '更改數'; $lang->mr->gitlabID = 'GitLab'; +$lang->mr->approveStatus = '審核狀態'; +$lang->mr->approveStatusList = array(); +$lang->mr->approveStatusList['approved'] = '通過'; +$lang->mr->approveStatusList['rejected'] = '拒絕'; + +$lang->mr->notApproved = '審核拒絕的'; +$lang->mr->assignedToMe = '指派給我的'; +$lang->mr->createdByMe = '我創建的'; + $lang->mr->statusList = array(); +$lang->mr->statusList['all'] = '所有'; $lang->mr->statusList['opened'] = '開放中'; -$lang->mr->statusList['closed'] = '已關閉'; $lang->mr->statusList['merged'] = '已合併'; +$lang->mr->statusList['closed'] = '已關閉'; $lang->mr->mergeStatusList = array(); $lang->mr->mergeStatusList['checking'] = '檢查中'; diff --git a/module/mr/model.php b/module/mr/model.php index 3b9fc9b01c..4c4163b591 100644 --- a/module/mr/model.php +++ b/module/mr/model.php @@ -38,16 +38,22 @@ class mrModel extends model /** * Get MR list of gitlab project. * + * @param string $browseType + * @param string $assignee + * @param string $creator * @param string $orderBy * @param object $pager * @access public * @return array */ - public function getList($orderBy = 'id_desc', $pager = null) + public function getList($browseType = 'all', $assignee = 'all', $creator = 'all', $orderBy = 'id_desc', $pager) { $MRList = $this->dao->select('*') ->from(TABLE_MR) ->where('deleted')->eq('0') + ->beginIF($browseType != 'all')->andWhere('status')->eq($browseType)->fi() + ->beginIF($assignee != 'all')->andWhere('assignee')->eq($assignee)->fi() + ->beginIF($creator != 'all')->andWhere('createdBy')->eq($creator)->fi() ->orderBy($orderBy) ->page($pager) ->fetchAll('id'); diff --git a/module/mr/view/browse.html.php b/module/mr/view/browse.html.php index 70991353b0..90d2d33c7f 100644 --- a/module/mr/view/browse.html.php +++ b/module/mr/view/browse.html.php @@ -10,7 +10,24 @@ ?>