* Finish task #57664.
This commit is contained in:
@@ -396,7 +396,7 @@ $lang->qa->dividerMenu = ',bug,testtask,caselib,';
|
||||
$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->compile = array('link' => "{$lang->devops->compile}|job|browse", 'subModule' => 'compile,job');
|
||||
$lang->devops->menu->mr = array('link' => "{$lang->devops->mr}|mr|browse");
|
||||
$lang->devops->menu->mr = array('link' => "{$lang->devops->mr}|mr|browse|repoID=%s");
|
||||
$lang->devops->menu->gitlab = array('link' => "GitLab|gitlab|browse", 'alias' => 'create,edit');
|
||||
$lang->devops->menu->sonarqube = array('link' => "SonarQube|sonarqube|browse");
|
||||
$lang->devops->menu->jenkins = array('link' => "Jenkins|jenkins|browse", 'alias' => 'create,edit');
|
||||
|
||||
+14
-17
@@ -1,23 +1,10 @@
|
||||
<?php
|
||||
class mr extends control
|
||||
{
|
||||
/**
|
||||
* The mr constructor.
|
||||
* @param string $moduleName
|
||||
* @param string $methodName
|
||||
*/
|
||||
public function __construct($moduleName = '', $methodName = '')
|
||||
{
|
||||
parent::__construct($moduleName, $methodName);
|
||||
|
||||
/* This is essential when changing tab(menu) from gitlab to repo. */
|
||||
/* Optional: common::setMenuVars('devops', $this->session->repoID); */
|
||||
$this->loadModel('ci')->setMenu();
|
||||
}
|
||||
|
||||
/**
|
||||
* Browse mr.
|
||||
*
|
||||
* @param int $repoID
|
||||
* @param string $mode
|
||||
* @param string $param
|
||||
* @param int $objectID
|
||||
@@ -28,13 +15,20 @@ class mr extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function browse($mode = 'status', $param = 'opened', $objectID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
public function browse($repoID = 0, $mode = 'status', $param = 'opened', $objectID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
{
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
|
||||
$projects = $this->mr->getAllGitlabProjects();
|
||||
$MRList = $this->mr->getList($mode, $param, $orderBy, $pager, empty($projects) ? false : $projects);
|
||||
$repos = $this->loadModel('repo')->getListBySCM('Gitlab');
|
||||
if(empty($repos)) $this->locate($this->repo->createLink('create'));
|
||||
|
||||
if($repoID == 0) $repoID = $this->repo->saveState($repoID, $objectID);
|
||||
$repo = $this->repo->getRepoByID($repoID);
|
||||
$this->loadModel('ci')->setMenu();
|
||||
|
||||
$projects = $this->mr->getAllGitlabProjects($repoID);
|
||||
$MRList = $this->mr->getList($mode, $param, $orderBy, $pager, empty($projects) ? false : $projects, $repoID);
|
||||
|
||||
/* Save current URI to session. */
|
||||
$this->session->set('mrList', $this->app->getURI(true), 'repo');
|
||||
@@ -62,7 +56,10 @@ class mr extends control
|
||||
$this->view->pager = $pager;
|
||||
$this->view->mode = $mode;
|
||||
$this->view->param = $param;
|
||||
$this->view->repoID = $repoID;
|
||||
$this->view->objectID = $objectID;
|
||||
$this->view->repos = $repos;
|
||||
$this->view->repo = $repo;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->openIDList = $openIDList;
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter');
|
||||
|
||||
+6
-2
@@ -43,10 +43,11 @@ class mrModel extends model
|
||||
* @param string $orderBy
|
||||
* @param object $pager
|
||||
* @param array|bool $filterProjects
|
||||
* @param int $repoID
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getList($mode = 'all', $param = 'all', $orderBy = 'id_desc', $pager = null, $filterProjects = array())
|
||||
public function getList($mode = 'all', $param = 'all', $orderBy = 'id_desc', $pager = null, $filterProjects = array(), $repoID = 0)
|
||||
{
|
||||
/* If filterProjects equals false,it means no permission. */
|
||||
if($filterProjects === false) return array();
|
||||
@@ -70,6 +71,7 @@ class mrModel extends model
|
||||
->beginIF($mode == 'assignee' and $param != 'all')->andWhere('assignee')->eq($param)->fi()
|
||||
->beginIF($mode == 'creator' and $param != 'all')->andWhere('createdBy')->eq($param)->fi()
|
||||
->beginIF($filterProjectSql)->andWhere($filterProjectSql)->fi()
|
||||
->beginIF($repoID)->andWhere('repoID')->eq($repoID)->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll('id');
|
||||
@@ -96,13 +98,15 @@ class mrModel extends model
|
||||
/**
|
||||
* Get all gitlab server projects. If not an administrator, the role of project member should be higher than guest.
|
||||
*
|
||||
* @param int $repoID
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getAllGitlabProjects()
|
||||
public function getAllGitlabProjects($repoID = 0)
|
||||
{
|
||||
$gitlabIDList = $this->dao->select('distinct gitlabID')->from(TABLE_MR)
|
||||
->where('deleted')->eq('0')
|
||||
->beginIF($repoID)->andWhere('repoID')->eq($repoID)->fi()
|
||||
->fetchPairs('gitlabID');
|
||||
|
||||
$allProjects = array();
|
||||
|
||||
@@ -10,28 +10,56 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<?php if($this->config->systemMode == 'new'):?>
|
||||
<div id="sidebarHeader">
|
||||
<div class="title">
|
||||
<?php echo $lang->mr->common;?>
|
||||
<div class='btn-toolbar pull-left'>
|
||||
<div class='btn-group'>
|
||||
<a href='javascript:;' class='btn btn-link btn-limit text-ellipsis' data-toggle='dropdown' style="max-width: 120px;">
|
||||
<span class='text' title='<?php echo $repo->name;?>'><?php echo $repo->name;?></span> <span class='caret'></span>
|
||||
</a>
|
||||
<div id='dropMenu' class='dropdown-menu search-list' data-ride='searchList'>
|
||||
<div class="input-control search-box has-icon-left has-icon-right search-example">
|
||||
<input type="search" class="form-control search-input" />
|
||||
<label class="input-control-icon-left search-icon">
|
||||
<i class="icon icon-search"></i>
|
||||
</label>
|
||||
<a class="input-control-icon-right search-clear-btn">
|
||||
<i class="icon icon-close icon-sm"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="list-group">
|
||||
<div class="table-row">
|
||||
<div class="table-col">
|
||||
<ul class="tree tree-angles" data-ride="tree">
|
||||
<?php
|
||||
foreach($repos as $repo)
|
||||
{
|
||||
echo '<li>';
|
||||
$selectedClass = $repo->id == $repoID ? 'selected' : '';
|
||||
echo html::a(inlink('browse', "repoID=$repo->id"), $repo->name, '_self', "class='clickable search-list-item $selectedClass' title='$repo->name' data-key='$repo->name'");
|
||||
echo '</li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<div class="btn-toolBar pull-left">
|
||||
<?php foreach($lang->mr->statusList as $key => $label):?>
|
||||
<?php $active = $param == $key ? 'btn-active-text' : '';?>
|
||||
<?php $label = "<span class='text'>$label</span>";?>
|
||||
<?php if($param == $key) $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink('browse', "mode=status¶m=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php echo html::a(inlink('browse', "repoID=$repoID&mode=status¶m=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
<?php $active = $mode == 'assignee' ? 'btn-active-text' : '';?>
|
||||
<?php $label = "<span class='text'>{$lang->mr->assignedToMe}</span>";?>
|
||||
<?php if($mode == 'assignee') $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink('browse', "mode=assignee¶m={$this->app->user->account}"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php echo html::a(inlink('browse', "repoID=$repoID&mode=assignee¶m={$this->app->user->account}"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php $active = $mode == 'creator' ? 'btn-active-text' : '';?>
|
||||
<?php $label = "<span class='text'>{$lang->mr->createdByMe}</span>";?>
|
||||
<?php if($mode == 'creator') $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink('browse', "mode=creator¶m={$this->app->user->account}"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php echo html::a(inlink('browse', "repoID=$repoID&mode=creator¶m={$this->app->user->account}"), $label, '', "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'");?>
|
||||
|
||||
Reference in New Issue
Block a user