* Optimize view MR and prepare for approve MR.

This commit is contained in:
dingguodong
2021-11-04 16:03:20 +08:00
parent 33368deaf4
commit 3bce793b94
7 changed files with 75 additions and 13 deletions
+3
View File
@@ -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';
+13 -7
View File
@@ -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();
}
+11 -1
View File
@@ -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';
+11 -1
View File
@@ -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'] = '检查中';
+11 -1
View File
@@ -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'] = '檢查中';
+7 -1
View File
@@ -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');
+19 -2
View File
@@ -10,7 +10,24 @@
?>
<?php include '../../common/view/header.html.php';?>
<div id="mainMenu" class="clearfix">
<div class='pull-right'>
<?php if($this->config->systemMode == 'new'):?>
<div id="sidebarHeader">
<div class="title">
<?php echo $lang->mr->common;?>
</div>
</div>
<?php endif;?>
<div class="btn-toolBar pull-left">
<?php foreach($lang->mr->statusList as $key => $label):?>
<?php $active = $browseType == $key ? 'btn-active-text' : '';?>
<?php $label = "<span class='text'>$label</span>";?>
<?php if($browseType == $key) $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
<?php echo html::a(inlink('browse', "browseType=$key"), $label, '', "class='btn btn-link $active'");?>
<?php endforeach;?>
<?php echo html::a(inlink('browse', "browseType=all&assignee={$this->app->user->account}&creator=all"), $lang->mr->assignedToMe, '', "class='btn btn-link $active'");?>
<?php echo html::a(inlink('browse', "browseType=all&assignee=all&creator={$this->app->user->account}"), $lang->mr->createdByMe, '', "class='btn btn-link $active'");?>
</div>
<div class="btn-toolbar pull-right">
<?php common::printLink('mr', 'create', '', "<i class='icon icon-plus'></i> " . $lang->mr->create, '', "class='btn btn-primary'");?>
</div>
</div>
@@ -29,7 +46,7 @@
<table id='gitlabProjectList' class='table has-sort-head table-fixed'>
<thead>
<tr>
<?php $vars = "objectID=$objectID&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"; ?>
<?php $vars = "browseType=$browseType&assignee=$assignee&creator=$creator&objectID=$objectID&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"; ?>
<th class='w-60px text-left'><?php common::printOrderLink('id', $orderBy, $vars, $lang->mr->id); ?></th>
<th class='w-200px text-left'><?php common::printOrderLink('title', $orderBy, $vars, $lang->mr->title); ?></th>
<th class='text-left'><?php common::printOrderLink('sourceProject', $orderBy, $vars, $lang->mr->sourceProject); ?></th>