* Finish Task #7711.
This commit is contained in:
@@ -659,9 +659,6 @@ class actionModel extends model
|
||||
->beginIF($projectID == 'all' or $productID == 'all')->andWhere("IF((objectType!= 'doc' && objectType!= 'doclib'), ($condition), '1=1')")->fi()
|
||||
->beginIF($docs and !$this->app->user->admin)->andWhere("IF(objectType != 'doc', '1=1', objectID " . helper::dbIN($docs) . ")")->fi()
|
||||
->beginIF($libs and !$this->app->user->admin)->andWhere("IF(objectType != 'doclib', '1=1', objectID " . helper::dbIN(array_keys($libs)) . ') ')->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyStory')->andWhere('objectType')->notin('bug,build,project,task,taskcase,testreport,testsuite,testtask')->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('objectType')->notin('product,productplan,release,story,testcase,testreport,testsuite')->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyTest')->andWhere('objectType')->notin('project,productplan,release,story,task')->fi()
|
||||
->beginIF(!empty($actionCondition))->andWhere("($actionCondition)")->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
@@ -774,9 +771,6 @@ class actionModel extends model
|
||||
return $actions = $this->dao->select('*')->from(TABLE_ACTION)
|
||||
->where($sql)
|
||||
->beginIF(!empty($actionCondition))->andWhere("($actionCondition)")->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyStory')->andWhere('objectType')->notin('bug,build,project,task,taskcase,testreport,testsuite,testtask')->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('objectType')->notin('product,productplan,release,story,testcase,testreport,testsuite')->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyTest')->andWhere('objectType')->notin('project,productplan,release,story,task')->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll();
|
||||
|
||||
@@ -49,10 +49,6 @@ class block extends control
|
||||
if(!common::hasPriv($moduleKey, 'index')) unset($modules[$moduleKey]);
|
||||
}
|
||||
|
||||
if($this->config->global->flow == 'onlyTask' or $this->config->global->flow == 'onlyStory') unset($modules['qa']);
|
||||
if($this->config->global->flow == 'onlyTask' or $this->config->global->flow == 'onlyTest') unset($modules['product']);
|
||||
if($this->config->global->flow == 'onlyStory' or $this->config->global->flow == 'onlyTest') unset($modules['project']);
|
||||
|
||||
$closedBlock = isset($this->config->block->closed) ? $this->config->block->closed : '';
|
||||
if(strpos(",$closedBlock,", ",|assigntome,") === false) $modules['assigntome'] = $this->lang->block->assignToMe;
|
||||
if(strpos(",$closedBlock,", ",|dynamic,") === false) $modules['dynamic'] = $this->lang->block->dynamic;
|
||||
@@ -227,10 +223,6 @@ class block extends control
|
||||
continue;
|
||||
}
|
||||
|
||||
if($this->config->global->flow == 'onlyStory' and $block->source != 'product' and $block->source != 'todo' and $block->block != 'dynamic') unset($blocks[$key]);
|
||||
if($this->config->global->flow == 'onlyTask' and $block->source != 'project' and $block->source != 'todo' and $block->block != 'dynamic') unset($blocks[$key]);
|
||||
if($this->config->global->flow == 'onlyTest' and $block->source != 'qa' and $block->source != 'todo' and $block->block != 'dynamic') unset($blocks[$key]);
|
||||
|
||||
$block->params = json_decode($block->params);
|
||||
$blockID = $block->block;
|
||||
$source = empty($block->source) ? 'common' : $block->source;
|
||||
|
||||
@@ -187,54 +187,6 @@ $lang->block->default['full']['my']['8']['source'] = 'product';
|
||||
$lang->block->default['full']['my']['9'] = $lang->block->default['qa']['2'];
|
||||
$lang->block->default['full']['my']['9']['source'] = 'qa';
|
||||
|
||||
$lang->block->default['onlyTest']['my']['1'] = $lang->block->default['qa']['1'];
|
||||
$lang->block->default['onlyTest']['my']['1']['source'] = 'qa';
|
||||
$lang->block->default['onlyTest']['my']['1']['grid'] = '8';
|
||||
$lang->block->default['onlyTest']['my']['2']['title'] = 'Verlauf';
|
||||
$lang->block->default['onlyTest']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTest']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTest']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTest']['my']['3']['title'] = 'Meine Todos';
|
||||
$lang->block->default['onlyTest']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTest']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTest']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyTest']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyTest']['my']['4'] = $lang->block->default['qa']['2'];
|
||||
$lang->block->default['onlyTest']['my']['4']['source'] = 'qa';
|
||||
$lang->block->default['onlyTest']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->default['onlyStory']['my']['1'] = $lang->block->default['project']['1'];
|
||||
$lang->block->default['onlyStory']['my']['1']['source'] = 'project';
|
||||
$lang->block->default['onlyStory']['my']['1']['grid'] = 8;
|
||||
$lang->block->default['onlyStory']['my']['2']['title'] = 'Verlauf';
|
||||
$lang->block->default['onlyStory']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyStory']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyStory']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyStory']['my']['3']['title'] = 'Meine Todos';
|
||||
$lang->block->default['onlyStory']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyStory']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyStory']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyStory']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyStory']['my']['4'] = $lang->block->default['product']['2'];
|
||||
$lang->block->default['onlyStory']['my']['4']['source'] = 'product';
|
||||
$lang->block->default['onlyStory']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->default['onlyTask']['my']['1'] = $lang->block->default['project']['1'];
|
||||
$lang->block->default['onlyTask']['my']['1']['source'] = 'project';
|
||||
$lang->block->default['onlyTask']['my']['1']['grid'] = 8;
|
||||
$lang->block->default['onlyTask']['my']['2']['title'] = 'Verlauf';
|
||||
$lang->block->default['onlyTask']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTask']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTask']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTask']['my']['3']['title'] = 'Meine Todos';
|
||||
$lang->block->default['onlyTask']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTask']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTask']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyTask']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyTask']['my']['4'] = $lang->block->default['project']['2'];
|
||||
$lang->block->default['onlyTask']['my']['4']['source'] = 'project';
|
||||
$lang->block->default['onlyTask']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->num = 'Number';
|
||||
$lang->block->type = 'Type';
|
||||
$lang->block->orderBy = 'Order by';
|
||||
|
||||
@@ -187,54 +187,6 @@ $lang->block->default['full']['my']['8']['source'] = 'product';
|
||||
$lang->block->default['full']['my']['9'] = $lang->block->default['qa']['2'];
|
||||
$lang->block->default['full']['my']['9']['source'] = 'qa';
|
||||
|
||||
$lang->block->default['onlyTest']['my']['1'] = $lang->block->default['qa']['1'];
|
||||
$lang->block->default['onlyTest']['my']['1']['source'] = 'qa';
|
||||
$lang->block->default['onlyTest']['my']['1']['grid'] = '8';
|
||||
$lang->block->default['onlyTest']['my']['2']['title'] = 'Historique';
|
||||
$lang->block->default['onlyTest']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTest']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTest']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTest']['my']['3']['title'] = 'Mon Agenday';
|
||||
$lang->block->default['onlyTest']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTest']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTest']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyTest']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyTest']['my']['4'] = $lang->block->default['qa']['2'];
|
||||
$lang->block->default['onlyTest']['my']['4']['source'] = 'qa';
|
||||
$lang->block->default['onlyTest']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->default['onlyStory']['my']['1'] = $lang->block->default['project']['1'];
|
||||
$lang->block->default['onlyStory']['my']['1']['source'] = 'project';
|
||||
$lang->block->default['onlyStory']['my']['1']['grid'] = 8;
|
||||
$lang->block->default['onlyStory']['my']['2']['title'] = 'Historique';
|
||||
$lang->block->default['onlyStory']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyStory']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyStory']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyStory']['my']['3']['title'] = 'Mon Agenda';
|
||||
$lang->block->default['onlyStory']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyStory']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyStory']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyStory']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyStory']['my']['4'] = $lang->block->default['product']['2'];
|
||||
$lang->block->default['onlyStory']['my']['4']['source'] = 'product';
|
||||
$lang->block->default['onlyStory']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->default['onlyTask']['my']['1'] = $lang->block->default['project']['1'];
|
||||
$lang->block->default['onlyTask']['my']['1']['source'] = 'project';
|
||||
$lang->block->default['onlyTask']['my']['1']['grid'] = 8;
|
||||
$lang->block->default['onlyTask']['my']['2']['title'] = 'Historique';
|
||||
$lang->block->default['onlyTask']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTask']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTask']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTask']['my']['3']['title'] = 'Mon Agenda';
|
||||
$lang->block->default['onlyTask']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTask']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTask']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyTask']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyTask']['my']['4'] = $lang->block->default['project']['2'];
|
||||
$lang->block->default['onlyTask']['my']['4']['source'] = 'project';
|
||||
$lang->block->default['onlyTask']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->num = 'Numéro';
|
||||
$lang->block->type = 'Type';
|
||||
$lang->block->orderBy = 'Trié par';
|
||||
|
||||
@@ -187,54 +187,6 @@ $lang->block->default['full']['my']['8']['source'] = 'product';
|
||||
$lang->block->default['full']['my']['9'] = $lang->block->default['qa']['2'];
|
||||
$lang->block->default['full']['my']['9']['source'] = 'qa';
|
||||
|
||||
$lang->block->default['onlyTest']['my']['1'] = $lang->block->default['qa']['1'];
|
||||
$lang->block->default['onlyTest']['my']['1']['source'] = 'qa';
|
||||
$lang->block->default['onlyTest']['my']['1']['grid'] = '8';
|
||||
$lang->block->default['onlyTest']['my']['2']['title'] = 'Lịch sử';
|
||||
$lang->block->default['onlyTest']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTest']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTest']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTest']['my']['3']['title'] = 'Việc của bạn';
|
||||
$lang->block->default['onlyTest']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTest']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTest']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyTest']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyTest']['my']['4'] = $lang->block->default['qa']['2'];
|
||||
$lang->block->default['onlyTest']['my']['4']['source'] = 'qa';
|
||||
$lang->block->default['onlyTest']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->default['onlyStory']['my']['1'] = $lang->block->default['project']['1'];
|
||||
$lang->block->default['onlyStory']['my']['1']['source'] = 'project';
|
||||
$lang->block->default['onlyStory']['my']['1']['grid'] = 8;
|
||||
$lang->block->default['onlyStory']['my']['2']['title'] = 'Lịch sử';
|
||||
$lang->block->default['onlyStory']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyStory']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyStory']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyStory']['my']['3']['title'] = 'Việc của bạn';
|
||||
$lang->block->default['onlyStory']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyStory']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyStory']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyStory']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyStory']['my']['4'] = $lang->block->default['product']['2'];
|
||||
$lang->block->default['onlyStory']['my']['4']['source'] = 'product';
|
||||
$lang->block->default['onlyStory']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->default['onlyTask']['my']['1'] = $lang->block->default['project']['1'];
|
||||
$lang->block->default['onlyTask']['my']['1']['source'] = 'project';
|
||||
$lang->block->default['onlyTask']['my']['1']['grid'] = 8;
|
||||
$lang->block->default['onlyTask']['my']['2']['title'] = 'Lịch sử';
|
||||
$lang->block->default['onlyTask']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTask']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTask']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTask']['my']['3']['title'] = 'Việc của bạn';
|
||||
$lang->block->default['onlyTask']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTask']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTask']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyTask']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyTask']['my']['4'] = $lang->block->default['project']['2'];
|
||||
$lang->block->default['onlyTask']['my']['4']['source'] = 'project';
|
||||
$lang->block->default['onlyTask']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->num = 'Số';
|
||||
$lang->block->type = 'Loại';
|
||||
$lang->block->orderBy = 'Order by';
|
||||
|
||||
@@ -187,54 +187,6 @@ $lang->block->default['full']['my']['8']['source'] = 'product';
|
||||
$lang->block->default['full']['my']['9'] = $lang->block->default['qa']['2'];
|
||||
$lang->block->default['full']['my']['9']['source'] = 'qa';
|
||||
|
||||
$lang->block->default['onlyTest']['my']['1'] = $lang->block->default['qa']['1'];
|
||||
$lang->block->default['onlyTest']['my']['1']['source'] = 'qa';
|
||||
$lang->block->default['onlyTest']['my']['1']['grid'] = '8';
|
||||
$lang->block->default['onlyTest']['my']['2']['title'] = '最新動態';
|
||||
$lang->block->default['onlyTest']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTest']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTest']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTest']['my']['3']['title'] = '我的待辦';
|
||||
$lang->block->default['onlyTest']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTest']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTest']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyTest']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyTest']['my']['4'] = $lang->block->default['qa']['2'];
|
||||
$lang->block->default['onlyTest']['my']['4']['source'] = 'qa';
|
||||
$lang->block->default['onlyTest']['my']['4']['grid'] = '6';
|
||||
|
||||
$lang->block->default['onlyStory']['my']['1'] = $lang->block->default['product']['1'];
|
||||
$lang->block->default['onlyStory']['my']['1']['source'] = 'product';
|
||||
$lang->block->default['onlyStory']['my']['1']['grid'] = '8';
|
||||
$lang->block->default['onlyStory']['my']['2']['title'] = '最新動態';
|
||||
$lang->block->default['onlyStory']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyStory']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyStory']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyStory']['my']['3']['title'] = '我的待辦';
|
||||
$lang->block->default['onlyStory']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyStory']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyStory']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyStory']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyStory']['my']['4'] = $lang->block->default['product']['2'];
|
||||
$lang->block->default['onlyStory']['my']['4']['source'] = 'product';
|
||||
$lang->block->default['onlyStory']['my']['4']['grid'] = '4';
|
||||
|
||||
$lang->block->default['onlyTask']['my']['1'] = $lang->block->default['project']['1'];
|
||||
$lang->block->default['onlyTask']['my']['1']['source'] = 'project';
|
||||
$lang->block->default['onlyTask']['my']['1']['grid'] = '8';
|
||||
$lang->block->default['onlyTask']['my']['2']['title'] = '最新動態';
|
||||
$lang->block->default['onlyTask']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTask']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTask']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTask']['my']['3']['title'] = '我的待辦';
|
||||
$lang->block->default['onlyTask']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTask']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTask']['my']['3']['source'] = 'todo';
|
||||
$lang->block->default['onlyTask']['my']['3']['params']['num'] = '20';
|
||||
$lang->block->default['onlyTask']['my']['4'] = $lang->block->default['project']['2'];
|
||||
$lang->block->default['onlyTask']['my']['4']['source'] = 'project';
|
||||
$lang->block->default['onlyTask']['my']['4']['grid'] = 6;
|
||||
|
||||
$lang->block->num = '數量';
|
||||
$lang->block->type = '類型';
|
||||
$lang->block->orderBy = '排序';
|
||||
|
||||
@@ -137,10 +137,6 @@ class blockModel extends model
|
||||
->andWhere('module')->eq($module)
|
||||
->andWhere('hidden')->eq(0)
|
||||
->beginIF($type)->andWhere('type')->eq($type)->fi()
|
||||
->beginIF($this->config->global->flow != 'full')->andWhere('block')->notin('flowchart')->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyStory')->andWhere('source')->notin('project,qa')->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('source')->notin('product,qa')->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyTest')->andWhere('source')->notin('product,project')->fi()
|
||||
->orderBy('`order`')
|
||||
->fetchAll('id');
|
||||
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
<ul class="nav nav-secondary">
|
||||
<?php $isFirstTab = true; ?>
|
||||
<?php foreach($hasViewPriv as $type => $bool):?>
|
||||
<?php if($config->global->flow != 'full' && $config->global->flow != 'onlyTask' && $type == 'task') continue;?>
|
||||
<?php if($config->global->flow != 'full' && $config->global->flow != 'onlyTest' && $type == 'bug') continue;?>
|
||||
<li<?php if($isFirstTab) {echo ' class="active"';}?>>
|
||||
<a data-tab href='#assigntomeTab-<?php echo $type;?>' onClick="changeLabel('<?php echo $type;?>')">
|
||||
<?php echo $lang->block->availableBlocks->$type;?>
|
||||
@@ -27,8 +25,6 @@
|
||||
<div class="tab-content">
|
||||
<?php $isFirstTab = true; ?>
|
||||
<?php foreach($hasViewPriv as $type => $bool):?>
|
||||
<?php if($config->global->flow != 'full' && $config->global->flow != 'onlyTask' && $type == 'task') continue;?>
|
||||
<?php if($config->global->flow != 'full' && $config->global->flow != 'onlyTest' && $type == 'bug') continue;?>
|
||||
<div class="tab-pane<?php if($isFirstTab) {echo ' active'; $isFirstTab = false;}?>" id="assigntomeTab-<?php echo $type?>">
|
||||
<?php include "{$type}block.html.php";?>
|
||||
</div>
|
||||
|
||||
@@ -154,7 +154,6 @@ $(function()
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($this->config->global->flow != 'onlyTask'): ?>
|
||||
<div class="product-info">
|
||||
<div class="progress-info"><i class="icon icon-check-circle text-success icon-sm"></i> <span class="text-muted"><?php echo $lang->story->released;?></span> <strong><?php echo $project->releasedStories;?></strong></div>
|
||||
<div class="progress">
|
||||
@@ -196,7 +195,6 @@ $(function()
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
<div class="col col-right">
|
||||
<h4><small class="text-muted"><?php echo date(DT_DATE3)?></small> <?php echo $lang->block->leftToday?></h4>
|
||||
<div class="row tiles">
|
||||
<?php if($this->config->global->flow == 'full' or $this->config->global->flow == 'onlyTask'):?>
|
||||
<div class="col tile">
|
||||
<div class="tile-title"><?php echo $lang->block->myTask?></div>
|
||||
<div class="tile-amount"><?php echo empty($tasks) ? 0 : html::a($this->createLink('my', 'task', 'type=assignedTo'), (int)$tasks);?></div>
|
||||
@@ -54,8 +53,6 @@
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php if($this->config->global->flow == 'full' or $this->config->global->flow == 'onlyTest'):?>
|
||||
<div class="col tile">
|
||||
<div class="tile-title"><?php echo $lang->block->myBug?></div>
|
||||
<div class="tile-amount"><?php echo empty($bugs) ? 0 : html::a($this->createLink('my', 'bug', 'type=assignedTo'), (int)$bugs);?></div>
|
||||
@@ -65,13 +62,10 @@
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php if($this->config->global->flow == 'full' or $this->config->global->flow == 'onlyStory'):?>
|
||||
<div class="col tile">
|
||||
<div class="tile-title"><?php echo $lang->block->myStory?></div>
|
||||
<div class="tile-amount"><?php echo empty($stories) ? 0 : html::a($this->createLink('my', 'story', 'type=assignedTo'), (int)$stories);?></div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -46,17 +46,6 @@ $config->bug->custom->createFields = $config->bug->list->customCreateFields
|
||||
$config->bug->custom->batchCreateFields = 'project,deadline,steps,type,severity,os,browser';
|
||||
$config->bug->custom->batchEditFields = 'type,severity,pri,branch,assignedTo,deadline,status,resolvedBy,resolution';
|
||||
|
||||
if($config->global->flow == 'onlyTest')
|
||||
{
|
||||
$config->bug->list->allFields = str_replace(array('project, ', 'story, ', 'task,'), '', $config->bug->list->allFields);
|
||||
$config->bug->list->exportFields = str_replace(array('project, ', 'story, ', 'task,'), '', $config->bug->list->exportFields);
|
||||
|
||||
$config->bug->list->customCreateFields = str_replace(array('project,', 'story,', 'task,'), '', $config->bug->list->customCreateFields);
|
||||
$config->bug->list->customBatchCreateFields = str_replace('project,', '', $config->bug->list->customBatchCreateFields);
|
||||
|
||||
$config->bug->custom->batchCreateFields = str_replace('project,', '', $config->bug->custom->batchCreateFields);
|
||||
}
|
||||
|
||||
$config->bug->editor = new stdclass();
|
||||
$config->bug->editor->create = array('id' => 'steps', 'tools' => 'bugTools');
|
||||
$config->bug->editor->edit = array('id' => 'steps,comment', 'tools' => 'bugTools');
|
||||
@@ -113,14 +102,6 @@ $config->bug->search['fields']['closedDate'] = $lang->bug->closedDate;
|
||||
$config->bug->search['fields']['lastEditedDate'] = $lang->bug->lastEditedDateAB;
|
||||
$config->bug->search['fields']['deadline'] = $lang->bug->deadline;
|
||||
|
||||
if($config->global->flow == 'onlyTest')
|
||||
{
|
||||
unset($config->bug->search['fields']['project']);
|
||||
unset($config->bug->search['fields']['plan']);
|
||||
unset($config->bug->search['fields']['toTask']);
|
||||
unset($config->bug->search['fields']['toStory']);
|
||||
}
|
||||
|
||||
$config->bug->search['params']['title'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
|
||||
$config->bug->search['params']['keywords'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
|
||||
$config->bug->search['params']['steps'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
|
||||
|
||||
@@ -31,14 +31,6 @@ class bug extends control
|
||||
$this->loadModel('task');
|
||||
$this->view->products = $this->products = $this->product->getPairs('nocode');
|
||||
|
||||
if($this->config->global->flow == 'onlyTest')
|
||||
{
|
||||
$this->config->bug->list->customCreateFields = str_replace(array('project,', 'story,', 'task,'), '', $this->config->bug->list->customCreateFields);
|
||||
$this->config->bug->list->customBatchCreateFields = str_replace('project,', '', $this->config->bug->list->customBatchCreateFields);
|
||||
|
||||
$this->config->bug->custom->batchCreateFields = str_replace('project,', '', $this->config->bug->custom->batchCreateFields);
|
||||
}
|
||||
|
||||
if(empty($this->products)) die($this->locate($this->createLink('product', 'showErrorNone', "fromModule=bug")));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,43 +1,4 @@
|
||||
$(function()
|
||||
{
|
||||
if($('#bugList thead th.c-title').width() < 150) $('#bugList thead th.c-title').width(150);
|
||||
|
||||
if(flow == 'onlyTest')
|
||||
{
|
||||
$('#subNavbar > .nav li[data-id=' + browseType + ']').addClass('active');
|
||||
var $more = $('#subNavbar > .nav > li[data-id=more]');
|
||||
if($more.find('.dropdown-menu').children().length)
|
||||
{
|
||||
$more.find('.dropdown-menu').children().each(function()
|
||||
{
|
||||
if($(this).hasClass('active')) $more.addClass('active');
|
||||
});
|
||||
}
|
||||
|
||||
var navWidth = $('#subNavbar > .nav').width();
|
||||
var leftWidth = 0;
|
||||
var rightWidth = 0;
|
||||
|
||||
$rightNav = $('#subNavbar > .nav > li.right');
|
||||
rightLength = $rightNav.length;
|
||||
for(i = 0; i < rightLength; i++) rightWidth += $rightNav.eq(i).width();
|
||||
|
||||
var maxWidth = navWidth - $('#subNavbar > .nav > #bysearchTab').width() - rightWidth - 100;
|
||||
|
||||
$('#subNavbar > .nav > li:not(.right)').each(function()
|
||||
{
|
||||
if(leftWidth > maxWidth)
|
||||
{
|
||||
if($(this).attr('id') != 'moreMenus' && $(this).attr('id') != 'bysearchTab')
|
||||
{
|
||||
$('#subNavbar').removeClass('hidden');
|
||||
$('#subNavbar > ul').append($(this)[0]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
leftWidth += $(this).width();
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
@@ -495,7 +495,6 @@ function notice()
|
||||
var branch = $('#branch').val();
|
||||
if(typeof(branch) == 'undefined') branch = 0;
|
||||
var link = createLink('release', 'create', 'productID=' + $('#product').val() + '&branch=' + branch);
|
||||
if(typeof(flow) != 'undefined' && flow == 'onlyTest') link = createLink('build', 'create','projectID=' + $('#product').val());
|
||||
link += config.requestType == 'GET' ? '&onlybody=yes' : '?onlybody=yes';
|
||||
html += '<a href="' + link + '" data-toggle="modal" data-type="iframe" style="padding-right:5px">' + createBuild + '</a> ';
|
||||
html += '<a href="javascript:loadProductBuilds(' + $('#product').val() + ')">' + refresh + '</a>';
|
||||
|
||||
+2
-29
@@ -91,35 +91,8 @@ class bugModel extends model
|
||||
$this->lang->modulePageActions = $pageActions;
|
||||
foreach($this->lang->bug->menu as $key => $menu)
|
||||
{
|
||||
if($this->config->global->flow == 'full') $this->loadModel('qa')->setSubMenu('bug', $key, $productID);
|
||||
if($this->config->global->flow != 'onlyTest')
|
||||
{
|
||||
$replace = $productID;
|
||||
}
|
||||
else
|
||||
{
|
||||
$replace = array();
|
||||
$replace['productID'] = $productID;
|
||||
$replace['branch'] = $branch;
|
||||
$replace['param'] = $moduleID;
|
||||
|
||||
/* Replace for dropdown submenu. */
|
||||
if(isset($this->lang->bug->subMenu->$key))
|
||||
{
|
||||
$subMenu = common::createSubMenu($this->lang->bug->subMenu->$key, $replace);
|
||||
|
||||
/* Avoid the menu shaking when change it by js. */
|
||||
if(isset($subMenu[$browseType]))
|
||||
{
|
||||
$currentSubMenu = $subMenu[$browseType];
|
||||
$this->lang->bug->menu->more['link'] = "$currentSubMenu->text|" . implode('|', $currentSubMenu->link);
|
||||
}
|
||||
|
||||
if(!empty($subMenu)) $this->lang->bug->menu->{$key}['subMenu'] = $subMenu;
|
||||
}
|
||||
|
||||
if($this->app->getMethodName() != 'view') $this->lang->bug->menu->bysearch = "<a class='querybox-toggle' id='bysearchTab'><i class='icon icon-search muted'> </i>{$this->lang->bug->byQuery}</a>";
|
||||
}
|
||||
$this->loadModel('qa')->setSubMenu('bug', $key, $productID);
|
||||
$replace = $productID;
|
||||
common::setMenuVars($this->lang->bug->menu, $key, $replace);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,13 +11,6 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php if($config->global->flow == 'onlyTest'):?>
|
||||
<style>
|
||||
.nav > li > .btn-group > a, .nav > li > .btn-group > a:hover, .nav > li > .btn-group > a:focus{background: #1a4f85; border-color: #164270;}
|
||||
.outer.with-side #featurebar {background: none; border: none; line-height: 0; margin: 0; min-height: 0; padding: 0; }
|
||||
#querybox #searchform{border-bottom: 1px solid #ddd; margin-bottom: 20px;}
|
||||
</style>
|
||||
<?php endif;?>
|
||||
<?php
|
||||
include '../../common/view/datatable.fix.html.php';
|
||||
js::set('browseType', $browseType);
|
||||
|
||||
@@ -60,7 +60,7 @@ js::set('flow', $config->global->flow);
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php $showProject = (strpos(",$showFields,", ',project,') !== false && $config->global->flow != 'onlyTest');?>
|
||||
<?php $showProject = (strpos(",$showFields,", ',project,') !== false);?>
|
||||
<tr>
|
||||
<th><?php echo ($showProject) ? $lang->bug->project : $lang->bug->type;?></th>
|
||||
|
||||
@@ -111,7 +111,7 @@ js::set('flow', $config->global->flow);
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($this->config->global->flow != 'onlyTest' && $showProject):?>
|
||||
<?php if($showProject):?>
|
||||
<?php $showOS = strpos(",$showFields,", ',os,') !== false;?>
|
||||
<?php $showBrowser = strpos(",$showFields,", ',browser,') !== false;?>
|
||||
<tr>
|
||||
@@ -228,7 +228,7 @@ js::set('flow', $config->global->flow);
|
||||
$showStory = strpos(",$showFields,", ',story,') !== false;
|
||||
$showTask = strpos(",$showFields,", ',task,') !== false;
|
||||
?>
|
||||
<?php if(($showStory or $showTask) and $this->config->global->flow != 'onlyTest'):?>
|
||||
<?php if(($showStory or $showTask)):?>
|
||||
<tr>
|
||||
<th><?php echo ($showStory) ? $lang->bug->story : $lang->bug->task;?></th>
|
||||
<?php if($showStory):?>
|
||||
|
||||
@@ -112,14 +112,12 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->productplan;?></th>
|
||||
<td>
|
||||
<span id="planIdBox"><?php echo html::select('plan', $plans, $bug->plan, "class='form-control chosen'");?></span>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->type;?></th>
|
||||
<td><?php echo html::select('type', $lang->bug->typeList, $bug->type, "class='form-control chosen'"); ?></td>
|
||||
@@ -172,7 +170,6 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<div class='detail'>
|
||||
<div class='detail-title'><?php echo $lang->bug->legendPrjStoryTask;?></div>
|
||||
<table class='table table-form'>
|
||||
@@ -193,7 +190,6 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<div class='detail'>
|
||||
<div class='detail-title'><?php echo $lang->bug->legendLife;?></div>
|
||||
<table class='table table-form'>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
common::printIcon('bug', 'close', $params, $bug, 'button', '', '', 'text-danger iframe showinonlybody', true);
|
||||
common::printIcon('bug', 'activate', $params, $bug, 'button', '', '', 'text-success iframe showinonlybody', true);
|
||||
|
||||
if($config->global->flow != 'onlyTest') common::printIcon('bug', 'toStory', "product=$bug->product&branch=$bug->branch&module=0&story=0&project=0&bugID=$bug->id", $bug, 'button', $lang->icons['story'], '', '', '', '', $lang->bug->toStory);
|
||||
common::printIcon('bug', 'toStory', "product=$bug->product&branch=$bug->branch&module=0&story=0&project=0&bugID=$bug->id", $bug, 'button', $lang->icons['story'], '', '', '', '', $lang->bug->toStory);
|
||||
common::printIcon('bug', 'createCase', $convertParams, $bug, 'button', 'sitemap');
|
||||
|
||||
echo $this->buildOperateMenu($bug, 'view');
|
||||
@@ -96,9 +96,7 @@
|
||||
<div class='tabs'>
|
||||
<ul class='nav nav-tabs'>
|
||||
<li class='active'><a href='#legendBasicInfo' data-toggle='tab'><?php echo $lang->bug->legendBasicInfo;?></a></li>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<li><a href='#legendPrjStoryTask' data-toggle='tab'><?php echo $lang->bug->legendPrjStoryTask;?></a></li>
|
||||
<?php endif;?>
|
||||
</ul>
|
||||
<div class='tab-content'>
|
||||
<div class='tab-pane active' id='legendBasicInfo'>
|
||||
@@ -229,7 +227,6 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<div class='tab-pane' id='legendPrjStoryTask'>
|
||||
<table class='table table-data'>
|
||||
<tbody>
|
||||
@@ -258,7 +255,6 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -356,7 +352,6 @@
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<?php if($bug->toStory != 0):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->toStory;?></th>
|
||||
@@ -369,7 +364,6 @@
|
||||
<td><?php echo html::a($this->createLink('task', 'view', "taskID=$bug->toTask", '', true), "#$bug->toTask $bug->toTaskTitle", '', "class='iframe' data-width='80%'");?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php endif;?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
+69
-120
@@ -39,45 +39,27 @@ class build extends control
|
||||
$this->loadModel('project');
|
||||
$this->loadModel('user');
|
||||
|
||||
if($this->config->global->flow == 'onlyTest')
|
||||
{
|
||||
$product = $this->loadModel('product')->getByID($projectID);
|
||||
$products = $this->product->getPairs();
|
||||
$this->product->setMenu($products, $projectID);
|
||||
$this->lang->build->menu = $this->lang->product->menu;
|
||||
/* Set menu. */
|
||||
$this->project->setMenu($this->project->getPairs(), $projectID);
|
||||
|
||||
$productGroups = array();
|
||||
$product->branch = 0;
|
||||
foreach($products as $productID => $name) $productGroups[$productID]['branch'] = 0;
|
||||
/* Get stories and bugs. */
|
||||
$orderBy = 'status_asc, stage_asc, id_desc';
|
||||
|
||||
$this->view->title = $this->lang->build->create;
|
||||
$this->view->product = $product;
|
||||
$this->view->branches = ($product and $product->type == 'normal') ? array() : $this->loadModel('branch')->getPairs($projectID);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Set menu. */
|
||||
$this->project->setMenu($this->project->getPairs(), $projectID);
|
||||
/* Assign. */
|
||||
$project = $this->loadModel('project')->getById($projectID);
|
||||
|
||||
/* Get stories and bugs. */
|
||||
$orderBy = 'status_asc, stage_asc, id_desc';
|
||||
$productGroups = $this->project->getProducts($projectID);
|
||||
$productID = $productID ? $productID : key($productGroups);
|
||||
$products = array();
|
||||
foreach($productGroups as $product) $products[$product->id] = $product->name;
|
||||
|
||||
/* Assign. */
|
||||
$project = $this->loadModel('project')->getById($projectID);
|
||||
|
||||
$productGroups = $this->project->getProducts($projectID);
|
||||
$productID = $productID ? $productID : key($productGroups);
|
||||
$products = array();
|
||||
foreach($productGroups as $product) $products[$product->id] = $product->name;
|
||||
|
||||
$this->view->title = $project->name . $this->lang->colon . $this->lang->build->create;
|
||||
$this->view->position[] = html::a($this->createLink('project', 'task', "projectID=$projectID"), $project->name);
|
||||
$this->view->position[] = $this->lang->build->create;
|
||||
$this->view->product = isset($productGroups[$productID]) ? $productGroups[$productID] : '';
|
||||
$this->view->branches = (isset($productGroups[$productID]) and $productGroups[$productID]->type == 'normal') ? array() : $this->loadModel('branch')->getPairs($productID);
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->orderBy = $orderBy;
|
||||
}
|
||||
$this->view->title = $project->name . $this->lang->colon . $this->lang->build->create;
|
||||
$this->view->position[] = html::a($this->createLink('project', 'task', "projectID=$projectID"), $project->name);
|
||||
$this->view->position[] = $this->lang->build->create;
|
||||
$this->view->product = isset($productGroups[$productID]) ? $productGroups[$productID] : '';
|
||||
$this->view->branches = (isset($productGroups[$productID]) and $productGroups[$productID]->type == 'normal') ? array() : $this->loadModel('branch')->getPairs($productID);
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->orderBy = $orderBy;
|
||||
|
||||
$this->view->products = $products;
|
||||
$this->view->lastBuild = $this->build->getLast($projectID);
|
||||
@@ -116,65 +98,46 @@ class build extends control
|
||||
|
||||
$build = $this->build->getById((int)$buildID);
|
||||
|
||||
if($this->config->global->flow == 'onlyTest')
|
||||
$this->loadModel('project');
|
||||
|
||||
/* Set menu. */
|
||||
$this->project->setMenu($this->project->getPairs(), $build->project);
|
||||
|
||||
/* Get stories and bugs. */
|
||||
$orderBy = 'status_asc, stage_asc, id_desc';
|
||||
|
||||
/* Assign. */
|
||||
$project = $this->loadModel('project')->getById($build->project);
|
||||
if(empty($project))
|
||||
{
|
||||
$product = $this->loadModel('product')->getById($build->product);
|
||||
$products = $this->product->getPairs();
|
||||
$this->product->setMenu($products, $build->product);
|
||||
$this->lang->build->menu = $this->lang->product->menu;
|
||||
|
||||
$productGroups = array();
|
||||
$product->branch = 0;
|
||||
foreach($products as $productID => $name) $productGroups[$productID]['branch'] = 0;
|
||||
|
||||
$this->view->title = $this->lang->build->edit;
|
||||
$this->view->position[] = $this->lang->build->edit;
|
||||
$this->view->product = $product;
|
||||
$this->view->branches = ($product and $product->type == 'normal') ? array() : $this->loadModel('branch')->getPairs($build->product);
|
||||
$project = new stdclass();
|
||||
$project->name = '';
|
||||
}
|
||||
else
|
||||
|
||||
$projects = $this->loadModel('product')->getProjectPairs($build->product, $build->branch, 'nodeleted');
|
||||
if(!isset($projects[$build->project])) $projects[$build->project] = $project->name;
|
||||
|
||||
$productGroups = $this->project->getProducts($build->project);
|
||||
|
||||
$this->loadModel('product');
|
||||
if(!isset($productGroups[$build->product]))
|
||||
{
|
||||
$this->loadModel('project');
|
||||
|
||||
/* Set menu. */
|
||||
$this->project->setMenu($this->project->getPairs(), $build->project);
|
||||
|
||||
/* Get stories and bugs. */
|
||||
$orderBy = 'status_asc, stage_asc, id_desc';
|
||||
|
||||
/* Assign. */
|
||||
$project = $this->loadModel('project')->getById($build->project);
|
||||
if(empty($project))
|
||||
{
|
||||
$project = new stdclass();
|
||||
$project->name = '';
|
||||
}
|
||||
|
||||
$projects = $this->loadModel('product')->getProjectPairs($build->product, $build->branch, 'nodeleted');
|
||||
if(!isset($projects[$build->project])) $projects[$build->project] = $project->name;
|
||||
|
||||
$productGroups = $this->project->getProducts($build->project);
|
||||
|
||||
$this->loadModel('product');
|
||||
if(!isset($productGroups[$build->product]))
|
||||
{
|
||||
$product = $this->product->getById($build->product);
|
||||
$product->branch = $build->branch;
|
||||
$productGroups[$build->product] = $product;
|
||||
}
|
||||
|
||||
$products = array();
|
||||
foreach($productGroups as $product) $products[$product->id] = $product->name;
|
||||
|
||||
$this->view->title = $project->name . $this->lang->colon . $this->lang->build->edit;
|
||||
$this->view->position[] = html::a($this->createLink('project', 'task', "projectID=$build->project"), $project->name);
|
||||
$this->view->position[] = $this->lang->build->edit;
|
||||
$this->view->product = isset($productGroups[$build->product]) ? $productGroups[$build->product] : '';
|
||||
$this->view->branches = (isset($productGroups[$build->product]) and $productGroups[$build->product]->type == 'normal') ? array() : $this->loadModel('branch')->getPairs($build->product);
|
||||
$this->view->projects = $projects;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$product = $this->product->getById($build->product);
|
||||
$product->branch = $build->branch;
|
||||
$productGroups[$build->product] = $product;
|
||||
}
|
||||
|
||||
$products = array();
|
||||
foreach($productGroups as $product) $products[$product->id] = $product->name;
|
||||
|
||||
$this->view->title = $project->name . $this->lang->colon . $this->lang->build->edit;
|
||||
$this->view->position[] = html::a($this->createLink('project', 'task', "projectID=$build->project"), $project->name);
|
||||
$this->view->position[] = $this->lang->build->edit;
|
||||
$this->view->product = isset($productGroups[$build->product]) ? $productGroups[$build->product] : '';
|
||||
$this->view->branches = (isset($productGroups[$build->product]) and $productGroups[$build->product]->type == 'normal') ? array() : $this->loadModel('branch')->getPairs($build->product);
|
||||
$this->view->projects = $projects;
|
||||
$this->view->orderBy = $orderBy;
|
||||
|
||||
$this->view->productGroups = $productGroups;
|
||||
$this->view->products = $products;
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter', $build->builder);
|
||||
@@ -221,39 +184,26 @@ class build extends control
|
||||
->page($bugPager)
|
||||
->fetchAll();
|
||||
|
||||
if($this->config->global->flow == 'onlyTest')
|
||||
{
|
||||
$products = $this->loadModel('product')->getPairs();
|
||||
$this->product->setMenu($products, $build->product, $buildID);
|
||||
$this->lang->build->menu = $this->lang->product->menu;
|
||||
$storyPager = new pager($type == 'story' ? $recTotal : 0, $recPerPage, $type == 'story' ? $pageID : 1);
|
||||
$stories = $this->dao->select('*')->from(TABLE_STORY)->where('id')->in($build->stories)->andWhere('deleted')->eq(0)
|
||||
->beginIF($type == 'story')->orderBy($orderBy)->fi()
|
||||
->page($storyPager)
|
||||
->fetchAll('id');
|
||||
$stages = $this->dao->select('*')->from(TABLE_STORYSTAGE)->where('story')->in($build->stories)->andWhere('branch')->eq($build->branch)->fetchPairs('story', 'stage');
|
||||
foreach($stages as $storyID => $stage)$stories[$storyID]->stage = $stage;
|
||||
|
||||
$this->view->title = "BUILD #$build->id $build->name - " . $build->productName;
|
||||
$this->view->position[] = html::a($this->createLink('product', 'build', "productID=$build->product"), $build->productName);
|
||||
$this->view->position[] = $this->lang->build->view;
|
||||
}
|
||||
else
|
||||
{
|
||||
$storyPager = new pager($type == 'story' ? $recTotal : 0, $recPerPage, $type == 'story' ? $pageID : 1);
|
||||
$stories = $this->dao->select('*')->from(TABLE_STORY)->where('id')->in($build->stories)->andWhere('deleted')->eq(0)
|
||||
->beginIF($type == 'story')->orderBy($orderBy)->fi()
|
||||
->page($storyPager)
|
||||
->fetchAll('id');
|
||||
$stages = $this->dao->select('*')->from(TABLE_STORYSTAGE)->where('story')->in($build->stories)->andWhere('branch')->eq($build->branch)->fetchPairs('story', 'stage');
|
||||
foreach($stages as $storyID => $stage)$stories[$storyID]->stage = $stage;
|
||||
$this->loadModel('project')->setMenu($this->project->getPairs(), $build->project, $buildID);
|
||||
$projects = $this->project->getPairs('empty');
|
||||
|
||||
$this->loadModel('project')->setMenu($this->project->getPairs(), $build->project, $buildID);
|
||||
$projects = $this->project->getPairs('empty');
|
||||
$this->view->title = "BUILD #$build->id $build->name - " . $projects[$build->project];
|
||||
$this->view->position[] = html::a($this->createLink('project', 'task', "projectID=$build->project"), $projects[$build->project]);
|
||||
$this->view->position[] = $this->lang->build->view;
|
||||
$this->view->stories = $stories;
|
||||
$this->view->storyPager = $storyPager;
|
||||
|
||||
$this->view->title = "BUILD #$build->id $build->name - " . $projects[$build->project];
|
||||
$this->view->position[] = html::a($this->createLink('project', 'task', "projectID=$build->project"), $projects[$build->project]);
|
||||
$this->view->position[] = $this->lang->build->view;
|
||||
$this->view->stories = $stories;
|
||||
$this->view->storyPager = $storyPager;
|
||||
|
||||
$generatedBugPager = new pager($type == 'generatedBug' ? $recTotal : 0, $recPerPage, $type == 'generatedBug' ? $pageID : 1);
|
||||
$this->view->generatedBugs = $this->bug->getProjectBugs($build->project, $build->id, '', 0, $type == 'generatedBug' ? $orderBy : 'status_desc,id_desc', '', $generatedBugPager);
|
||||
$this->view->generatedBugPager = $generatedBugPager;
|
||||
}
|
||||
$generatedBugPager = new pager($type == 'generatedBug' ? $recTotal : 0, $recPerPage, $type == 'generatedBug' ? $pageID : 1);
|
||||
$this->view->generatedBugs = $this->bug->getProjectBugs($build->project, $build->id, '', 0, $type == 'generatedBug' ? $orderBy : 'status_desc,id_desc', '', $generatedBugPager);
|
||||
$this->view->generatedBugPager = $generatedBugPager;
|
||||
|
||||
$this->executeHooks($buildID);
|
||||
|
||||
@@ -309,7 +259,6 @@ class build extends control
|
||||
$this->send($response);
|
||||
}
|
||||
|
||||
if($this->config->global->flow == 'onlyTest') die(js::locate($this->createLink('project', 'build', "productID=$build->product"), 'parent'));
|
||||
die(js::locate($this->createLink('project', 'build', "projectID=$build->project"), 'parent'));
|
||||
}
|
||||
}
|
||||
|
||||
+19
-22
@@ -44,30 +44,27 @@ function loadURL(url, type)
|
||||
|
||||
$(function()
|
||||
{
|
||||
if(flow != 'onlyTest')
|
||||
if(link == 'true') showLink(buildID, type, param);
|
||||
var infoShowed = false;
|
||||
$('.nav.nav-tabs a[data-toggle="tab"]').on('shown.zui.tab', function(e)
|
||||
{
|
||||
if(link == 'true') showLink(buildID, type, param);
|
||||
var infoShowed = false;
|
||||
$('.nav.nav-tabs a[data-toggle="tab"]').on('shown.zui.tab', function(e)
|
||||
var href = $(e.target).attr('href');
|
||||
var tabPane = $(href + '.tab-pane');
|
||||
if(tabPane.size() == 0) return;
|
||||
var formID = tabPane.find('.linkBox').find('form:last');
|
||||
if(formID.size() == 0) formID = tabPane.find('form:last');
|
||||
|
||||
if(href == '#buildInfo' && !infoShowed)
|
||||
{
|
||||
var href = $(e.target).attr('href');
|
||||
var tabPane = $(href + '.tab-pane');
|
||||
if(tabPane.size() == 0) return;
|
||||
var formID = tabPane.find('.linkBox').find('form:last');
|
||||
if(formID.size() == 0) formID = tabPane.find('form:last');
|
||||
|
||||
if(href == '#buildInfo' && !infoShowed)
|
||||
var $tr = $('#buildInfo .detail-content .table-data tbody tr:first');
|
||||
width = $tr.width() - $tr.find('th').width();
|
||||
$('#buildInfo img').each(function()
|
||||
{
|
||||
var $tr = $('#buildInfo .detail-content .table-data tbody tr:first');
|
||||
width = $tr.width() - $tr.find('th').width();
|
||||
$('#buildInfo img').each(function()
|
||||
{
|
||||
if($(this).parent().prop('tagName').toLowerCase() == 'a') $(this).unwrap();
|
||||
setImageSize($(this), width, 0);
|
||||
});
|
||||
if($(this).parent().prop('tagName').toLowerCase() == 'a') $(this).unwrap();
|
||||
setImageSize($(this), width, 0);
|
||||
});
|
||||
|
||||
infoShowed = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
infoShowed = true;
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
@@ -208,8 +208,6 @@ class buildModel extends model
|
||||
->remove('resolvedBy,allchecker,files,labels,uid')
|
||||
->get();
|
||||
|
||||
if($this->config->global->flow == 'onlyTest') $build->project = 0;
|
||||
|
||||
$build = $this->loadModel('file')->processImgURL($build, $this->config->build->editor->create['id'], $this->post->uid);
|
||||
$this->dao->insert(TABLE_BUILD)->data($build)
|
||||
->autoCheck()
|
||||
@@ -244,7 +242,6 @@ class buildModel extends model
|
||||
->remove('allchecker,resolvedBy,files,labels,uid')
|
||||
->get();
|
||||
|
||||
if($this->config->global->flow == 'onlyTest') $this->config->build->edit->requiredFields = str_replace('project,', '', $this->config->build->edit->requiredFields);
|
||||
$build = $this->loadModel('file')->processImgURL($build, $this->config->build->editor->edit['id'], $this->post->uid);
|
||||
$this->dao->update(TABLE_BUILD)->data($build)
|
||||
->autoCheck()
|
||||
|
||||
@@ -43,12 +43,10 @@
|
||||
</td>
|
||||
<td><?php if($disabled) echo $lang->build->notice->changeProduct;?></td>
|
||||
</tr>
|
||||
<?php if($this->config->global->flow != 'onlyTest'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->build->project;?></th>
|
||||
<td id='projectsBox'><?php echo html::select('project', $projects, $build->project, "class='form-control chosen' required");?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->build->name;?></th>
|
||||
<td><?php echo html::input('name', $build->name, "class='form-control' required");?></td>
|
||||
|
||||
@@ -59,28 +59,6 @@ tbody tr td:first-child input{display:none;}
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<?php if($config->global->flow == 'onlyTest'):?>
|
||||
<div class='detail'>
|
||||
<div class='detail-title'><?php echo $lang->build->desc;?></div>
|
||||
<div class='detail-content article-content'><?php echo $build->desc;?></div>
|
||||
</div>
|
||||
<?php echo $this->fetch('file', 'printFiles', array('files' => $build->files, 'fieldset' => 'true'));?>
|
||||
<?php include '../../common/view/action.html.php';?>
|
||||
<div id="mainActions" class='main-actions'>
|
||||
<nav class="container"></nav>
|
||||
<div class="btn-toolbar">
|
||||
<?php
|
||||
common::printBack($browseLink);
|
||||
if(!$build->deleted)
|
||||
{
|
||||
echo "<div class='divider'></div>";
|
||||
common::printIcon('build', 'edit', "buildID=$build->id", $build);
|
||||
common::printIcon('build', 'delete', "buildID=$build->id", $build, 'button', '', 'hiddenwin');
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div class='tabs' id='tabsNav'>
|
||||
<?php $countStories = count($stories); $countBugs = count($bugs); $countGeneratedBugs = count($generatedBugs);?>
|
||||
<ul class='nav nav-tabs'>
|
||||
@@ -360,7 +338,6 @@ tbody tr td:first-child input{display:none;}
|
||||
<td style='word-break:break-all;'><?php echo html::a($build->filePath, $build->filePath, '_blank');?></td>
|
||||
</tr>
|
||||
<?php $this->printExtendFields($build, 'table', 'inForm=0');?>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<tr>
|
||||
<th style="vertical-align:top"><?php echo $lang->build->desc;?></th>
|
||||
<td>
|
||||
@@ -371,24 +348,18 @@ tbody tr td:first-child input{display:none;}
|
||||
<?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<?php echo $this->fetch('file', 'printFiles', array('files' => $build->files, 'fieldset' => 'true'));?>
|
||||
<?php endif;?>
|
||||
<?php include '../../common/view/action.html.php';?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<?php js::set('param', helper::safe64Decode($param))?>
|
||||
<?php js::set('link', $link)?>
|
||||
<?php js::set('buildID', $build->id)?>
|
||||
<?php js::set('type', $type)?>
|
||||
<?php endif;?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -41,24 +41,6 @@ class caselibModel extends model
|
||||
}
|
||||
}
|
||||
|
||||
if($this->config->global->flow == 'onlyTest')
|
||||
{
|
||||
$modules = $this->loadModel('tree')->getModulePairs($libID, 'caselib');
|
||||
$moduleName = ($moduleID && isset($modules[$moduleID])) ? $modules[$moduleID] : $this->lang->tree->all;
|
||||
|
||||
if(!$isMobile)
|
||||
{
|
||||
$dropMenuLink = helper::createLink('tree', 'ajaxGetDropMenu', "objectID=$libID&module=caselib&method=browse");
|
||||
$selectHtml .= "<div class='btn-group'><button id='currentModule' data-toggle='dropdown' type='button' class='btn btn-limit'>{$moduleName} <span class='caret'></span></button><div id='dropMenu' class='dropdown-menu search-list' data-ride='searchList' data-url='$dropMenuLink'>";
|
||||
$selectHtml .= '<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>';
|
||||
$selectHtml .= "</div></div>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$selectHtml .= "<a id='currentModule' href=\"javascript:showSearchMenu('tree', '$libID', 'caselib', 'browse', '')\">{$moduleName} <span class='icon-caret-down'></span></a><div id='currentBranchDropMenu' class='hidden affix enter-from-bottom layer'></div>";
|
||||
}
|
||||
}
|
||||
|
||||
setCookie("lastCaseLib", $libID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
|
||||
|
||||
$pageNav = '';
|
||||
|
||||
@@ -19,7 +19,6 @@ js::set('confirmDelete', $lang->testcase->confirmDelete);
|
||||
js::set('batchDelete', $lang->testcase->confirmBatchDelete);
|
||||
js::set('flow', $config->global->flow);
|
||||
?>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
<div id="sidebarHeader">
|
||||
<div class="title">
|
||||
@@ -61,7 +60,6 @@ js::set('flow', $config->global->flow);
|
||||
<?php common::printLink('caselib', 'createCase', $params, "<i class='icon-plus'></i>" . $lang->testcase->create, '', "class='btn btn-primary'");?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<div id="mainContent" class="main-row fade">
|
||||
<div class="side-col" id="sidebar">
|
||||
<div class="sidebar-toggle"><i class="icon icon-angle-left"></i></div>
|
||||
@@ -218,13 +216,6 @@ js::set('flow', $config->global->flow);
|
||||
</div>
|
||||
<script>
|
||||
$('#module' + moduleID).addClass('active');
|
||||
<?php if($config->global->flow == 'full'):?>
|
||||
$('#<?php echo $this->session->libBrowseType?>Tab').addClass('btn-active-text').append(" <span class='label label-light label-badge'><?php echo $pager->recTotal;?></span>");
|
||||
<?php endif;?>
|
||||
if(flow == 'onlyTest')
|
||||
{
|
||||
$('#subNavbar > .nav > li').removeClass('active');
|
||||
$('#subNavbar > .nav > li[data-id=' + browseType + ']').addClass('active');
|
||||
}
|
||||
</script>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -692,243 +692,3 @@ $lang->icons['confirmStoryChange'] = 'search';
|
||||
$lang->icons['score'] = 'tint';
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
global $config;
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
|
||||
{
|
||||
/* Remove project, report and qa module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->doc);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust search items. */
|
||||
unset($lang->searchObjects['bug']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['build']);
|
||||
unset($lang->searchObjects['testtask']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
|
||||
{
|
||||
/* Remove product, report and qa module. */
|
||||
unset($lang->menu->product);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[10]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Adjust sub menu of project module. */
|
||||
unset($lang->project->menu->story);
|
||||
unset($lang->project->menu->build);
|
||||
unset($lang->project->menu->qa);
|
||||
unset($lang->project->menu->product);
|
||||
unset($lang->project->menu->doc);
|
||||
|
||||
/* Remove sub menu of product module. */
|
||||
unset($lang->product->menu);
|
||||
unset($lang->product->menuOrder);
|
||||
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['product']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
{
|
||||
/* Remove project and test module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->qa);
|
||||
unset($lang->menu->report);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Remove sub menu of project module. */
|
||||
unset($lang->project->menu);
|
||||
unset($lang->project->menuOrder);
|
||||
$lang->project->menu = new stdclass();
|
||||
$lang->project->menu->list = array('alias' => '');
|
||||
|
||||
/* Add bug, testcase and testtask module. */
|
||||
$lang->menu->bug = 'Bug|bug|index';
|
||||
$lang->menu->testcase = 'Functional Test|testcase|index';
|
||||
$lang->menu->unit = 'Unit Test|testtask|browseUnits';
|
||||
$lang->menu->testsuite = 'Test Suite|testsuite|index';
|
||||
$lang->menu->testtask = 'Test Aufgaben|testtask|index';
|
||||
$lang->menu->caselib = 'Fall Bibliothek|caselib|browse';
|
||||
|
||||
$lang->menuOrder[6] = 'bug';
|
||||
$lang->menuOrder[7] = 'testcase';
|
||||
$lang->menuOrder[8] = 'unit';
|
||||
$lang->menuOrder[9] = 'testsuite';
|
||||
$lang->menuOrder[10] = 'testtask';
|
||||
$lang->menuOrder[11] = 'caselib';
|
||||
$lang->menuOrder[12] = 'product';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->bug->menu = new stdclass();
|
||||
$lang->bug->menu->all = 'Alle|bug|browse|productID=%s&branch=%s&browseType=all¶m=%s';
|
||||
$lang->bug->menu->unclosed = 'Öffnen|bug|browse|productID=%s&branch=%s&browseType=unclosed¶m=%s';
|
||||
$lang->bug->menu->openedbyme = 'VonMirErstellt|bug|browse|productID=%s&branch=%s&browseType=openedbyme¶m=%s';
|
||||
$lang->bug->menu->assigntome = 'MirZugeordnet|bug|browse|productID=%s&branch=%s&browseType=assigntome¶m=%s';
|
||||
$lang->bug->menu->resolvedbyme = 'VonMirGelöst|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme¶m=%s';
|
||||
$lang->bug->menu->toclosed = 'ZuSchließen|bug|browse|productID=%s&branch=%s&browseType=toclosed¶m=%s';
|
||||
$lang->bug->menu->unresolved = 'Ungelöst|bug|browse|productID=%s&branch=%s&browseType=unresolved¶m=%s';
|
||||
$lang->bug->menu->more = array('link' => 'Mehr|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->bug->subMenu = new stdclass();
|
||||
$lang->bug->subMenu->more = new stdclass();
|
||||
$lang->bug->subMenu->more->unconfirmed = 'Unbestätigt|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s';
|
||||
$lang->bug->subMenu->more->assigntonull = 'Nicht zugeordnet|bug|browse|productID=%s&branch=%s&browseType=assigntonull¶m=%s';
|
||||
$lang->bug->subMenu->more->longlifebugs = 'Wartend|bug|browse|productID=%s&branch=%s&browseType=longlifebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->postponedbugs = 'Verschoben|bug|browse|productID=%s&branch=%s&browseType=postponedbugs¶m=%s';
|
||||
$lang->bug->subMenu->more->overduebugs = 'Überfällig|bug|browse|productID=%s&branch=%s&browseType=overduebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->needconfirm = 'Zu bestätigen|bug|browse|productID=%s&branch=%s&browseType=needconfirm¶m=%s';
|
||||
|
||||
$lang->bug->menuOrder[5] = 'product';
|
||||
$lang->bug->menuOrder[10] = 'all';
|
||||
$lang->bug->menuOrder[15] = 'unclosed';
|
||||
$lang->bug->menuOrder[20] = 'openedbyme';
|
||||
$lang->bug->menuOrder[25] = 'assigntome';
|
||||
$lang->bug->menuOrder[30] = 'resolvedbyme';
|
||||
$lang->bug->menuOrder[35] = 'toclosed';
|
||||
$lang->bug->menuOrder[40] = 'unresolved';
|
||||
$lang->bug->menuOrder[45] = 'unconfirmed';
|
||||
$lang->bug->menuOrder[50] = 'assigntonull';
|
||||
$lang->bug->menuOrder[55] = 'longlifebugs';
|
||||
$lang->bug->menuOrder[60] = 'postponedbugs';
|
||||
$lang->bug->menuOrder[65] = 'overduebugs';
|
||||
$lang->bug->menuOrder[70] = 'needconfirm';
|
||||
|
||||
/* Adjust sub menu of testcase. */
|
||||
$lang->testcase->menu = new stdclass();
|
||||
$lang->testcase->menu->all = 'Alle|testcase|browse|productID=%s&branch=%s&browseType=all';
|
||||
$lang->testcase->menu->wait = 'Warten|testcase|browse|productID=%s&branch=%s&browseType=wait';
|
||||
$lang->testcase->menu->bysuite = array('link' => 'Test Suite|testsuite|create|productID=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->testcase->subMenu = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite->create = 'Suite erstellen|testsuite|create|productID=%s';
|
||||
|
||||
$lang->testcase->menuOrder[5] = 'product';
|
||||
$lang->testcase->menuOrder[10] = 'all';
|
||||
$lang->testcase->menuOrder[15] = 'wait';
|
||||
$lang->testcase->menuOrder[20] = 'suite';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->testsuite->menu = new stdclass();
|
||||
|
||||
$lang->testsuite->menuOrder[5] = 'product';
|
||||
|
||||
/* Adjust sub menu of testtask. */
|
||||
$lang->testtask->menu = new stdclass();
|
||||
$lang->testtask->menu->totalStatus = 'Alle|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
|
||||
$lang->testtask->menu->wait = 'Warten|testtask|browse|productID=%s&branch=%s&type=%s,wait';
|
||||
$lang->testtask->menu->doing = 'In Arbeit|testtask|browse|productID=%s&branch=%s&type=%s,doing';
|
||||
$lang->testtask->menu->blocked = 'Blockiert|testtask|browse|productID=%s&branch=%s&type=%s,blocked';
|
||||
$lang->testtask->menu->done = 'Erledigt|testtask|browse|productID=%s&branch=%s&type=%s,done';
|
||||
$lang->testtask->menu->report = array('link' => 'Berichte|testreport|browse');
|
||||
|
||||
$lang->testtask->menuOrder[5] = 'product';
|
||||
$lang->testtask->menuOrder[10] = 'scope';
|
||||
$lang->testtask->menuOrder[15] = 'totalStatus';
|
||||
$lang->testtask->menuOrder[20] = 'wait';
|
||||
$lang->testtask->menuOrder[25] = 'doing';
|
||||
$lang->testtask->menuOrder[30] = 'blocked';
|
||||
$lang->testtask->menuOrder[35] = 'done';
|
||||
$lang->testtask->menuOrder[40] = 'report';
|
||||
|
||||
$lang->testreport->menu = $lang->testtask->menu;
|
||||
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
|
||||
|
||||
/* Adjust sub menu of caselib module. */
|
||||
$lang->caselib->menu = new stdclass();
|
||||
$lang->caselib->menu->all = 'Alle|caselib|browse|libID=%s&browseType=all';
|
||||
$lang->caselib->menu->wait = 'Warten|caselib|browse|libID=%s&browseType=wait';
|
||||
$lang->caselib->menu->view = 'Anzeige|caselib|view|libID=%s';
|
||||
|
||||
$lang->caselib->menuOrder[5] = 'lib';
|
||||
$lang->caselib->menuOrder[10] = 'all';
|
||||
$lang->caselib->menuOrder[15] = 'wait';
|
||||
$lang->caselib->menuOrder[20] = 'view';
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->story);
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->release);
|
||||
unset($lang->product->menu->dynamic);
|
||||
unset($lang->product->menu->plan);
|
||||
unset($lang->product->menu->roadmap);
|
||||
unset($lang->product->menu->doc);
|
||||
unset($lang->product->menu->module);
|
||||
unset($lang->product->menu->index);
|
||||
|
||||
$lang->product->menu->build = array('link' => 'Build|product|build', 'subModule' => 'build');
|
||||
|
||||
$lang->product->menuOrder[5] = 'build';
|
||||
$lang->product->menuOrder[10] = 'view';
|
||||
$lang->product->menuOrder[15] = 'order';
|
||||
|
||||
$lang->build->menu = $lang->product->menu;
|
||||
$lang->build->menuOrder = $lang->product->menuOrder;
|
||||
|
||||
/* Adjust menu group. */
|
||||
$lang->menugroup->bug = 'bug';
|
||||
$lang->menugroup->testcase = 'testcase';
|
||||
$lang->menugroup->case = 'testcase';
|
||||
$lang->menugroup->testtask = 'testtask';
|
||||
$lang->menugroup->testsuite = 'testsuite';
|
||||
$lang->menugroup->caselib = 'caselib';
|
||||
$lang->menugroup->testreport = 'testtask';
|
||||
$lang->menugroup->build = 'product';
|
||||
|
||||
/* Adjust search objects. */
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
}
|
||||
|
||||
@@ -815,326 +815,3 @@ $lang->icons['confirmStoryChange'] = 'search';
|
||||
$lang->icons['score'] = 'tint';
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
global $config;
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
|
||||
{
|
||||
/* Remove project, report and qa module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->doc);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust search items. */
|
||||
unset($lang->searchObjects['bug']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['build']);
|
||||
unset($lang->searchObjects['testtask']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
|
||||
{
|
||||
/* Remove product, report and qa module. */
|
||||
unset($lang->menu->product);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[10]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Adjust sub menu of project module. */
|
||||
unset($lang->project->menu->story);
|
||||
unset($lang->project->menu->build);
|
||||
unset($lang->project->menu->qa);
|
||||
unset($lang->project->menu->product);
|
||||
unset($lang->project->menu->doc);
|
||||
|
||||
/* Remove sub menu of product module. */
|
||||
unset($lang->product->menu);
|
||||
unset($lang->product->menuOrder);
|
||||
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['product']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
{
|
||||
/* Remove project and test module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->qa);
|
||||
unset($lang->menu->report);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Remove sub menu of project module. */
|
||||
unset($lang->project->menu);
|
||||
unset($lang->project->menuOrder);
|
||||
$lang->project->menu = new stdclass();
|
||||
$lang->project->menu->list = array('alias' => '');
|
||||
|
||||
/* Add bug, testcase and testtask module. */
|
||||
$lang->menu->bug = 'Bug|bug|index';
|
||||
$lang->menu->testcase = 'Functional Test|testcase|index';
|
||||
$lang->menu->unit = 'Unit Test|testtask|browseUnits';
|
||||
$lang->menu->testsuite = 'Suite|testsuite|index';
|
||||
$lang->menu->testtask = 'Request|testtask|index';
|
||||
$lang->menu->caselib = 'Case Library|caselib|browse';
|
||||
|
||||
$lang->menuOrder[6] = 'bug';
|
||||
$lang->menuOrder[7] = 'testcase';
|
||||
$lang->menuOrder[8] = 'unit';
|
||||
$lang->menuOrder[9] = 'testsuite';
|
||||
$lang->menuOrder[10] = 'testtask';
|
||||
$lang->menuOrder[11] = 'caselib';
|
||||
$lang->menuOrder[12] = 'product';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->bug->menu = new stdclass();
|
||||
$lang->bug->menu->all = 'All|bug|browse|productID=%s&branch=%s&browseType=all¶m=%s';
|
||||
$lang->bug->menu->unclosed = 'Unclosed|bug|browse|productID=%s&branch=%s&browseType=unclosed¶m=%s';
|
||||
$lang->bug->menu->openedbyme = 'ReportedByMe|bug|browse|productID=%s&branch=%s&browseType=openedbyme¶m=%s';
|
||||
$lang->bug->menu->assigntome = 'AssignedToMe|bug|browse|productID=%s&branch=%s&browseType=assigntome¶m=%s';
|
||||
$lang->bug->menu->resolvedbyme = 'ResolvedByMe|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme¶m=%s';
|
||||
$lang->bug->menu->toclosed = 'ToBeClosed|bug|browse|productID=%s&branch=%s&browseType=toclosed¶m=%s';
|
||||
$lang->bug->menu->unresolved = 'Active|bug|browse|productID=%s&branch=%s&browseType=unresolved¶m=%s';
|
||||
$lang->bug->menu->more = array('link' => 'More|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->bug->subMenu = new stdclass();
|
||||
$lang->bug->subMenu->more = new stdclass();
|
||||
$lang->bug->subMenu->more->unconfirmed = 'Unconfirmed|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s';
|
||||
$lang->bug->subMenu->more->assigntonull = 'Unassigned|bug|browse|productID=%s&branch=%s&browseType=assigntonull¶m=%s';
|
||||
$lang->bug->subMenu->more->longlifebugs = 'Stalled|bug|browse|productID=%s&branch=%s&browseType=longlifebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->postponedbugs = 'Postponed|bug|browse|productID=%s&branch=%s&browseType=postponedbugs¶m=%s';
|
||||
$lang->bug->subMenu->more->overduebugs = 'Overdue|bug|browse|productID=%s&branch=%s&browseType=overduebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->needconfirm = 'ToBeConfirmed|bug|browse|productID=%s&branch=%s&browseType=needconfirm¶m=%s';
|
||||
|
||||
$lang->bug->menuOrder[5] = 'product';
|
||||
$lang->bug->menuOrder[10] = 'all';
|
||||
$lang->bug->menuOrder[15] = 'unclosed';
|
||||
$lang->bug->menuOrder[20] = 'openedbyme';
|
||||
$lang->bug->menuOrder[25] = 'assigntome';
|
||||
$lang->bug->menuOrder[30] = 'resolvedbyme';
|
||||
$lang->bug->menuOrder[35] = 'toclosed';
|
||||
$lang->bug->menuOrder[40] = 'unresolved';
|
||||
$lang->bug->menuOrder[45] = 'unconfirmed';
|
||||
$lang->bug->menuOrder[50] = 'assigntonull';
|
||||
$lang->bug->menuOrder[55] = 'longlifebugs';
|
||||
$lang->bug->menuOrder[60] = 'postponedbugs';
|
||||
$lang->bug->menuOrder[65] = 'overduebugs';
|
||||
$lang->bug->menuOrder[70] = 'needconfirm';
|
||||
|
||||
/* Adjust sub menu of testcase. */
|
||||
$lang->testcase->menu = new stdclass();
|
||||
$lang->testcase->menu->all = 'All|testcase|browse|productID=%s&branch=%s&browseType=all';
|
||||
$lang->testcase->menu->wait = 'Waiting|testcase|browse|productID=%s&branch=%s&browseType=wait';
|
||||
$lang->testcase->menu->bysuite = array('link' => 'Suite|testsuite|create|productID=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->testcase->subMenu = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite->create = 'Create Suite|testsuite|create|productID=%s';
|
||||
|
||||
$lang->testcase->menuOrder[5] = 'product';
|
||||
$lang->testcase->menuOrder[10] = 'all';
|
||||
$lang->testcase->menuOrder[15] = 'wait';
|
||||
$lang->testcase->menuOrder[20] = 'suite';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->testsuite->menu = new stdclass();
|
||||
|
||||
$lang->testsuite->menuOrder[5] = 'product';
|
||||
|
||||
/* Adjust sub menu of testtask. */
|
||||
$lang->testtask->menu = new stdclass();
|
||||
$lang->testtask->menu->totalStatus = 'All|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
|
||||
$lang->testtask->menu->wait = 'Waiting|testtask|browse|productID=%s&branch=%s&type=%s,wait';
|
||||
$lang->testtask->menu->doing = 'Doing|testtask|browse|productID=%s&branch=%s&type=%s,doing';
|
||||
$lang->testtask->menu->blocked = 'Blocked|testtask|browse|productID=%s&branch=%s&type=%s,blocked';
|
||||
$lang->testtask->menu->done = 'Done|testtask|browse|productID=%s&branch=%s&type=%s,done';
|
||||
$lang->testtask->menu->report = array('link' => 'Report|testreport|browse');
|
||||
|
||||
$lang->testtask->menuOrder[5] = 'product';
|
||||
$lang->testtask->menuOrder[10] = 'scope';
|
||||
$lang->testtask->menuOrder[15] = 'totalStatus';
|
||||
$lang->testtask->menuOrder[20] = 'wait';
|
||||
$lang->testtask->menuOrder[25] = 'doing';
|
||||
$lang->testtask->menuOrder[30] = 'blocked';
|
||||
$lang->testtask->menuOrder[35] = 'done';
|
||||
$lang->testtask->menuOrder[40] = 'report';
|
||||
|
||||
$lang->testreport->menu = $lang->testtask->menu;
|
||||
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
|
||||
|
||||
/* Adjust sub menu of caselib module. */
|
||||
$lang->caselib->menu = new stdclass();
|
||||
$lang->caselib->menu->all = 'All|caselib|browse|libID=%s&browseType=all';
|
||||
$lang->caselib->menu->wait = 'Waiting|caselib|browse|libID=%s&browseType=wait';
|
||||
$lang->caselib->menu->view = 'View|caselib|view|libID=%s';
|
||||
|
||||
$lang->caselib->menuOrder[5] = 'lib';
|
||||
$lang->caselib->menuOrder[10] = 'all';
|
||||
$lang->caselib->menuOrder[15] = 'wait';
|
||||
$lang->caselib->menuOrder[20] = 'view';
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->story);
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->release);
|
||||
unset($lang->product->menu->dynamic);
|
||||
unset($lang->product->menu->plan);
|
||||
unset($lang->product->menu->roadmap);
|
||||
unset($lang->product->menu->doc);
|
||||
unset($lang->product->menu->module);
|
||||
unset($lang->product->menu->index);
|
||||
|
||||
$lang->product->menu->build = array('link' => 'Build|product|build', 'subModule' => 'build');
|
||||
|
||||
$lang->product->menuOrder[5] = 'build';
|
||||
$lang->product->menuOrder[10] = 'view';
|
||||
$lang->product->menuOrder[15] = 'order';
|
||||
|
||||
$lang->build->menu = $lang->product->menu;
|
||||
$lang->build->menuOrder = $lang->product->menuOrder;
|
||||
|
||||
/* Adjust menu group. */
|
||||
$lang->menugroup->bug = 'bug';
|
||||
$lang->menugroup->testcase = 'testcase';
|
||||
$lang->menugroup->case = 'testcase';
|
||||
$lang->menugroup->testtask = 'testtask';
|
||||
$lang->menugroup->testsuite = 'testsuite';
|
||||
$lang->menugroup->caselib = 'caselib';
|
||||
$lang->menugroup->testreport = 'testtask';
|
||||
$lang->menugroup->build = 'product';
|
||||
|
||||
/* Adjust search objects. */
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
}
|
||||
|
||||
/* Cmmi menu. */
|
||||
$lang->menu->cmmi = new stdclass();
|
||||
$lang->menu->cmmi->programindex = array('link' => 'Home|program|index|program={PROGRAM}');
|
||||
$lang->menu->cmmi->programplan = array('link' => 'Programplan|programplan|browse|program={PROGRAM}', 'subModule' => 'programplan');
|
||||
$lang->menu->cmmi->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,');
|
||||
$lang->menu->cmmi->weekly = array('link' => 'Weekly|weekly|index|program={PROGRAM}', 'subModule' => ',milestone,');
|
||||
$lang->menu->cmmi->doc = array('link' => 'Doc|doc|index|program={PROGRAM}');
|
||||
$lang->menu->cmmi->product = array('link' => 'Story|product|browse|product={PRODUCT}&branch=&browseType=unclosed&queryID=0&storyType=requirement', 'subModule' => ',story,');
|
||||
$lang->menu->cmmi->design = 'Design|design|browse|product={PRODUCT}';
|
||||
$lang->menu->cmmi->ci = 'Ci|repo|browse|';
|
||||
$lang->menu->cmmi->qa = array('link' => 'QA|bug|browse|product={PRODUCT}', 'subModule' => ',testcase,testtask,testsuite,testreport,caselib,');
|
||||
$lang->menu->cmmi->release = array('link' => 'Release|release|browse|product={PRODUCT}', 'subModule' => 'release');
|
||||
$lang->menu->cmmi->issue = 'Issue|issue|browse|';
|
||||
$lang->menu->cmmi->risk = 'Risk|risk|browse|';
|
||||
$lang->menu->cmmi->list = array('link' => 'More|workestimation|index|program={PROGRAM}', 'class' => 'dropdown dropdown-hover cmmi-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
|
||||
|
||||
/* Srcum menu. */
|
||||
$lang->menu->srcum = new stdclass();
|
||||
$lang->menu->srcum->programindex = array('link' => 'Home|program|index|program={PROGRAM}');
|
||||
|
||||
$lang->cmmi = new stdclass();
|
||||
$lang->cmmi->subMenu = new stdclass();
|
||||
$lang->cmmi->subMenu->list = new stdclass();
|
||||
$lang->cmmi->subMenu->list->workestimation = array('link' => 'Workestimation|workestimation|index|program=%s', 'subModule' => 'durationestimation,budget');
|
||||
$lang->cmmi->subMenu->list->program = 'Program|program|edit|';
|
||||
|
||||
$lang->cmmiproduct = new stdclass();
|
||||
$lang->workestimation = new stdclass();
|
||||
$lang->budget = new stdclass();
|
||||
$lang->programplan = new stdclass();
|
||||
$lang->review = new stdclass();
|
||||
$lang->weekly = new stdclass();
|
||||
$lang->milestone = new stdclass();
|
||||
$lang->design = new stdclass();
|
||||
$lang->auditplan = new stdclass();
|
||||
$lang->cm = new stdclass();
|
||||
$lang->nc = new stdclass();
|
||||
$lang->pssp = new stdclass();
|
||||
$lang->issue = new stdclass();
|
||||
$lang->risk = new stdclass();
|
||||
$lang->stakeholder = new stdclass();
|
||||
$lang->durationestimation = new stdclass();
|
||||
|
||||
$lang->workestimation->menu = new stdclass();
|
||||
$lang->budget->menu = new stdclass();
|
||||
$lang->programplan->menu = new stdclass();
|
||||
$lang->review->menu = new stdclass();
|
||||
$lang->weekly->menu = new stdclass();
|
||||
$lang->milestone->menu = new stdclass();
|
||||
$lang->cmmiproduct->menu = new stdclass();
|
||||
$lang->design->menu = new stdclass();
|
||||
$lang->auditplan->menu = new stdclass();
|
||||
$lang->cm->menu = new stdclass();
|
||||
$lang->pssp->menu = new stdclass();
|
||||
$lang->issue->menu = new stdclass();
|
||||
$lang->risk->menu = new stdclass();
|
||||
$lang->stakeholder->menu = new stdclass();
|
||||
$lang->durationestimation->menu = new stdclass();
|
||||
|
||||
$lang->workestimation->menu->index = 'Workestimation|workestimation|index|program={PROGRAM}';
|
||||
$lang->workestimation->menu->duration = array('link' => 'Durationestimation|durationestimation|index|program={PROGRAM}', 'subModule' => 'durationestimation');
|
||||
$lang->workestimation->menu->budget = array('link' => 'Budget|budget|summary|', 'subModule' => 'budget');
|
||||
|
||||
$lang->durationestimation->menu = $lang->workestimation->menu;
|
||||
$lang->budget->menu = $lang->workestimation->menu;
|
||||
|
||||
$lang->programplan->menu->gantt = array('link' => 'Gantt|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=gantt');
|
||||
$lang->programplan->menu->lists = 'Stage|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=lists';
|
||||
|
||||
$lang->weekly->menu->browse = 'Weekly|weekly|index|program={PROGRAM}';
|
||||
$lang->weekly->menu->issue = 'Milestone|milestone|index|program={PROGRAM}';
|
||||
|
||||
$lang->cmmiproduct->menu->plan = array('link' => 'Plan|productplan|browse|productID={PRODUCT}', 'subModule' => 'productplan');
|
||||
$lang->cmmiproduct->menu->requirement = 'User Story|product|browse|product={PRODUCT}&branch=&browseType=unclosed&queryID=0&storyType=requirement';
|
||||
$lang->cmmiproduct->menu->story = 'Software Story|product|browse|product={PRODUCT}&branch=&browseType=unclosed&queryID=0&storyType=story';
|
||||
$lang->cmmiproduct->menu->track = 'Track|story|track|product={PRODUCT}';
|
||||
|
||||
$lang->milestone->menu = $lang->weekly->menu;
|
||||
$lang->nc->menu = $lang->auditplan->menu;
|
||||
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'report', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
$lang->haveMenuMethod = array('custom');
|
||||
|
||||
@@ -692,243 +692,3 @@ $lang->icons['confirmStoryChange'] = 'search';
|
||||
$lang->icons['score'] = 'tint';
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
global $config;
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
|
||||
{
|
||||
/* Remove project, report and qa module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->doc);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust search items. */
|
||||
unset($lang->searchObjects['bug']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['build']);
|
||||
unset($lang->searchObjects['testtask']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
|
||||
{
|
||||
/* Remove product, report and qa module. */
|
||||
unset($lang->menu->product);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[10]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Adjust sub menu of project module. */
|
||||
unset($lang->project->menu->story);
|
||||
unset($lang->project->menu->build);
|
||||
unset($lang->project->menu->qa);
|
||||
unset($lang->project->menu->product);
|
||||
unset($lang->project->menu->doc);
|
||||
|
||||
/* Remove sub menu of product module. */
|
||||
unset($lang->product->menu);
|
||||
unset($lang->product->menuOrder);
|
||||
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['product']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
{
|
||||
/* Remove project and test module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->qa);
|
||||
unset($lang->menu->report);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Remove sub menu of project module. */
|
||||
unset($lang->project->menu);
|
||||
unset($lang->project->menuOrder);
|
||||
$lang->project->menu = new stdclass();
|
||||
$lang->project->menu->list = array('alias' => '');
|
||||
|
||||
/* Add bug, testcase and testtask module. */
|
||||
$lang->menu->bug = 'Bug|bug|index';
|
||||
$lang->menu->testcase = 'Tests Fonctionnels|testcase|index';
|
||||
$lang->menu->unit = 'Unité de Test|testtask|browseUnits';
|
||||
$lang->menu->testsuite = 'Cahier de Recette|testsuite|index';
|
||||
$lang->menu->testtask = 'Recette|testtask|index';
|
||||
$lang->menu->caselib = 'Library Recette|caselib|browse';
|
||||
|
||||
$lang->menuOrder[6] = 'bug';
|
||||
$lang->menuOrder[7] = 'testcase';
|
||||
$lang->menuOrder[8] = 'unit';
|
||||
$lang->menuOrder[9] = 'testsuite';
|
||||
$lang->menuOrder[10] = 'testtask';
|
||||
$lang->menuOrder[11] = 'caselib';
|
||||
$lang->menuOrder[12] = 'product';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->bug->menu = new stdclass();
|
||||
$lang->bug->menu->all = 'Tous|bug|browse|productID=%s&branch=%s&browseType=all¶m=%s';
|
||||
$lang->bug->menu->unclosed = 'Non Fermés|bug|browse|productID=%s&branch=%s&browseType=unclosed¶m=%s';
|
||||
$lang->bug->menu->openedbyme = 'Détectés par Moi|bug|browse|productID=%s&branch=%s&browseType=openedbyme¶m=%s';
|
||||
$lang->bug->menu->assigntome = 'Affectés à Moi|bug|browse|productID=%s&branch=%s&browseType=assigntome¶m=%s';
|
||||
$lang->bug->menu->resolvedbyme = 'Résolus par Moi|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme¶m=%s';
|
||||
$lang->bug->menu->toclosed = 'A Fermer|bug|browse|productID=%s&branch=%s&browseType=toclosed¶m=%s';
|
||||
$lang->bug->menu->unresolved = 'Actifs|bug|browse|productID=%s&branch=%s&browseType=unresolved¶m=%s';
|
||||
$lang->bug->menu->more = array('link' => 'More|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->bug->subMenu = new stdclass();
|
||||
$lang->bug->subMenu->more = new stdclass();
|
||||
$lang->bug->subMenu->more->unconfirmed = 'Non confirmés|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s';
|
||||
$lang->bug->subMenu->more->assigntonull = 'Non affectés|bug|browse|productID=%s&branch=%s&browseType=assigntonull¶m=%s';
|
||||
$lang->bug->subMenu->more->longlifebugs = 'Persistants|bug|browse|productID=%s&branch=%s&browseType=longlifebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->postponedbugs = 'Reportés|bug|browse|productID=%s&branch=%s&browseType=postponedbugs¶m=%s';
|
||||
$lang->bug->subMenu->more->overduebugs = 'Retard|bug|browse|productID=%s&branch=%s&browseType=overduebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->needconfirm = 'A Confirmer|bug|browse|productID=%s&branch=%s&browseType=needconfirm¶m=%s';
|
||||
|
||||
$lang->bug->menuOrder[5] = 'product';
|
||||
$lang->bug->menuOrder[10] = 'all';
|
||||
$lang->bug->menuOrder[15] = 'unclosed';
|
||||
$lang->bug->menuOrder[20] = 'openedbyme';
|
||||
$lang->bug->menuOrder[25] = 'assigntome';
|
||||
$lang->bug->menuOrder[30] = 'resolvedbyme';
|
||||
$lang->bug->menuOrder[35] = 'toclosed';
|
||||
$lang->bug->menuOrder[40] = 'unresolved';
|
||||
$lang->bug->menuOrder[45] = 'unconfirmed';
|
||||
$lang->bug->menuOrder[50] = 'assigntonull';
|
||||
$lang->bug->menuOrder[55] = 'longlifebugs';
|
||||
$lang->bug->menuOrder[60] = 'postponedbugs';
|
||||
$lang->bug->menuOrder[65] = 'overduebugs';
|
||||
$lang->bug->menuOrder[70] = 'needconfirm';
|
||||
|
||||
/* Adjust sub menu of testcase. */
|
||||
$lang->testcase->menu = new stdclass();
|
||||
$lang->testcase->menu->all = 'Tous|testcase|browse|productID=%s&branch=%s&browseType=all';
|
||||
$lang->testcase->menu->wait = 'En Attente|testcase|browse|productID=%s&branch=%s&browseType=wait';
|
||||
$lang->testcase->menu->bysuite = array('link' => 'Cahier Recette|testsuite|create|productID=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->testcase->subMenu = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite->create = 'Rédiger Cahier de Recette|testsuite|create|productID=%s';
|
||||
|
||||
$lang->testcase->menuOrder[5] = 'product';
|
||||
$lang->testcase->menuOrder[10] = 'all';
|
||||
$lang->testcase->menuOrder[15] = 'wait';
|
||||
$lang->testcase->menuOrder[20] = 'suite';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->testsuite->menu = new stdclass();
|
||||
|
||||
$lang->testsuite->menuOrder[5] = 'product';
|
||||
|
||||
/* Adjust sub menu of testtask. */
|
||||
$lang->testtask->menu = new stdclass();
|
||||
$lang->testtask->menu->totalStatus = 'Toutes|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
|
||||
$lang->testtask->menu->wait = 'En Attente|testtask|browse|productID=%s&branch=%s&type=%s,wait';
|
||||
$lang->testtask->menu->doing = 'En Déroulement|testtask|browse|productID=%s&branch=%s&type=%s,doing';
|
||||
$lang->testtask->menu->blocked = 'Bloquées|testtask|browse|productID=%s&branch=%s&type=%s,blocked';
|
||||
$lang->testtask->menu->done = 'Jouées|testtask|browse|productID=%s&branch=%s&type=%s,done';
|
||||
$lang->testtask->menu->report = array('link' => 'Rapports|testreport|browse');
|
||||
|
||||
$lang->testtask->menuOrder[5] = 'product';
|
||||
$lang->testtask->menuOrder[10] = 'scope';
|
||||
$lang->testtask->menuOrder[15] = 'totalStatus';
|
||||
$lang->testtask->menuOrder[20] = 'wait';
|
||||
$lang->testtask->menuOrder[25] = 'doing';
|
||||
$lang->testtask->menuOrder[30] = 'blocked';
|
||||
$lang->testtask->menuOrder[35] = 'done';
|
||||
$lang->testtask->menuOrder[40] = 'report';
|
||||
|
||||
$lang->testreport->menu = $lang->testtask->menu;
|
||||
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
|
||||
|
||||
/* Adjust sub menu of caselib module. */
|
||||
$lang->caselib->menu = new stdclass();
|
||||
$lang->caselib->menu->all = 'Toutes|caselib|browse|libID=%s&browseType=all';
|
||||
$lang->caselib->menu->wait = 'En Attente|caselib|browse|libID=%s&browseType=wait';
|
||||
$lang->caselib->menu->view = 'Vues|caselib|view|libID=%s';
|
||||
|
||||
$lang->caselib->menuOrder[5] = 'lib';
|
||||
$lang->caselib->menuOrder[10] = 'all';
|
||||
$lang->caselib->menuOrder[15] = 'wait';
|
||||
$lang->caselib->menuOrder[20] = 'view';
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->story);
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->release);
|
||||
unset($lang->product->menu->dynamic);
|
||||
unset($lang->product->menu->plan);
|
||||
unset($lang->product->menu->roadmap);
|
||||
unset($lang->product->menu->doc);
|
||||
unset($lang->product->menu->module);
|
||||
unset($lang->product->menu->index);
|
||||
|
||||
$lang->product->menu->build = array('link' => 'Build|product|build', 'subModule' => 'build');
|
||||
|
||||
$lang->product->menuOrder[5] = 'build';
|
||||
$lang->product->menuOrder[10] = 'view';
|
||||
$lang->product->menuOrder[15] = 'order';
|
||||
|
||||
$lang->build->menu = $lang->product->menu;
|
||||
$lang->build->menuOrder = $lang->product->menuOrder;
|
||||
|
||||
/* Adjust menu group. */
|
||||
$lang->menugroup->bug = 'bug';
|
||||
$lang->menugroup->testcase = 'testcase';
|
||||
$lang->menugroup->case = 'testcase';
|
||||
$lang->menugroup->testtask = 'testtask';
|
||||
$lang->menugroup->testsuite = 'testsuite';
|
||||
$lang->menugroup->caselib = 'caselib';
|
||||
$lang->menugroup->testreport = 'testtask';
|
||||
$lang->menugroup->build = 'product';
|
||||
|
||||
/* Adjust search objects. */
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
}
|
||||
|
||||
@@ -692,243 +692,3 @@ $lang->icons['confirmStoryChange'] = 'search';
|
||||
$lang->icons['score'] = 'tint';
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
global $config;
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
|
||||
{
|
||||
/* Remove project, report and qa module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->doc);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust search items. */
|
||||
unset($lang->searchObjects['bug']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['build']);
|
||||
unset($lang->searchObjects['testtask']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
|
||||
{
|
||||
/* Remove product, report and qa module. */
|
||||
unset($lang->menu->product);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[10]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Adjust sub menu of project module. */
|
||||
unset($lang->project->menu->story);
|
||||
unset($lang->project->menu->build);
|
||||
unset($lang->project->menu->qa);
|
||||
unset($lang->project->menu->product);
|
||||
unset($lang->project->menu->doc);
|
||||
|
||||
/* Remove sub menu of product module. */
|
||||
unset($lang->product->menu);
|
||||
unset($lang->product->menuOrder);
|
||||
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['product']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
{
|
||||
/* Remove project and test module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->qa);
|
||||
unset($lang->menu->report);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Remove sub menu of project module. */
|
||||
unset($lang->project->menu);
|
||||
unset($lang->project->menuOrder);
|
||||
$lang->project->menu = new stdclass();
|
||||
$lang->project->menu->list = array('alias' => '');
|
||||
|
||||
/* Add bug, testcase and testtask module. */
|
||||
$lang->menu->bug = 'Bug|bug|index';
|
||||
$lang->menu->testcase = 'Tình huống|testcase|index';
|
||||
$lang->menu->unit = 'Unit Test|testtask|browseUnits';
|
||||
$lang->menu->testsuite = 'Suite|testsuite|index';
|
||||
$lang->menu->testtask = 'Yêu cầu|testtask|index';
|
||||
$lang->menu->caselib = 'Thư viện tình huống|caselib|browse';
|
||||
|
||||
$lang->menuOrder[6] = 'bug';
|
||||
$lang->menuOrder[7] = 'testcase';
|
||||
$lang->menuOrder[8] = 'unit';
|
||||
$lang->menuOrder[9] = 'testsuite';
|
||||
$lang->menuOrder[10] = 'testtask';
|
||||
$lang->menuOrder[11] = 'caselib';
|
||||
$lang->menuOrder[12] = 'product';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->bug->menu = new stdclass();
|
||||
$lang->bug->menu->all = 'All|bug|browse|productID=%s&branch=%s&browseType=all¶m=%s';
|
||||
$lang->bug->menu->unclosed = 'Unclosed|bug|browse|productID=%s&branch=%s&browseType=unclosed¶m=%s';
|
||||
$lang->bug->menu->openedbyme = 'ReportedByMe|bug|browse|productID=%s&branch=%s&browseType=openedbyme¶m=%s';
|
||||
$lang->bug->menu->assigntome = 'AssignedToMe|bug|browse|productID=%s&branch=%s&browseType=assigntome¶m=%s';
|
||||
$lang->bug->menu->resolvedbyme = 'ResolvedByMe|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme¶m=%s';
|
||||
$lang->bug->menu->toclosed = 'ToBeClosed|bug|browse|productID=%s&branch=%s&browseType=toclosed¶m=%s';
|
||||
$lang->bug->menu->unresolved = 'Active|bug|browse|productID=%s&branch=%s&browseType=unresolved¶m=%s';
|
||||
$lang->bug->menu->more = array('link' => 'Thêm|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->bug->subMenu = new stdclass();
|
||||
$lang->bug->subMenu->more = new stdclass();
|
||||
$lang->bug->subMenu->more->unconfirmed = 'Unconfirmed|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s';
|
||||
$lang->bug->subMenu->more->assigntonull = 'Unassigned|bug|browse|productID=%s&branch=%s&browseType=assigntonull¶m=%s';
|
||||
$lang->bug->subMenu->more->longlifebugs = 'Stalled|bug|browse|productID=%s&branch=%s&browseType=longlifebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->postponedbugs = 'Postponed|bug|browse|productID=%s&branch=%s&browseType=postponedbugs¶m=%s';
|
||||
$lang->bug->subMenu->more->overduebugs = 'Overdue|bug|browse|productID=%s&branch=%s&browseType=overduebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->needconfirm = 'ToBeConfirmed|bug|browse|productID=%s&branch=%s&browseType=needconfirm¶m=%s';
|
||||
|
||||
$lang->bug->menuOrder[5] = 'product';
|
||||
$lang->bug->menuOrder[10] = 'all';
|
||||
$lang->bug->menuOrder[15] = 'unclosed';
|
||||
$lang->bug->menuOrder[20] = 'openedbyme';
|
||||
$lang->bug->menuOrder[25] = 'assigntome';
|
||||
$lang->bug->menuOrder[30] = 'resolvedbyme';
|
||||
$lang->bug->menuOrder[35] = 'toclosed';
|
||||
$lang->bug->menuOrder[40] = 'unresolved';
|
||||
$lang->bug->menuOrder[45] = 'unconfirmed';
|
||||
$lang->bug->menuOrder[50] = 'assigntonull';
|
||||
$lang->bug->menuOrder[55] = 'longlifebugs';
|
||||
$lang->bug->menuOrder[60] = 'postponedbugs';
|
||||
$lang->bug->menuOrder[65] = 'overduebugs';
|
||||
$lang->bug->menuOrder[70] = 'needconfirm';
|
||||
|
||||
/* Adjust sub menu of testcase. */
|
||||
$lang->testcase->menu = new stdclass();
|
||||
$lang->testcase->menu->all = 'All|testcase|browse|productID=%s&branch=%s&browseType=all';
|
||||
$lang->testcase->menu->wait = 'Waiting|testcase|browse|productID=%s&branch=%s&browseType=wait';
|
||||
$lang->testcase->menu->bysuite = array('link' => 'Suite|testsuite|create|productID=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->testcase->subMenu = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite->create = 'Tạo Suite|testsuite|create|productID=%s';
|
||||
|
||||
$lang->testcase->menuOrder[5] = 'product';
|
||||
$lang->testcase->menuOrder[10] = 'all';
|
||||
$lang->testcase->menuOrder[15] = 'wait';
|
||||
$lang->testcase->menuOrder[20] = 'suite';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->testsuite->menu = new stdclass();
|
||||
|
||||
$lang->testsuite->menuOrder[5] = 'product';
|
||||
|
||||
/* Adjust sub menu of testtask. */
|
||||
$lang->testtask->menu = new stdclass();
|
||||
$lang->testtask->menu->totalStatus = 'All|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
|
||||
$lang->testtask->menu->wait = 'Waiting|testtask|browse|productID=%s&branch=%s&type=%s,wait';
|
||||
$lang->testtask->menu->doing = 'Doing|testtask|browse|productID=%s&branch=%s&type=%s,doing';
|
||||
$lang->testtask->menu->blocked = 'Blocked|testtask|browse|productID=%s&branch=%s&type=%s,blocked';
|
||||
$lang->testtask->menu->done = 'Done|testtask|browse|productID=%s&branch=%s&type=%s,done';
|
||||
$lang->testtask->menu->report = array('link' => 'Báo cáo|testreport|browse');
|
||||
|
||||
$lang->testtask->menuOrder[5] = 'product';
|
||||
$lang->testtask->menuOrder[10] = 'scope';
|
||||
$lang->testtask->menuOrder[15] = 'totalStatus';
|
||||
$lang->testtask->menuOrder[20] = 'wait';
|
||||
$lang->testtask->menuOrder[25] = 'doing';
|
||||
$lang->testtask->menuOrder[30] = 'blocked';
|
||||
$lang->testtask->menuOrder[35] = 'done';
|
||||
$lang->testtask->menuOrder[40] = 'report';
|
||||
|
||||
$lang->testreport->menu = $lang->testtask->menu;
|
||||
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
|
||||
|
||||
/* Adjust sub menu of caselib module. */
|
||||
$lang->caselib->menu = new stdclass();
|
||||
$lang->caselib->menu->all = 'All|caselib|browse|libID=%s&browseType=all';
|
||||
$lang->caselib->menu->wait = 'Waiting|caselib|browse|libID=%s&browseType=wait';
|
||||
$lang->caselib->menu->view = 'View|caselib|view|libID=%s';
|
||||
|
||||
$lang->caselib->menuOrder[5] = 'lib';
|
||||
$lang->caselib->menuOrder[10] = 'all';
|
||||
$lang->caselib->menuOrder[15] = 'wait';
|
||||
$lang->caselib->menuOrder[20] = 'view';
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->story);
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->release);
|
||||
unset($lang->product->menu->dynamic);
|
||||
unset($lang->product->menu->plan);
|
||||
unset($lang->product->menu->roadmap);
|
||||
unset($lang->product->menu->doc);
|
||||
unset($lang->product->menu->module);
|
||||
unset($lang->product->menu->index);
|
||||
|
||||
$lang->product->menu->build = array('link' => 'Bản dựng|product|build', 'subModule' => 'build');
|
||||
|
||||
$lang->product->menuOrder[5] = 'Bản dựng';
|
||||
$lang->product->menuOrder[10] = 'view';
|
||||
$lang->product->menuOrder[15] = 'order';
|
||||
|
||||
$lang->build->menu = $lang->product->menu;
|
||||
$lang->build->menuOrder = $lang->product->menuOrder;
|
||||
|
||||
/* Adjust menu group. */
|
||||
$lang->menugroup->bug = 'bug';
|
||||
$lang->menugroup->testcase = 'testcase';
|
||||
$lang->menugroup->case = 'testcase';
|
||||
$lang->menugroup->testtask = 'testtask';
|
||||
$lang->menugroup->testsuite = 'testsuite';
|
||||
$lang->menugroup->caselib = 'caselib';
|
||||
$lang->menugroup->testreport = 'testtask';
|
||||
$lang->menugroup->build = 'product';
|
||||
|
||||
/* Adjust search objects. */
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
}
|
||||
|
||||
@@ -814,327 +814,3 @@ $lang->icons['confirmStoryChange'] = 'search';
|
||||
$lang->icons['score'] = 'tint';
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
global $config;
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
|
||||
{
|
||||
/* Remove project, report and qa module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->doc);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust search items. */
|
||||
unset($lang->searchObjects['bug']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['build']);
|
||||
unset($lang->searchObjects['testtask']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
|
||||
{
|
||||
/* Remove product, report and qa module. */
|
||||
unset($lang->menu->product);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[10]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Adjust sub menu of project module. */
|
||||
unset($lang->project->menu->story);
|
||||
unset($lang->project->menu->build);
|
||||
unset($lang->project->menu->qa);
|
||||
unset($lang->project->menu->product);
|
||||
unset($lang->project->menu->doc);
|
||||
|
||||
/* Remove sub menu of product module. */
|
||||
unset($lang->product->menu);
|
||||
unset($lang->product->menuOrder);
|
||||
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['product']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
{
|
||||
/* Remove project and test module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->qa);
|
||||
unset($lang->menu->report);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Remove sub menu of project module. */
|
||||
unset($lang->project->menu);
|
||||
unset($lang->project->menuOrder);
|
||||
$lang->project->menu = new stdclass();
|
||||
$lang->project->menu->list = array('alias' => '');
|
||||
|
||||
/* Add bug, testcase and testtask module. */
|
||||
$lang->menu->bug = 'Bug|bug|index';
|
||||
$lang->menu->testcase = '功能测试|testcase|browse';
|
||||
$lang->menu->unit = '单元测试|testtask|browseUnits';
|
||||
$lang->menu->testsuite = '套件|testsuite|index';
|
||||
$lang->menu->testtask = '测试单|testtask|index';
|
||||
$lang->menu->caselib = '用例库|caselib|browse';
|
||||
|
||||
$lang->menuOrder[6] = 'bug';
|
||||
$lang->menuOrder[7] = 'testcase';
|
||||
$lang->menuOrder[8] = 'unit';
|
||||
$lang->menuOrder[9] = 'testsuite';
|
||||
$lang->menuOrder[10] = 'testtask';
|
||||
$lang->menuOrder[11] = 'caselib';
|
||||
$lang->menuOrder[12] = 'product';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->bug->menu = new stdclass();
|
||||
$lang->bug->menu->all = '所有|bug|browse|productID=%s&branch=%s&browseType=all¶m=%s';
|
||||
$lang->bug->menu->unclosed = '未关闭|bug|browse|productID=%s&branch=%s&browseType=unclosed¶m=%s';
|
||||
$lang->bug->menu->openedbyme = '由我创建|bug|browse|productID=%s&branch=%s&browseType=openedbyme¶m=%s';
|
||||
$lang->bug->menu->assigntome = '指派给我|bug|browse|productID=%s&branch=%s&browseType=assigntome¶m=%s';
|
||||
$lang->bug->menu->resolvedbyme = '由我解决|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme¶m=%s';
|
||||
$lang->bug->menu->toclosed = '待关闭|bug|browse|productID=%s&branch=%s&browseType=toclosed¶m=%s';
|
||||
$lang->bug->menu->unresolved = '未解决|bug|browse|productID=%s&branch=%s&browseType=unresolved¶m=%s';
|
||||
$lang->bug->menu->more = array('link' => '更多|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->bug->subMenu = new stdclass();
|
||||
$lang->bug->subMenu->more = new stdclass();
|
||||
$lang->bug->subMenu->more->unconfirmed = '未确认|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s';
|
||||
$lang->bug->subMenu->more->assigntonull = '未指派|bug|browse|productID=%s&branch=%s&browseType=assigntonull¶m=%s';
|
||||
$lang->bug->subMenu->more->longlifebugs = '久未处理|bug|browse|productID=%s&branch=%s&browseType=longlifebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->postponedbugs = '被延期|bug|browse|productID=%s&branch=%s&browseType=postponedbugs¶m=%s';
|
||||
$lang->bug->subMenu->more->overduebugs = '过期Bug|bug|browse|productID=%s&branch=%s&browseType=overduebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->needconfirm = "{$lang->storyCommon}变动|bug|browse|productID=%s&branch=%s&browseType=needconfirm¶m=%s";
|
||||
|
||||
$lang->bug->menuOrder[5] = 'product';
|
||||
$lang->bug->menuOrder[10] = 'all';
|
||||
$lang->bug->menuOrder[15] = 'unclosed';
|
||||
$lang->bug->menuOrder[20] = 'openedbyme';
|
||||
$lang->bug->menuOrder[25] = 'assigntome';
|
||||
$lang->bug->menuOrder[30] = 'resolvedbyme';
|
||||
$lang->bug->menuOrder[35] = 'toclosed';
|
||||
$lang->bug->menuOrder[40] = 'unresolved';
|
||||
$lang->bug->menuOrder[45] = 'unconfirmed';
|
||||
$lang->bug->menuOrder[50] = 'assigntonull';
|
||||
$lang->bug->menuOrder[55] = 'longlifebugs';
|
||||
$lang->bug->menuOrder[60] = 'postponedbugs';
|
||||
$lang->bug->menuOrder[65] = 'overduebugs';
|
||||
$lang->bug->menuOrder[70] = 'needconfirm';
|
||||
|
||||
/* Adjust sub menu of testcase. */
|
||||
$lang->testcase->menu = new stdclass();
|
||||
$lang->testcase->menu->all = '所有|testcase|browse|productID=%s&branch=%s&browseType=all';
|
||||
$lang->testcase->menu->wait = '待评审|testcase|browse|productID=%s&branch=%s&browseType=wait';
|
||||
$lang->testcase->menu->bysuite = array('link' => '套件|testsuite|create|productID=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->testcase->subMenu = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite->create = '建套件|testsuite|create|productID=%s';
|
||||
|
||||
$lang->testcase->menuOrder[5] = 'product';
|
||||
$lang->testcase->menuOrder[10] = 'all';
|
||||
$lang->testcase->menuOrder[15] = 'wait';
|
||||
$lang->testcase->menuOrder[20] = 'suite';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->testsuite->menu = new stdclass();
|
||||
|
||||
$lang->testsuite->menuOrder[5] = 'product';
|
||||
|
||||
/* Adjust sub menu of testtask. */
|
||||
$lang->testtask->menu = new stdclass();
|
||||
$lang->testtask->menu->totalStatus = '所有|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
|
||||
$lang->testtask->menu->wait = '待测版本|testtask|browse|productID=%s&branch=%s&type=%s,wait';
|
||||
$lang->testtask->menu->doing = '测试中版本|testtask|browse|productID=%s&branch=%s&type=%s,doing';
|
||||
$lang->testtask->menu->blocked = '被阻塞版本|testtask|browse|productID=%s&branch=%s&type=%s,blocked';
|
||||
$lang->testtask->menu->done = '已测版本|testtask|browse|productID=%s&branch=%s&type=%s,done';
|
||||
$lang->testtask->menu->report = array('link' => '报告|testreport|browse', 'alias' => 'view,create,edit');
|
||||
|
||||
$lang->testtask->menuOrder[5] = 'product';
|
||||
$lang->testtask->menuOrder[10] = 'scope';
|
||||
$lang->testtask->menuOrder[15] = 'totalStatus';
|
||||
$lang->testtask->menuOrder[20] = 'wait';
|
||||
$lang->testtask->menuOrder[25] = 'doing';
|
||||
$lang->testtask->menuOrder[30] = 'blocked';
|
||||
$lang->testtask->menuOrder[35] = 'done';
|
||||
$lang->testtask->menuOrder[40] = 'report';
|
||||
|
||||
$lang->testreport->menu = $lang->testtask->menu;
|
||||
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
|
||||
|
||||
/* Adjust sub menu of caselib module. */
|
||||
$lang->caselib->menu = new stdclass();
|
||||
$lang->caselib->menu->all = '所有|caselib|browse|libID=%s&browseType=all';
|
||||
$lang->caselib->menu->wait = '待评审|caselib|browse|libID=%s&browseType=wait';
|
||||
$lang->caselib->menu->view = '概况|caselib|view|libID=%s';
|
||||
|
||||
$lang->caselib->menuOrder[5] = 'lib';
|
||||
$lang->caselib->menuOrder[10] = 'all';
|
||||
$lang->caselib->menuOrder[15] = 'wait';
|
||||
$lang->caselib->menuOrder[20] = 'view';
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->story);
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->release);
|
||||
unset($lang->product->menu->dynamic);
|
||||
unset($lang->product->menu->plan);
|
||||
unset($lang->product->menu->roadmap);
|
||||
unset($lang->product->menu->doc);
|
||||
unset($lang->product->menu->module);
|
||||
unset($lang->product->menu->index);
|
||||
|
||||
$lang->product->menu->build = array('link' => '版本|product|build', 'subModule' => 'build');
|
||||
|
||||
$lang->product->menuOrder[5] = 'build';
|
||||
$lang->product->menuOrder[10] = 'view';
|
||||
$lang->product->menuOrder[15] = 'order';
|
||||
|
||||
$lang->build->menu = $lang->product->menu;
|
||||
$lang->build->menuOrder = $lang->product->menuOrder;
|
||||
|
||||
/* Adjust menu group. */
|
||||
$lang->menugroup->bug = 'bug';
|
||||
$lang->menugroup->testcase = 'testcase';
|
||||
$lang->menugroup->case = 'testcase';
|
||||
$lang->menugroup->testtask = 'testtask';
|
||||
$lang->menugroup->testsuite = 'testsuite';
|
||||
$lang->menugroup->caselib = 'caselib';
|
||||
$lang->menugroup->testreport = 'testtask';
|
||||
$lang->menugroup->build = 'product';
|
||||
|
||||
/* Adjust search objects. */
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
}
|
||||
|
||||
/* Cmmi menu. */
|
||||
$lang->menu->cmmi = new stdclass();
|
||||
$lang->menu->cmmi->programindex = array('link' => '仪表盘|program|index|program={PROGRAM}');
|
||||
$lang->menu->cmmi->programplan = array('link' => '计划|programplan|browse|program={PROGRAM}', 'subModule' => 'programplan');
|
||||
$lang->menu->cmmi->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,');
|
||||
$lang->menu->cmmi->weekly = array('link' => '报告|weekly|index|program={PROGRAM}', 'subModule' => ',milestone,');
|
||||
$lang->menu->cmmi->doc = array('link' => '文档|doc|index|program={PROGRAM}');
|
||||
$lang->menu->cmmi->product = array('link' => '需求|product|browse|product={PRODUCT}&branch=&browseType=unclosed&queryID=0&storyType=requirement', 'subModule' => ',story,');
|
||||
$lang->menu->cmmi->design = '设计|design|browse|product={PRODUCT}';
|
||||
$lang->menu->cmmi->ci = '代码|repo|browse|';
|
||||
$lang->menu->cmmi->qa = array('link' => '测试|bug|browse|product={PRODUCT}', 'subModule' => ',testcase,testtask,testsuite,testreport,caselib,');
|
||||
$lang->menu->cmmi->release = array('link' => '发布|release|browse|product={PRODUCT}', 'subModule' => 'release');
|
||||
$lang->menu->cmmi->issue = '问题|issue|browse|';
|
||||
$lang->menu->cmmi->risk = '风险|risk|browse|';
|
||||
$lang->menu->cmmi->list = array('link' => '更多|workestimation|index|program={PROGRAM}', 'class' => 'dropdown dropdown-hover cmmi-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
|
||||
|
||||
/* Srcum menu. */
|
||||
$lang->menu->srcum = new stdclass();
|
||||
$lang->menu->srcum->programindex = array('link' => '仪表盘|program|index|program={PROGRAM}');
|
||||
|
||||
$lang->cmmi = new stdclass();
|
||||
$lang->cmmi->subMenu = new stdclass();
|
||||
$lang->cmmi->subMenu->list = new stdclass();
|
||||
$lang->cmmi->subMenu->list->workestimation = array('link' => '估算|workestimation|index|program=%s', 'subModule' => 'durationestimation,budget');
|
||||
$lang->cmmi->subMenu->list->program = '项目|program|edit|';
|
||||
|
||||
$lang->cmmiproduct = new stdclass();
|
||||
$lang->workestimation = new stdclass();
|
||||
$lang->budget = new stdclass();
|
||||
$lang->programplan = new stdclass();
|
||||
$lang->review = new stdclass();
|
||||
$lang->weekly = new stdclass();
|
||||
$lang->milestone = new stdclass();
|
||||
$lang->design = new stdclass();
|
||||
$lang->auditplan = new stdclass();
|
||||
$lang->cm = new stdclass();
|
||||
$lang->nc = new stdclass();
|
||||
$lang->pssp = new stdclass();
|
||||
$lang->issue = new stdclass();
|
||||
$lang->risk = new stdclass();
|
||||
$lang->stakeholder = new stdclass();
|
||||
$lang->durationestimation = new stdclass();
|
||||
|
||||
$lang->workestimation->menu = new stdclass();
|
||||
$lang->budget->menu = new stdclass();
|
||||
$lang->programplan->menu = new stdclass();
|
||||
$lang->review->menu = new stdclass();
|
||||
$lang->weekly->menu = new stdclass();
|
||||
$lang->milestone->menu = new stdclass();
|
||||
$lang->cmmiproduct->menu = new stdclass();
|
||||
$lang->design->menu = new stdclass();
|
||||
$lang->auditplan->menu = new stdclass();
|
||||
$lang->cm->menu = new stdclass();
|
||||
$lang->pssp->menu = new stdclass();
|
||||
$lang->issue->menu = new stdclass();
|
||||
$lang->risk->menu = new stdclass();
|
||||
$lang->stakeholder->menu = new stdclass();
|
||||
$lang->durationestimation->menu = new stdclass();
|
||||
|
||||
$lang->workestimation->menu->index = '工作量估算|workestimation|index|program={PROGRAM}';
|
||||
$lang->workestimation->menu->duration = array('link' => '工期估算|durationestimation|index|program={PROGRAM}', 'subModule' => 'durationestimation');
|
||||
$lang->workestimation->menu->budget = array('link' => '费用估算|budget|summary|', 'subModule' => 'budget');
|
||||
|
||||
$lang->durationestimation->menu = $lang->workestimation->menu;
|
||||
$lang->budget->menu = $lang->workestimation->menu;
|
||||
|
||||
$lang->programplan->menu->gantt = array('link' => '甘特图|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=gantt');
|
||||
$lang->programplan->menu->lists = array('link' => '阶段列表|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=lists', 'alias' => 'create');
|
||||
|
||||
$lang->weekly->menu->browse = '周报|weekly|index|program={PROGRAM}';
|
||||
$lang->weekly->menu->issue = '里程碑报告|milestone|index|program={PROGRAM}';
|
||||
|
||||
$lang->cmmiproduct->menu->plan = array('link' => '排期|productplan|browse|productID={PRODUCT}', 'subModule' => 'productplan');
|
||||
$lang->cmmiproduct->menu->requirement = '用户需求|product|browse|product={PRODUCT}&branch=&browseType=unclosed&queryID=0&storyType=requirement';
|
||||
$lang->cmmiproduct->menu->story = '软件需求|product|browse|product={PRODUCT}&branch=&browseType=unclosed&queryID=0&storyType=story';
|
||||
$lang->cmmiproduct->menu->track = '跟踪矩阵|story|track|product={PRODUCT}';
|
||||
|
||||
$lang->milestone->menu = $lang->weekly->menu;
|
||||
$lang->nc->menu = $lang->auditplan->menu;
|
||||
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
$lang->haveMenuMethod = array('custom');
|
||||
|
||||
@@ -692,243 +692,3 @@ $lang->icons['confirmStoryChange'] = 'search';
|
||||
$lang->icons['score'] = 'tint';
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
global $config;
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
|
||||
{
|
||||
/* Remove project, report and qa module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->doc);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust search items. */
|
||||
unset($lang->searchObjects['bug']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['build']);
|
||||
unset($lang->searchObjects['testtask']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
|
||||
{
|
||||
/* Remove product, report and qa module. */
|
||||
unset($lang->menu->product);
|
||||
unset($lang->menu->report);
|
||||
unset($lang->menu->qa);
|
||||
|
||||
unset($lang->menuOrder[10]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->bug);
|
||||
unset($lang->my->menu->testtask);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Adjust sub menu of project module. */
|
||||
unset($lang->project->menu->story);
|
||||
unset($lang->project->menu->build);
|
||||
unset($lang->project->menu->qa);
|
||||
unset($lang->project->menu->product);
|
||||
unset($lang->project->menu->doc);
|
||||
|
||||
/* Remove sub menu of product module. */
|
||||
unset($lang->product->menu);
|
||||
unset($lang->product->menuOrder);
|
||||
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['product']);
|
||||
unset($lang->searchObjects['testcase']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
unset($lang->searchObjects['testsuite']);
|
||||
unset($lang->searchObjects['caselib']);
|
||||
unset($lang->searchObjects['testreport']);
|
||||
}
|
||||
|
||||
if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
{
|
||||
/* Remove project and test module. */
|
||||
unset($lang->menu->project);
|
||||
unset($lang->menu->qa);
|
||||
unset($lang->menu->report);
|
||||
|
||||
unset($lang->menuOrder[15]);
|
||||
unset($lang->menuOrder[20]);
|
||||
unset($lang->menuOrder[35]);
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
/* Adjust sub menu of my dashboard. */
|
||||
unset($lang->my->menu->task);
|
||||
unset($lang->my->menu->myProject);
|
||||
unset($lang->my->menu->story);
|
||||
|
||||
/* Remove sub menu of project module. */
|
||||
unset($lang->project->menu);
|
||||
unset($lang->project->menuOrder);
|
||||
$lang->project->menu = new stdclass();
|
||||
$lang->project->menu->list = array('alias' => '');
|
||||
|
||||
/* Add bug, testcase and testtask module. */
|
||||
$lang->menu->bug = 'Bug|bug|index';
|
||||
$lang->menu->testcase = '功能測試|testcase|browse';
|
||||
$lang->menu->unit = '單元測試|testtask|browseUnits';
|
||||
$lang->menu->testsuite = '套件|testsuite|index';
|
||||
$lang->menu->testtask = '測試單|testtask|index';
|
||||
$lang->menu->caselib = '用例庫|caselib|browse';
|
||||
|
||||
$lang->menuOrder[6] = 'bug';
|
||||
$lang->menuOrder[7] = 'testcase';
|
||||
$lang->menuOrder[8] = 'unit';
|
||||
$lang->menuOrder[9] = 'testsuite';
|
||||
$lang->menuOrder[10] = 'testtask';
|
||||
$lang->menuOrder[11] = 'caselib';
|
||||
$lang->menuOrder[12] = 'product';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->bug->menu = new stdclass();
|
||||
$lang->bug->menu->all = '所有|bug|browse|productID=%s&branch=%s&browseType=all¶m=%s';
|
||||
$lang->bug->menu->unclosed = '未關閉|bug|browse|productID=%s&branch=%s&browseType=unclosed¶m=%s';
|
||||
$lang->bug->menu->openedbyme = '由我創建|bug|browse|productID=%s&branch=%s&browseType=openedbyme¶m=%s';
|
||||
$lang->bug->menu->assigntome = '指派給我|bug|browse|productID=%s&branch=%s&browseType=assigntome¶m=%s';
|
||||
$lang->bug->menu->resolvedbyme = '由我解決|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme¶m=%s';
|
||||
$lang->bug->menu->toclosed = '待關閉|bug|browse|productID=%s&branch=%s&browseType=toclosed¶m=%s';
|
||||
$lang->bug->menu->unresolved = '未解決|bug|browse|productID=%s&branch=%s&browseType=unresolved¶m=%s';
|
||||
$lang->bug->menu->more = array('link' => '更多|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->bug->subMenu = new stdclass();
|
||||
$lang->bug->subMenu->more = new stdclass();
|
||||
$lang->bug->subMenu->more->unconfirmed = '未確認|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s';
|
||||
$lang->bug->subMenu->more->assigntonull = '未指派|bug|browse|productID=%s&branch=%s&browseType=assigntonull¶m=%s';
|
||||
$lang->bug->subMenu->more->longlifebugs = '久未處理|bug|browse|productID=%s&branch=%s&browseType=longlifebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->postponedbugs = '被延期|bug|browse|productID=%s&branch=%s&browseType=postponedbugs¶m=%s';
|
||||
$lang->bug->subMenu->more->overduebugs = '過期Bug|bug|browse|productID=%s&branch=%s&browseType=overduebugs¶m=%s';
|
||||
$lang->bug->subMenu->more->needconfirm = "{$lang->storyCommon}變動|bug|browse|productID=%s&branch=%s&browseType=needconfirm¶m=%s";
|
||||
|
||||
$lang->bug->menuOrder[5] = 'product';
|
||||
$lang->bug->menuOrder[10] = 'all';
|
||||
$lang->bug->menuOrder[15] = 'unclosed';
|
||||
$lang->bug->menuOrder[20] = 'openedbyme';
|
||||
$lang->bug->menuOrder[25] = 'assigntome';
|
||||
$lang->bug->menuOrder[30] = 'resolvedbyme';
|
||||
$lang->bug->menuOrder[35] = 'toclosed';
|
||||
$lang->bug->menuOrder[40] = 'unresolved';
|
||||
$lang->bug->menuOrder[45] = 'unconfirmed';
|
||||
$lang->bug->menuOrder[50] = 'assigntonull';
|
||||
$lang->bug->menuOrder[55] = 'longlifebugs';
|
||||
$lang->bug->menuOrder[60] = 'postponedbugs';
|
||||
$lang->bug->menuOrder[65] = 'overduebugs';
|
||||
$lang->bug->menuOrder[70] = 'needconfirm';
|
||||
|
||||
/* Adjust sub menu of testcase. */
|
||||
$lang->testcase->menu = new stdclass();
|
||||
$lang->testcase->menu->all = '所有|testcase|browse|productID=%s&branch=%s&browseType=all';
|
||||
$lang->testcase->menu->wait = '待評審|testcase|browse|productID=%s&branch=%s&browseType=wait';
|
||||
$lang->testcase->menu->bysuite = array('link' => '套件|testsuite|create|productID=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->testcase->subMenu = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite = new stdclass();
|
||||
$lang->testcase->subMenu->bysuite->create = '建套件|testsuite|create|productID=%s';
|
||||
|
||||
$lang->testcase->menuOrder[5] = 'product';
|
||||
$lang->testcase->menuOrder[10] = 'all';
|
||||
$lang->testcase->menuOrder[15] = 'wait';
|
||||
$lang->testcase->menuOrder[20] = 'suite';
|
||||
|
||||
/* Adjust sub menu of bug module. */
|
||||
$lang->testsuite->menu = new stdclass();
|
||||
|
||||
$lang->testsuite->menuOrder[5] = 'product';
|
||||
|
||||
/* Adjust sub menu of testtask. */
|
||||
$lang->testtask->menu = new stdclass();
|
||||
$lang->testtask->menu->totalStatus = '所有|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
|
||||
$lang->testtask->menu->wait = '待測版本|testtask|browse|productID=%s&branch=%s&type=%s,wait';
|
||||
$lang->testtask->menu->doing = '測試中版本|testtask|browse|productID=%s&branch=%s&type=%s,doing';
|
||||
$lang->testtask->menu->blocked = '被阻塞版本|testtask|browse|productID=%s&branch=%s&type=%s,blocked';
|
||||
$lang->testtask->menu->done = '已測版本|testtask|browse|productID=%s&branch=%s&type=%s,done';
|
||||
$lang->testtask->menu->report = array('link' => '報告|testreport|browse', 'alias' => 'view,create,edit');
|
||||
|
||||
$lang->testtask->menuOrder[5] = 'product';
|
||||
$lang->testtask->menuOrder[10] = 'scope';
|
||||
$lang->testtask->menuOrder[15] = 'totalStatus';
|
||||
$lang->testtask->menuOrder[20] = 'wait';
|
||||
$lang->testtask->menuOrder[25] = 'doing';
|
||||
$lang->testtask->menuOrder[30] = 'blocked';
|
||||
$lang->testtask->menuOrder[35] = 'done';
|
||||
$lang->testtask->menuOrder[40] = 'report';
|
||||
|
||||
$lang->testreport->menu = $lang->testtask->menu;
|
||||
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
|
||||
|
||||
/* Adjust sub menu of caselib module. */
|
||||
$lang->caselib->menu = new stdclass();
|
||||
$lang->caselib->menu->all = '所有|caselib|browse|libID=%s&browseType=all';
|
||||
$lang->caselib->menu->wait = '待評審|caselib|browse|libID=%s&browseType=wait';
|
||||
$lang->caselib->menu->view = '概況|caselib|view|libID=%s';
|
||||
|
||||
$lang->caselib->menuOrder[5] = 'lib';
|
||||
$lang->caselib->menuOrder[10] = 'all';
|
||||
$lang->caselib->menuOrder[15] = 'wait';
|
||||
$lang->caselib->menuOrder[20] = 'view';
|
||||
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->story);
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->release);
|
||||
unset($lang->product->menu->dynamic);
|
||||
unset($lang->product->menu->plan);
|
||||
unset($lang->product->menu->roadmap);
|
||||
unset($lang->product->menu->doc);
|
||||
unset($lang->product->menu->module);
|
||||
unset($lang->product->menu->index);
|
||||
|
||||
$lang->product->menu->build = array('link' => '版本|product|build', 'subModule' => 'build');
|
||||
|
||||
$lang->product->menuOrder[5] = 'build';
|
||||
$lang->product->menuOrder[10] = 'view';
|
||||
$lang->product->menuOrder[15] = 'order';
|
||||
|
||||
$lang->build->menu = $lang->product->menu;
|
||||
$lang->build->menuOrder = $lang->product->menuOrder;
|
||||
|
||||
/* Adjust menu group. */
|
||||
$lang->menugroup->bug = 'bug';
|
||||
$lang->menugroup->testcase = 'testcase';
|
||||
$lang->menugroup->case = 'testcase';
|
||||
$lang->menugroup->testtask = 'testtask';
|
||||
$lang->menugroup->testsuite = 'testsuite';
|
||||
$lang->menugroup->caselib = 'caselib';
|
||||
$lang->menugroup->testreport = 'testtask';
|
||||
$lang->menugroup->build = 'product';
|
||||
|
||||
/* Adjust search objects. */
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['release']);
|
||||
unset($lang->searchObjects['project']);
|
||||
unset($lang->searchObjects['productplan']);
|
||||
}
|
||||
|
||||
+3
-26
@@ -588,15 +588,6 @@ class commonModel extends model
|
||||
}
|
||||
if($module == $currentModule and ($method == $currentMethod or strpos(",$alias,", ",$currentMethod,") !== false)) $active = 'active';
|
||||
|
||||
/* Avoid user thinking the page is shaking when the menu toggle class 'active' */
|
||||
if($config->global->flow == 'onlyTest')
|
||||
{
|
||||
if($currentModule == 'bug' && $currentMethod == 'browse') $active = '';
|
||||
if($currentModule == 'testcase' && $currentMethod == 'browse') $active = '';
|
||||
if($currentModule == 'testtask' && $currentMethod == 'browse') $active = '';
|
||||
if($currentModule == 'caselib' && $currentMethod == 'browse') $active = '';
|
||||
}
|
||||
|
||||
$label = $menuItem->text;
|
||||
$subMenu = '';
|
||||
/* Print sub menus. */
|
||||
@@ -633,7 +624,7 @@ class commonModel extends model
|
||||
$subProgram .= '</ul>';
|
||||
}
|
||||
|
||||
if($config->global->flow != 'onlyTest' && $currentModule == strtolower($subModule) && $currentMethod == strtolower($subMethod)) $subActive = 'active';
|
||||
if($currentModule == strtolower($subModule) && $currentMethod == strtolower($subMethod)) $subActive = 'active';
|
||||
|
||||
$subMenu .= "<li class='$subActive' data-id='$subMenuItem->name'>" . html::a($subLink, $subLabel) . $subProgram . '</li>';
|
||||
}
|
||||
@@ -681,12 +672,7 @@ class commonModel extends model
|
||||
{
|
||||
$searchObject = $methodName;
|
||||
}
|
||||
if(empty($lang->searchObjects[$searchObject]))
|
||||
{
|
||||
$searchObject = 'bug';
|
||||
if($config->global->flow == 'onlyStory') $searchObject = 'story';
|
||||
if($config->global->flow == 'onlyTask') $searchObject = 'task';
|
||||
}
|
||||
if(empty($lang->searchObjects[$searchObject])) $searchObject = 'bug';
|
||||
|
||||
echo "<div id='searchbox'>";
|
||||
echo "<div class='input-group'>";
|
||||
@@ -787,15 +773,6 @@ class commonModel extends model
|
||||
}
|
||||
if($module == $currentModule and ($method == $currentMethod or strpos(",$alias,", ",$currentMethod,") !== false)) $active = 'active';
|
||||
|
||||
/* Avoid user thinking the page is shaking when the menu toggle class 'active' */
|
||||
if($config->global->flow == 'onlyTest')
|
||||
{
|
||||
if($currentModule == 'bug' && $currentMethod == 'browse') $active = '';
|
||||
if($currentModule == 'testcase' && $currentMethod == 'browse') $active = '';
|
||||
if($currentModule == 'testtask' && $currentMethod == 'browse') $active = '';
|
||||
if($currentModule == 'caselib' && $currentMethod == 'browse') $active = '';
|
||||
}
|
||||
|
||||
$label = $menuItem->text;
|
||||
$subMenu = '';
|
||||
/* Print sub menus. */
|
||||
@@ -816,7 +793,7 @@ class commonModel extends model
|
||||
|
||||
$subLink = helper::createLink($subModule, $subMethod, $subParams);
|
||||
|
||||
if($config->global->flow != 'onlyTest' && $currentModule == strtolower($subModule) && $currentMethod == strtolower($subMethod)) $subActive = 'active';
|
||||
if($currentModule == strtolower($subModule) && $currentMethod == strtolower($subMethod)) $subActive = 'active';
|
||||
|
||||
$subMenu .= "<li class='$subActive' data-id='$subMenuItem->name'>" . html::a($subLink, $subLabel) . '</li>';
|
||||
}
|
||||
|
||||
@@ -27,9 +27,7 @@
|
||||
<?php endforeach;?>
|
||||
<div class="input-control space w-150px"><?php echo html::select('account', $users, $account, 'onchange=changeUser(this.value) class="form-control chosen"');?></div>
|
||||
<div class="input-control space w-150px"><?php echo html::select('product', $products, $product, 'onchange=changeProduct(this.value) class="form-control chosen"');?></div>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<div class="input-control space w-150px"><?php echo html::select('project', $projects, $project, 'onchange=changeProject(this.value) class="form-control chosen"'); ?></div>
|
||||
<?php endif;?>
|
||||
<a class="btn btn-link querybox-toggle" id="bysearchTab"><i class="icon icon-search muted"></i> <?php echo $lang->action->dynamic->search;?></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -555,9 +555,6 @@ class custom extends control
|
||||
public function ajaxGetMenu($module = 'main', $method = '', $type = '')
|
||||
{
|
||||
if($this->config->global->flow == 'full') $this->loadModel('project')->setMenu(array(), 0);
|
||||
if($this->config->global->flow == 'onlyTest') $this->loadModel('testcase')->setMenu(array(), 0);
|
||||
if($this->config->global->flow == 'onlyTest') $this->loadModel('bug')->setMenu(array(), 0);
|
||||
if($this->config->global->flow == 'onlyTask') $this->loadModel('project')->setMenu(array(), 0);
|
||||
if($type === 'all')
|
||||
{
|
||||
$menu = array();
|
||||
|
||||
@@ -134,9 +134,6 @@ $lang->custom->productProject->relation['1_2'] = 'Dự án - Sprint';
|
||||
$lang->custom->productProject->notice = 'Chọn một mô hình phù hợp với doanh nghiệp của bạn.';
|
||||
|
||||
$lang->custom->workingList['full'] = 'Quản lý vòng đời ứng dụng';
|
||||
$lang->custom->workingList['onlyTest'] = 'Quản lý kiểm thử';
|
||||
$lang->custom->workingList['onlyStory'] = 'Quản lý câu chuyện';
|
||||
$lang->custom->workingList['onlyTask'] = 'Quản lý nhiệm vụ';
|
||||
|
||||
$lang->custom->menuTip = 'Click để hiện/ẩn menu. Kéo thả để chuyển vị trí hiển thị.';
|
||||
$lang->custom->saveFail = 'Lưu thất bại!';
|
||||
|
||||
@@ -134,9 +134,6 @@ $lang->custom->productProject->relation['1_2'] = '項目 - 衝刺';
|
||||
$lang->custom->productProject->notice = '請根據實際情況選擇適合自己團隊的概念。';
|
||||
|
||||
$lang->custom->workingList['full'] = '完整研發管理工具';
|
||||
$lang->custom->workingList['onlyTest'] = '測試管理工具';
|
||||
$lang->custom->workingList['onlyStory'] = "{$lang->storyCommon}管理工具";
|
||||
$lang->custom->workingList['onlyTask'] = '任務管理工具';
|
||||
|
||||
$lang->custom->menuTip = '點擊顯示或隱藏導航條目,拖拽來更改顯示順序。';
|
||||
$lang->custom->saveFail = '保存失敗!';
|
||||
|
||||
@@ -27,11 +27,9 @@
|
||||
<nav id='subNavbar'>
|
||||
<ul class='nav nav-default'></ul>
|
||||
</nav>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<nav id='mainMenu'>
|
||||
<ul class='nav nav-default'></ul>
|
||||
</nav>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<div class='text-left'>
|
||||
<?php if(common::hasPriv('custom', 'setPublic')):?>
|
||||
|
||||
@@ -109,12 +109,6 @@ $lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
$lang->doc->systemLibs['product'] = $lang->productCommon . 'Dok Bibliothek';
|
||||
$lang->doc->systemLibs['project'] = $lang->projectCommon . 'Dok Bibliothek';
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->systemLibs['project']);
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->libTypeList['project']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->systemLibs['product']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->libTypeList['product']);
|
||||
|
||||
$lang->doc->aclList['open'] = 'Öffentlich';
|
||||
$lang->doc->aclList['custom'] = 'Eigene';
|
||||
$lang->doc->aclList['private'] = 'Privat';
|
||||
|
||||
@@ -109,12 +109,6 @@ $lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
$lang->doc->systemLibs['product'] = $lang->productCommon;
|
||||
$lang->doc->systemLibs['project'] = $lang->projectCommon;
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->systemLibs['project']);
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->libTypeList['project']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->systemLibs['product']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->libTypeList['product']);
|
||||
|
||||
$lang->doc->aclList['open'] = 'Public';
|
||||
$lang->doc->aclList['custom'] = 'Custom';
|
||||
$lang->doc->aclList['private'] = 'Private';
|
||||
|
||||
@@ -109,12 +109,6 @@ $lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
$lang->doc->systemLibs['product'] = $lang->productCommon;
|
||||
$lang->doc->systemLibs['project'] = $lang->projectCommon;
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->systemLibs['project']);
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->libTypeList['project']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->systemLibs['product']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->libTypeList['product']);
|
||||
|
||||
$lang->doc->aclList['open'] = 'Public';
|
||||
$lang->doc->aclList['custom'] = 'Person.';
|
||||
$lang->doc->aclList['private'] = 'Privé';
|
||||
|
||||
@@ -109,12 +109,6 @@ $lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
$lang->doc->systemLibs['product'] = $lang->productCommon;
|
||||
$lang->doc->systemLibs['project'] = $lang->projectCommon;
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->systemLibs['project']);
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->libTypeList['project']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->systemLibs['product']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->libTypeList['product']);
|
||||
|
||||
$lang->doc->aclList['open'] = 'Công khai';
|
||||
$lang->doc->aclList['custom'] = 'Tùy biến';
|
||||
$lang->doc->aclList['private'] = 'Riêng tư';
|
||||
|
||||
@@ -109,12 +109,6 @@ $lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
$lang->doc->systemLibs['product'] = $lang->productCommon;
|
||||
$lang->doc->systemLibs['project'] = $lang->projectCommon;
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->systemLibs['project']);
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->libTypeList['project']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->systemLibs['product']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->libTypeList['product']);
|
||||
|
||||
$lang->doc->aclList['open'] = '公开';
|
||||
$lang->doc->aclList['custom'] = '自定义';
|
||||
$lang->doc->aclList['private'] = '私有';
|
||||
|
||||
@@ -109,12 +109,6 @@ $lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
$lang->doc->systemLibs['product'] = $lang->productCommon;
|
||||
$lang->doc->systemLibs['project'] = $lang->projectCommon;
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->systemLibs['project']);
|
||||
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->libTypeList['project']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->systemLibs['product']);
|
||||
if($config->global->flow == 'onlyTask') unset($lang->doc->libTypeList['product']);
|
||||
|
||||
$lang->doc->aclList['open'] = '公開';
|
||||
$lang->doc->aclList['custom'] = '自定義';
|
||||
$lang->doc->aclList['private'] = '私有';
|
||||
|
||||
+18
-50
@@ -324,8 +324,6 @@ class docModel extends model
|
||||
{
|
||||
$docs = $this->dao->select('*')->from(TABLE_DOC)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('product')->eq(0)->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyStory' || $this->config->global->flow == 'onlyTest')->andWhere('project')->eq(0)->fi()
|
||||
->beginIF($libID)->andWhere('lib')->in($libID)->fi()
|
||||
->andWhere('lib')->in($allLibs)
|
||||
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
|
||||
@@ -338,8 +336,6 @@ class docModel extends model
|
||||
{
|
||||
$docs = $this->dao->select('*')->from(TABLE_DOC)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('product')->eq(0)->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyStory' || $this->config->global->flow == 'onlyTest')->andWhere('project')->eq(0)->fi()
|
||||
->andWhere('id')->in($docIdList)
|
||||
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
|
||||
->andWhere('lib')->in($allLibs)
|
||||
@@ -351,8 +347,6 @@ class docModel extends model
|
||||
{
|
||||
$docs = $this->dao->select('*')->from(TABLE_DOC)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('product')->eq(0)->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyStory' || $this->config->global->flow == 'onlyTest')->andWhere('project')->eq(0)->fi()
|
||||
->beginIF($libID)->andWhere('lib')->in($libID)->fi()
|
||||
->andWhere('lib')->in($allLibs)
|
||||
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
|
||||
@@ -425,8 +419,6 @@ class docModel extends model
|
||||
$docs = $this->dao->select('t1.*')->from(TABLE_DOC)->alias('t1')
|
||||
->leftJoin(TABLE_DOCCONTENT)->alias('t2')->on('t2.doc = t1.id')
|
||||
->where('t1.deleted')->eq(0)
|
||||
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('product')->eq(0)->fi()
|
||||
->beginIF($this->config->global->flow == 'onlyStory' || $this->config->global->flow == 'onlyTest')->andWhere('project')->eq(0)->fi()
|
||||
->beginIF(!empty($docIdList))->andWhere('t1.id')->in($docIdList)->fi()
|
||||
->andWhere('t1.title', true)->like("%{$this->session->searchDoc}%")
|
||||
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
|
||||
@@ -1034,18 +1026,11 @@ class docModel extends model
|
||||
|
||||
$productIdList = array_keys($productLibs);
|
||||
$products = $this->dao->select('id,name,status')->from(TABLE_PRODUCT)->where('id')->in($productIdList)->andWhere('deleted')->eq('0')->orderBy('`order`_desc')->fetchAll();
|
||||
if($this->config->global->flow == 'onlyStory' or $this->config->global->flow == 'onlyTest')
|
||||
{
|
||||
$hasProject = array();
|
||||
}
|
||||
else
|
||||
{
|
||||
$hasProject = $this->dao->select('DISTINCT t1.product')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id')
|
||||
->where('t1.product')->in($productIdList)
|
||||
->andWhere('t2.deleted')->eq(0)
|
||||
->fetchPairs('product', 'product');
|
||||
}
|
||||
$hasProject = $this->dao->select('DISTINCT t1.product')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id')
|
||||
->where('t1.product')->in($productIdList)
|
||||
->andWhere('t2.deleted')->eq(0)
|
||||
->fetchPairs('product', 'product');
|
||||
|
||||
$hasLibsPriv = common::hasPriv('doc', 'allLibs');
|
||||
$hasFilesPriv = common::hasPriv('doc', 'showFiles');
|
||||
@@ -1099,9 +1084,6 @@ class docModel extends model
|
||||
*/
|
||||
public function getLimitLibs($type, $limit = 0)
|
||||
{
|
||||
if($type == 'project' and ($this->config->global->flow == 'onlyStory' or $this->config->global->flow == 'onlyTest')) return array();
|
||||
if($type == 'product' and $this->config->global->flow == 'onlyTask') return array();
|
||||
|
||||
if($type == 'product' or $type == 'project')
|
||||
{
|
||||
$nonzeroLibs = array();
|
||||
@@ -1157,19 +1139,12 @@ class docModel extends model
|
||||
$libGroups = $this->dao->select('*')->from(TABLE_DOCLIB)->where('deleted')->eq(0)->andWhere($type)->in($idList)->orderBy('`order`, id')->fetchGroup($type, 'id');
|
||||
if($type == 'product')
|
||||
{
|
||||
if($this->config->global->flow == 'onlyStory' or $this->config->global->flow == 'onlyTest')
|
||||
{
|
||||
$hasProject = array();
|
||||
}
|
||||
else
|
||||
{
|
||||
$hasProject = $this->dao->select('DISTINCT t1.product')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id')
|
||||
->where('t1.product')->in($idList)
|
||||
->beginIF(strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi()
|
||||
->andWhere('t2.deleted')->eq(0)
|
||||
->fetchPairs('product', 'product');
|
||||
}
|
||||
$hasProject = $this->dao->select('DISTINCT t1.product')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id')
|
||||
->where('t1.product')->in($idList)
|
||||
->beginIF(strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi()
|
||||
->andWhere('t2.deleted')->eq(0)
|
||||
->fetchPairs('product', 'product');
|
||||
}
|
||||
$buildGroups = array();
|
||||
foreach($libGroups as $objectID => $libs)
|
||||
@@ -1198,20 +1173,13 @@ class docModel extends model
|
||||
$objectLibs = $this->dao->select('*')->from(TABLE_DOCLIB)->where('deleted')->eq(0)->andWhere($type)->eq($objectID)->orderBy('`order`, id')->fetchAll('id');
|
||||
if($type == 'product')
|
||||
{
|
||||
if($this->config->global->flow == 'onlyStory' or $this->config->global->flow == 'onlyTest')
|
||||
{
|
||||
$hasProject = array();
|
||||
}
|
||||
else
|
||||
{
|
||||
$hasProject = $this->dao->select('DISTINCT t1.product, count(project) as projectCount')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id')
|
||||
->where('t1.product')->eq($objectID)
|
||||
->beginIF(strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi()
|
||||
->andWhere('t2.deleted')->eq(0)
|
||||
->groupBy('product')
|
||||
->fetchPairs('product', 'projectCount');
|
||||
}
|
||||
$hasProject = $this->dao->select('DISTINCT t1.product, count(project) as projectCount')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id')
|
||||
->where('t1.product')->eq($objectID)
|
||||
->beginIF(strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi()
|
||||
->andWhere('t2.deleted')->eq(0)
|
||||
->groupBy('product')
|
||||
->fetchPairs('product', 'projectCount');
|
||||
}
|
||||
|
||||
$libs = array();
|
||||
|
||||
@@ -19,16 +19,12 @@ $sideWidth = common::checkNotCN() ? '270' : '238';
|
||||
<div class="tabs">
|
||||
<ul class='nav nav-tabs'>
|
||||
<?php foreach($lang->doclib->tabList as $tabValue => $tabName):?>
|
||||
<?php if($this->config->global->flow == 'onlyTask' and $tabValue == 'product') continue;?>
|
||||
<?php if(($this->config->global->flow == 'onlyStory' or $this->config->global->flow == 'onlyTest') and $tabValue == 'project') continue;?>
|
||||
<?php $activeClass = $tabValue == $type ? 'active' : '';?>
|
||||
<li class='<?php echo $activeClass;?>'><?php echo html::a("#{$tabValue}", $tabName, '', "data-tab");?></li>
|
||||
<?php endforeach;?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<?php foreach($lang->doclib->tabList as $tabValue => $tabName):?>
|
||||
<?php if($this->config->global->flow == 'onlyTask' and $tabValue == 'product') continue;?>
|
||||
<?php if(($this->config->global->flow == 'onlyStory' or $this->config->global->flow == 'onlyTest') and $tabValue == 'project') continue;?>
|
||||
<?php $activeClass = $tabValue == $type ? 'active' : '';?>
|
||||
<div class="tab-pane <?php echo $activeClass;?>" id="<?php echo "$tabValue";?>">
|
||||
<ul data-name="docsTree" data-ride="tree" data-initial-state="preserve" class="tree no-margin">
|
||||
|
||||
@@ -1705,100 +1705,3 @@ $lang->changelog['12.3'][] = 'testtask-unitCases';
|
||||
$lang->changelog['12.3'][] = 'testtask-importUnitResult';
|
||||
$lang->changelog['12.3'][] = 'job-view';
|
||||
$lang->changelog['12.3'][] = 'ci-commitResult';
|
||||
|
||||
global $config;
|
||||
if($config->global->flow != 'full')
|
||||
{
|
||||
unset($lang->moduleOrder[10]);
|
||||
unset($lang->resource->qa);
|
||||
unset($lang->moduleOrder[50]);
|
||||
unset($lang->resource->report);
|
||||
unset($lang->moduleOrder[90]);
|
||||
}
|
||||
|
||||
if($config->global->flow == 'onlyStory' || $config->global->flow == 'onlyTask')
|
||||
{
|
||||
unset($lang->resource->build);
|
||||
unset($lang->moduleOrder[45]);
|
||||
unset($lang->resource->bug);
|
||||
unset($lang->moduleOrder[55]);
|
||||
unset($lang->resource->testcase);
|
||||
unset($lang->moduleOrder[60]);
|
||||
unset($lang->resource->testtask);
|
||||
unset($lang->moduleOrder[65]);
|
||||
|
||||
unset($lang->resource->my->bug);
|
||||
unset($lang->resource->my->testTask);
|
||||
unset($lang->resource->my->testCase);
|
||||
}
|
||||
|
||||
if($config->global->flow == 'onlyStory' || $config->global->flow == 'onlyTest')
|
||||
{
|
||||
unset($lang->resource->project);
|
||||
unset($lang->moduleOrder[35]);
|
||||
unset($lang->resource->task);
|
||||
unset($lang->moduleOrder[40]);
|
||||
|
||||
unset($lang->resource->my->task);
|
||||
unset($lang->resource->my->project);
|
||||
|
||||
unset($lang->resource->product->project);
|
||||
}
|
||||
|
||||
if($config->global->flow == 'onlyTask' || $config->global->flow == 'onlyTest')
|
||||
{
|
||||
unset($lang->resource->story);
|
||||
unset($lang->moduleOrder[20]);
|
||||
unset($lang->resource->productplan);
|
||||
unset($lang->moduleOrder[25]);
|
||||
unset($lang->resource->release);
|
||||
unset($lang->moduleOrder[30]);
|
||||
|
||||
unset($lang->resource->my->story);
|
||||
}
|
||||
|
||||
if($config->global->flow == 'onlyStory')
|
||||
{
|
||||
unset($lang->resource->svn);
|
||||
unset($lang->moduleOrder[150]);
|
||||
unset($lang->resource->git);
|
||||
unset($lang->moduleOrder[155]);
|
||||
|
||||
unset($lang->resource->story->tasks);
|
||||
}
|
||||
|
||||
if($config->global->flow == 'onlyTask')
|
||||
{
|
||||
unset($lang->resource->product);
|
||||
unset($lang->moduleOrder[15]);
|
||||
unset($lang->resource->bug);
|
||||
unset($lang->moduleOrder[55]);
|
||||
|
||||
unset($lang->resource->project->importbug);
|
||||
unset($lang->resource->project->story);
|
||||
unset($lang->resource->project->bug);
|
||||
unset($lang->resource->project->linkStory);
|
||||
unset($lang->resource->project->unlinkStory);
|
||||
unset($lang->resource->project->ajaxGetProducts);
|
||||
}
|
||||
|
||||
if($config->global->flow == 'onlyTest')
|
||||
{
|
||||
unset($lang->resource->product->browse);
|
||||
unset($lang->resource->product->roadmap);
|
||||
unset($lang->resource->product->dynamic);
|
||||
unset($lang->resource->product->ajaxGetProjects);
|
||||
unset($lang->resource->product->ajaxGetPlans);
|
||||
|
||||
unset($lang->resource->build->ajaxGetProjectBuilds);
|
||||
unset($lang->build->methodOrder[30]);
|
||||
|
||||
unset($lang->resource->bug->confirmStoryChange);
|
||||
unset($lang->bug->methodOrder[60]);
|
||||
|
||||
unset($lang->resource->testcase->confirmStoryChange);
|
||||
unset($lang->testcase->methodOrder[40]);
|
||||
|
||||
$lang->resource->product->build = 'build';
|
||||
$lang->product->methodOrder[5] = 'build';
|
||||
}
|
||||
|
||||
@@ -107,9 +107,6 @@ $lang->install->requestTypes['GET'] = 'GET';
|
||||
$lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO';
|
||||
|
||||
$lang->install->workingList['full'] = 'Volles Development Management';
|
||||
$lang->install->workingList['onlyTest'] = 'Nur Test Management';
|
||||
$lang->install->workingList['onlyStory'] = 'Nur Story Management';
|
||||
$lang->install->workingList['onlyTask'] = 'Nur Task Management';
|
||||
|
||||
$lang->install->errorConnectDB = 'Verbindung zur Datenbank fehlgeschlagen. ';
|
||||
$lang->install->errorDBName = 'Datenbankname darf keinen Punkt enthalten';
|
||||
|
||||
@@ -107,9 +107,6 @@ $lang->install->requestTypes['GET'] = 'GET';
|
||||
$lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO';
|
||||
|
||||
$lang->install->workingList['full'] = 'Application Lifecycle Management';
|
||||
$lang->install->workingList['onlyTest'] = 'Only Test Management';
|
||||
$lang->install->workingList['onlyStory'] = 'Only Story Management';
|
||||
$lang->install->workingList['onlyTask'] = 'Only Task Management';
|
||||
|
||||
$lang->install->errorConnectDB = 'Connection to the database Failed. ';
|
||||
$lang->install->errorDBName = 'Database name should exclude “.” ';
|
||||
|
||||
@@ -107,9 +107,6 @@ $lang->install->requestTypes['GET'] = 'GET';
|
||||
$lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO';
|
||||
|
||||
$lang->install->workingList['full'] = 'Application Lifecycle Management';
|
||||
$lang->install->workingList['onlyTest'] = 'Seulement Test Management';
|
||||
$lang->install->workingList['onlyStory'] = 'Seulement Story Management';
|
||||
$lang->install->workingList['onlyTask'] = 'Seulement Task Management';
|
||||
|
||||
$lang->install->errorConnectDB = 'Echec de connexion à la base. ';
|
||||
$lang->install->errorDBName = 'Le nom de la base ne doit pas contenir de “.” ';
|
||||
|
||||
@@ -107,9 +107,6 @@ $lang->install->requestTypes['GET'] = 'GET';
|
||||
$lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO';
|
||||
|
||||
$lang->install->workingList['full'] = 'Quản lý vòng đời ứng dụng';
|
||||
$lang->install->workingList['onlyTest'] = 'Chỉ Test Management';
|
||||
$lang->install->workingList['onlyStory'] = 'Chỉ Story Management';
|
||||
$lang->install->workingList['onlyTask'] = 'Chỉ Task Management';
|
||||
|
||||
$lang->install->errorConnectDB = 'Connection to the database Failed. ';
|
||||
$lang->install->errorDBName = 'Database name should exclude “.” ';
|
||||
|
||||
@@ -107,9 +107,6 @@ $lang->install->requestTypes['GET'] = '普通方式';
|
||||
$lang->install->requestTypes['PATH_INFO'] = '静态友好方式';
|
||||
|
||||
$lang->install->workingList['full'] = '完整研发管理工具';
|
||||
$lang->install->workingList['onlyTest'] = '测试管理工具';
|
||||
$lang->install->workingList['onlyStory'] = "需求管理工具";
|
||||
$lang->install->workingList['onlyTask'] = '任务管理工具';
|
||||
|
||||
$lang->install->errorConnectDB = '数据库连接失败 ';
|
||||
$lang->install->errorDBName = '数据库名不能含有 “.” ';
|
||||
|
||||
@@ -107,9 +107,6 @@ $lang->install->requestTypes['GET'] = '普通方式';
|
||||
$lang->install->requestTypes['PATH_INFO'] = '靜態友好方式';
|
||||
|
||||
$lang->install->workingList['full'] = '完整研發管理工具';
|
||||
$lang->install->workingList['onlyTest'] = '測試管理工具';
|
||||
$lang->install->workingList['onlyStory'] = "需求管理工具";
|
||||
$lang->install->workingList['onlyTask'] = '任務管理工具';
|
||||
|
||||
$lang->install->errorConnectDB = '資料庫連接失敗 ';
|
||||
$lang->install->errorDBName = '資料庫名不能含有 “.” ';
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php $showProject = (strpos(",$showFields,", ',project,') !== false && $config->global->flow != 'onlyTest');?>
|
||||
<?php $showProject = (strpos(",$showFields,", ',project,') !== false);?>
|
||||
<tr class='bugTR'>
|
||||
<th><?php echo ($showProject) ? $lang->bug->project : $lang->bug->type;?></th>
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($this->config->global->flow != 'onlyTest' && $showProject):?>
|
||||
<?php if($showProject):?>
|
||||
<?php $showOS = strpos(",$showFields,", ',os,') !== false;?>
|
||||
<?php $showBrowser = strpos(",$showFields,", ',browser,') !== false;?>
|
||||
<tr class='bugTR'>
|
||||
@@ -188,7 +188,7 @@
|
||||
$showStory = strpos(",$showFields,", ',story,') !== false;
|
||||
$showTask = strpos(",$showFields,", ',task,') !== false;
|
||||
?>
|
||||
<?php if(($showStory or $showTask) and $this->config->global->flow != 'onlyTest'):?>
|
||||
<?php if(($showStory or $showTask)):?>
|
||||
<tr class='bugTR'>
|
||||
<th><?php echo ($showStory) ? $lang->bug->story : $lang->bug->task;?></th>
|
||||
<?php if($showStory):?>
|
||||
@@ -699,7 +699,6 @@ function notice()
|
||||
var branch = $('#branch').val();
|
||||
if(typeof(branch) == 'undefined') branch = 0;
|
||||
var link = createLink('release', 'create', 'productID=' + $('#product').val() + '&branch=' + branch);
|
||||
if(typeof(flow) != 'undefined' && flow == 'onlyTest') link = createLink('build', 'create','projectID=' + $('#product').val());
|
||||
html += '<a href="' + link + '" target="_blank" style="padding-right:5px">' + createBuild + '</a> ';
|
||||
html += '<a href="javascript:loadProductBuilds(' + $('#product').val() + ')">' + refresh + '</a>';
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
<th><?php echo $lang->task->status;?></th>
|
||||
<td><?php echo html::hidden('status', 'wait');?></td>
|
||||
</tr>
|
||||
<?php if($stories and $config->global->flow != 'onlyTask' and $project->type != 'ops'):?>
|
||||
<?php if($stories and $project->type != 'ops'):?>
|
||||
<tr id='testStoryBox' class='hidden'>
|
||||
<th><?php echo $lang->task->selectTestStory;?></th>
|
||||
<td colspan='3'>
|
||||
@@ -97,10 +97,8 @@
|
||||
<input type="hidden" class="colorpicker" id="color" name="color" value="" data-icon="color" data-wrapper="input-control-icon-right" data-update-color="#name" data-provide="colorpicker">
|
||||
</div>
|
||||
<?php echo html::input('name', $task->name, "class='form-control'");?>
|
||||
<?php if($config->global->flow != 'onlyTask'):?>
|
||||
<a href='javascript:copyStoryTitle();' id='copyButton' class='input-control-icon-right'><?php echo $lang->task->copyStoryTitle;?></a>
|
||||
<?php echo html::hidden("storyEstimate") . html::hidden("storyDesc") . html::hidden("storyPri");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php if(strpos(",$showFields,", ',pri,') !== false): // begin print pri selector?>
|
||||
<span class="input-group-addon fix-border br-0"><?php echo $lang->task->pri;?></span>
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses', '', '', '', '', '', $story->program);
|
||||
common::printIcon('story', 'close', $vars, $story, 'list', '', '', 'iframe', true, '', '', $story->program);
|
||||
common::printIcon('story', 'edit', $vars, $story, 'list', '', '', '', '', '', '', $story->program);
|
||||
if($config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', '', '', '', '', $story->program);
|
||||
common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', '', '', '', '', $story->program);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses', '', '', '', '', '', $story->program);
|
||||
common::printIcon('story', 'close', $vars, $story, 'list', '', '', 'iframe', true, '', '', $story->program);
|
||||
common::printIcon('story', 'edit', $vars, $story, 'list', '', '', '', '', '', '', $story->program);
|
||||
if($config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', '', '', '', '', $story->program);
|
||||
common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', '', '', '', '', $story->program);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -49,7 +49,6 @@ class product extends control
|
||||
*/
|
||||
public function index($locate = 'auto', $productID = 0, $status = 'noclosed', $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 10, $pageID = 1)
|
||||
{
|
||||
if($this->config->global->flow == 'onlyTest') $this->locate($this->createLink($this->moduleName, 'build'));
|
||||
if($locate == 'yes') $this->locate($this->createLink($this->moduleName, 'browse'));
|
||||
|
||||
if($this->app->getViewType() != 'mhtml') unset($this->lang->product->menu->index);
|
||||
@@ -254,7 +253,6 @@ class product extends control
|
||||
$this->executeHooks($productID);
|
||||
|
||||
$locate = $this->createLink($this->moduleName, 'browse', "productID=$productID");
|
||||
if(isset($this->config->global->flow) and $this->config->global->flow == 'onlyTest') $locate = $this->createLink($this->moduleName, 'build', "productID=$productID");
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $locate));
|
||||
}
|
||||
|
||||
|
||||
@@ -312,8 +312,6 @@ class productModel extends model
|
||||
*/
|
||||
public function getProductsByProject($projectID)
|
||||
{
|
||||
if($this->config->global->flow == 'onlyTask') return array();
|
||||
|
||||
return $this->dao->select('t1.product, t2.name')
|
||||
->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PRODUCT)->alias('t2')
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php js::set('noProject', ($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') ? true : false);?>
|
||||
<?php js::set('noProject', false);?>
|
||||
<div id="mainContent" class="main-content">
|
||||
<div class="center-block">
|
||||
<div class="main-header">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php js::set('noProject', ($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') ? true : false);?>
|
||||
<?php js::set('noProject', false);?>
|
||||
<div id="mainContent" class="main-content">
|
||||
<div class="center-block">
|
||||
<div class="main-header">
|
||||
|
||||
@@ -190,7 +190,6 @@
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<div class="detail">
|
||||
<div class="detail-title"><strong><?php echo $lang->product->otherInfo;?></strong></div>
|
||||
<div class="detail-content">
|
||||
@@ -231,7 +230,6 @@
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php $this->printExtendFields($product, 'div', "position=right&inForm=0&inCell=1");?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
<?php
|
||||
if(common::hasPriv('program', 'createguide')) echo html::a(helper::createLink('program', 'createguide', "projectID=©ProjectID=&planID=$plan->id"), '<i class="icon-plus"></i>', '', "class='btn' title='{$lang->project->create}' data-toggle='modal' data-type='ajax'");
|
||||
if(common::hasPriv('productplan', 'linkStory')) echo html::a(inlink('view', "planID=$plan->id&type=story&orderBy=id_desc&link=true"), '<i class="icon-link"></i>', '', "class='btn' title='{$lang->productplan->linkStory}'");
|
||||
if(common::hasPriv('productplan', 'linkBug') and $config->global->flow != 'onlyStory') echo html::a(inlink('view', "planID=$plan->id&type=bug&orderBy=id_desc&link=true"), '<i class="icon-bug"></i>', '', "class='btn' title='{$lang->productplan->linkBug}'");
|
||||
if(common::hasPriv('productplan', 'linkBug')) echo html::a(inlink('view', "planID=$plan->id&type=bug&orderBy=id_desc&link=true"), '<i class="icon-bug"></i>', '', "class='btn' title='{$lang->productplan->linkBug}'");
|
||||
common::printIcon('productplan', 'edit', "planID=$plan->id", $plan, 'list');
|
||||
if(common::hasPriv('productplan', 'create'))
|
||||
{
|
||||
|
||||
@@ -50,9 +50,7 @@
|
||||
<div class='tabs' id='tabsNav'>
|
||||
<ul class='nav nav-tabs'>
|
||||
<li class='<?php if($type == 'story') echo 'active'?>'><a href='#stories' data-toggle='tab'><?php echo html::icon($lang->icons['story'], 'text-primary') . ' ' . $lang->productplan->linkedStories;?></a></li>
|
||||
<?php if($config->global->flow != 'onlyStory'):?>
|
||||
<li class='<?php if($type == 'bug') echo 'active'?>'><a href='#bugs' data-toggle='tab'><?php echo html::icon($lang->icons['bug'], 'text-red') . ' ' . $lang->productplan->linkedBugs;?></a></li>
|
||||
<?php endif;?>
|
||||
<li><a href='#planInfo' data-toggle='tab'><?php echo html::icon($lang->icons['plan'], 'text-info') . ' ' . $lang->productplan->view;?></a></li>
|
||||
</ul>
|
||||
<div class='tab-content'>
|
||||
|
||||
@@ -122,12 +122,11 @@ class project extends control
|
||||
|
||||
/* Set browse type. */
|
||||
$browseType = strtolower($status);
|
||||
if($this->config->global->flow == 'onlyTask' and $browseType == 'byproduct') $param = 0;
|
||||
|
||||
/* Get products by project. */
|
||||
$project = $this->commonAction($projectID, $status);
|
||||
$projectID = $project->id;
|
||||
$products = $this->config->global->flow == 'onlyTask' ? array() : $this->loadModel('product')->getProductsByProject($projectID);
|
||||
$products = $this->loadModel('product')->getProductsByProject($projectID);
|
||||
setcookie('preProjectID', $projectID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
|
||||
|
||||
if($this->cookie->preProjectID != $projectID)
|
||||
|
||||
@@ -354,10 +354,3 @@ $lang->project->treeLevel['all'] = 'Alle aufklappen';
|
||||
$lang->project->treeLevel['root'] = 'Alle zuklappen';
|
||||
$lang->project->treeLevel['task'] = 'Aufgabe anzeigen';
|
||||
$lang->project->treeLevel['story'] = 'Story anzeigen';
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyTask')
|
||||
{
|
||||
unset($lang->project->groups['story']);
|
||||
unset($lang->project->featureBar['task']['needconfirm']);
|
||||
}
|
||||
|
||||
@@ -354,10 +354,3 @@ $lang->project->treeLevel['all'] = 'Expand All';
|
||||
$lang->project->treeLevel['root'] = 'Collapse All';
|
||||
$lang->project->treeLevel['task'] = 'Stories&Tasks';
|
||||
$lang->project->treeLevel['story'] = 'Only Stories';
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyTask')
|
||||
{
|
||||
unset($lang->project->groups['story']);
|
||||
unset($lang->project->featureBar['task']['needconfirm']);
|
||||
}
|
||||
|
||||
@@ -354,10 +354,3 @@ $lang->project->treeLevel['all'] = 'Déplier Tout';
|
||||
$lang->project->treeLevel['root'] = 'Masquer Tout';
|
||||
$lang->project->treeLevel['task'] = 'Stories&Tâches';
|
||||
$lang->project->treeLevel['story'] = 'Seulement Stories';
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyTask')
|
||||
{
|
||||
unset($lang->project->groups['story']);
|
||||
unset($lang->project->featureBar['task']['needconfirm']);
|
||||
}
|
||||
|
||||
@@ -354,10 +354,3 @@ $lang->project->treeLevel['all'] = 'Mở tất cả';
|
||||
$lang->project->treeLevel['root'] = 'Co lại tất cả';
|
||||
$lang->project->treeLevel['task'] = 'Câu chuyện & nhiệm vụ';
|
||||
$lang->project->treeLevel['story'] = 'Chỉ câu chuyện';
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyTask')
|
||||
{
|
||||
unset($lang->project->groups['story']);
|
||||
unset($lang->project->featureBar['task']['needconfirm']);
|
||||
}
|
||||
|
||||
@@ -360,10 +360,3 @@ $lang->project->treeLevel['all'] = '全部展开';
|
||||
$lang->project->treeLevel['root'] = '全部折叠';
|
||||
$lang->project->treeLevel['task'] = '全部显示';
|
||||
$lang->project->treeLevel['story'] = "只看{$lang->storyCommon}";
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyTask')
|
||||
{
|
||||
unset($lang->project->groups['story']);
|
||||
unset($lang->project->featureBar['task']['needconfirm']);
|
||||
}
|
||||
|
||||
@@ -354,10 +354,3 @@ $lang->project->treeLevel['all'] = '全部展開';
|
||||
$lang->project->treeLevel['root'] = '全部摺疊';
|
||||
$lang->project->treeLevel['task'] = '全部顯示';
|
||||
$lang->project->treeLevel['story'] = "只看{$lang->storyCommon}";
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyTask')
|
||||
{
|
||||
unset($lang->project->groups['story']);
|
||||
unset($lang->project->featureBar['task']['needconfirm']);
|
||||
}
|
||||
|
||||
@@ -1185,8 +1185,6 @@ class projectModel extends model
|
||||
*/
|
||||
public function getProducts($projectID, $withBranch = true)
|
||||
{
|
||||
if($this->config->global->flow == 'onlyTask') return array();
|
||||
|
||||
if(defined('TUTORIAL'))
|
||||
{
|
||||
if(!$withBranch) return $this->loadModel('tutorial')->getProductPairs();
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php $this->printExtendFields('', 'table');?>
|
||||
<tr <?php if($config->global->flow == 'onlyTask') echo "class='hidden'";?>>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->manageProducts;?></th>
|
||||
<td class='text-left' id='productsBox' colspan="3">
|
||||
<div class='row'>
|
||||
@@ -116,7 +116,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr <?php if($config->global->flow == 'onlyTask') echo "class='hidden'";?>>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->linkPlan;?></th>
|
||||
<td colspan="3" id="plansBox">
|
||||
<div class='row'>
|
||||
|
||||
@@ -74,12 +74,6 @@
|
||||
<th><?php echo $lang->project->status;?></th>
|
||||
<td><?php echo html::select('status', $lang->project->statusList, $project->status, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<?php if($config->global->flow == 'onlyTask'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->owner;?></th>
|
||||
<td><?php echo html::select('PM', $pmUsers, $project->PM, "class='form-control chosen'");?></td>
|
||||
</tr>
|
||||
<?php else:?>
|
||||
<tr>
|
||||
<th rowspan='2'><?php echo $lang->project->owner;?></th>
|
||||
<td>
|
||||
@@ -109,8 +103,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr <?php if($config->global->flow == 'onlyTask') echo "class='hidden'";?>>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->manageProducts;?></th>
|
||||
<td class='text-left' id='productsBox' colspan="2">
|
||||
<div class='row'>
|
||||
@@ -135,7 +128,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr <?php if($config->global->flow == 'onlyTask') echo "class='hidden'";?>>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->linkPlan;?></th>
|
||||
<td id="plansBox" colspan="2">
|
||||
<div class='row'>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<p><strong><?php echo $lang->project->afterInfo;?></strong></p>
|
||||
<div>
|
||||
<?php echo html::a($this->createLink('project', 'team', "projectID=$projectID"), $lang->project->setTeam, '', "class='btn'");?>
|
||||
<?php if($config->global->flow != 'onlyTask' && $project->type != 'ops') echo html::a($this->createLink('project', 'linkstory', "projectID=$projectID"), $lang->project->linkStory, '', "class='btn'");?>
|
||||
<?php if($project->type != 'ops') echo html::a($this->createLink('project', 'linkstory', "projectID=$projectID"), $lang->project->linkStory, '', "class='btn'");?>
|
||||
<?php echo html::a($this->createLink('task', 'create', "project=$projectID"), $lang->project->createTask, '', "class='btn'");?>
|
||||
<?php echo html::a($this->createLink('project', 'task', "projectID=$projectID"), $lang->project->goback, '', "class='btn'");?>
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses', '', 'btn btn-info btn-icon');
|
||||
common::printIcon('story', 'close', $vars, $story, 'list', 'off', '', 'btn btn-info btn-icon iframe', true);
|
||||
common::printIcon('story', 'edit', $vars, $story, 'list', '', '', 'btn btn-info btn-icon');
|
||||
if($config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', 'btn btn-info btn-icon');
|
||||
common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', 'btn btn-info btn-icon');
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -197,7 +197,6 @@
|
||||
<div class="detail-content">
|
||||
<table class="table table-data">
|
||||
<tbody>
|
||||
<?php if($config->global->flow != 'onlyStory'):?>
|
||||
<?php if(!empty($fromBug)):?>
|
||||
<tr class='text-top'>
|
||||
<th class='thWidth'><?php echo $lang->story->legendFromBug;?></th>
|
||||
@@ -242,43 +241,42 @@
|
||||
<?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr class='text-top'>
|
||||
<th><?php echo $lang->story->legendLinkStories;?></th>
|
||||
<td class='pd-0'>
|
||||
<?php $linkStories = explode(',', $story->linkStories);?>
|
||||
<?php if(count($linkStories) < 2):?>
|
||||
<?php echo $lang->noData;?>
|
||||
<?php else:?>
|
||||
<ul class='list-unstyled'>
|
||||
<?php
|
||||
foreach($linkStories as $linkStoryID)
|
||||
{
|
||||
if(isset($story->extraStories[$linkStoryID])) echo '<li>' . html::a($this->createLink('story', 'view', "storyID=$linkStoryID"), "#$linkStoryID " . $story->extraStories[$linkStoryID]) . '</li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class='text-top'>
|
||||
<th><?php echo $lang->story->legendChildStories;?></th>
|
||||
<td class='pd-0'>
|
||||
<?php $childStories = explode(',', $story->childStories);?>
|
||||
<?php if(count($childStories) < 2):?>
|
||||
<?php echo $lang->noData;?>
|
||||
<?php else:?>
|
||||
<ul class='list-unstyled'>
|
||||
<?php
|
||||
foreach($childStories as $childStoryID)
|
||||
{
|
||||
if(isset($story->extraStories[$childStoryID])) echo '<li>' . html::a($this->createLink('story', 'view', "storyID=$childStoryID"), "#$childStoryID " . $story->extraStories[$childStoryID]) . '</li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class='text-top'>
|
||||
<th><?php echo $lang->story->legendLinkStories;?></th>
|
||||
<td class='pd-0'>
|
||||
<?php $linkStories = explode(',', $story->linkStories);?>
|
||||
<?php if(count($linkStories) < 2):?>
|
||||
<?php echo $lang->noData;?>
|
||||
<?php else:?>
|
||||
<ul class='list-unstyled'>
|
||||
<?php
|
||||
foreach($linkStories as $linkStoryID)
|
||||
{
|
||||
if(isset($story->extraStories[$linkStoryID])) echo '<li>' . html::a($this->createLink('story', 'view', "storyID=$linkStoryID"), "#$linkStoryID " . $story->extraStories[$linkStoryID]) . '</li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class='text-top'>
|
||||
<th><?php echo $lang->story->legendChildStories;?></th>
|
||||
<td class='pd-0'>
|
||||
<?php $childStories = explode(',', $story->childStories);?>
|
||||
<?php if(count($childStories) < 2):?>
|
||||
<?php echo $lang->noData;?>
|
||||
<?php else:?>
|
||||
<ul class='list-unstyled'>
|
||||
<?php
|
||||
foreach($childStories as $childStoryID)
|
||||
{
|
||||
if(isset($story->extraStories[$childStoryID])) echo '<li>' . html::a($this->createLink('story', 'view', "storyID=$childStoryID"), "#$childStoryID " . $story->extraStories[$childStoryID]) . '</li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -72,7 +72,6 @@
|
||||
<div class="panel-body">
|
||||
<div class="row row-grid">
|
||||
<?php $i = 9; $j = 0;?>
|
||||
<?php if($config->global->flow != 'onlyTask'):?>
|
||||
<?php if($project->PM):?>
|
||||
<?php $i--;?>
|
||||
<?php unset($teamMembers[$project->PM]);?>
|
||||
@@ -93,7 +92,6 @@
|
||||
<?php unset($teamMembers[$project->RD]);?>
|
||||
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $project->RD);?> <span class="text-muted">(<?php echo $lang->project->RD;?>)</span></div>
|
||||
<?php endif;?>
|
||||
<?php endif;?>
|
||||
|
||||
<?php if(common::hasPriv('project', 'team')):?>
|
||||
<?php foreach($teamMembers as $teamMember):?>
|
||||
@@ -193,7 +191,6 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($config->global->flow != 'onlyTask'):?>
|
||||
<div class="detail">
|
||||
<div class="detail-title">
|
||||
<strong><?php echo $lang->project->manageProducts;?></strong>
|
||||
@@ -222,7 +219,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<div class='detail'>
|
||||
<div class='detail-title'><strong><?php echo $lang->project->lblStats;?></strong></div>
|
||||
<div class="detail-content">
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
<td class='c-actions'>
|
||||
<?php
|
||||
if(common::hasPriv('release', 'linkStory')) echo html::a($this->createLink('release', 'view', "releaseID=$release->id&type=story&link=true"), '<i class="icon-link"></i> ', '', "class='btn' title='{$lang->release->linkStory}'");
|
||||
if(common::hasPriv('release', 'linkBug') and $config->global->flow != 'onlyStory') echo html::a($this->createLink('release', 'view', "releaseID=$release->id&type=bug&link=true"), '<i class="icon-bug"></i> ', '', "class='btn' title='{$lang->release->linkBug}'");
|
||||
if(common::hasPriv('release', 'linkBug')) echo html::a($this->createLink('release', 'view', "releaseID=$release->id&type=bug&link=true"), '<i class="icon-bug"></i> ', '', "class='btn' title='{$lang->release->linkBug}'");
|
||||
if(common::hasPriv('release', 'changeStatus', $release))
|
||||
{
|
||||
$changedStatus = $release->status == 'normal' ? 'terminate' : 'normal';
|
||||
|
||||
@@ -53,12 +53,10 @@
|
||||
<?php $countStories = count($stories); $countBugs = count($bugs); $countLeftBugs = count($leftBugs);?>
|
||||
<ul class='nav nav-tabs'>
|
||||
<li <?php if($type == 'story') echo "class='active'"?>><a href='#stories' data-toggle='tab'><?php echo html::icon($lang->icons['story'], 'text-green') . ' ' . $lang->release->stories;?></a></li>
|
||||
<?php if($config->global->flow != 'onlyStory'):?>
|
||||
<li <?php if($type == 'bug') echo "class='active'"?>><a href='#bugs' data-toggle='tab'><?php echo html::icon($lang->icons['bug'], 'text-green') . ' ' . $lang->release->bugs;?></a></li>
|
||||
<li <?php if($type == 'leftBug') echo "class='active'"?>><a href='#leftBugs' data-toggle='tab'><?php echo html::icon($lang->icons['bug'], 'text-red') . ' ' . $lang->release->generatedBugs;?></a></li>
|
||||
<?php endif;?>
|
||||
<li <?php if($type == 'releaseInfo') echo "class='active'"?>><a href='#releaseInfo' data-toggle='tab'><?php echo html::icon($lang->icons['plan'], 'text-info') . ' ' . $lang->release->view;?></a></li>
|
||||
<?php if($countStories or ($config->global->flow != 'onlyStory' and ($countBugs or $countLeftBugs))):?>
|
||||
<?php if($countStories or $countBugs or $countLeftBugs):?>
|
||||
<li class='pull-right'><div><?php common::printIcon('release', 'export', '', '', 'button', '', '', "export btn-sm");?></div></li>
|
||||
<?php endif;?>
|
||||
</ul>
|
||||
|
||||
@@ -3077,7 +3077,7 @@ class storyModel extends model
|
||||
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses');
|
||||
common::printIcon('story', 'close', $vars, $story, 'list', '', '', 'iframe', true);
|
||||
common::printIcon('story', 'edit', $vars, $story, 'list');
|
||||
if($this->config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap');
|
||||
common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap');
|
||||
common::printIcon('story', 'batchCreate', "productID=$story->product&branch=$story->branch&module=$story->module&storyID=$story->id", $story, 'list', 'treemap-alt', '', '', '', '', $this->lang->story->subdivide);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
common::printIcon('story', 'close', "storyID=$story->id", $story, 'button', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('story', 'activate', "storyID=$story->id", $story, 'button', '', '', 'iframe showinonlybody', true);
|
||||
|
||||
if($config->global->flow != 'onlyStory' and !isonlybody() and $story->parent >= 0 and $story->type != 'requirement' and (common::hasPriv('testcase', 'create') or common::hasPriv('testcase', 'batchCreate')))
|
||||
if(!isonlybody() and $story->parent >= 0 and $story->type != 'requirement' and (common::hasPriv('testcase', 'create') or common::hasPriv('testcase', 'batchCreate')))
|
||||
{
|
||||
$this->app->loadLang('testcase');
|
||||
echo "<div class='btn-group dropup'>";
|
||||
@@ -382,9 +382,7 @@
|
||||
<div class="cell">
|
||||
<div class='tabs'>
|
||||
<ul class='nav nav-tabs'>
|
||||
<?php if($config->global->flow == 'onlyStory'):?>
|
||||
<li class='active'><a href='#legendRelated' data-toggle='tab'><?php echo $lang->story->legendRelated;?></a></li>
|
||||
<?php elseif($program->template == 'cmmi'):?>
|
||||
<?php if($program->template == 'cmmi'):?>
|
||||
<li class='active'><a href='#legendStories' data-toggle='tab'><?php echo $story->type == 'story' ? $lang->story->requirement : $lang->story->story;?></a></li>
|
||||
<li><a href='#legendProjectAndTask' data-toggle='tab'><?php echo $lang->story->legendProjectAndTask;?></a></li>
|
||||
<li><a href='#legendRelated' data-toggle='tab'><?php echo $lang->story->legendRelated;?></a></li>
|
||||
@@ -412,7 +410,6 @@
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php if($config->global->flow != 'onlyStory'):?>
|
||||
<div class='tab-pane active' id='legendProjectAndTask'>
|
||||
<ul class="list-unstyled">
|
||||
<?php
|
||||
@@ -437,11 +434,9 @@
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<div class="tab-pane <?php if($config->global->flow == 'onlyStory') echo 'active';?>" id='legendRelated'>
|
||||
<div class="tab-pane" id='legendRelated'>
|
||||
<table class="table table-data">
|
||||
<tbody>
|
||||
<?php if($config->global->flow != 'onlyStory'):?>
|
||||
<?php if(!empty($fromBug)):?>
|
||||
<tr class='text-top'>
|
||||
<th class='thWidth'><?php echo $lang->story->legendFromBug;?></th>
|
||||
@@ -478,7 +473,6 @@
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th class='text-top thWidth'><?php echo $lang->story->legendLinkStories;?></th>
|
||||
<td class='pd-0'>
|
||||
|
||||
@@ -36,7 +36,6 @@ $config->task->exportFields = '
|
||||
closedBy, closedDate, closedReason,
|
||||
lastEditedBy, lastEditedDate,files
|
||||
';
|
||||
if($config->global->flow == 'onlyTask') $config->task->exportFields = str_replace(array(' story,'), '', $config->task->exportFields);
|
||||
|
||||
$config->task->customCreateFields = 'story,estStarted,deadline,mailto,pri,estimate';
|
||||
$config->task->customBatchCreateFields = 'module,story,assignedTo,estimate,estStarted,deadline,desc,pri';
|
||||
@@ -47,13 +46,6 @@ $config->task->custom->createFields = $config->task->customCreateFields;
|
||||
$config->task->custom->batchCreateFields = 'module,story,assignedTo,estimate,desc,pri';
|
||||
$config->task->custom->batchEditFields = 'module,assignedTo,status,pri,estimate,record,left,finishedBy,closedBy,closedReason';
|
||||
|
||||
if($config->global->flow == 'onlyTask')
|
||||
{
|
||||
$config->task->customCreateFields = str_replace(array('story,'), '', $config->task->customCreateFields);
|
||||
$config->task->customBatchCreateFields = str_replace(array('story,'), '', $config->task->customBatchCreateFields);
|
||||
$config->task->custom->batchCreateFields = str_replace(array('story,'), '', $config->task->custom->batchCreateFields);
|
||||
}
|
||||
|
||||
$config->task->datatable = new stdclass();
|
||||
$config->task->datatable->defaultField = array('id', 'pri', 'name', 'status', 'assignedTo', 'finishedBy', 'estimate', 'consumed', 'left', 'progress', 'deadline', 'actions');
|
||||
|
||||
|
||||
@@ -23,13 +23,6 @@ class task extends control
|
||||
$this->loadModel('project');
|
||||
$this->loadModel('story');
|
||||
$this->loadModel('tree');
|
||||
|
||||
if($this->config->global->flow == 'onlyTask')
|
||||
{
|
||||
$this->config->task->customCreateFields = str_replace(array('story,'), '', $this->config->task->customCreateFields);
|
||||
$this->config->task->customBatchCreateFields = str_replace(array('story,'), '', $this->config->task->customBatchCreateFields);
|
||||
$this->config->task->custom->batchCreateFields = str_replace(array('story,'), '', $this->config->task->custom->batchCreateFields);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<?php echo $lang->task->batchCreate;?>
|
||||
<?php endif;?>
|
||||
</h2>
|
||||
<?php if($project->type != 'ops' && $config->global->flow != 'onlyTask'):?>
|
||||
<?php if($project->type != 'ops'):?>
|
||||
<a class="checkbox-primary pull-left" id='zeroTaskStory' href='javascript:toggleZeroTaskStory();'>
|
||||
<label><?php echo $lang->story->zeroTask;?></label>
|
||||
</a>
|
||||
@@ -49,7 +49,7 @@
|
||||
}
|
||||
}
|
||||
$colspan = count($visibleFields) + 3;
|
||||
$hiddenStory = ((isonlybody() and $storyID) || $config->global->flow == 'onlyTask') ? ' hidden' : '';
|
||||
$hiddenStory = (isonlybody() and $storyID) ? ' hidden' : '';
|
||||
if($hiddenStory and isset($visibleFields['story'])) $colspan -= 1;
|
||||
?>
|
||||
<form method='post' class='load-indicator batch-actions-form form-ajax' enctype='multipart/form-data' id="batchCreateForm">
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php include '../../common/view/sortable.html.php';?>
|
||||
<?php js::set('toTaskList', $config->global->flow == 'onlyTask' || !empty($task->id));?>
|
||||
<?php js::set('toTaskList', !empty($task->id));?>
|
||||
<style>.title-group .has-icon-right{min-width:700px}</style>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
@@ -70,7 +70,7 @@
|
||||
<td><?php echo html::hidden('status', 'wait');?></td>
|
||||
</tr>
|
||||
<?php $this->printExtendFields('', 'table');?>
|
||||
<?php if(strpos(",$showFields,", ',story,') !== false and $config->global->flow != 'onlyTask' and $project->type != 'ops'):?>
|
||||
<?php if(strpos(",$showFields,", ',story,') !== false and $project->type != 'ops'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->story;?></th>
|
||||
<td colspan='3'>
|
||||
@@ -85,7 +85,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($stories and $config->global->flow != 'onlyTask' and $project->type != 'ops'):?>
|
||||
<?php if($stories and $project->type != 'ops'):?>
|
||||
<tr id='testStoryBox' class='hidden'>
|
||||
<th><?php echo $lang->task->selectTestStory;?></th>
|
||||
<td colspan='3'>
|
||||
@@ -144,10 +144,8 @@
|
||||
<input type="hidden" class="colorpicker" id="color" name="color" value="" data-icon="color" data-wrapper="input-control-icon-right" data-update-color="#name" data-provide="colorpicker">
|
||||
</div>
|
||||
<?php echo html::input('name', $task->name, "class='form-control' required");?>
|
||||
<?php if($config->global->flow != 'onlyTask'):?>
|
||||
<a href='javascript:copyStoryTitle();' id='copyButton' class='input-control-icon-right'><?php echo $lang->task->copyStoryTitle;?></a>
|
||||
<?php echo html::hidden("storyEstimate") . html::hidden("storyDesc") . html::hidden("storyPri");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php if(strpos(",$showFields,", ',pri,') !== false): // begin print pri selector?>
|
||||
<span class="input-group-addon fix-border br-0"><?php echo $lang->task->pri;?></span>
|
||||
@@ -237,9 +235,9 @@
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr <?php echo $config->global->flow == 'onlyTask' ? "class='hidden'" : '';?> id='after-tr'>
|
||||
<tr id='after-tr'>
|
||||
<th><?php echo $lang->task->afterSubmit;?></th>
|
||||
<td colspan='3'><?php echo html::radio('after', $lang->task->afterChoices, $config->global->flow == 'onlyTask' || !empty($task->id) ? 'toTaskList' : 'continueAdding');?></td>
|
||||
<td colspan='3'><?php echo html::radio('after', $lang->task->afterChoices, !empty($task->id) ? 'toTaskList' : 'continueAdding');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='4' class='text-center form-actions'>
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if($config->global->flow != 'onlyTask' and $project->type != 'ops'):?>
|
||||
<?php if($project->type != 'ops'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->story;?></th>
|
||||
<td><span id="storyIdBox"><?php echo html::select('story', $stories, $task->story, "class='form-control chosen'");?></span></td>
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
?>
|
||||
<td title='<?php echo $moduleTitle?>'><?php echo $printModule?></td>
|
||||
</tr>
|
||||
<?php if($config->global->flow != 'onlyTask' and $project->type != 'ops'):?>
|
||||
<?php if($project->type != 'ops'):?>
|
||||
<tr class='nofixed'>
|
||||
<th><?php echo $lang->task->story;?></th>
|
||||
<td>
|
||||
|
||||
@@ -618,7 +618,6 @@ class testcase extends control
|
||||
$libraries = $this->loadModel('caselib')->getLibraries();
|
||||
$this->caselib->setLibMenu($libraries, $case->lib);
|
||||
$this->lang->testcase->menu = $this->lang->caselib->menu;
|
||||
if($this->config->global->flow == 'onlyTest') $this->lang->menugroup->testcase = 'caselib';
|
||||
|
||||
$title = "CASE #$case->id $case->title - " . $libraries[$case->lib];
|
||||
$position[] = html::a($this->createLink('caselib', 'browse', "libID=$case->lib"), $libraries[$case->lib]);
|
||||
|
||||
@@ -14,21 +14,4 @@ function confirmBatchDelete(actionLink)
|
||||
$(function()
|
||||
{
|
||||
if($('#caseList thead th.c-title').width() < 150) $('#caseList thead th.c-title').width(150);
|
||||
|
||||
if(flow == 'onlyTest')
|
||||
{
|
||||
$('#subNavbar > .nav li[data-id=' + browseType + ']').addClass('active');
|
||||
|
||||
if(browseType == 'bysuite')
|
||||
{
|
||||
var $moreSuite = $('#subNavbar > .nav > li[data-id=bysuite]');
|
||||
if($moreSuite.find('.dropdown-menu').children().length)
|
||||
{
|
||||
$moreSuite.find('.dropdown-menu').children().each(function()
|
||||
{
|
||||
if($(this).data('id') == suiteID) $(this).addClass('active');
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -112,65 +112,8 @@ class testcaseModel extends model
|
||||
$this->lang->modulePageActions = $pageActions;
|
||||
foreach($this->lang->testcase->menu as $key => $menu)
|
||||
{
|
||||
if($this->config->global->flow == 'full') $this->loadModel('qa')->setSubMenu('testcase', $key, $productID);
|
||||
if($this->config->global->flow != 'onlyTest')
|
||||
{
|
||||
$replace = $productID;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($key == 'bysuite')
|
||||
{
|
||||
$subMenu = array();
|
||||
if(common::hasPriv('testcase', 'browse'))
|
||||
{
|
||||
$suiteList = $this->loadModel('testsuite')->getSuites($productID);
|
||||
$currentSuiteID = isset($suiteID) ? (int)$suiteID : 0;
|
||||
|
||||
if($suiteList)
|
||||
{
|
||||
foreach($suiteList as $suiteID => $suite)
|
||||
{
|
||||
$suiteName = $suite->name;
|
||||
if($suite->type == 'public') $suiteName .= " <span class='label label-info'>{$this->lang->testsuite->authorList[$suite->type]}</span>";
|
||||
|
||||
$link = array();
|
||||
$link['module'] = 'testcase';
|
||||
$link['method'] = 'browse';
|
||||
$link['vars'] = "productID=$productID&branch=$branch&browseType=bysuite¶m=$suiteID";
|
||||
|
||||
$menu = new stdclass();
|
||||
$menu->name = $suiteID;
|
||||
$menu->link = $link;
|
||||
$menu->text = $suiteName;
|
||||
$menu->hidden = false;
|
||||
$subMenu[$suiteID] = $menu;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Avoid the menu shaking when change it by js. */
|
||||
if(isset($subMenu[$currentSuiteID]))
|
||||
{
|
||||
$currentSubMenu = $subMenu[$currentSuiteID];
|
||||
$this->lang->testcase->menu->bysuite['link'] = "$currentSubMenu->text|" . implode('|', $currentSubMenu->link);
|
||||
}
|
||||
|
||||
/* Replace for dropdown submenu. */
|
||||
if(isset($this->lang->testcase->subMenu->$key))
|
||||
{
|
||||
$subMenu += common::createSubMenu($this->lang->testcase->subMenu->$key, $productID);
|
||||
}
|
||||
if(!empty($subMenu)) $this->lang->testcase->menu->{$key}['subMenu'] = $subMenu;
|
||||
|
||||
if($this->app->getMethodName() != 'view') $this->lang->testcase->menu->bysearch = "<a class='querybox-toggle' id='bysearchTab'><i class='icon icon-search muted'> </i>{$this->lang->testcase->bySearch}</a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$replace = array();
|
||||
$replace['productID'] = $productID;
|
||||
$replace['branch'] = $branch;
|
||||
}
|
||||
}
|
||||
$this->loadModel('qa')->setSubMenu('testcase', $key, $productID);
|
||||
$replace = $productID;
|
||||
common::setMenuVars($this->lang->testcase->menu, $key, $replace);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
if(isset($menuItem->hidden)) continue;
|
||||
$menuType = $menuItem->name;
|
||||
if(!$config->testcase->needReview and empty($config->testcase->forceReview) and $menuType == 'wait') continue;
|
||||
if($config->global->flow == 'onlyTest' and (strpos(',needconfirm,group,zerocase,', ',' . $menuType . ',') !== false)) continue;
|
||||
if($hasBrowsePriv and $menuType == 'QUERY')
|
||||
{
|
||||
$searchBrowseLink = $this->createLink('testcase', 'browse', "productID=$productID&branch=$branch&browseType=bySearch¶m=%s");
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
</td>
|
||||
<?php endif;?>
|
||||
</tr>
|
||||
<?php if(strpos(",$showFields,", ',story,') !== false and $config->global->flow != 'onlyTest'):?>
|
||||
<?php if(strpos(",$showFields,", ',story,') !== false):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->lblStory;?></th>
|
||||
<td colspan='2'>
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if(!$isLibCase and $config->global->flow != 'onlyTest'):?>
|
||||
<?php if(!$isLibCase):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->story;?></th>
|
||||
<td class='text-left'><div id='storyIdBox'><?php echo html::select('story', $stories, $case->story, 'class=form-control chosen');?></div>
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if(!$isLibCase and $config->global->flow != 'onlyTest'):?>
|
||||
<?php if(!$isLibCase):?>
|
||||
<tr class='nofixed'>
|
||||
<th><?php echo $lang->testcase->story;?></th>
|
||||
<td>
|
||||
|
||||
@@ -49,34 +49,8 @@ class testreportModel extends model
|
||||
$this->lang->modulePageActions = $pageActions;
|
||||
foreach($this->lang->testtask->menu as $key => $value)
|
||||
{
|
||||
if($this->config->global->flow == 'full') $this->loadModel('qa')->setSubMenu('testreport', $key, $productID);
|
||||
if($this->config->global->flow != 'onlyTest')
|
||||
{
|
||||
$replace = $productID;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($key == 'scope')
|
||||
{
|
||||
$scope = $this->session->testTaskVersionScope;
|
||||
$status = $this->session->testTaskVersionStatus;
|
||||
$viewName = $scope == 'local'? $products[$productID] : $this->lang->testtask->all;
|
||||
|
||||
$replace = '<li>';
|
||||
$replace .= "<a href='###' data-toggle='dropdown'>{$viewName} <span class='caret'></span></a>";
|
||||
$replace .= "<ul class='dropdown-menu' style='max-height:240px;overflow-y:auto'>";
|
||||
$replace .= "<li>" . html::a(helper::createLink('testtask', 'browse', "productID=$productID&branch=$branch&type=all,$status"), $this->lang->testtask->all) . "</li>";
|
||||
$replace .= "<li>" . html::a(helper::createLink('testtask', 'browse', "productID=$productID&branch=$branch&type=local,$status"), $products[$productID]) . "</li>";
|
||||
$replace .= "</ul></li>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$replace = array();
|
||||
$replace['productID'] = $productID;
|
||||
$replace['branch'] = $branch;
|
||||
$replace['scope'] = $this->session->testTaskVersionScope;
|
||||
}
|
||||
}
|
||||
$this->loadModel('qa')->setSubMenu('testreport', $key, $productID);
|
||||
$replace = $productID;
|
||||
common::setMenuVars($this->lang->testreport->menu, $key, $replace);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,9 +38,7 @@
|
||||
<th class='text-left'><?php common::printOrderLink('title', $orderBy, $vars, $lang->testreport->title);?></th>
|
||||
<th class='w-90px'> <?php common::printOrderLink('createdBy', $orderBy, $vars, $lang->openedByAB);?></th>
|
||||
<th class='w-150px'><?php common::printOrderLink('createdDate', $orderBy, $vars, $lang->testreport->createdDate);?></th>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<th class='w-250px text-left'><?php common::printOrderLink('project', $orderBy, $vars, $lang->testreport->project);?></th>
|
||||
<?php endif;?>
|
||||
<th class='w-250px text-left'><?php echo $lang->testreport->testtask;?></th>
|
||||
<th class='c-actions-2'> <?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
@@ -53,10 +51,8 @@
|
||||
<td class='text-left' title='<?php $report->title?>'><?php echo html::a(helper::createLink('testreport', 'view', "reportID=$report->id&from=$objectType"), $report->title)?></td>
|
||||
<td><?php echo zget($users, $report->createdBy);?></td>
|
||||
<td><?php echo substr($report->createdDate, 2);?></td>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<?php $projectName = $report->project ? '#' . $report->project . $projects[$report->project] : '';?>
|
||||
<td class='text-left' title='<?php echo $projectName?>'><?php echo $projectName;?></td>
|
||||
<?php endif;?>
|
||||
<?php
|
||||
$taskName = '';
|
||||
foreach(explode(',', $report->tasks) as $taskID) $taskName .= '#' . $taskID . $tasks[$taskID] . ' ';
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<a onclick=refreshPage() class='btn' data-toggle='modal' data-type='iframe'><?php echo $lang->refresh?></a>
|
||||
</div>
|
||||
<?php
|
||||
echo html::hidden('product', $productIdList) . ($config->global->flow != 'onlyTest' ? html::hidden('project', isset($project->id) ? $project->id : 0) : '') . html::hidden('tasks', $tasks);
|
||||
echo html::hidden('product', $productIdList) . (html::hidden('project', isset($project->id) ? $project->id : 0)) . html::hidden('tasks', $tasks);
|
||||
echo html::hidden('objectID', $objectID) . html::hidden('objectType', $objectType);
|
||||
?>
|
||||
</div>
|
||||
@@ -67,13 +67,11 @@
|
||||
<td colspan='2'><?php echo html::input('title', $reportTitle, "class='form-control'")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->goal?></th>
|
||||
<td colspan='2'><?php echo isset($project->desc) ? $project->desc : '';?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->profile?></th>
|
||||
<td colspan='2'>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<div class='input-group-btn hidden' id='refresh'>
|
||||
<a onclick=refreshPage() class='btn' data-toggle='modal' data-type='iframe'><?php echo $lang->refresh?></a>
|
||||
</div>
|
||||
<?php echo html::hidden('product', $productIdList) . ($config->global->flow != 'onlyTest' ? html::hidden('project', $project->id) : '') . html::hidden('tasks', $tasks);?>
|
||||
<?php echo html::hidden('product', $productIdList) . html::hidden('project', $project->id) . html::hidden('tasks', $tasks);?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
@@ -55,13 +55,11 @@
|
||||
<td colspan='2'><?php echo html::input('title', $report->title, "class='form-control'")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php if($config->global->flow != 'onlyTest'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->goal?></th>
|
||||
<td colspan='2'><?php echo $project->desc?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->profile?></th>
|
||||
<td colspan='2'>
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
<th><?php echo $lang->testreport->members?></th>
|
||||
<td colspan='2'><?php foreach(explode(',', $report->members) as $member)echo zget($users, $member) . ' ';?></td>
|
||||
</tr>
|
||||
<?php if($config->global->flow != 'onlyTest' && !empty($project)):?>
|
||||
<?php if(!empty($project)):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->goal?></th>
|
||||
<td colspan='2'><?php echo $project->desc?></td>
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
$(document).ready(function()
|
||||
{
|
||||
if(flow == 'onlyTest')
|
||||
{
|
||||
$('#mainmenu .nav li').removeClass('active');
|
||||
$('#mainmenu .nav li[data-id=testsuite]').addClass('active');
|
||||
}
|
||||
})
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user