* Fix repo menu.

This commit is contained in:
Yagami
2021-03-23 14:07:35 +08:00
parent 29060925db
commit 91642e47a2
6 changed files with 41 additions and 31 deletions
+1 -4
View File
@@ -17,10 +17,7 @@ class ciModel extends model
*/
public function setMenu()
{
$repoID = $this->session->repoID;
$moduleName = $this->app->getModuleName();
foreach($this->lang->{$moduleName}->menu as $key => $menu) common::setMenuVars($this->lang->{$moduleName}->menu, $key, $repoID);
$this->lang->{$moduleName}->menuOrder = $this->lang->ci->menuOrder;
common::setMenuVars('devops', $this->session->repoID);
}
/**
+10 -10
View File
@@ -6,7 +6,7 @@ $lang->navIcons['product'] = "<i class='icon icon-product'></i>";
$lang->navIcons['project'] = "<i class='icon icon-project'></i>";
$lang->navIcons['execution'] = "<i class='icon icon-run'></i>";
$lang->navIcons['qa'] = "<i class='icon icon-test'></i>";
$lang->navIcons['devops'] = "<i class='icon icon-code1'></i>";
$lang->navIcons['devops'] = "<i class='icon icon-devops'></i>";
$lang->navIcons['doc'] = "<i class='icon icon-doc'></i>";
$lang->navIcons['report'] = "<i class='icon icon-statistic'></i>";
$lang->navIcons['system'] = "<i class='icon icon-group'></i>";
@@ -171,7 +171,7 @@ $lang->scrum->menu->execution = array('link' => "$lang->executionCommon|project|
$lang->scrum->menu->story = array('link' => "$lang->SRCommon|projectstory|story|projectID=%s", 'alias' => 'story,track');
$lang->scrum->menu->doc = array('link' => "{$lang->doc->common}|doc|objectLibs|type=project&objectID=%s", 'subModule' => 'doc');
$lang->scrum->menu->qa = array('link' => "{$lang->qa->common}|project|qa|projectID=%s", 'subModule' => 'testcase,testtask,bug', 'alias' => 'bug,testtask,testcase');
$lang->scrum->menu->devops = array('link' => "{$lang->devops->common}|repo|browse|repoID=0&objectID=%s", 'subModule' => 'repo');
$lang->scrum->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&objectID=%s", 'subModule' => 'repo');
$lang->scrum->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s");
$lang->scrum->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease');
$lang->scrum->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s");
@@ -213,7 +213,7 @@ $lang->waterfall->menu->doc = array('link' => "{$lang->doc->common}|doc|
$lang->waterfall->menu->weekly = array('link' => "{$lang->project->report}|weekly|index|project=%s", 'subModule' => ',milestone,');
$lang->waterfall->menu->story = array('link' => "$lang->SRCommon|projectstory|story|project=%s");
$lang->waterfall->menu->design = array('link' => "$lang->design|design|browse|product=0&project=%s");
$lang->waterfall->menu->repo = array('link' => "{$lang->devops->common}|repo|browse|repoID=0&objectID=%s", 'subModule' => 'repo');
$lang->waterfall->menu->repo = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&objectID=%s", 'subModule' => 'repo');
$lang->waterfall->menu->track = array('link' => "$lang->track|projectstory|track", 'alias' => 'track');
$lang->waterfall->menu->qa = array('link' => "{$lang->qa->common}|project|qa|projectID=%s", 'subModule' => 'testcase,testtask,bug', 'alias' => 'bug,testtask,testcase');
$lang->waterfall->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse", 'subModule' => 'projectrelease');
@@ -264,7 +264,7 @@ $lang->execution->menu->burn = array('link' => "$lang->burn|execution|burn|e
$lang->execution->menu->view = array('link' => "$lang->view|execution|grouptask|executionID=%s", 'alias' => 'grouptask,tree', 'class' => 'dropdown dropdown-hover');
$lang->execution->menu->story = array('link' => "$lang->SRCommon|execution|story|executionID=%s", 'subModule' => 'story', 'alias' => 'linkstory,storykanban');
$lang->execution->menu->qa = array('link' => "{$lang->qa->common}|execution|qa|executionID=%s", 'subModule' => 'bug', 'alias' => 'qa,bug,testcase,testtask,testreport');
$lang->execution->menu->repo = array('link' => "{$lang->devops->common}|repo|browse|repoID=0&objectID=%s", 'subModule' => 'repo');
$lang->execution->menu->repo = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&objectID=%s", 'subModule' => 'repo');
$lang->execution->menu->doc = array('link' => "{$lang->doc->common}|doc|objectLibs|type=execution&objectID=%s", 'subModule' => 'doc');
$lang->execution->menu->build = array('link' => "{$lang->build->common}|execution|build|executionID=%s", 'subModule' => 'build');
$lang->execution->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|projectID=0&executionID=%s", 'subModule' => 'projectrelease');
@@ -346,7 +346,7 @@ $lang->qa->menu->automation['subMenu']->browse = array('link' => "{$lang->i
/* DevOps menu. */
$lang->devops->menu = new stdclass();
$lang->devops->menu->code = array('link' => "{$lang->devops->common}|repo|browse|repoID=%s", 'alias' => 'diff,view,revision,log,blame,showsynccomment');
$lang->devops->menu->code = array('link' => "{$lang->repo->common}|repo|browse|repoID=%s", 'alias' => 'diff,view,revision,log,blame,showsynccomment');
$lang->devops->menu->compile = array('link' => "{$lang->devops->compile}|job|browse", 'subModule' => 'compile,job');
$lang->devops->menu->jenkins = array('link' => "Jenkins|jenkins|browse", 'alias' => 'create,edit');
$lang->devops->menu->maintain = array('link' => "{$lang->devops->repo}|repo|maintain", 'alias' => 'create,edit');
@@ -517,9 +517,6 @@ $lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
$lang->navGroup->projectrelease = 'project';
$lang->navGroup->build = 'project';
$lang->navGroup->job = 'project';
$lang->navGroup->jenkins = 'project';
$lang->navGroup->compile = 'project';
$lang->navGroup->measrecord = 'project';
$lang->navGroup->execution = 'execution';
@@ -536,8 +533,11 @@ $lang->navGroup->testcase = 'qa';
$lang->navGroup->testtask = 'qa';
$lang->navGroup->automation = 'qa';
$lang->navGroup->devops = 'devops';
$lang->navGroup->repo = 'devops';
$lang->navGroup->devops = 'devops';
$lang->navGroup->repo = 'devops';
$lang->navGroup->job = 'devops';
$lang->navGroup->jenkins = 'devops';
$lang->navGroup->compile = 'devops';
$lang->navGroup->company = 'system';
$lang->navGroup->sqlbuilder = 'system';
+1
View File
@@ -134,6 +134,7 @@ $lang->execution->common = $config->systemMode == 'new' ? '执行' : $lang->exe
$lang->qa->common = '测试';
$lang->devops->common = 'DevOps';
$lang->doc->common = '文档';
$lang->repo->common = '代码';
$lang->report->common = '统计';
$lang->system->common = '组织';
$lang->admin->common = '后台';
-4
View File
@@ -98,10 +98,6 @@
{
return (link.params.from || link.params.$3) == 'project' ? 'project' : 'execution';
}
if(['repo', 'jenkins', 'job', 'compile'].includes(moduleName))
{
return link.prj ? 'project' : 'repo';
}
if(moduleName === 'product')
{
if(methodLowerCase === 'create' && (link.params.programID || link.params.$1)) return 'program';
+13 -5
View File
@@ -74,13 +74,17 @@ class repo extends control
public function maintain($orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
$repoID = $this->session->repoID;
$this->commonAction($repoID);
$this->repo->setMenu($this->repos, $repoID, false);
if(common::hasPriv('repo', 'create')) $this->lang->TRActions = html::a(helper::createLink('repo', 'create'), "<i class='icon icon-plus'></i> " . $this->lang->repo->create, '', "class='btn btn-primary'");
$this->app->loadClass('pager', $static = true);
$pager = new pager($recTotal, $recPerPage, $pageID);
$repoList = $this->repo->getList(0, $orderBy);
$this->view->repoList = $this->repo->getList($this->projectID, $orderBy, $pager);
/* Pager. */
$this->app->loadClass('pager', $static = true);
$recTotal = count($repoList);
$pager = new pager($recTotal, $recPerPage, $pageID);
$repoList = array_chunk($repoList, $pager->recPerPage);
$this->view->title = $this->lang->repo->common . $this->lang->colon . $this->lang->repo->browse;
$this->view->position[] = $this->lang->repo->common;
@@ -89,7 +93,8 @@ class repo extends control
$this->view->repoID = $repoID;
$this->view->orderBy = $orderBy;
$this->view->pager = $pager;
$this->view->products = $this->projectID ? $this->loadModel('product')->getProductPairsByProject($this->projectID) : $this->loadModel('product')->getPairs();
$this->view->repoList = empty($repoList) ? $repoList: $repoList[$pageID - 1];;
$this->view->products = $this->loadModel('product')->getPairs();
$this->display();
}
@@ -311,6 +316,7 @@ class repo extends control
$this->commonAction($objectID);
/* Get path and refresh. */
$path = '';
if($this->get->repoPath) $path = $this->get->repoPath;
if(empty($refresh) and $this->cookie->repoRefresh) $refresh = $this->cookie->repoRefresh;
@@ -757,7 +763,9 @@ class repo extends control
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('setRules')));
}
$this->repo->setMenu($this->repos, $this->session->repoID, false);
$repoID = $this->session->repoID;
$this->commonAction($repoID);
$this->repo->setMenu($this->repos, $repoID, false);
$this->app->loadLang('task');
$this->app->loadLang('bug');
+16 -8
View File
@@ -35,6 +35,7 @@ class repoModel extends model
*/
public function setMenu($repos, $repoID = '', $showSeleter = true)
{
if(empty($repos)) $this->lang->switcherMenu = '';
if(empty($repoID)) $repoID = $this->session->repoID ? $this->session->repoID : key($repos);
if(!isset($repos[$repoID])) $repoID = key($repos);
@@ -57,7 +58,7 @@ class repoModel extends model
if($showSeleter && !empty($repos))
{
$repoIndex = '<div class="btn-group angle-btn"><div class="btn-group"><button data-toggle="dropdown" type="button" class="btn">' . ($repo->SCM == 'Subversion' ? '[SVN] ' : '[GIT] ') . $repo->name . ' <span class="caret"></span></button>';
$repoIndex = '<div class="btn-group header-btn" id="swapper"><div class="btn-group"><button data-toggle="dropdown" type="button" class="btn">' . ($repo->SCM == 'Subversion' ? '[SVN] ' : '[GIT] ') . $repo->name . ' <span class="caret"></span></button>';
$repoIndex .= $this->select($repos, $repoID);
$repoIndex .= '</div></div>';
@@ -77,7 +78,7 @@ class repoModel extends model
$this->setRepoBranch($branchID);
$repoIndex .= '<div class="btn-group angle-btn"><div class="btn-group"><button data-toggle="dropdown" type="button" class="btn">' . $branch . ' <span class="caret"></span></button>';
$repoIndex .= '<div class="btn-group header-btn"><div class="btn-group"><button data-toggle="dropdown" type="button" class="btn">' . $branch . ' <span class="caret"></span></button>';
$repoIndex .= "<div class='dropdown-menu search-list' data-ride='searchList'>";
$repoIndex .= "<div class='list-group'>";
foreach($branches as $branch)
@@ -90,7 +91,7 @@ class repoModel extends model
$repoIndex .= "</div></div></div></div>";
}
$this->lang->modulePageNav = $repoIndex;
$this->lang->switcherMenu = $repoIndex;
}
common::setMenuVars('devops', $repoID);
@@ -139,15 +140,13 @@ class repoModel extends model
*/
public function getList($projectID = 0, $orderBy = 'id_desc', $pager = null)
{
/* Get products. */
$productIdList = $this->loadModel('product')->getProductIDByProject($projectID, false);
$repos = $this->dao->select('*')->from(TABLE_REPO)
->where('deleted')->eq('0')
->andWhere('product')->in($productIdList)
->orderBy($orderBy)
->page($pager)->fetchAll('id');
/* Get products. */
$productIdList = $this->loadModel('product')->getProductIDByProject($projectID, false);
foreach($repos as $i => $repo)
{
$repo->acl = json_decode($repo->acl);
@@ -157,7 +156,16 @@ class repoModel extends model
}
else
{
if($projectID && !in_array($repo->product, $productIdList)) unset($repos[$i]);
if($projectID)
{
$hasPriv = false;
foreach(explode(',', $repo->product) as $productID)
{
if(isset($productIdList[$productID])) $hasPriv = true;
}
if(!$haspriv) unset($repos[$i]);
}
}
}