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 @@
?>
-
+ config->systemMode == 'new'):?>
+
+
+
+ mr->statusList as $key => $label):?>
+
+ $label";?>
+ {$pager->recTotal}";?>
+
+
+ app->user->account}&creator=all"), $lang->mr->assignedToMe, '', "class='btn btn-link $active'");?>
+ app->user->account}"), $lang->mr->createdByMe, '', "class='btn btn-link $active'");?>
+
+
" . $lang->mr->create, '', "class='btn btn-primary'");?>
@@ -29,7 +46,7 @@
- recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"; ?>
+ recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"; ?>
| mr->id); ?> |
mr->title); ?> |
mr->sourceProject); ?> |