* Finish task #91011.
This commit is contained in:
@@ -773,3 +773,5 @@ CREATE TABLE IF NOT EXISTS `zt_docaction` (
|
||||
KEY `doc` (`doc`),
|
||||
KEY `actor` (`actor`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) SELECT `group`, 'projectbuild', 'browse' FROM `zt_grouppriv` WHERE `module` = 'project' AND `method` = 'build';
|
||||
|
||||
@@ -2470,7 +2470,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(1,'project','batchEdit'),
|
||||
(1,'project','browse'),
|
||||
(1,'project','bug'),
|
||||
(1,'project','build'),
|
||||
(1,'project','close'),
|
||||
(1,'project','copyGroup'),
|
||||
(1,'project','create'),
|
||||
@@ -2949,7 +2948,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(2,'program','view'),
|
||||
(2,'project','browse'),
|
||||
(2,'project','bug'),
|
||||
(2,'project','build'),
|
||||
(2,'project','create'),
|
||||
(2,'project','dynamic'),
|
||||
(2,'project','edit'),
|
||||
@@ -3252,7 +3250,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(3,'program','view'),
|
||||
(3,'project','browse'),
|
||||
(3,'project','bug'),
|
||||
(3,'project','build'),
|
||||
(3,'project','dynamic'),
|
||||
(3,'project','execution'),
|
||||
(3,'project','group'),
|
||||
@@ -3666,7 +3663,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(4,'project','batchEdit'),
|
||||
(4,'project','browse'),
|
||||
(4,'project','bug'),
|
||||
(4,'project','build'),
|
||||
(4,'project','close'),
|
||||
(4,'project','copyGroup'),
|
||||
(4,'project','create'),
|
||||
@@ -4190,7 +4186,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(5,'project','batchEdit'),
|
||||
(5,'project','browse'),
|
||||
(5,'project','bug'),
|
||||
(5,'project','build'),
|
||||
(5,'project','close'),
|
||||
(5,'project','copyGroup'),
|
||||
(5,'project','create'),
|
||||
@@ -4625,7 +4620,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(6,'project','batchEdit'),
|
||||
(6,'project','browse'),
|
||||
(6,'project','bug'),
|
||||
(6,'project','build'),
|
||||
(6,'project','close'),
|
||||
(6,'project','copyGroup'),
|
||||
(6,'project','create'),
|
||||
@@ -5018,7 +5012,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(7,'project','batchEdit'),
|
||||
(7,'project','browse'),
|
||||
(7,'project','bug'),
|
||||
(7,'project','build'),
|
||||
(7,'project','close'),
|
||||
(7,'project','copyGroup'),
|
||||
(7,'project','create'),
|
||||
@@ -5432,7 +5425,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(8,'project','batchEdit'),
|
||||
(8,'project','browse'),
|
||||
(8,'project','bug'),
|
||||
(8,'project','build'),
|
||||
(8,'project','close'),
|
||||
(8,'project','copyGroup'),
|
||||
(8,'project','create'),
|
||||
@@ -5805,7 +5797,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(9,'project','batchEdit'),
|
||||
(9,'project','browse'),
|
||||
(9,'project','bug'),
|
||||
(9,'project','build'),
|
||||
(9,'project','close'),
|
||||
(9,'project','copyGroup'),
|
||||
(9,'project','create'),
|
||||
@@ -6102,7 +6093,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(10,'program','view'),
|
||||
(10,'project','browse'),
|
||||
(10,'project','bug'),
|
||||
(10,'project','build'),
|
||||
(10,'project','index'),
|
||||
(10,'project','dynamic'),
|
||||
(10,'project','kanban'),
|
||||
@@ -6348,7 +6338,6 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(11,'program','view'),
|
||||
(11,'project','browse'),
|
||||
(11,'project','bug'),
|
||||
(11,'project','build'),
|
||||
(11,'project','dynamic'),
|
||||
(11,'project','execution'),
|
||||
(11,'project','group'),
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
|
||||
$buildViewLink = $this->createLink('build', 'view', "buildID={$build->id}");
|
||||
$productViewLink = $this->createLink('product', 'browse', "productID={$build->product}");
|
||||
$projectViewLink = $this->createLink('project', 'build', "projectID={$build->project}");
|
||||
$projectViewLink = $this->createLink('projectbuild', 'browse', "projectID={$build->project}");
|
||||
?>
|
||||
<tr <?php echo $appid?>>
|
||||
<td class='text-center'><?php echo sprintf('%03d', $build->id);?></td>
|
||||
|
||||
@@ -397,7 +397,7 @@ class build extends control
|
||||
return $this->send($response);
|
||||
}
|
||||
|
||||
$link = $this->app->tab == 'project' ? $this->createLink('project', 'build', "projectID=$build->project") : $this->createLink('execution', 'build', "executionID=$build->execution");
|
||||
$link = $this->app->tab == 'project' ? $this->createLink('projectbuild', 'browse', "projectID=$build->project") : $this->createLink('execution', 'build', "executionID=$build->execution");
|
||||
if(defined('RUN_MODE') && RUN_MODE == 'api') return $this->send(array('status' => 'success'));
|
||||
return print(js::locate($link, 'parent'));
|
||||
}
|
||||
|
||||
@@ -795,7 +795,7 @@ class buildModel extends model
|
||||
global $app;
|
||||
$tab = $app->tab;
|
||||
|
||||
$module = $build->execution ? 'build' : 'projectbuild';
|
||||
$module = $this->app->tab == 'project' ? 'projectbuild' : 'build';
|
||||
if($type == 'browse')
|
||||
{
|
||||
$executionID = $tab == 'execution' ? $extraParams['executionID'] : $build->execution;
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<?php echo html::submitButton($lang->build->linkBug, '', 'btn btn-secondary');?>
|
||||
</div>
|
||||
<div class="btn-toolbar">
|
||||
<?php echo html::a(inlink('view', "buildID={$build->id}&type=bug") . "#app={$app->tab}", $lang->goback, '', "class='btn'");?>
|
||||
<?php echo html::a($this->createLink(($this->app->tab == 'project' ? 'projectbuild' : 'build'), 'view', "buildID={$build->id}&type=bug") . "#app={$app->tab}", $lang->goback, '', "class='btn'");?>
|
||||
</div>
|
||||
<div class='table-statistic'></div>
|
||||
<?php $pager->show('right', 'pagerjs');?>
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
<?php echo html::submitButton($lang->build->linkStory, '', 'btn btn-secondary');?>
|
||||
</div>
|
||||
<div class="btn-toolbar">
|
||||
<?php echo html::a(inlink('view', "buildID={$build->id}&type=story") . "#app={$app->tab}", $lang->goback, '', "class='btn'");?>
|
||||
<?php echo html::a($this->createLink(($this->app->tab == 'project' ? 'projectbuild' : 'build'), 'view', "buildID={$build->id}&type=story") . "#app={$app->tab}", $lang->goback, '', "class='btn'");?>
|
||||
</div>
|
||||
<div class='table-statistic'></div>
|
||||
<?php $pager->show('right', 'pagerjs');?>
|
||||
|
||||
@@ -58,7 +58,7 @@ tbody tr td:first-child input {display: none;}
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php $module = $build->execution ? 'build' : 'projectbuild';?>
|
||||
<?php $module = $this->app->tab == 'project' ? 'projectbuild' : 'build';?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='tabs' id='tabsNav'>
|
||||
<?php $countStories = count($stories); $countBugs = count($bugs); $countGeneratedBugs = count($generatedBugs);?>
|
||||
|
||||
@@ -210,7 +210,7 @@ $lang->scrum->menu->projectplan = array('link' => "{$lang->productplan->shortCom
|
||||
$lang->scrum->menu->doc = array('link' => "{$lang->doc->common}|doc|projectSpace|objectID=%s", 'subModule' => 'doc,api');
|
||||
$lang->scrum->menu->qa = array('link' => "{$lang->qa->common}|project|bug|projectID=%s", 'subModule' => 'testcase,testtask,bug,testreport', 'alias' => 'bug,testtask,testcase,testreport', 'exclude' => 'execution-create,execution-batchedit');
|
||||
$lang->scrum->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo');
|
||||
$lang->scrum->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s", 'subModule' => 'projectbuild');
|
||||
$lang->scrum->menu->build = array('link' => "{$lang->build->common}|projectbuild|browse|project=%s", 'subModule' => 'projectbuild');
|
||||
$lang->scrum->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease');
|
||||
$lang->scrum->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s");
|
||||
$lang->scrum->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team', 'exclude' => 'tree-browsetask');
|
||||
@@ -262,7 +262,7 @@ $lang->waterfall->menu->design = array('link' => "{$lang->design->common}|de
|
||||
$lang->waterfall->menu->qa = array('link' => "{$lang->qa->common}|project|bug|projectID=%s", 'subModule' => 'testcase,testtask,bug,testreport', 'alias' => 'bug,testtask,testcase,testreport');
|
||||
$lang->waterfall->menu->doc = array('link' => "{$lang->doc->common}|doc|projectSpace|objectID=%s");
|
||||
$lang->waterfall->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo');
|
||||
$lang->waterfall->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s", 'subModule' => 'projectbuild');
|
||||
$lang->waterfall->menu->build = array('link' => "{$lang->build->common}|projectbuild|browse|project=%s", 'subModule' => 'projectbuild');
|
||||
$lang->waterfall->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease');
|
||||
$lang->waterfall->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s");
|
||||
$lang->waterfall->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team', 'exclude' => 'tree-browsetask');
|
||||
@@ -306,7 +306,7 @@ $lang->waterfall->menu->design['subMenu']->bysearch = array('link' => '<a href="
|
||||
$lang->kanbanProject = new stdclass();
|
||||
$lang->kanbanProject->menu = new stdclass();
|
||||
$lang->kanbanProject->menu->index = array('link' => "{$lang->kanban->common}|project|index|project=%s");
|
||||
$lang->kanbanProject->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s", 'subModule' => 'projectbuild');
|
||||
$lang->kanbanProject->menu->build = array('link' => "{$lang->build->common}|projectbuild|browse|project=%s", 'subModule' => 'projectbuild');
|
||||
$lang->kanbanProject->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team');
|
||||
|
||||
$lang->kanbanProject->dividerMenu = '';
|
||||
|
||||
@@ -187,7 +187,6 @@ $lang->resource->project->addWhitelist = 'addWhitelist';
|
||||
$lang->resource->project->unbindWhitelist = 'unbindWhitelist';
|
||||
$lang->resource->project->manageProducts = 'manageProducts';
|
||||
$lang->resource->project->dynamic = 'dynamic';
|
||||
$lang->resource->project->build = 'build';
|
||||
$lang->resource->project->qa = 'qa';
|
||||
$lang->resource->project->bug = 'bug';
|
||||
$lang->resource->project->testcase = 'testcase';
|
||||
@@ -228,18 +227,17 @@ $lang->project->methodOrder[115] = 'unbindWhitelist';
|
||||
$lang->project->methodOrder[120] = 'manageProducts';
|
||||
$lang->project->methodOrder[125] = 'view';
|
||||
$lang->project->methodOrder[130] = 'dynamic';
|
||||
$lang->project->methodOrder[135] = 'build';
|
||||
$lang->project->methodOrder[140] = 'qa';
|
||||
$lang->project->methodOrder[145] = 'bug';
|
||||
$lang->project->methodOrder[150] = 'testcase';
|
||||
$lang->project->methodOrder[155] = 'testtask';
|
||||
$lang->project->methodOrder[160] = 'testreport';
|
||||
$lang->project->methodOrder[165] = 'execution';
|
||||
$lang->project->methodOrder[170] = 'export';
|
||||
$lang->project->methodOrder[175] = 'updateOrder';
|
||||
$lang->project->methodOrder[180] = 'team';
|
||||
$lang->project->methodOrder[185] = 'unlinkMember';
|
||||
$lang->project->methodOrder[190] = 'manageRepo';
|
||||
$lang->project->methodOrder[135] = 'qa';
|
||||
$lang->project->methodOrder[140] = 'bug';
|
||||
$lang->project->methodOrder[145] = 'testcase';
|
||||
$lang->project->methodOrder[150] = 'testtask';
|
||||
$lang->project->methodOrder[155] = 'testreport';
|
||||
$lang->project->methodOrder[160] = 'execution';
|
||||
$lang->project->methodOrder[165] = 'export';
|
||||
$lang->project->methodOrder[170] = 'updateOrder';
|
||||
$lang->project->methodOrder[175] = 'team';
|
||||
$lang->project->methodOrder[180] = 'unlinkMember';
|
||||
$lang->project->methodOrder[185] = 'manageRepo';
|
||||
|
||||
$lang->resource->projectbuild = new stdclass();
|
||||
$lang->resource->projectbuild->browse = 'browse';
|
||||
|
||||
@@ -1436,10 +1436,13 @@ class project extends control
|
||||
$products = $this->product->getProducts($projectID, 'all', '', false);
|
||||
$products = array('' => '') + $products;
|
||||
|
||||
|
||||
$fromModule = $this->app->tab == 'project' ? 'projectbuild' : 'project';
|
||||
$fromMethod = $this->app->tab == 'project' ? 'browse' : 'build';
|
||||
/* Build the search form. */
|
||||
$type = strtolower($type);
|
||||
$queryID = ($type == 'bysearch') ? (int)$param : 0;
|
||||
$actionURL = $this->createLink('project', 'build', "projectID=$projectID&type=bysearch&queryID=myQueryID");
|
||||
$actionURL = $this->createLink($fromModule, $fromMethod, "projectID=$projectID&type=bysearch&queryID=myQueryID");
|
||||
|
||||
$devel = $project->model == 'waterfall' ? true : false;
|
||||
$executions = $this->loadModel('execution')->getByProject($projectID, 'all', '', true, $devel);
|
||||
@@ -1514,6 +1517,8 @@ class project extends control
|
||||
$this->view->buildPairs = $this->loadModel('build')->getBuildPairs(0);
|
||||
$this->view->type = $type;
|
||||
$this->view->showBranch = $showBranch;
|
||||
$this->view->fromModule = $fromModule;
|
||||
$this->view->fromMethod = $fromMethod;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
function changeProduct(productID)
|
||||
{
|
||||
link = createLink('project', 'build', 'projectID=' + projectID + '&type=product¶m=' + productID);
|
||||
link = createLink(fromModule, fromMethod, 'projectID=' + projectID + '&type=product¶m=' + productID);
|
||||
location.href = link;
|
||||
}
|
||||
|
||||
|
||||
@@ -681,7 +681,9 @@ class projectModel extends model
|
||||
}
|
||||
else
|
||||
{
|
||||
$link = helper::createLink('project', 'build', "projectID=%s");
|
||||
$fromModule = $this->app->tab == 'project' ? 'projectbuild' : 'project';
|
||||
$fromMethod = $this->app->tab == 'project' ? 'browse' : 'build';
|
||||
$link = helper::createLink($fromModule, $fromMethod, "projectID=%s");
|
||||
}
|
||||
}
|
||||
elseif($module == 'projectrelease')
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
<?php js::set('noDevStage', $lang->project->noDevStage)?>
|
||||
<?php js::set('createExecution', $lang->project->createExecution)?>
|
||||
<?php js::set('confirmDelete', $lang->build->confirmDelete)?>
|
||||
<?php js::set('fromModule', $fromModule)?>
|
||||
<?php js::set('fromMethod', $fromMethod)?>
|
||||
<div id="mainMenu" class="clearfix table-row">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php
|
||||
@@ -24,7 +26,7 @@
|
||||
$activeClass = $type == $featureType ? 'btn-active-text' : '';
|
||||
$label = "<span class='text'>$label</span>";
|
||||
if($type == $featureType) $label .= " <span class='label label-light label-badge'>{$buildsTotal}</span>";
|
||||
echo html::a(inlink('build', "projectID=$projectID&type=$featureType"), $label, '',"class='btn btn-link $activeClass' data-app={$app->tab} id=" . $featureType .'Tab');
|
||||
echo html::a($this->createLink($fromModule, $fromMethod, "projectID=$projectID&type=$featureType"), $label, '',"class='btn btn-link $activeClass' data-app={$app->tab} id=" . $featureType .'Tab');
|
||||
}
|
||||
?>
|
||||
<?php if($project->hasProduct):?>
|
||||
@@ -67,12 +69,11 @@
|
||||
<tbody>
|
||||
<?php foreach($projectBuilds as $productID => $builds):?>
|
||||
<?php foreach($builds as $index => $build):?>
|
||||
<?php $module = $build->execution ? 'build' : 'projectbuild';?>
|
||||
<tr data-id="<?php echo $productID;?>">
|
||||
<td class="c-id-sm text-muted"><?php echo html::a(helper::createLink($module, 'view', "buildID=$build->id"), sprintf('%03d', $build->id), '', "data-app='project'");?></td>
|
||||
<td class="c-id-sm text-muted"><?php echo html::a(helper::createLink($fromModule, 'view', "buildID=$build->id"), sprintf('%03d', $build->id), '', "data-app='project'");?></td>
|
||||
<td class="c-name" title='<?php echo $build->name;?>'>
|
||||
<span class='build'>
|
||||
<?php echo html::a($this->createLink($module, 'view', "buildID=$build->id"), $build->name, '', "data-app='project' class='buildName'");?>
|
||||
<?php echo html::a($this->createLink($fromModule, 'view', "buildID=$build->id"), $build->name, '', "data-app='project' class='buildName'");?>
|
||||
<?php if(!$build->execution):?>
|
||||
<span class='icon icon-code-fork text-muted' title='<?php echo $lang->build->integrated;?>'></span>
|
||||
<?php endif;?>
|
||||
|
||||
@@ -19,62 +19,9 @@ class projectBuild extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function browse($projectID = 0, $type = 'all', $param = 0)
|
||||
public function browse($projectID = 0, $type = 'all', $param = 0, $orderBy = 't1.date_desc,t1.id_desc')
|
||||
{
|
||||
$this->loadModel('project');
|
||||
$this->loadModel('product');
|
||||
$this->loadModel('execution');
|
||||
$this->loadModel('build');
|
||||
$project = $this->project->getByID($projectID);
|
||||
|
||||
/* Get products' list. */
|
||||
$products = $this->product->getProducts($projectID, 'all', '', false);
|
||||
$products = array('' => '') + $products;
|
||||
|
||||
/* Build the search form. */
|
||||
$type = strtolower($type);
|
||||
$queryID = ($type == 'bysearch') ? (int)$param : 0;
|
||||
$actionURL = $this->createLink('projectbuild', 'browse', "projectID=$projectID&type=bysearch&queryID=myQueryID");
|
||||
|
||||
$executions = $this->execution->getByProject($projectID, 'all', '', true);
|
||||
$this->config->build->search['fields']['project'] = $this->project->lang->executionCommon;
|
||||
$this->config->build->search['params']['project'] = array('operator' => '=', 'control' => 'select', 'values' => array('' => '') + $executions);
|
||||
|
||||
$this->project->buildProjectBuildSearchForm($products, $queryID, $actionURL, 'project');
|
||||
commonModel::setAppObjectID('project', $projectID);
|
||||
|
||||
if($type == 'bysearch')
|
||||
{
|
||||
$builds = $this->build->getProjectBuildsBySearch((int)$projectID, (int)$param);
|
||||
}
|
||||
else
|
||||
{
|
||||
$builds = $this->build->getProjectBuilds((int)$projectID, $type, $param);
|
||||
}
|
||||
|
||||
/* Set project builds. */
|
||||
$projectBuilds = array();
|
||||
if(!empty($builds))
|
||||
{
|
||||
foreach($builds as $build) $projectBuilds[$build->product][] = $build;
|
||||
}
|
||||
|
||||
/* Header and position. */
|
||||
$this->view->title = $project->name . $this->lang->colon . $this->lang->execution->build;
|
||||
$this->view->position[] = html::a(inlink('browse', "projectID=$projectID"), $project->name);
|
||||
$this->view->position[] = $this->lang->execution->build;
|
||||
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter');
|
||||
$this->view->buildsTotal = count($builds);
|
||||
$this->view->projectBuilds = $projectBuilds;
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->product = $type == 'product' ? $param : 'all';
|
||||
$this->view->project = $project;
|
||||
$this->view->products = $products;
|
||||
$this->view->executions = $executions;
|
||||
$this->view->type = $type;
|
||||
|
||||
$this->display();
|
||||
echo $this->fetch('project', 'build', "projectID=$projectID&type=$type¶m=$param&orderBy=$orderBy");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
*/
|
||||
$lang->projectbuild->common = $lang->projectCommon . '版本';
|
||||
$lang->projectbuild->browse = '版本列表';
|
||||
$lang->projectbuild->create = "创建集成版本";
|
||||
$lang->projectbuild->edit = "编辑集成版本";
|
||||
$lang->projectbuild->delete = "删除集成版本";
|
||||
$lang->projectbuild->view = "集成版本详情";
|
||||
$lang->projectbuild->linkStory = "集成版本关联{$lang->SRCommon}";
|
||||
$lang->projectbuild->linkBug = "集成版本关联Bug";
|
||||
$lang->projectbuild->unlinkStory = "集成版本移除{$lang->SRCommon}";
|
||||
$lang->projectbuild->unlinkBug = "集成版本移除Bug";
|
||||
$lang->projectbuild->batchUnlink = '集成版本批量移除';
|
||||
$lang->projectbuild->batchUnlinkStory = "集成版本批量移除{$lang->SRCommon}";
|
||||
$lang->projectbuild->batchUnlinkBug = '集成版本批量移除Bug';
|
||||
$lang->projectbuild->create = "创建版本";
|
||||
$lang->projectbuild->edit = "编辑版本";
|
||||
$lang->projectbuild->delete = "删除版本";
|
||||
$lang->projectbuild->view = "版本详情";
|
||||
$lang->projectbuild->linkStory = "关联{$lang->SRCommon}";
|
||||
$lang->projectbuild->linkBug = "关联Bug";
|
||||
$lang->projectbuild->unlinkStory = "移除{$lang->SRCommon}";
|
||||
$lang->projectbuild->unlinkBug = "移除Bug";
|
||||
$lang->projectbuild->batchUnlink = '批量移除';
|
||||
$lang->projectbuild->batchUnlinkStory = "批量移除{$lang->SRCommon}";
|
||||
$lang->projectbuild->batchUnlinkBug = '批量移除Bug';
|
||||
|
||||
Reference in New Issue
Block a user