Merge branch 'master' into feature/42422

This commit is contained in:
zhaoke
2023-03-16 09:40:27 +08:00
475 changed files with 9343 additions and 2924 deletions
+1
View File
@@ -424,6 +424,7 @@ $config->programPriv->waterfall = array_merge($config->programPriv->scrum, a
$config->programPriv->agileplus = $config->programPriv->scrum;
$config->programPriv->waterfallplus = $config->programPriv->waterfall;
$config->safeFileTimeout = 3600;
$config->waterfallModules = array('workestimation', 'durationestimation', 'budget', 'programplan', 'review', 'reviewissue', 'weekly', 'cm', 'milestone', 'design', 'opportunity', 'auditplan', 'trainplan', 'gapanalysis', 'pssp', 'researchplan', 'researchreport');
$config->showMainMenu = true;
+3
View File
@@ -0,0 +1,3 @@
ALTER TABLE `zt_lang` MODIFY COLUMN `section` varchar(50) NOT NULL;
DELETE FROM `zt_grouppriv` WHERE `module` = 'dev' AND `method` = 'editor';
REPLACE INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system','common','','setPercent','1');
+1 -1
View File
@@ -1024,7 +1024,7 @@ CREATE TABLE IF NOT EXISTS `zt_lang` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`lang` varchar(30) NOT NULL,
`module` varchar(30) NOT NULL,
`section` varchar(30) NOT NULL,
`section` varchar(50) NOT NULL,
`key` varchar(60) NOT NULL,
`value` text NOT NULL,
`system` enum('0','1') NOT NULL default '1',
+3 -3
View File
@@ -4,11 +4,11 @@ $lang->action->label->task = 'Task|task|view|taskID=%s';
$lang->action->label->module = 'Katalog|tree|browse|productid=%s&type=story&currentModuleID=0&branch=all';
/* Object type. */
$lang->action->objectTypes['execution'] = 'Project' . $lang->executionCommon;
$lang->action->objectTypes['execution'] = $lang->projectCommon . $lang->executionCommon;
$lang->action->search = new stdclass();
$lang->action->search->objectTypeList[''] = '';
$lang->action->search->objectTypeList['project'] = 'Project';
$lang->action->search->objectTypeList['project'] = $lang->projectCommon;
$lang->action->search->objectTypeList['execution'] = 'Kanban';
$lang->action->search->objectTypeList['story'] = "$lang->SRCommon/$lang->URCommon";
$lang->action->search->objectTypeList['task'] = 'Task';
@@ -109,4 +109,4 @@ $lang->action->desc->linkparentstory = '$date, <strong>$actor</strong> Link
$lang->action->desc->unlinkparentstory = '$date, <strong>$actor</strong> From parent story<strong>$extra</strong>CanceledLink。' . "\n";
$lang->action->desc->deletechildrenstory = '$date, <strong>$actor</strong> Deleted child story<strong>$extra</strong>。' . "\n";
$lang->action->executionNoProject = 'The execution does not belong to a project,please restore the project first';
$lang->action->executionNoProject = "The execution does not belong to a {$lang->projectCommon},please restore the {$lang->projectCommon} first";
+3 -3
View File
@@ -4,11 +4,11 @@ $lang->action->label->task = 'Task|task|view|taskID=%s';
$lang->action->label->module = 'Catalog|tree|browse|productid=%s&type=story&currentModuleID=0&branch=all';
/* Object type. */
$lang->action->objectTypes['execution'] = 'Project' . $lang->executionCommon;
$lang->action->objectTypes['execution'] = $lang->projectCommon . $lang->executionCommon;
$lang->action->search = new stdclass();
$lang->action->search->objectTypeList[''] = '';
$lang->action->search->objectTypeList['project'] = 'Project';
$lang->action->search->objectTypeList['project'] = $lang->projectCommon;
$lang->action->search->objectTypeList['execution'] = 'Kanban';
$lang->action->search->objectTypeList['story'] = "$lang->SRCommon/$lang->URCommon";
$lang->action->search->objectTypeList['task'] = 'Task';
@@ -109,4 +109,4 @@ $lang->action->desc->linkparentstory = '$date, <strong>$actor</strong> Link
$lang->action->desc->unlinkparentstory = '$date, <strong>$actor</strong> From parent story<strong>$extra</strong>CanceledLink。' . "\n";
$lang->action->desc->deletechildrenstory = '$date, <strong>$actor</strong> Deleted child story<strong>$extra</strong>。' . "\n";
$lang->action->executionNoProject = 'The execution does not belong to a project,please restore the project first';
$lang->action->executionNoProject = "The execution does not belong to a {$lang->projectCommon},please restore the {$lang->projectCommon} first";
+3 -3
View File
@@ -4,11 +4,11 @@ $lang->action->label->task = 'Task|task|view|taskID=%s';
$lang->action->label->module = 'Table des matières|tree|browse|productid=%s&type=story&currentModuleID=0&branch=all';
/* Object type. */
$lang->action->objectTypes['execution'] = 'Project' . $lang->executionCommon;
$lang->action->objectTypes['execution'] = $lang->projectCommon . $lang->executionCommon;
$lang->action->search = new stdclass();
$lang->action->search->objectTypeList[''] = '';
$lang->action->search->objectTypeList['project'] = 'Project';
$lang->action->search->objectTypeList['project'] = $lang->projectCommon;
$lang->action->search->objectTypeList['execution'] = 'Kanban';
$lang->action->search->objectTypeList['story'] = "$lang->SRCommon/$lang->URCommon";
$lang->action->search->objectTypeList['task'] = 'Task';
@@ -109,4 +109,4 @@ $lang->action->desc->linkparentstory = '$date, <strong>$actor</strong> Link
$lang->action->desc->unlinkparentstory = '$date, <strong>$actor</strong> From parent story<strong>$extra</strong>CanceledLink。' . "\n";
$lang->action->desc->deletechildrenstory = '$date, <strong>$actor</strong> Deleted child story<strong>$extra</strong>。' . "\n";
$lang->action->executionNoProject = 'The execution does not belong to a project,please restore the project first';
$lang->action->executionNoProject = "The execution does not belong to a {$lang->projectCommon},please restore the {$lang->projectCommon} first";
@@ -4,11 +4,11 @@ $lang->action->label->task = '任务|task|view|taskID=%s';
$lang->action->label->module = '目录|tree|browse|productid=%s&type=story&currentModuleID=0&branch=all';
/* Object type. */
$lang->action->objectTypes['execution'] = '项目' . $lang->executionCommon;
$lang->action->objectTypes['execution'] = $lang->projectCommon . $lang->executionCommon;
$lang->action->search = new stdclass();
$lang->action->search->objectTypeList[''] = '';
$lang->action->search->objectTypeList['project'] = '项目';
$lang->action->search->objectTypeList['project'] = $lang->projectCommon;
$lang->action->search->objectTypeList['execution'] = '看板';
$lang->action->search->objectTypeList['story'] = "目标";
$lang->action->search->objectTypeList['task'] = '任务';
@@ -109,4 +109,4 @@ $lang->action->desc->linkparentstory = '$date, 由 <strong>$actor</strong>
$lang->action->desc->unlinkparentstory = '$date, 由 <strong>$actor</strong> 从父目标<strong>$extra</strong>取消关联。' . "\n";
$lang->action->desc->deletechildrenstory = '$date, 由 <strong>$actor</strong> 删除子目标<strong>$extra</strong>。' . "\n";
$lang->action->executionNoProject = '该项目看板没有所属的项目,请先还原项目再还原项目看板';
$lang->action->executionNoProject = "该{$lang->projectCommon}看板没有所属的{$lang->projectCommon},请先还原{$lang->projectCommon}再还原{$lang->projectCommon}看板";
@@ -20,15 +20,10 @@
<ul class='nav'>
<?php
$methodName = strtolower($this->app->getMethodName());
foreach($lang->attend->featurebar as $key => $menu)
foreach($lang->attend->featureBar['personal'] as $type => $name)
{
if(is_string($menu)) $link = $menu;
if(is_array($menu)) $link = $menu['link'];
list($name, $currentModule, $currentMethod, $params) = explode('|', $link);
$class = strtolower($key) == $methodName ? "class='active'" : '';
if(isset($menu['alias'])) $class = strpos(strtolower($menu['alias']), strtolower($key)) !== false ? "class='active'" : $class;
if(common::hasPriv($currentModule, $currentMethod)) echo "<li id='$key' $class>" . html::a($this->createLink($currentModule, $currentMethod, $params), $name) . '</li>';
$class = strtolower($type) == $methodName ? "class='active'" : '';
if(common::hasPriv('attend', $type)) echo "<li id='$type' $class>" . html::a($this->createLink('attend', $type), $name) . '</li>';
}
?>
</ul>
+2 -2
View File
@@ -33,13 +33,13 @@ $lang->block->default['full']['my']['5']['params']['count'] = '15';
$lang->block->modules['kanban']['index'] = new stdclass();
$lang->block->modules['kanban']['index']->availableBlocks = new stdclass();
$lang->block->modules['kanban']['index']->availableBlocks->scrumoverview = 'Project Overview';
$lang->block->modules['kanban']['index']->availableBlocks->scrumoverview = "{$lang->projectCommon} Overview";
$lang->block->modules['kanban']['index']->availableBlocks->scrumlist = $lang->executionCommon . ' List';
$lang->block->modules['kanban']['index']->availableBlocks->sprint = $lang->executionCommon . ' Overview';
$lang->block->modules['kanban']['index']->availableBlocks->projectdynamic = 'Dynamics';
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = 'Project List';
$lang->block->modules['project']->availableBlocks->project = "{$lang->projectCommon} List";
$lang->block->modules['execution'] = new stdclass();
$lang->block->modules['execution']->availableBlocks = new stdclass();
+2 -2
View File
@@ -33,13 +33,13 @@ $lang->block->default['full']['my']['5']['params']['count'] = '15';
$lang->block->modules['kanban']['index'] = new stdclass();
$lang->block->modules['kanban']['index']->availableBlocks = new stdclass();
$lang->block->modules['kanban']['index']->availableBlocks->scrumoverview = 'Project Overview';
$lang->block->modules['kanban']['index']->availableBlocks->scrumoverview = "{$lang->projectCommon} Overview";
$lang->block->modules['kanban']['index']->availableBlocks->scrumlist = $lang->executionCommon . ' List';
$lang->block->modules['kanban']['index']->availableBlocks->sprint = $lang->executionCommon . ' Overview';
$lang->block->modules['kanban']['index']->availableBlocks->projectdynamic = 'Dynamics';
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = 'Project List';
$lang->block->modules['project']->availableBlocks->project = "{$lang->projectCommon} List";
$lang->block->modules['execution'] = new stdclass();
$lang->block->modules['execution']->availableBlocks = new stdclass();
+2 -2
View File
@@ -33,13 +33,13 @@ $lang->block->default['full']['my']['5']['params']['count'] = '15';
$lang->block->modules['kanban']['index'] = new stdclass();
$lang->block->modules['kanban']['index']->availableBlocks = new stdclass();
$lang->block->modules['kanban']['index']->availableBlocks->scrumoverview = 'Project Overview';
$lang->block->modules['kanban']['index']->availableBlocks->scrumoverview = "{$lang->projectCommon} Overview";
$lang->block->modules['kanban']['index']->availableBlocks->scrumlist = $lang->executionCommon . ' List';
$lang->block->modules['kanban']['index']->availableBlocks->sprint = $lang->executionCommon . ' Overview';
$lang->block->modules['kanban']['index']->availableBlocks->projectdynamic = 'Dynamics';
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = 'Project List';
$lang->block->modules['project']->availableBlocks->project = "{$lang->projectCommon} List";
$lang->block->modules['execution'] = new stdclass();
$lang->block->modules['execution']->availableBlocks = new stdclass();
+2 -2
View File
@@ -33,13 +33,13 @@ $lang->block->default['full']['my']['5']['params']['count'] = '15';
$lang->block->modules['kanban']['index'] = new stdclass();
$lang->block->modules['kanban']['index']->availableBlocks = new stdclass();
$lang->block->modules['kanban']['index']->availableBlocks->scrumoverview = '项目概况';
$lang->block->modules['kanban']['index']->availableBlocks->scrumoverview = "{$lang->projectCommon}概况";
$lang->block->modules['kanban']['index']->availableBlocks->scrumlist = $lang->executionCommon . '列表';
$lang->block->modules['kanban']['index']->availableBlocks->sprint = $lang->executionCommon . '总览';
$lang->block->modules['kanban']['index']->availableBlocks->projectdynamic = '最新动态';
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = '项目列表';
$lang->block->modules['project']->availableBlocks->project = "{$lang->projectCommon}列表";
$lang->block->modules['execution'] = new stdclass();
$lang->block->modules['execution']->availableBlocks = new stdclass();
+9 -6
View File
@@ -7,7 +7,7 @@ $lang->story->common = 'Story';
/* Main Navigation. */
$lang->mainNav = new stdclass();
$lang->mainNav->my = "{$lang->navIcons['my']} {$lang->my->shortCommon}|my|index|";
$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->project->common}|$projectModule|$projectMethod|";
$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->projectCommon}|$projectModule|$projectMethod|";
$lang->mainNav->execution = "{$lang->navIcons['execution']} Task|$executionModule|$executionMethod|";
$lang->mainNav->kanban = "{$lang->navIcons['kanban']} {$lang->kanban->common}|kanban|space|";
$lang->mainNav->doc = "{$lang->navIcons['doc']} {$lang->doc->common}|doc|index|";
@@ -30,7 +30,7 @@ if($config->edition != 'open')
/* Menu order. */
$lang->mainNav->menuOrder = array();
$lang->mainNav->menuOrder[5] = 'my';
$lang->mainNav->menuOrder[10] = 'project';
$lang->mainNav->menuOrder[10] = $lang->projectCommon;
$lang->mainNav->menuOrder[15] = 'kanban';
$lang->mainNav->menuOrder[35] = 'doc';
$lang->mainNav->menuOrder[45] = 'system';
@@ -137,27 +137,30 @@ $lang->doc->menuOrder[5] = 'dashboard';
$lang->doc->menuOrder[10] = 'recent';
$lang->doc->menuOrder[15] = 'my';
$lang->doc->menuOrder[20] = 'collect';
$lang->doc->menuOrder[25] = 'project';
$lang->doc->menuOrder[25] = $lang->projectCommon;
$lang->doc->menuOrder[30] = 'custom';
$lang->doc->menu->project['subMenu'] = new stdclass();
$lang->doc->menu->custom['subMenu'] = new stdclass();
/* Admin menu. */
$lang->admin->menu = new stdclass();
/* adjust items of search. */
$lang->searchObjects['all'] = 'All';
$lang->searchObjects['todo'] = 'Todo';
$lang->searchObjects['story'] = 'Story';
$lang->searchObjects['task'] = 'Task';
$lang->searchObjects['doc'] = 'Doc';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['project'] = $lang->projectCommon;
$lang->searchObjects['execution'] = 'Kanban';
$lang->searchObjects['user'] = 'User';
if($config->edition != 'open') $lang->searchObjects['feedback'] = 'Feedback';
if($config->visions == ',lite,') unset($lang->searchObjects['feedback']);
$lang->navGroup->task = 'project';
$lang->navGroup->execution = 'project';
$lang->navGroup->task = $lang->projectCommon;
$lang->navGroup->execution = $lang->projectCommon;
unset($lang->searchObjects['bug']);
unset($lang->searchObjects['testcase']);
+9 -6
View File
@@ -7,7 +7,7 @@ $lang->story->common = 'Story';
/* Main Navigation. */
$lang->mainNav = new stdclass();
$lang->mainNav->my = "{$lang->navIcons['my']} {$lang->my->shortCommon}|my|index|";
$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->project->common}|$projectModule|$projectMethod|";
$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->projectCommon}|$projectModule|$projectMethod|";
$lang->mainNav->execution = "{$lang->navIcons['execution']} Task|$executionModule|$executionMethod|";
$lang->mainNav->kanban = "{$lang->navIcons['kanban']} {$lang->kanban->common}|kanban|space|";
$lang->mainNav->doc = "{$lang->navIcons['doc']} {$lang->doc->common}|doc|index|";
@@ -30,7 +30,7 @@ if($config->edition != 'open')
/* Menu order. */
$lang->mainNav->menuOrder = array();
$lang->mainNav->menuOrder[5] = 'my';
$lang->mainNav->menuOrder[10] = 'project';
$lang->mainNav->menuOrder[10] = $lang->projectCommon;
$lang->mainNav->menuOrder[15] = 'kanban';
$lang->mainNav->menuOrder[35] = 'doc';
$lang->mainNav->menuOrder[45] = 'system';
@@ -137,27 +137,30 @@ $lang->doc->menuOrder[5] = 'dashboard';
$lang->doc->menuOrder[10] = 'recent';
$lang->doc->menuOrder[15] = 'my';
$lang->doc->menuOrder[20] = 'collect';
$lang->doc->menuOrder[25] = 'project';
$lang->doc->menuOrder[25] = $lang->projectCommon;
$lang->doc->menuOrder[30] = 'custom';
$lang->doc->menu->project['subMenu'] = new stdclass();
$lang->doc->menu->custom['subMenu'] = new stdclass();
/* Admin menu. */
$lang->admin->menu = new stdclass();
/* adjust items of search. */
$lang->searchObjects['all'] = 'All';
$lang->searchObjects['todo'] = 'Todo';
$lang->searchObjects['story'] = 'Story';
$lang->searchObjects['task'] = 'Task';
$lang->searchObjects['doc'] = 'Doc';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['project'] = $lang->projectCommon;
$lang->searchObjects['execution'] = 'Kanban';
$lang->searchObjects['user'] = 'User';
if($config->edition != 'open') $lang->searchObjects['feedback'] = 'Feedback';
if($config->visions == ',lite,') unset($lang->searchObjects['feedback']);
$lang->navGroup->task = 'project';
$lang->navGroup->execution = 'project';
$lang->navGroup->task = $lang->projectCommon;
$lang->navGroup->execution = $lang->projectCommon;
unset($lang->searchObjects['bug']);
unset($lang->searchObjects['testcase']);
+9 -6
View File
@@ -7,7 +7,7 @@ $lang->story->common = 'Story';
/* Main Navigation. */
$lang->mainNav = new stdclass();
$lang->mainNav->my = "{$lang->navIcons['my']} {$lang->my->shortCommon}|my|index|";
$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->project->common}|$projectModule|$projectMethod|";
$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->projectCommon}|$projectModule|$projectMethod|";
$lang->mainNav->execution = "{$lang->navIcons['execution']} Task|$executionModule|$executionMethod|";
$lang->mainNav->kanban = "{$lang->navIcons['kanban']} {$lang->kanban->common}|kanban|space|";
$lang->mainNav->doc = "{$lang->navIcons['doc']} {$lang->doc->common}|doc|index|";
@@ -30,7 +30,7 @@ if($config->edition != 'open')
/* Menu order. */
$lang->mainNav->menuOrder = array();
$lang->mainNav->menuOrder[5] = 'my';
$lang->mainNav->menuOrder[10] = 'project';
$lang->mainNav->menuOrder[10] = $lang->projectCommon;
$lang->mainNav->menuOrder[15] = 'kanban';
$lang->mainNav->menuOrder[35] = 'doc';
$lang->mainNav->menuOrder[45] = 'system';
@@ -137,27 +137,30 @@ $lang->doc->menuOrder[5] = 'dashboard';
$lang->doc->menuOrder[10] = 'recent';
$lang->doc->menuOrder[15] = 'my';
$lang->doc->menuOrder[20] = 'collect';
$lang->doc->menuOrder[25] = 'project';
$lang->doc->menuOrder[25] = $lang->projectCommon;
$lang->doc->menuOrder[30] = 'custom';
$lang->doc->menu->project['subMenu'] = new stdclass();
$lang->doc->menu->custom['subMenu'] = new stdclass();
/* Admin menu. */
$lang->admin->menu = new stdclass();
/* adjust items of search. */
$lang->searchObjects['all'] = 'All';
$lang->searchObjects['todo'] = 'Todo';
$lang->searchObjects['story'] = 'Story';
$lang->searchObjects['task'] = 'Task';
$lang->searchObjects['doc'] = 'Doc';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['project'] = $lang->projectCommon;
$lang->searchObjects['execution'] = 'Kanban';
$lang->searchObjects['user'] = 'User';
if($config->edition != 'open') $lang->searchObjects['feedback'] = 'Feedback';
if($config->visions == ',lite,') unset($lang->searchObjects['feedback']);
$lang->navGroup->task = 'project';
$lang->navGroup->execution = 'project';
$lang->navGroup->task = $lang->projectCommon;
$lang->navGroup->execution = $lang->projectCommon;
unset($lang->searchObjects['bug']);
unset($lang->searchObjects['testcase']);
@@ -7,7 +7,7 @@ $lang->story->common = '目标';
/* Main Navigation. */
$lang->mainNav = new stdclass();
$lang->mainNav->my = "{$lang->navIcons['my']} {$lang->my->shortCommon}|my|index|";
$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->project->common}|$projectModule|$projectMethod|";
$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->projectCommon}|$projectModule|$projectMethod|";
$lang->mainNav->execution = "{$lang->navIcons['execution']} 任务|$executionModule|$executionMethod|";
$lang->mainNav->kanban = "{$lang->navIcons['kanban']} {$lang->kanban->common}|kanban|space|";
$lang->mainNav->doc = "{$lang->navIcons['doc']} {$lang->doc->common}|doc|index|";
@@ -143,13 +143,16 @@ $lang->doc->menuOrder[30] = 'custom';
$lang->doc->menu->project['subMenu'] = new stdclass();
$lang->doc->menu->custom['subMenu'] = new stdclass();
/* Admin menu. */
$lang->admin->menu = new stdclass();
/* adjust items of search. */
$lang->searchObjects['all'] = '全部';
$lang->searchObjects['todo'] = '待办';
$lang->searchObjects['story'] = '目标';
$lang->searchObjects['task'] = '任务';
$lang->searchObjects['doc'] = '文档';
$lang->searchObjects['project'] = '项目';
$lang->searchObjects['project'] = $lang->projectCommon;
$lang->searchObjects['execution'] = '看板';
$lang->searchObjects['user'] = '用户';
+1 -1
View File
@@ -1,3 +1,3 @@
<?php
$lang->company->execution = 'Kanban';
$lang->company->product = 'Project';
$lang->company->product = $lang->projectCommon;
+1 -1
View File
@@ -1,3 +1,3 @@
<?php
$lang->company->execution = 'Kanban';
$lang->company->product = 'Project';
$lang->company->product = $lang->projectCommon;
+1 -1
View File
@@ -1,3 +1,3 @@
<?php
$lang->company->execution = 'Kanban';
$lang->company->product = 'Project';
$lang->company->product = $lang->projectCommon;
@@ -1,3 +1,3 @@
<?php
$lang->company->execution = '看板';
$lang->company->product = '项目';
$lang->company->product = $lang->projectCommon;
+4 -4
View File
@@ -16,9 +16,9 @@ $lang->dev->tableList['grouppriv'] = 'Group Privilege';
$lang->dev->tableList['history'] = 'History';
$lang->dev->tableList['lang'] = 'Language';
$lang->dev->tableList['module'] = 'Module';
$lang->dev->tableList['project'] = 'Project';
$lang->dev->tableList['projectproduct'] = 'Project' . $lang->productCommon;
$lang->dev->tableList['projectstory'] = 'Project' . $lang->SRCommon;
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = $lang->projectCommon . $lang->SRCommon;
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['story'] = $lang->SRCommon;
$lang->dev->tableList['storyspec'] = "{$lang->SRCommon} Description";
@@ -73,7 +73,7 @@ $lang->dev->tableList['im_userdevice'] = 'Im User Device';
$lang->dev->groupList = array();
$lang->dev->groupList['my'] = 'My';
$lang->dev->groupList['project'] = 'Project';
$lang->dev->groupList['project'] = $lang->projectCommon;
$lang->dev->groupList['execution'] = $lang->executionCommon;
$lang->dev->groupList['doc'] = 'Document';
$lang->dev->groupList['company'] = 'Company';
+4 -4
View File
@@ -16,9 +16,9 @@ $lang->dev->tableList['grouppriv'] = 'Group Privilege';
$lang->dev->tableList['history'] = 'History';
$lang->dev->tableList['lang'] = 'Language';
$lang->dev->tableList['module'] = 'Module';
$lang->dev->tableList['project'] = 'Project';
$lang->dev->tableList['projectproduct'] = 'Project' . $lang->productCommon;
$lang->dev->tableList['projectstory'] = 'Project' . $lang->SRCommon;
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = $lang->projectCommon . $lang->SRCommon;
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['story'] = $lang->SRCommon;
$lang->dev->tableList['storyspec'] = "{$lang->SRCommon} Description";
@@ -73,7 +73,7 @@ $lang->dev->tableList['im_userdevice'] = 'Im User Device';
$lang->dev->groupList = array();
$lang->dev->groupList['my'] = 'My';
$lang->dev->groupList['project'] = 'Project';
$lang->dev->groupList['project'] = $lang->projectCommon;
$lang->dev->groupList['execution'] = $lang->executionCommon;
$lang->dev->groupList['doc'] = 'Document';
$lang->dev->groupList['company'] = 'Company';
+4 -4
View File
@@ -16,9 +16,9 @@ $lang->dev->tableList['grouppriv'] = 'Group Privilege';
$lang->dev->tableList['history'] = 'History';
$lang->dev->tableList['lang'] = 'Language';
$lang->dev->tableList['module'] = 'Module';
$lang->dev->tableList['project'] = 'Project';
$lang->dev->tableList['projectproduct'] = 'Project' . $lang->productCommon;
$lang->dev->tableList['projectstory'] = 'Project' . $lang->SRCommon;
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = $lang->projectCommon . $lang->SRCommon;
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['story'] = $lang->SRCommon;
$lang->dev->tableList['storyspec'] = "{$lang->SRCommon} Description";
@@ -73,7 +73,7 @@ $lang->dev->tableList['im_userdevice'] = 'Im User Device';
$lang->dev->groupList = array();
$lang->dev->groupList['my'] = 'My';
$lang->dev->groupList['project'] = 'Project';
$lang->dev->groupList['project'] = $lang->projectCommon;
$lang->dev->groupList['execution'] = $lang->executionCommon;
$lang->dev->groupList['doc'] = 'Document';
$lang->dev->groupList['company'] = 'Company';
+4 -4
View File
@@ -16,9 +16,9 @@ $lang->dev->tableList['grouppriv'] = '组权限';
$lang->dev->tableList['history'] = '操作历史';
$lang->dev->tableList['lang'] = '语言定义';
$lang->dev->tableList['module'] = '模块';
$lang->dev->tableList['project'] = '项目';
$lang->dev->tableList['projectproduct'] = '项目' . $lang->productCommon;
$lang->dev->tableList['projectstory'] = '项目' . $lang->SRCommon;
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = $lang->projectCommon . $lang->SRCommon;
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['story'] = $lang->SRCommon;
$lang->dev->tableList['storyspec'] = "{$lang->SRCommon}描述";
@@ -73,7 +73,7 @@ $lang->dev->tableList['im_userdevice'] = 'im用户设备';
$lang->dev->groupList = array();
$lang->dev->groupList['my'] = '我的地盘';
$lang->dev->groupList['project'] = '项目';
$lang->dev->groupList['project'] = $lang->projectCommon;
$lang->dev->groupList['execution'] = $lang->executionCommon;
$lang->dev->groupList['doc'] = '文档';
$lang->dev->groupList['company'] = '组织';
+1 -1
View File
@@ -1,4 +1,4 @@
<?php
$lang->doc->libTypeList = array();
$lang->doc->libTypeList['project'] = 'Project Library';
$lang->doc->libTypeList['project'] = "{$lang->projectCommon} Library";
$lang->doc->libTypeList['custom'] = 'Custom Library';
+1 -1
View File
@@ -1,4 +1,4 @@
<?php
$lang->doc->libTypeList = array();
$lang->doc->libTypeList['project'] = 'Project Library';
$lang->doc->libTypeList['project'] = "{$lang->projectCommon} Library";
$lang->doc->libTypeList['custom'] = 'Custom Library';
+1 -1
View File
@@ -1,4 +1,4 @@
<?php
$lang->doc->libTypeList = array();
$lang->doc->libTypeList['project'] = 'Project Library';
$lang->doc->libTypeList['project'] = "{$lang->projectCommon} Library";
$lang->doc->libTypeList['custom'] = 'Custom Library';
+1 -1
View File
@@ -1,4 +1,4 @@
<?php
$lang->doc->libTypeList = array();
$lang->doc->libTypeList['project'] = '项目文档库';
$lang->doc->libTypeList['project'] = "{$lang->projectCommon}文档库";
$lang->doc->libTypeList['custom'] = '自定义文档库';
@@ -22,6 +22,6 @@ $lang->execution->icons['gantt'] = 'lane';
$lang->execution->icons['tree'] = 'treemap';
$lang->execution->icons['grouptask'] = 'sitemap';
$lang->execution->aclList['private'] = "Private (Accessible to team members and project leaders)";
$lang->execution->aclList['private'] = "Private (Accessible to team members and {$lang->projectCommon} leaders)";
$lang->execution->common = 'Project Execution';
$lang->execution->common = "{$lang->projectCommon} Execution";
@@ -22,6 +22,6 @@ $lang->execution->icons['gantt'] = 'lane';
$lang->execution->icons['tree'] = 'treemap';
$lang->execution->icons['grouptask'] = 'sitemap';
$lang->execution->aclList['private'] = "Private (Accessible to team members and project leaders)";
$lang->execution->aclList['private'] = "Private (Accessible to team members and {$lang->projectCommon} leaders)";
$lang->execution->common = 'Project Execution';
$lang->execution->common = "{$lang->projectCommon} Execution";
@@ -22,6 +22,6 @@ $lang->execution->icons['gantt'] = 'lane';
$lang->execution->icons['tree'] = 'treemap';
$lang->execution->icons['grouptask'] = 'sitemap';
$lang->execution->aclList['private'] = "Private (Accessible to team members and project leaders)";
$lang->execution->aclList['private'] = "Private (Accessible to team members and {$lang->projectCommon} leaders)";
$lang->execution->common = 'Project Execution';
$lang->execution->common = "{$lang->projectCommon} Execution";
@@ -22,6 +22,6 @@ $lang->execution->icons['gantt'] = 'lane';
$lang->execution->icons['tree'] = 'treemap';
$lang->execution->icons['grouptask'] = 'sitemap';
$lang->execution->aclList['private'] = "私有(团队成员和项目负责人可访问)";
$lang->execution->aclList['private'] = "私有(团队成员和{$lang->projectCommon}负责人可访问)";
$lang->execution->common = '项目看板';
$lang->execution->common = "{$lang->projectCommon}看板";
+7
View File
@@ -0,0 +1,7 @@
<?php
$lang->my->featureBar['contribute']['task'] = array();
$lang->my->featureBar['contribute']['task']['assignedTo'] = 'AssignedToMe';
$lang->my->featureBar['contribute']['task']['openedBy'] = 'CreatedByMe';
$lang->my->featureBar['contribute']['task']['finishedBy'] = 'FinishedByMe';
$lang->my->featureBar['contribute']['task']['closedBy'] = 'ClosedByMe';
$lang->my->featureBar['contribute']['task']['canceledBy'] = 'CancelledByMe';
+7
View File
@@ -0,0 +1,7 @@
<?php
$lang->my->featureBar['contribute']['task'] = array();
$lang->my->featureBar['contribute']['task']['assignedTo'] = 'AssignedToMe';
$lang->my->featureBar['contribute']['task']['openedBy'] = 'CreatedByMe';
$lang->my->featureBar['contribute']['task']['finishedBy'] = 'FinishedByMe';
$lang->my->featureBar['contribute']['task']['closedBy'] = 'ClosedByMe';
$lang->my->featureBar['contribute']['task']['canceledBy'] = 'CancelledByMe';
+7
View File
@@ -0,0 +1,7 @@
<?php
$lang->my->featureBar['contribute']['task'] = array();
$lang->my->featureBar['contribute']['task']['assignedTo'] = 'AssignedToMe';
$lang->my->featureBar['contribute']['task']['openedBy'] = 'CreatedByMe';
$lang->my->featureBar['contribute']['task']['finishedBy'] = 'FinishedByMe';
$lang->my->featureBar['contribute']['task']['closedBy'] = 'ClosedByMe';
$lang->my->featureBar['contribute']['task']['canceledBy'] = 'CancelledByMe';
@@ -0,0 +1,7 @@
<?php
$lang->my->featureBar['contribute']['task'] = array();
$lang->my->featureBar['contribute']['task']['assignedTo'] = '指派给我';
$lang->my->featureBar['contribute']['task']['openedBy'] = '由我创建';
$lang->my->featureBar['contribute']['task']['finishedBy'] = '由我完成';
$lang->my->featureBar['contribute']['task']['closedBy'] = '由我关闭';
$lang->my->featureBar['contribute']['task']['canceledBy'] = '由我取消';
+4 -5
View File
@@ -19,11 +19,10 @@
<?php $recTotalLabel = " <span class='label label-light label-badge'>{$pager->recTotal}</span>"; ?>
<?php if($app->rawMethod == 'contribute'):?>
<?php
echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "<span class='text'>{$lang->my->taskMenu->assignedToMe}</span>" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
echo html::a(inlink($app->rawMethod, "mode=$mode&type=openedBy"), "<span class='text'>{$lang->my->taskMenu->openedByMe}</span>" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'");
echo html::a(inlink($app->rawMethod, "mode=$mode&type=finishedBy"), "<span class='text'>{$lang->my->taskMenu->finishedByMe}</span>" . ($type == 'finishedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'finishedBy' ? ' btn-active-text' : '') . "'");
echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "<span class='text'>{$lang->my->taskMenu->closedByMe}</span>" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
echo html::a(inlink($app->rawMethod, "mode=$mode&type=canceledBy"), "<span class='text'>{$lang->my->taskMenu->canceledByMe}</span>" . ($type == 'canceledBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'canceledBy' ? ' btn-active-text' : '') . "'");
foreach($lang->my->featureBar[$app->rawMethod]['task'] as $key => $name)
{
echo html::a(inlink($app->rawMethod, "mode=$mode&type=$key"), "<span class='text'>{$name}</span>" . ($type == $key ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == $key ? ' btn-active-text' : '') . "'");
}
?>
<?php endif;?>
</div>
+1 -1
View File
@@ -4,4 +4,4 @@ $lang->project->doingExecutions = 'Doing Kanban';
$lang->project->select = "Select {$lang->project->common}";
$lang->project->noProject = "No {$lang->project->common} yet. ";
$lang->project->aclList['private'] = "Private (Accessible to project leaders and team members)";
$lang->project->aclList['private'] = "Private (Accessible to {$lang->projectCommon} leaders and team members)";
+1 -1
View File
@@ -4,4 +4,4 @@ $lang->project->doingExecutions = 'Doing Kanban';
$lang->project->select = "Select {$lang->project->common}";
$lang->project->noProject = "No {$lang->project->common} yet. ";
$lang->project->aclList['private'] = "Private (Accessible to project leaders and team members)";
$lang->project->aclList['private'] = "Private (Accessible to {$lang->projectCommon} leaders and team members)";
+1 -1
View File
@@ -4,4 +4,4 @@ $lang->project->doingExecutions = 'Doing Kanban';
$lang->project->select = "Select {$lang->project->common}";
$lang->project->noProject = "No {$lang->project->common} yet. ";
$lang->project->aclList['private'] = "Private (Accessible to project leaders and team members)";
$lang->project->aclList['private'] = "Private (Accessible to {$lang->projectCommon} leaders and team members)";
@@ -4,4 +4,4 @@ $lang->project->doingExecutions = '进行中的看板(最近1个)';
$lang->project->select = "请选择{$lang->project->common}";
$lang->project->noProject = "暂时没有{$lang->project->common}。";
$lang->project->aclList['private'] = "私有 (只有项目负责人、团队成员可访问)";
$lang->project->aclList['private'] = "私有 (只有{$lang->projectCommon}负责人、团队成员可访问)";
@@ -14,7 +14,7 @@
<div class='clearfix' id='mainMenu'>
<div class='btn-toolbar pull-left'>
<?php
foreach($lang->project->featureBar['browse'] as $label => $labelName)
foreach($lang->project->featureBar['execution'] as $label => $labelName)
{
$active = $status == $label ? 'btn-active-text' : '';
echo html::a($this->createLink('project', 'execution', "status=$label&projectID=$projectID"), '<span class="text">' . $labelName . '</span> ' . ($status == $label ? "<span class='label label-light label-badge'>" . (int)count($kanbanList) . '</span>' : ''), '', "class='btn btn-link $active'");
@@ -36,7 +36,7 @@
}
unset($visibleFields['module']);
?>
<form method='post' class='load-indicator main-form' enctype='multipart/form-data' target='hiddenwin' id="batchCreateForm">
<form method='post' class='load-indicator main-form form-ajax' enctype='multipart/form-data' id="batchCreateForm">
<div class="table-responsive">
<table class="table table-form">
<thead>
+1 -1
View File
@@ -61,7 +61,7 @@ $lang->task->confirmRecord = '"Left Hour" is 0. Do you want to set the t
$lang->task->confirmTransfer = '"Left Hour" is 0,Do you want to transfer task?';
$lang->task->noTask = 'No tasks yet. ';
$lang->task->kanbanDenied = 'Please create a Kanban first';
$lang->task->createDenied = 'Create Task is denied in this project';
$lang->task->createDenied = "Create Task is denied in this {$lang->projectCommon}";
$lang->task->cannotDeleteParent = 'Cannot delete parent task';
$lang->task->addChildTask = 'Because the task has cost hours, ZenTao will create a child task with the same name to record the cost housrs to ensure data consistency.';
+1 -1
View File
@@ -61,7 +61,7 @@ $lang->task->confirmRecord = '"Left Hour" is 0. Do you want to set the t
$lang->task->confirmTransfer = '"Left Hour" is 0,Do you want to transfer task?';
$lang->task->noTask = 'No tasks yet. ';
$lang->task->kanbanDenied = 'Please create a Kanban first';
$lang->task->createDenied = 'Create Task is denied in this project';
$lang->task->createDenied = "Create Task is denied in this {$lang->projectCommon}";
$lang->task->cannotDeleteParent = 'Cannot delete parent task';
$lang->task->addChildTask = 'Because the task has cost hours, ZenTao will create a child task with the same name to record the cost housrs to ensure data consistency.';
+1 -1
View File
@@ -61,7 +61,7 @@ $lang->task->confirmRecord = '"Left Hour" is 0. Do you want to set the t
$lang->task->confirmTransfer = '"Left Hour" is 0,Do you want to transfer task?';
$lang->task->noTask = 'No tasks yet. ';
$lang->task->kanbanDenied = 'Please create a Kanban first';
$lang->task->createDenied = 'Create Task is denied in this project';
$lang->task->createDenied = "Create Task is denied in this {$lang->projectCommon}";
$lang->task->cannotDeleteParent = 'Cannot delete parent task';
$lang->task->addChildTask = 'Because the task has cost hours, ZenTao will create a child task with the same name to record the cost housrs to ensure data consistency.';
+1 -1
View File
@@ -61,7 +61,7 @@ $lang->task->confirmRecord = '"剩余"为0,任务将标记为"已完
$lang->task->confirmTransfer = '"当前剩余"为0,任务将被转交,您确定吗?';
$lang->task->noTask = '暂时没有任务。';
$lang->task->kanbanDenied = '请先创建看板';
$lang->task->createDenied = '你不能在该项目添加任务';
$lang->task->createDenied = "你不能在该{$lang->projectCommon}添加任务";
$lang->task->cannotDeleteParent = '不能删除父任务。';
$lang->task->addChildTask = '因该任务已经产生消耗,为保证数据一致性,我们会帮您创建一条同名子任务记录该消耗。';
+56 -51
View File
@@ -2506,29 +2506,9 @@ class baseRouter
if($config and (!isset($config->$moduleName) or !is_object($config->$moduleName))) $config->$moduleName = new stdclass();
/* 初始化数组。Init the variables. */
$extConfigFiles = array();
$commonExtConfigFiles = array();
$siteExtConfigFiles = array();
/* 先获得模块的主配置文件。Get the main config file for current module first. */
$mainConfigFile = $this->getModulePath($appName, $moduleName) . 'config.php';
/* 查找扩展配置文件。Get extension config files. */
if($config->framework->extensionLevel > 0) $extConfigPath = $this->getModuleExtPath($appName, $moduleName, 'config');
if($config->framework->extensionLevel >= 1)
{
if(!empty($extConfigPath['common'])) $commonExtConfigFiles = helper::ls($extConfigPath['common'], '.php');
if(!empty($extConfigPath['xuan'])) $commonExtConfigFiles = array_merge($commonExtConfigFiles, helper::ls($extConfigPath['xuan'], '.php'));
if(!empty($extConfigPath['vision'])) $commonExtConfigFiles = array_merge($commonExtConfigFiles, helper::ls($extConfigPath['vision'], '.php'));
if(!empty($extConfigPath['saas'])) $commonExtConfigFiles = array_merge($commonExtConfigFiles, helper::ls($extConfigPath['saas'], '.php'));
if(!empty($extConfigPath['custom'])) $commonExtConfigFiles = array_merge($commonExtConfigFiles, helper::ls($extConfigPath['custom'], '.php'));
}
if($config->framework->extensionLevel == 2 and !empty($extConfigPath['site'])) $siteExtConfigFiles = helper::ls($extConfigPath['site'], '.php');
$extConfigFiles = array_merge($commonExtConfigFiles, $siteExtConfigFiles);
/* 将主配置文件和扩展配置文件合并在一起。Put the main config file and extension config files together. */
$configFiles = array_merge(array($mainConfigFile), $extConfigFiles);
$configFiles = $this->getMainAndExtFiles($moduleName, $appName, 'config');
if(empty($configFiles)) return false;
/* 加载每一个配置文件。Load every config file. */
static $loadedConfigs = array();
@@ -2670,36 +2650,8 @@ class baseRouter
*/
public function loadLang($moduleName, $appName = '')
{
/* 初始化变量。Init vars. */
$modulePath = $this->getModulePath($appName, $moduleName);
$extLangFiles = array();
$langFilesToLoad = array();
/* 判断主语言文件是否存在。Whether the main lang file exists or not. */
$mainLangFile = $this->getMainLangFile($moduleName, $appName);
if($mainLangFile) $langFilesToLoad[] = $mainLangFile;
/* 获取扩展语言文件。If extensionLevel > 0, get extension lang files. */
if($this->config->framework->extensionLevel > 0)
{
$commonExtLangFiles = array();
$siteExtLangFiles = array();
$extLangPath = $this->getModuleExtPath($appName, $moduleName, 'lang');
if($this->config->framework->extensionLevel >= 1)
{
if(!empty($extLangPath['common'])) $commonExtLangFiles = helper::ls($extLangPath['common'] . $this->clientLang, '.php');
if(!empty($extLangPath['xuan'])) $commonExtLangFiles = array_merge($commonExtLangFiles, helper::ls($extLangPath['xuan'] . $this->clientLang, '.php'));
if(!empty($extLangPath['vision'])) $commonExtLangFiles = array_merge($commonExtLangFiles, helper::ls($extLangPath['vision'] . $this->clientLang, '.php'));
if(!empty($extLangPath['custom'])) $commonExtLangFiles = array_merge($commonExtLangFiles, helper::ls($extLangPath['custom'] . $this->clientLang, '.php'));
if(!empty($extLangPath['saas'])) $commonExtLangFiles = array_merge($commonExtLangFiles, helper::ls($extLangPath['saas'] . $this->clientLang, '.php'));
}
if($this->config->framework->extensionLevel == 2 and !empty($extLangPath['site'])) $siteExtLangFiles = helper::ls($extLangPath['site'] . $this->clientLang, '.php');
$extLangFiles = array_merge($commonExtLangFiles, $siteExtLangFiles);
}
/* 计算最终要加载的语言文件。 Get the lang files to be loaded. */
$langFilesToLoad = array_merge($langFilesToLoad, $extLangFiles);
$langFilesToLoad = $this->getMainAndExtFiles($moduleName, $appName, 'lang');
if(empty($langFilesToLoad)) return false;
/* 加载语言文件。Load lang files. */
@@ -2972,6 +2924,59 @@ class baseRouter
{
return strtolower(getenv('IS_CONTAINER')) == 'true';
}
/**
* Get main file and ext files.
*
* @param string $moduleName
* @param string $appName
* @param string $type lang|config|control|model
* @access public
* @return array
*/
public function getMainAndExtFiles($moduleName, $appName = '', $type = 'lang')
{
/* 初始化变量。Init vars. */
$modulePath = $this->getModulePath($appName, $moduleName);
$extFiles = array();
$filesToLoad = array();
/* 判断主文件是否存在。Whether the main file exists or not. */
if($type == 'lang')
{
$mainFile = $this->getMainLangFile($moduleName, $appName);
}
else
{
$mainFile = $modulePath . $type . '.php';
}
if($mainFile) $filesToLoad[] = $mainFile;
/* 获取扩展文件。If extensionLevel > 0, get extension files. */
if($this->config->framework->extensionLevel > 0)
{
$commonExtFiles = array();
$siteExtFiles = array();
$extPath = $this->getModuleExtPath($appName, $moduleName, $type);
if($this->config->framework->extensionLevel >= 1)
{
$clientLang = $type == 'lang' ? $this->clientLang : '';
if(!empty($extPath['common'])) $commonExtFiles = helper::ls($extPath['common'] . $clientLang, '.php');
if(!empty($extPath['xuan'])) $commonExtFiles = array_merge($commonExtFiles, helper::ls($extPath['xuan'] . $clientLang, '.php'));
if(!empty($extPath['vision'])) $commonExtFiles = array_merge($commonExtFiles, helper::ls($extPath['vision'] . $clientLang, '.php'));
if(!empty($extPath['custom'])) $commonExtFiles = array_merge($commonExtFiles, helper::ls($extPath['custom'] . $clientLang, '.php'));
if(!empty($extPath['saas'])) $commonExtFiles = array_merge($commonExtFiles, helper::ls($extPath['saas'] . $clientLang, '.php'));
}
if($this->config->framework->extensionLevel == 2 and !empty($extPath['site'])) $siteExtFiles = helper::ls($extPath['site'] . $clientLang, '.php');
$extFiles = array_merge($commonExtFiles, $siteExtFiles);
}
/* 计算最终要加载的文件。 Get the files to be loaded. */
$filesToLoad = array_merge($filesToLoad, $extFiles);
if(empty($filesToLoad)) return false;
return $filesToLoad;
}
}
/**
+52 -17
View File
@@ -108,34 +108,65 @@ class router extends baseRouter
parent::loadLang($moduleName, $appName);
/* Replace main nav lang. */
if($moduleName == 'common' and $this->dbh and !empty($this->config->db->name))
{
$customMenus = $this->dbh->query('SELECT * FROM' . TABLE_LANG . "WHERE `module`='common' AND `section`='mainNav' AND `lang`='{$this->clientLang}' AND `vision`='{$this->config->vision}'")->fetchAll();
foreach($customMenus as $menu)
{
$menuKey = $menu->key;
if(isset($lang->mainNav->$menuKey)) $lang->mainNav->$menuKey = zget($lang->navIcons, $menuKey, '') . " {$menu->value}" . substr($lang->mainNav->$menuKey, strpos($lang->mainNav->$menuKey, '|'));
}
}
/* Merge from the db lang. */
if($moduleName != 'common' and isset($lang->db->custom[$moduleName]))
{
foreach($lang->db->custom[$moduleName] as $section => $fields)
{
if(isset($lang->{$moduleName}->{$section}['']))
if(in_array($section, array('featureBar', 'moreSelects')))
{
$nullKey = '';
$nullValue = $lang->{$moduleName}->{$section}[$nullKey];
foreach($fields as $featureBarMethod => $featureBarValues)
{
foreach($featureBarValues as $featureBarKey => $featureBarValue)
{
if(is_array($featureBarValue))
{
foreach($featureBarValue as $key => $value) $lang->{$moduleName}->{$section}[$featureBarMethod][$featureBarKey][$key] = $value;
}
else
{
$lang->{$moduleName}->{$section}[$featureBarMethod][$featureBarKey] = $featureBarValue;
}
}
}
}
elseif(isset($lang->{$moduleName}->{$section}[0]))
else
{
$nullKey = 0;
$nullValue = $lang->{$moduleName}->{$section}[0];
}
unset($lang->{$moduleName}->{$section});
if(isset($lang->{$moduleName}->{$section}['']))
{
$nullKey = '';
$nullValue = $lang->{$moduleName}->{$section}[$nullKey];
}
elseif(isset($lang->{$moduleName}->{$section}[0]))
{
$nullKey = 0;
$nullValue = $lang->{$moduleName}->{$section}[0];
}
unset($lang->{$moduleName}->{$section});
if(isset($nullKey))$lang->{$moduleName}->{$section}[$nullKey] = $nullValue;
foreach($fields as $key => $value)
{
if($section == 'priList' and $key > 0 and trim($value) === '') continue; // Fix bug #23538.
if(isset($nullKey))$lang->{$moduleName}->{$section}[$nullKey] = $nullValue;
foreach($fields as $key => $value)
{
if($section == 'priList' and $key > 0 and trim($value) === '') continue; // Fix bug #23538.
if(!isset($lang->{$moduleName})) $lang->{$moduleName} = new stdclass();
if(!isset($lang->{$moduleName}->{$section})) $lang->{$moduleName}->{$section} = array();
$lang->{$moduleName}->{$section}[$key] = $value;
if(!isset($lang->{$moduleName})) $lang->{$moduleName} = new stdclass();
if(!isset($lang->{$moduleName}->{$section})) $lang->{$moduleName}->{$section} = array();
$lang->{$moduleName}->{$section}[$key] = $value;
}
unset($nullKey);
unset($nullValue);
}
unset($nullKey);
unset($nullValue);
}
}
@@ -284,6 +315,10 @@ class router extends baseRouter
$lang->URCommon = isset($URPairs[$config->URSR]) ? $URPairs[$config->URSR] : reset($URPairs);
$lang->SRCommon = isset($SRPairs[$config->URSR]) ? $SRPairs[$config->URSR] : reset($SRPairs);
}
/* Replace common lang. */
$customMenus = $this->dbh->query('SELECT * FROM' . TABLE_LANG . "WHERE `module`='common' AND `lang`='{$this->clientLang}' AND `section`='' AND `vision`='{$config->vision}'")->fetchAll();
foreach($customMenus as $menu) if(isset($lang->{$menu->key})) $lang->{$menu->key} = $menu->value;
}
}
+21 -4
View File
@@ -1196,10 +1196,27 @@ EOT;
if($config->tabSession and helper::isWithTID()) $jsConfig->tid = zget($_GET, 'tid', '');
$jsLang = new stdclass();
$jsLang->submitting = isset($lang->loading) ? $lang->loading : '';
$jsLang->save = $jsConfig->save;
$jsLang->expand = isset($lang->expand) ? $lang->expand : '';
$jsLang->timeout = isset($lang->timeout) ? $lang->timeout : '';
$jsLang->submitting = isset($lang->loading) ? $lang->loading : '';
$jsLang->save = $jsConfig->save;
$jsLang->expand = isset($lang->expand) ? $lang->expand : '';
$jsLang->timeout = isset($lang->timeout) ? $lang->timeout : '';
$jsLang->confirmDraft = isset($lang->confirmDraft) ? $lang->confirmDraft : '';
$jsLang->resume = isset($lang->resume) ? $lang->resume : '';
$jsLang->program = zget($lang->program, 'common', '');
$jsLang->project = zget($lang->project, 'common', '');
$jsLang->product = zget($lang->product, 'common', '');
$jsLang->task = zget($lang->task, 'common', '');
$jsLang->story = zget($lang->story, 'common', '');
$jsLang->bug = zget($lang->bug, 'common', '');
$jsLang->testcase = zget($lang->testcase, 'common', '');
$jsLang->zahost = zget($lang->zahost, 'common', '');
$jsLang->zanode = zget($lang->zanode, 'common', '');
$jsLang->gitlab = zget($lang->gitlab, 'common', '');
$jsLang->gogs = zget($lang->gogs, 'common', '');
$jsLang->gitea = zget($lang->gitea, 'common', '');
$jsLang->jenkins = zget($lang->jenkins, 'common', '');
$jsLang->sonarqube = zget($lang->sonarqube, 'common', '');
$jsLang->repo = zget($lang->repo, 'common', '');
$js = static::start(false);
$js .= 'window.config=' . json_encode($jsConfig) . ";\n";
+69 -17
View File
@@ -549,10 +549,11 @@ class gitlab
* @param string $version
* @param int $count
* @param string $branch
* @param bool $getFile
* @access public
* @return array
*/
public function getCommits($version = '', $count = 0, $branch = '')
public function getCommits($version = '', $count = 0, $branch = '', $getFile = false)
{
if(!scm::checkRevision($version)) return array();
$api = "commits";
@@ -620,7 +621,7 @@ class gitlab
$log->time = date('Y-m-d H:i:s', strtotime($commit->created_at));
$commits[$commit->id] = $log;
$files[$commit->id] = $this->getFilesByCommit($log->revision);
if($getFile) $files[$commit->id] = $this->getFilesByCommit($log->revision);
}
return array('commits' => $commits, 'files' => $files);
@@ -653,10 +654,12 @@ class gitlab
* @param string $fromRevision
* @param string $toRevision
* @param int $perPage
* @param int $page
* @param bool $getUrl
* @access public
* @return array
*/
public function getCommitsByPath($path, $fromRevision = '', $toRevision = '', $perPage = 0)
public function getCommitsByPath($path, $fromRevision = '', $toRevision = '', $perPage = 0, $page = 1, $getUrl = false)
{
$path = ltrim($path, DIRECTORY_SEPARATOR);
$api = "commits";
@@ -683,6 +686,18 @@ class gitlab
if($until) $param->until = $until;
if($perPage) $param->per_page = $perPage;
if($page) $param->page = $page;
if($getUrl)
{
$params = (array) $param;
$params['private_token'] = $this->token;
$params['per_page'] = isset($params['per_page']) ? $params['per_page'] : 100;
$api = ltrim($api, '/');
$api = $this->root . $api . '?' . http_build_query($params);
return $api;
}
return $this->fetch($api, $param);
}
@@ -736,10 +751,11 @@ class gitlab
*
* @param string $path
* @param bool $recursive
* @param bool $loop
* @access public
* @return mixed
*/
public function tree($path, $recursive = 1)
public function tree($path, $recursive = 1, $loop = false)
{
$api = "tree";
@@ -747,17 +763,20 @@ class gitlab
$params['path'] = ltrim($path, '/');
$params['ref'] = $this->branch;
$params['recursive'] = (int) $recursive;
return $this->fetch($api, $params);
return $this->fetch($api, $params, $loop, $loop ? true : false);
}
/**
* Fetch data from gitlab api.
*
* @param string $api
* @param array $params
* @param bool $needToLoop
* @param bool $multi
* @access public
* @return mixed
*/
public function fetch($api, $params = array(), $needToLoop = false)
public function fetch($api, $params = array(), $needToLoop = false, $multi = false)
{
$params = (array) $params;
$params['private_token'] = $this->token;
@@ -768,19 +787,49 @@ class gitlab
if($needToLoop)
{
$allResults = array();
for($page = 1; true; $page++)
if($multi)
{
$results = json_decode(commonModel::http($api . "&page={$page}"));
if(!is_array($results)) break;
if(!empty($results)) $allResults = array_merge($allResults, $results);
if(count($results) < 100) break;
$results = commonModel::httpWithHeader($api . "&page=1");
if(empty($results['header']['X-Total-Pages'])) return array();
$totalPages = $results['header']['X-Total-Pages'];
if($totalPages == 1)
{
$allResults = json_decode($results['body']);
}
else
{
$requests = array();
for($page = 1; $page <= $totalPages; $page++)
{
$requests[$page]['url'] = $api . "&page={$page}";
}
$results = requests::request_multiple($requests, array('timeout' => 60));
foreach($results as $result)
{
if(empty($result->body)) continue;
$data = json_decode($result->body);
$allResults = array_merge($allResults, $data);
}
}
}
else
{
for($page = 1; true; $page++)
{
$results = json_decode(commonModel::http($api . "&page={$page}", null, array(), array(), 'data', 'POST', 30, true, false));
if(!is_array($results)) break;
if(!empty($results)) $allResults = array_merge($allResults, $results);
if(count($results) < 100) break;
}
}
return $allResults;
}
else
{
list($response, $httpCode) = commonModel::http($api, null, array(), array(), 'data', 'Post', 30, true);
list($response, $httpCode) = commonModel::http($api, null, array(), array(), 'data', 'POST', 30, true, false);
if(!empty(commonModel::$requestErrors))
{
commonModel::$requestErrors = array();
@@ -828,12 +877,15 @@ class gitlab
$parsedLog->time = date('Y-m-d H:i:s', strtotime($commit->committed_date));
$parsedLog->comment = $commit->message;
$parsedLog->change = array();
foreach($commit->diffs as $diff)
if(!empty($commit->diffs))
{
$parsedLog->change[$diff->path] = array();
$parsedLog->change[$diff->path]['action'] = $diff->action;
$parsedLog->change[$diff->path]['kind'] = $diff->type;
$parsedLog->change[$diff->path]['oldPath'] = $diff->oldPath;
foreach($commit->diffs as $diff)
{
$parsedLog->change[$diff->path] = array();
$parsedLog->change[$diff->path]['action'] = $diff->action;
$parsedLog->change[$diff->path]['kind'] = $diff->type;
$parsedLog->change[$diff->path]['oldPath'] = $diff->oldPath;
}
}
$parsedLogs[] = $parsedLog;
}
+23 -23
View File
@@ -13,11 +13,11 @@ class zfile
{
/**
* Copy a directory from an directory to another directory.
*
* @param string $from
* @param string $to
*
* @param string $from
* @param string $to
* @param bool $logLevel
* @param string $logFile
* @param string $logFile
* @param array $excludeFiles
* @param bool $toIsLink
* @access public
@@ -110,9 +110,9 @@ class zfile
/**
* Get count.
*
* @param string $dir
* @param array $excludeFiles
*
* @param string $dir
* @param array $excludeFiles
* @access public
* @return int
*/
@@ -136,8 +136,8 @@ class zfile
/**
* Remove a dir.
*
* @param string $dir
*
* @param string $dir
* @access public
* @return bool
*/
@@ -171,9 +171,9 @@ class zfile
/**
* Get files under a directory recursive.
*
* @param string $dir
* @param array $exceptions
*
* @param string $dir
* @param array $exceptions
* @access private
* @return array
*/
@@ -207,8 +207,8 @@ class zfile
/**
* Make a dir.
*
* @param string $dir
*
* @param string $dir
* @access public
* @return bool
*/
@@ -219,8 +219,8 @@ class zfile
/**
* Remove a file
*
* @param string $file
*
* @param string $file
* @access public
* @return bool
*/
@@ -232,7 +232,7 @@ class zfile
/**
* Batch remove files. use glob function.
*
*
* @param string $patern
* @access public
* @return void
@@ -245,7 +245,7 @@ class zfile
/**
* Remove a file
*
*
* @param string from
* @param string to
* @access public
@@ -258,7 +258,7 @@ class zfile
/**
* Rename a file or directory.
*
*
* @param string from
* @param string to
* @access public
@@ -271,8 +271,8 @@ class zfile
/**
* Get file size.
*
* @param string $file
*
* @param string $file
* @access public
* @return int
*/
@@ -283,10 +283,10 @@ class zfile
/**
* Get directory size.
*
*
* @param string $dir
* @access public
* @return int
* @return int
*/
public function getDirSize($dir)
{
+20 -28
View File
@@ -14,7 +14,7 @@ global $config;
$lang->action->common = 'Log';
$lang->action->id = 'ID';
$lang->action->product = $lang->productCommon;
$lang->action->project = 'Project';
$lang->action->project = $lang->projectCommon;
$lang->action->execution = $lang->execution->common;
$lang->action->objectType = 'Object Type';
$lang->action->objectID = 'ID';
@@ -56,7 +56,7 @@ $lang->action->needEdit = '%s existiert bereits. Bitte bearbeiten.';
$lang->action->historyEdit = 'Der Verlauf darf nicht leer sein.';
$lang->action->noDynamic = 'Kein Verlauf. ';
$lang->action->undeletedTips = 'This data did not participate in the merging process during the version upgrade process, so restore is not supported.';
$lang->action->executionNoProject = 'The execution does not belong to a project,please restore the project first';
$lang->action->executionNoProject = "The execution does not belong to a {$lang->projectCommon},please restore the {$lang->projectCommon} first";
$lang->action->repoNoServer = 'The repo does not belong to a server,please restore the server first';
$lang->action->hasCreatedTask = 'Tasks have been created in this parent phase and cannot be restored!';
$lang->action->hasDeletedParent = 'Restoring this phase requires restoring the deleted parent phase %s at the same time.';
@@ -91,14 +91,6 @@ $lang->action->dynamic->all = 'Alle';
$lang->action->dynamic->hidden = 'Versteckt';
$lang->action->dynamic->search = 'Suche';
$lang->action->periods['all'] = $lang->action->dynamic->all;
$lang->action->periods['today'] = $lang->action->dynamic->today;
$lang->action->periods['yesterday'] = $lang->action->dynamic->yesterday;
$lang->action->periods['thisweek'] = $lang->action->dynamic->thisWeek;
$lang->action->periods['lastweek'] = $lang->action->dynamic->lastWeek;
$lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
$lang->action->objectTypes['branch'] = 'Branch';
$lang->action->objectTypes['story'] = $lang->SRCommon;
@@ -107,7 +99,7 @@ $lang->action->objectTypes['design'] = 'Design';
$lang->action->objectTypes['productplan'] = 'Plan';
$lang->action->objectTypes['release'] = 'Release';
$lang->action->objectTypes['program'] = 'Program';
$lang->action->objectTypes['project'] = 'Project';
$lang->action->objectTypes['project'] = $lang->projectCommon;
$lang->action->objectTypes['execution'] = $lang->executionCommon;
$lang->action->objectTypes['task'] = 'Aufgabe';
$lang->action->objectTypes['build'] = 'Build';
@@ -216,8 +208,8 @@ $lang->action->desc->managed = '$date, by <strong>$actor</strong> m
$lang->action->desc->estimated = '$date, by <strong>$actor</strong> estimated.' . "\n";
$lang->action->desc->run = '$date, by <strong>$actor</strong> executed.' . "\n";
$lang->action->desc->syncprogram = '$date, started by <strong>$actor</strong>(starting the project sets the program status as Ongoing).' . "\n";
$lang->action->desc->syncproject = '$date, starting the execution sets the project status as Ongoing.' . "\n";
$lang->action->desc->syncmultipleproject = '$date, starting the task sets the project status as Ongoing.' . "\n";
$lang->action->desc->syncproject = '$date, starting the execution sets the ' . $lang->projectCommon . ' status as Ongoing.' . "\n";
$lang->action->desc->syncmultipleproject = '$date, starting the task sets the ' . $lang->projectCommon . ' status as Ongoing.' . "\n";
$lang->action->desc->syncexecution = '$date, starting the task sets the execution status as Ongoing.' . "\n";
$lang->action->desc->syncexecutionbychild = '$date, starting the sub stage sets the execution status as Ongoing.' . "\n";
$lang->action->desc->importfromgitlab = '$date, Issue associate created from gitlab by <strong>$actor</strong>.' . "\n";
@@ -245,7 +237,7 @@ $lang->action->desc->boot = '$date, the ZenAgent Node is boot by
$lang->action->desc->relieved = '$date, relieved by <strong>$actor</strong> .' . "\n";
$lang->action->desc->switchtolight = '$date, Switch from ALM mode to light mode by <strong>'. $lang->admin->system .'</strong>.' . "\n";
$lang->action->desc->getvnc = '$date, Remote control <strong>$extra</strong> by <strong>$actor</strong> .' . "\n";
$lang->action->desc->unlinkproduct = '$date, the project is disassociated from the $extra, synchronization disassociates the ' . $lang->executionCommon . 's of the project from the $extra.' . "\n";
$lang->action->desc->unlinkproduct = '$date, the ' . $lang->projectCommon . ' is disassociated from the $extra, synchronization disassociates the ' . $lang->executionCommon . 's of the ' . $lang->projectCommon . ' from the $extra.' . "\n";
$lang->action->desc->createdsnapshot = '$date, <strong>$actor</strong> creates a snapshot <strong>$extra</strong>。' . "\n";
$lang->action->desc->restoredsnapshot = '$date, <strong>$actor</strong> restored a snapshot <strong>$extra</strong>。' . "\n";
$lang->action->desc->editsnapshot = '$date, <strong>$actor</strong> edited the snapshot <strong>$extra</strong>。' . "\n";
@@ -321,8 +313,8 @@ $lang->action->label->marked = 'marked';
$lang->action->label->linked2execution = "Link {$lang->executionCommon}";
$lang->action->label->unlinkedfromexecution = "Unlink {$lang->executionCommon}";
$lang->action->label->linked2kanban = 'linked to kanban';
$lang->action->label->linked2project = "Link Project";
$lang->action->label->unlinkedfromproject = "Unlink Project";
$lang->action->label->linked2project = "linked to {$lang->projectCommon}";
$lang->action->label->unlinkedfromproject = "unlinked from {$lang->projectCommon}";
$lang->action->label->unlinkedfrombuild = "Unlink Build";
$lang->action->label->linked2release = "Link Release";
$lang->action->label->unlinkedfromrelease = "Unlink Release";
@@ -431,7 +423,7 @@ $lang->action->label->relieved = 'relieved';
$lang->action->label->switchtolight = 'switch from ALM mode to light mode';
$lang->action->label->linkedrepo = 'Linked Code Repo';
$lang->action->label->unlinkedrepo = 'Unlinked Code Repo';
$lang->action->label->unlinkproduct = 'Unlinked Product';
$lang->action->label->unlinkproduct = "Unlinked {$lang->productCommon}";
$lang->action->label->createdsnapshot = 'create snapshot';
$lang->action->label->restoredsnapshot = 'create snapshot';
$lang->action->label->editsnapshot = 'edit snapshot';
@@ -455,12 +447,12 @@ $lang->action->dynamicAction->program['activated'] = 'Activate Program';
$lang->action->dynamicAction->program['deleted'] = 'Delete Program';
$lang->action->dynamicAction->program['closed'] = 'Close Program';
$lang->action->dynamicAction->project['opened'] = 'Create Project';
$lang->action->dynamicAction->project['edited'] = 'Edit Project';
$lang->action->dynamicAction->project['started'] = 'Start Project';
$lang->action->dynamicAction->project['suspended'] = 'Suspend Project';
$lang->action->dynamicAction->project['activated'] = 'Activate Project';
$lang->action->dynamicAction->project['closed'] = 'Close Project';
$lang->action->dynamicAction->project['opened'] = "Create {$lang->projectCommon}";
$lang->action->dynamicAction->project['edited'] = "Edit {$lang->projectCommon}";
$lang->action->dynamicAction->project['started'] = "Start {$lang->projectCommon}";
$lang->action->dynamicAction->project['suspended'] = "Suspend {$lang->projectCommon}";
$lang->action->dynamicAction->project['activated'] = "Activate {$lang->projectCommon}";
$lang->action->dynamicAction->project['closed'] = "Close {$lang->projectCommon}";
$lang->action->dynamicAction->project['switchtolight'] = 'Switch Mode';
$lang->action->dynamicAction->product['opened'] = 'Create ' . $lang->productCommon;
@@ -512,7 +504,7 @@ $lang->action->dynamicAction->story['linked2revision'] = 'Link Story to Re
$lang->action->dynamicAction->story['unlinkedfromrevision'] = 'Unlink Story from Revision';
$lang->action->dynamicAction->story['linked2build'] = 'Link Story to Build';
$lang->action->dynamicAction->story['unlinkedfrombuild'] = 'Unlink Story from Build';
$lang->action->dynamicAction->story['unlinkedfromproject'] = 'Unlink Project';
$lang->action->dynamicAction->story['unlinkedfromproject'] = "Unlink {$lang->projectCommon}";
$lang->action->dynamicAction->story['undeleted'] = 'Restore Story';
$lang->action->dynamicAction->story['hidden'] = 'Hide Story';
$lang->action->dynamicAction->story['linked2execution'] = "Link Story";
@@ -739,7 +731,7 @@ $lang->action->label->productplan = 'Plan|productplan|view|productID=%s';
$lang->action->label->release = 'Release|release|view|productID=%s';
$lang->action->label->story = 'Story|story|view|storyID=%s';
$lang->action->label->program = "Program|program|pgmproduct|programID=%s";
$lang->action->label->project = "Project|project|index|projectID=%s";
$lang->action->label->project = "{$lang->projectCommon}|project|index|projectID=%s";
$lang->action->label->execution = "Execution|execution|task|executionID=%s";
$lang->action->label->task = 'Aufgaben|task|view|taskID=%s';
@@ -780,7 +772,7 @@ $lang->action->search = new stdclass();
$lang->action->search->objectTypeList[''] = '';
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
$lang->action->search->objectTypeList['program'] = 'Program';
$lang->action->search->objectTypeList['project'] = 'Project';
$lang->action->search->objectTypeList['project'] = $lang->projectCommon;
$lang->action->search->objectTypeList['execution'] = 'Execution';
$lang->action->search->objectTypeList['bug'] = 'Bug';
$lang->action->search->objectTypeList['case'] = 'Fälle';
@@ -919,8 +911,8 @@ $lang->action->apiTitle->marked = 'Marked';
$lang->action->apiTitle->linked2execution = "Linked to {$lang->executionCommon}";
$lang->action->apiTitle->unlinkedfromexecution = "Unlinked from {$lang->executionCommon}";
$lang->action->apiTitle->linked2kanban = 'Linked to Kanban';
$lang->action->apiTitle->linked2project = "Linked to project";
$lang->action->apiTitle->unlinkedfromproject = "Unlinked from project";
$lang->action->apiTitle->linked2project = "Linked to {$lang->projectCommon}";
$lang->action->apiTitle->unlinkedfromproject = "Unlinked from {$lang->projectCommon}";
$lang->action->apiTitle->unlinkedfrombuild = "Unlinked from build";
$lang->action->apiTitle->linked2release = "Linked to release";
$lang->action->apiTitle->unlinkedfromrelease = "Unlinked from release";
+20 -28
View File
@@ -14,7 +14,7 @@ global $config;
$lang->action->common = 'Log';
$lang->action->id = 'ID';
$lang->action->product = $lang->productCommon;
$lang->action->project = 'Project';
$lang->action->project = $lang->projectCommon;
$lang->action->execution = $lang->execution->common;
$lang->action->objectType = 'Object Type';
$lang->action->objectID = 'ID';
@@ -56,7 +56,7 @@ $lang->action->needEdit = '%s that you want to restore. Please edit it
$lang->action->historyEdit = 'The history EditBy cannot be empty.';
$lang->action->noDynamic = 'No dynamics. ';
$lang->action->undeletedTips = 'This data did not participate in the merging process during the version upgrade process, so restore is not supported.';
$lang->action->executionNoProject = 'The execution does not belong to a project,please restore the project first';
$lang->action->executionNoProject = "The execution does not belong to a {$lang->projectCommon},please restore the {$lang->projectCommon} first";
$lang->action->repoNoServer = 'The repo does not belong to a server,please restore the server first';
$lang->action->hasCreatedTask = 'Tasks have been created in this parent phase and cannot be restored!';
$lang->action->hasDeletedParent = 'Restoring this phase requires restoring the deleted parent phase %s at the same time.';
@@ -91,14 +91,6 @@ $lang->action->dynamic->all = 'All';
$lang->action->dynamic->hidden = 'Hidden';
$lang->action->dynamic->search = 'Search';
$lang->action->periods['all'] = $lang->action->dynamic->all;
$lang->action->periods['today'] = $lang->action->dynamic->today;
$lang->action->periods['yesterday'] = $lang->action->dynamic->yesterday;
$lang->action->periods['thisweek'] = $lang->action->dynamic->thisWeek;
$lang->action->periods['lastweek'] = $lang->action->dynamic->lastWeek;
$lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
$lang->action->objectTypes['branch'] = 'Branch';
$lang->action->objectTypes['story'] = $lang->SRCommon;
@@ -107,7 +99,7 @@ $lang->action->objectTypes['design'] = 'Design';
$lang->action->objectTypes['productplan'] = 'Plan';
$lang->action->objectTypes['release'] = 'Release';
$lang->action->objectTypes['program'] = 'Program';
$lang->action->objectTypes['project'] = 'Project';
$lang->action->objectTypes['project'] = $lang->projectCommon;
$lang->action->objectTypes['execution'] = $lang->executionCommon;
$lang->action->objectTypes['task'] = 'Task';
$lang->action->objectTypes['build'] = 'Build';
@@ -216,8 +208,8 @@ $lang->action->desc->managed = '$date, by <strong>$actor</strong> m
$lang->action->desc->estimated = '$date, by <strong>$actor</strong> estimated.' . "\n";
$lang->action->desc->run = '$date, by <strong>$actor</strong> executed.' . "\n";
$lang->action->desc->syncprogram = '$date, started by <strong>$actor</strong>(starting the project sets the program status as Ongoing).' . "\n";
$lang->action->desc->syncproject = '$date, starting the execution sets the project status as Ongoing.' . "\n";
$lang->action->desc->syncmultipleproject = '$date, starting the task sets the project status as Ongoing.' . "\n";
$lang->action->desc->syncproject = '$date, starting the execution sets the ' . $lang->projectCommon . ' status as Ongoing.' . "\n";
$lang->action->desc->syncmultipleproject = '$date, starting the task sets the ' . $lang->projectCommon . ' status as Ongoing.' . "\n";
$lang->action->desc->syncexecution = '$date, starting the task sets the execution status as Ongoing.' . "\n";
$lang->action->desc->syncexecutionbychild = '$date, starting the sub stage sets the execution status as Ongoing.' . "\n";
$lang->action->desc->importfromgitlab = '$date, Issue associate created from gitlab by <strong>$actor</strong>.' . "\n";
@@ -245,7 +237,7 @@ $lang->action->desc->boot = '$date, the ZenAgent Node is boot by
$lang->action->desc->relieved = '$date, relieved by <strong>$actor</strong> .' . "\n";
$lang->action->desc->switchtolight = '$date, Switch from ALM mode to light mode by <strong>'. $lang->admin->system .'</strong>.' . "\n";
$lang->action->desc->getvnc = '$date, Remote control <strong>$extra</strong> by <strong>$actor</strong> .' . "\n";
$lang->action->desc->unlinkproduct = '$date, the project is disassociated from the $extra, synchronization disassociates the ' . $lang->executionCommon . 's of the project from the $extra.' . "\n";
$lang->action->desc->unlinkproduct = '$date, the ' . $lang->projectCommon . ' is disassociated from the $extra, synchronization disassociates the ' . $lang->executionCommon . 's of the ' . $lang->projectCommon . ' from the $extra.' . "\n";
$lang->action->desc->createdsnapshot = '$date, <strong>$actor</strong> creates a snapshot <strong>$extra</strong>。' . "\n";
$lang->action->desc->restoredsnapshot = '$date, <strong>$actor</strong> restored a snapshot <strong>$extra</strong>。' . "\n";
$lang->action->desc->editsnapshot = '$date, <strong>$actor</strong> edited the snapshot <strong>$extra</strong>。' . "\n";
@@ -321,8 +313,8 @@ $lang->action->label->marked = 'marked';
$lang->action->label->linked2execution = "linked to {$lang->executionCommon}";
$lang->action->label->unlinkedfromexecution = "unlinked from {$lang->executionCommon}";
$lang->action->label->linked2kanban = 'linked to kanban';
$lang->action->label->linked2project = "linked to project";
$lang->action->label->unlinkedfromproject = "unlinked from project";
$lang->action->label->linked2project = "linked to {$lang->projectCommon}";
$lang->action->label->unlinkedfromproject = "unlinked from {$lang->projectCommon}";
$lang->action->label->unlinkedfrombuild = "unlinked Build ";
$lang->action->label->linked2release = "linked Release ";
$lang->action->label->unlinkedfromrelease = "unlinked Release ";
@@ -431,7 +423,7 @@ $lang->action->label->relieved = 'relieved';
$lang->action->label->switchtolight = 'switch from ALM mode to light mode';
$lang->action->label->linkedrepo = 'Linked Code Repo';
$lang->action->label->unlinkedrepo = 'Unlinked Code Repo';
$lang->action->label->unlinkproduct = 'Unlinked Product';
$lang->action->label->unlinkproduct = "Unlinked {$lang->productCommon}";
$lang->action->label->createdsnapshot = 'create snapshot';
$lang->action->label->restoredsnapshot = 'create snapshot';
$lang->action->label->editsnapshot = 'edit snapshot';
@@ -455,12 +447,12 @@ $lang->action->dynamicAction->program['activated'] = 'Activate Program';
$lang->action->dynamicAction->program['deleted'] = 'Delete Program';
$lang->action->dynamicAction->program['closed'] = 'Close Program';
$lang->action->dynamicAction->project['opened'] = 'Create Project';
$lang->action->dynamicAction->project['edited'] = 'Edit Project';
$lang->action->dynamicAction->project['started'] = 'Start Project';
$lang->action->dynamicAction->project['suspended'] = 'Suspend Project';
$lang->action->dynamicAction->project['activated'] = 'Activate Project';
$lang->action->dynamicAction->project['closed'] = 'Close Project';
$lang->action->dynamicAction->project['opened'] = "Create {$lang->projectCommon}";
$lang->action->dynamicAction->project['edited'] = "Edit {$lang->projectCommon}";
$lang->action->dynamicAction->project['started'] = "Start {$lang->projectCommon}";
$lang->action->dynamicAction->project['suspended'] = "Suspend {$lang->projectCommon}";
$lang->action->dynamicAction->project['activated'] = "Activate {$lang->projectCommon}";
$lang->action->dynamicAction->project['closed'] = "Close {$lang->projectCommon}";
$lang->action->dynamicAction->project['switchtolight'] = 'Switch Mode';
$lang->action->dynamicAction->product['opened'] = 'Create ' . $lang->productCommon;
@@ -512,7 +504,7 @@ $lang->action->dynamicAction->story['linked2revision'] = 'Link Story to Re
$lang->action->dynamicAction->story['unlinkedfromrevision'] = 'Unlink Story from Revision';
$lang->action->dynamicAction->story['linked2build'] = 'Link Story to Build';
$lang->action->dynamicAction->story['unlinkedfrombuild'] = 'Unlink Story from Build';
$lang->action->dynamicAction->story['unlinkedfromproject'] = 'Unlink Project';
$lang->action->dynamicAction->story['unlinkedfromproject'] = "Unlink {$lang->projectCommon}";
$lang->action->dynamicAction->story['undeleted'] = 'Restore Story';
$lang->action->dynamicAction->story['hidden'] = 'Hide Story';
$lang->action->dynamicAction->story['linked2execution'] = "Link Story";
@@ -739,7 +731,7 @@ $lang->action->label->productplan = 'Plan|productplan|view|productID=%s';
$lang->action->label->release = 'Release|release|view|productID=%s';
$lang->action->label->story = 'Story|story|view|storyID=%s';
$lang->action->label->program = "Program|program|product|programID=%s";
$lang->action->label->project = "Project|project|index|projectID=%s";
$lang->action->label->project = "{$lang->projectCommon}|project|index|projectID=%s";
$lang->action->label->execution = "Execution|execution|task|executionID=%s";
$lang->action->label->task = 'Task|task|view|taskID=%s';
@@ -780,7 +772,7 @@ $lang->action->search = new stdclass();
$lang->action->search->objectTypeList[''] = '';
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
$lang->action->search->objectTypeList['program'] = 'Program';
$lang->action->search->objectTypeList['project'] = 'Project';
$lang->action->search->objectTypeList['project'] = $lang->projectCommon;
$lang->action->search->objectTypeList['execution'] = 'Execution';
$lang->action->search->objectTypeList['bug'] = 'Bug';
$lang->action->search->objectTypeList['case'] = 'Case';
@@ -919,8 +911,8 @@ $lang->action->apiTitle->marked = 'Marked';
$lang->action->apiTitle->linked2execution = "Linked to {$lang->executionCommon}";
$lang->action->apiTitle->unlinkedfromexecution = "Unlinked from {$lang->executionCommon}";
$lang->action->apiTitle->linked2kanban = 'Linked to Kanban';
$lang->action->apiTitle->linked2project = "Linked to project";
$lang->action->apiTitle->unlinkedfromproject = "Unlinked from project";
$lang->action->apiTitle->linked2project = "Linked to {$lang->projectCommon}";
$lang->action->apiTitle->unlinkedfromproject = "Unlinked from {$lang->projectCommon}";
$lang->action->apiTitle->unlinkedfrombuild = "Unlinked from build";
$lang->action->apiTitle->linked2release = "Linked to release";
$lang->action->apiTitle->unlinkedfromrelease = "Unlinked from release";
+20 -28
View File
@@ -14,7 +14,7 @@ global $config;
$lang->action->common = 'Log';
$lang->action->id = 'ID';
$lang->action->product = $lang->productCommon;
$lang->action->project = 'Project';
$lang->action->project = $lang->projectCommon;
$lang->action->execution = $lang->execution->common;
$lang->action->objectType = "Type d'objet";
$lang->action->objectID = 'ID';
@@ -56,7 +56,7 @@ $lang->action->needEdit = '%s que vous voulez restaurer. SVP éditez l
$lang->action->historyEdit = "l'historique Edité Par ne peut pas être vide.";
$lang->action->noDynamic = "Pas d'historique.";
$lang->action->undeletedTips = 'This data did not participate in the merging process during the version upgrade process, so restore is not supported.';
$lang->action->executionNoProject = 'The execution does not belong to a project,please restore the project first';
$lang->action->executionNoProject = "The execution does not belong to a {$lang->projectCommon},please restore the {$lang->projectCommon} first";
$lang->action->repoNoServer = 'The repo does not belong to a server,please restore the server first';
$lang->action->hasCreatedTask = 'Tasks have been created in this parent phase and cannot be restored!';
$lang->action->hasDeletedParent = 'Restoring this phase requires restoring the deleted parent phase %s at the same time.';
@@ -91,14 +91,6 @@ $lang->action->dynamic->all = 'Tout';
$lang->action->dynamic->hidden = 'Caché';
$lang->action->dynamic->search = 'Rechercher';
$lang->action->periods['all'] = $lang->action->dynamic->all;
$lang->action->periods['today'] = $lang->action->dynamic->today;
$lang->action->periods['yesterday'] = $lang->action->dynamic->yesterday;
$lang->action->periods['thisweek'] = $lang->action->dynamic->thisWeek;
$lang->action->periods['lastweek'] = $lang->action->dynamic->lastWeek;
$lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
$lang->action->objectTypes['branch'] = 'Branche';
$lang->action->objectTypes['story'] = $lang->SRCommon;
@@ -107,7 +99,7 @@ $lang->action->objectTypes['design'] = 'Design';
$lang->action->objectTypes['productplan'] = 'Plan';
$lang->action->objectTypes['release'] = 'Release';
$lang->action->objectTypes['program'] = 'Program';
$lang->action->objectTypes['project'] = 'Project';
$lang->action->objectTypes['project'] = $lang->projectCommon;
$lang->action->objectTypes['execution'] = $lang->executionCommon;
$lang->action->objectTypes['task'] = 'Tâche';
$lang->action->objectTypes['build'] = 'Build';
@@ -216,8 +208,8 @@ $lang->action->desc->managed = '$date, by <strong>$actor</strong> m
$lang->action->desc->estimated = '$date, by <strong>$actor</strong> estimated.' . "\n";
$lang->action->desc->run = '$date, by <strong>$actor</strong> executed.' . "\n";
$lang->action->desc->syncprogram = '$date, started by <strong>$actor</strong>(starting the project sets the program status as Ongoing).' . "\n";
$lang->action->desc->syncproject = '$date, starting the execution sets the project status as Ongoing.' . "\n";
$lang->action->desc->syncmultipleproject = '$date, starting the task sets the project status as Ongoing.' . "\n";
$lang->action->desc->syncproject = '$date, starting the execution sets the ' . $lang->projectCommon . ' status as Ongoing.' . "\n";
$lang->action->desc->syncmultipleproject = '$date, starting the task sets the ' . $lang->projectCommon . ' status as Ongoing.' . "\n";
$lang->action->desc->syncexecution = '$date, starting the task sets the execution status as Ongoing.' . "\n";
$lang->action->desc->syncexecutionbychild = '$date, starting the sub stage sets the execution status as Ongoing.' . "\n";
$lang->action->desc->importfromgitlab = '$date, Issue associate created from gitlab by <strong>$actor</strong>.' . "\n";
@@ -245,7 +237,7 @@ $lang->action->desc->boot = '$date, the ZenAgent Node is boot by
$lang->action->desc->relieved = '$date, relieved by <strong>$actor</strong> .' . "\n";
$lang->action->desc->switchtolight = '$date, Switch from ALM mode to light mode by <strong>'. $lang->admin->system .'</strong>.' . "\n";
$lang->action->desc->getvnc = '$date, Remote control <strong>$extra</strong> by <strong>$actor</strong> .' . "\n";
$lang->action->desc->unlinkproduct = '$date, the project is disassociated from the $extra, synchronization disassociates the ' . $lang->executionCommon . 's of the project from the $extra.' . "\n";
$lang->action->desc->unlinkproduct = '$date, the ' . $lang->projectCommon . ' is disassociated from the $extra, synchronization disassociates the ' . $lang->executionCommon . 's of the ' . $lang->projectCommon . ' from the $extra.' . "\n";
$lang->action->desc->createdsnapshot = '$date, <strong>$actor</strong> creates a snapshot <strong>$extra</strong>。' . "\n";
$lang->action->desc->restoredsnapshot = '$date, <strong>$actor</strong> restored a snapshot <strong>$extra</strong>。' . "\n";
$lang->action->desc->editsnapshot = '$date, <strong>$actor</strong> edited the snapshot <strong>$extra</strong>。' . "\n";
@@ -321,8 +313,8 @@ $lang->action->label->marked = 'a marqué';
$lang->action->label->linked2execution = "a ajouté à {$lang->executionCommon}";
$lang->action->label->unlinkedfromexecution = "a enlevé de {$lang->executionCommon}";
$lang->action->label->linked2kanban = 'linked to kanban';
$lang->action->label->linked2project = "Link Project";
$lang->action->label->unlinkedfromproject = "Unlink Project";
$lang->action->label->linked2project = "linked to {$lang->projectCommon}";
$lang->action->label->unlinkedfromproject = "unlinked from {$lang->projectCommon}";
$lang->action->label->unlinkedfrombuild = "a enlevé du Build ";
$lang->action->label->linked2release = "a ajouté à une Release ";
$lang->action->label->unlinkedfromrelease = "a enlevé de la Release ";
@@ -431,7 +423,7 @@ $lang->action->label->relieved = 'relieved';
$lang->action->label->switchtolight = 'switch from ALM mode to light mode';
$lang->action->label->linkedrepo = 'Linked Code Repo';
$lang->action->label->unlinkedrepo = 'Unlinked Code Repo';
$lang->action->label->unlinkproduct = 'Unlinked Product';
$lang->action->label->unlinkproduct = "Unlinked {$lang->productCommon}";
$lang->action->label->createdsnapshot = 'create snapshot';
$lang->action->label->restoredsnapshot = 'create snapshot';
$lang->action->label->editsnapshot = 'edit snapshot';
@@ -455,12 +447,12 @@ $lang->action->dynamicAction->program['activated'] = 'Activate Program';
$lang->action->dynamicAction->program['deleted'] = 'Delete Program';
$lang->action->dynamicAction->program['closed'] = 'Close Program';
$lang->action->dynamicAction->project['opened'] = 'Créer ' . $lang->executionCommon;
$lang->action->dynamicAction->project['edited'] = 'Editer ' . $lang->executionCommon;
$lang->action->dynamicAction->project['started'] = 'Commencer ' . $lang->executionCommon;
$lang->action->dynamicAction->project['suspended'] = 'Suspendre ' . $lang->executionCommon;
$lang->action->dynamicAction->project['activated'] = 'Activer ' . $lang->executionCommon;
$lang->action->dynamicAction->project['closed'] = 'Fermer ' . $lang->executionCommon;
$lang->action->dynamicAction->project['opened'] = "Create {$lang->projectCommon}";
$lang->action->dynamicAction->project['edited'] = "Edit {$lang->projectCommon}";
$lang->action->dynamicAction->project['started'] = "Start {$lang->projectCommon}";
$lang->action->dynamicAction->project['suspended'] = "Suspend {$lang->projectCommon}";
$lang->action->dynamicAction->project['activated'] = "Activate {$lang->projectCommon}";
$lang->action->dynamicAction->project['closed'] = "Close {$lang->projectCommon}";
$lang->action->dynamicAction->project['switchtolight'] = 'Switch Mode';
$lang->action->dynamicAction->product['opened'] = 'Créer ' . $lang->productCommon;
@@ -512,7 +504,7 @@ $lang->action->dynamicAction->story['linked2revision'] = 'Inclure Story à
$lang->action->dynamicAction->story['unlinkedfromrevision'] = 'Unlink Story from Revision';
$lang->action->dynamicAction->story['linked2build'] = 'Ajouter Story au Build';
$lang->action->dynamicAction->story['unlinkedfrombuild'] = 'Détacher Story du Build';
$lang->action->dynamicAction->story['unlinkedfromproject'] = 'Détacher du Project';
$lang->action->dynamicAction->story['unlinkedfromproject'] = "Unlink {$lang->projectCommon}";
$lang->action->dynamicAction->story['undeleted'] = 'Restaurer Story';
$lang->action->dynamicAction->story['hidden'] = 'Masquer Story';
$lang->action->dynamicAction->story['linked2execution'] = "Link Story";
@@ -739,7 +731,7 @@ $lang->action->label->productplan = 'Plan|productplan|view|productID=%s';
$lang->action->label->release = 'Release|release|view|productID=%s';
$lang->action->label->story = 'Story|story|view|storyID=%s';
$lang->action->label->program = "Program|program|pgmproduct|programID=%s";
$lang->action->label->project = "Project|program|index|projectID=%s";
$lang->action->label->project = "{$lang->projectCommon}|project|index|projectID=%s";
$lang->action->label->execution = "Execution|execution|task|executionID=%s";
$lang->action->label->task = 'Tâche|task|view|taskID=%s';
@@ -780,7 +772,7 @@ $lang->action->search = new stdclass();
$lang->action->search->objectTypeList[''] = '';
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
$lang->action->search->objectTypeList['program'] = 'Program';
$lang->action->search->objectTypeList['project'] = 'Project';
$lang->action->search->objectTypeList['project'] = $lang->projectCommon;
$lang->action->search->objectTypeList['execution'] = 'Execution';
$lang->action->search->objectTypeList['bug'] = 'Bug';
$lang->action->search->objectTypeList['case'] = 'CasTest';
@@ -919,8 +911,8 @@ $lang->action->apiTitle->marked = 'Marked';
$lang->action->apiTitle->linked2execution = "Linked to {$lang->executionCommon}";
$lang->action->apiTitle->unlinkedfromexecution = "Unlinked from {$lang->executionCommon}";
$lang->action->apiTitle->linked2kanban = 'Linked to Kanban';
$lang->action->apiTitle->linked2project = "Linked to project";
$lang->action->apiTitle->unlinkedfromproject = "Unlinked from project";
$lang->action->apiTitle->linked2project = "Linked to {$lang->projectCommon}";
$lang->action->apiTitle->unlinkedfromproject = "Unlinked from {$lang->projectCommon}";
$lang->action->apiTitle->unlinkedfrombuild = "Unlinked from build";
$lang->action->apiTitle->linked2release = "Linked to release";
$lang->action->apiTitle->unlinkedfromrelease = "Unlinked from release";
-8
View File
@@ -60,14 +60,6 @@ $lang->action->dynamic->all = 'Tất cả';
$lang->action->dynamic->hidden = 'Ẩn';
$lang->action->dynamic->search = 'Tìm kiếm';
$lang->action->periods['all'] = $lang->action->dynamic->all;
$lang->action->periods['today'] = $lang->action->dynamic->today;
$lang->action->periods['yesterday'] = $lang->action->dynamic->yesterday;
$lang->action->periods['thisweek'] = $lang->action->dynamic->thisWeek;
$lang->action->periods['lastweek'] = $lang->action->dynamic->lastWeek;
$lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
$lang->action->objectTypes['branch'] = 'Nhánh';
$lang->action->objectTypes['story'] = $lang->SRCommon;
+29 -37
View File
@@ -14,7 +14,7 @@ global $config;
$lang->action->common = '系统日志';
$lang->action->id = '编号';
$lang->action->product = $lang->productCommon;
$lang->action->project = '项目';
$lang->action->project = $lang->projectCommon;
$lang->action->execution = $lang->execution->common;
$lang->action->objectType = '对象类型';
$lang->action->objectID = '对象ID';
@@ -56,7 +56,7 @@ $lang->action->needEdit = '要还原%s的名称或代号已经存在
$lang->action->historyEdit = '历史记录编辑不能为空。';
$lang->action->noDynamic = '暂时没有动态。';
$lang->action->undeletedTips = '该数据在版本升级过程中未参与数据归并流程,不支持还原。';
$lang->action->executionNoProject = '该执行没有所属的项目,请先还原项目再还原执行';
$lang->action->executionNoProject = "该执行没有所属的{$lang->projectCommon},请先还原{$lang->projectCommon}再还原执行";
$lang->action->repoNoServer = '该代码库没有所属的服务器,请先还原服务器再还原代码库';
$lang->action->hasCreatedTask = '该父阶段已创建任务,无法恢复!';
$lang->action->hasDeletedParent = '恢复该阶段需要同时恢复已删除的父阶段%s,';
@@ -91,14 +91,6 @@ $lang->action->dynamic->all = '所有';
$lang->action->dynamic->hidden = '已隐藏';
$lang->action->dynamic->search = '搜索';
$lang->action->periods['all'] = '全部';
$lang->action->periods['today'] = $lang->action->dynamic->today;
$lang->action->periods['yesterday'] = $lang->action->dynamic->yesterday;
$lang->action->periods['thisweek'] = $lang->action->dynamic->thisWeek;
$lang->action->periods['lastweek'] = $lang->action->dynamic->lastWeek;
$lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
$lang->action->objectTypes['branch'] = '分支';
$lang->action->objectTypes['story'] = $lang->SRCommon;
@@ -107,7 +99,7 @@ $lang->action->objectTypes['design'] = '设计';
$lang->action->objectTypes['productplan'] = '计划';
$lang->action->objectTypes['release'] = '发布';
$lang->action->objectTypes['program'] = '项目集';
$lang->action->objectTypes['project'] = '项目';
$lang->action->objectTypes['project'] = $lang->projectCommon;
$lang->action->objectTypes['execution'] = '执行';
$lang->action->objectTypes['task'] = '任务';
$lang->action->objectTypes['build'] = '版本';
@@ -215,19 +207,19 @@ $lang->action->desc->resolved = '$date, 由 <strong>$actor</strong>
$lang->action->desc->managed = '$date, 由 <strong>$actor</strong> 维护。' . "\n";
$lang->action->desc->estimated = '$date, 由 <strong>$actor</strong> 估算。' . "\n";
$lang->action->desc->run = '$date, 由 <strong>$actor</strong> 执行。' . "\n";
$lang->action->desc->syncprogram = '$date, 由 <strong>$actor</strong> 启动(因项目开始而启动项目集)。' . "\n";
$lang->action->desc->syncproject = '$date, 系统判断由于' . $lang->executionCommon .'开始,将项目状态置为进行中。' . "\n";
$lang->action->desc->syncmultipleproject = '$date, 系统判断由于任务开始,将项目状态置为进行中。' . "\n";
$lang->action->desc->syncprogram = '$date, 由 <strong>$actor</strong> 启动(因' . $lang->projectCommon . '开始而启动项目集)。' . "\n";
$lang->action->desc->syncproject = '$date, 系统判断由于' . $lang->executionCommon .'开始,将' . $lang->projectCommon . '状态置为进行中。' . "\n";
$lang->action->desc->syncmultipleproject = '$date, 系统判断由于任务开始,将' . $lang->projectCommon . '状态置为进行中。' . "\n";
$lang->action->desc->syncexecution = '$date, 系统判断由于任务开始,将' . $lang->executionCommon . '状态置为进行中。' . "\n";
$lang->action->desc->syncexecutionbychild = '$date, 系统判断由于子阶段开始,将' . $lang->executionCommon . '状态置为进行中。' . "\n";
$lang->action->desc->importfromgitlab = '$date, 由 <strong>$actor</strong> 从Gitlab的Issue关联创建。' . "\n";
$lang->action->desc->archived = '$date, 由 <strong>$actor</strong> 归档。' . "\n";
$lang->action->desc->restore = '$date, 由 <strong>$actor</strong> 还原。' . "\n";
$lang->action->desc->importedcard = '$date, 由 <strong>$actor</strong> 从看板 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->importedproductplan = '$date, 由 <strong>$actor</strong> 从产品计划 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->importedrelease = '$date, 由 <strong>$actor</strong> 从产品发布 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->importedexecution = '$date, 由 <strong>$actor</strong> 从项目执行 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->importedbuild = '$date, 由 <strong>$actor</strong> 从项目版本 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->importedproductplan = '$date, 由 <strong>$actor</strong> 从' . $lang->productCommon . '计划 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->importedrelease = '$date, 由 <strong>$actor</strong> 从' . $lang->productCommon . '发布 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->importedexecution = '$date, 由 <strong>$actor</strong> 从' . $lang->projectCommon . '执行 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->importedbuild = '$date, 由 <strong>$actor</strong> 从' . $lang->projectCommon . '版本 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->importedticket = '$date, 由 <strong>$actor</strong> 从反馈工单 <strong>$extra</strong> 导入。' . "\n";
$lang->action->desc->fromsonarqube = '$date, 由 <strong>$actor</strong> 从<strong>SonarQube问题</strong>转化而来。' . "\n";
$lang->action->desc->tolib = '$date, 由 <strong>$actor</strong> 导入。' . "\n";
@@ -243,9 +235,9 @@ $lang->action->desc->reboot = '$date, 由 <strong>$actor</strong>
$lang->action->desc->destroy = '$date, 由 <strong>$actor</strong> 关闭。' . "\n";
$lang->action->desc->boot = '$date, 由 <strong>$actor</strong> 启动。' . "\n";
$lang->action->desc->relieved = '$date, 由 <strong>$actor</strong> 解除孪生需求关系。' . "\n";
$lang->action->desc->switchtolight = '$date, 由于 <strong>'. $lang->admin->system .'</strong> 从全生命周期管理模式切换为轻量管理模式,项目访问控制由项目集内公开调整为私有。' . "\n";
$lang->action->desc->switchtolight = '$date, 由于 <strong>'. $lang->admin->system .'</strong> 从全生命周期管理模式切换为轻量管理模式,' . $lang->projectCommon . '访问控制由项目集内公开调整为私有。' . "\n";
$lang->action->desc->getvnc = '$date, <strong>$actor</strong>对执行节点 <strong>$extra</strong> 进行了远程操控。' . "\n";
$lang->action->desc->unlinkproduct = '$date, 系统判断由于' . $lang->executionCommon . '所属项目与$extra取消关联,同步将' . $lang->executionCommon . '与$extra取消关联。' . "\n";
$lang->action->desc->unlinkproduct = '$date, 系统判断由于' . $lang->executionCommon . '所属' . $lang->projectCommon . '与$extra取消关联,同步将' . $lang->executionCommon . '与$extra取消关联。' . "\n";
$lang->action->desc->createdsnapshot = '$date, <strong>$actor</strong> 创建了快照 <strong>$extra</strong>。' . "\n";
$lang->action->desc->restoredsnapshot = '$date, <strong>$actor</strong> 还原了快照 <strong>$extra</strong>。' . "\n";
$lang->action->desc->editsnapshot = '$date, <strong>$actor</strong> 编辑了快照 <strong>$extra</strong>。' . "\n";
@@ -321,8 +313,8 @@ $lang->action->label->marked = '编辑了';
$lang->action->label->linked2execution = "关联了{$lang->executionCommon}";
$lang->action->label->unlinkedfromexecution = "移除了{$lang->executionCommon}";
$lang->action->label->linked2kanban = '关联了看板';
$lang->action->label->linked2project = "关联了项目";
$lang->action->label->unlinkedfromproject = "移除了项目";
$lang->action->label->linked2project = "关联了{$lang->projectCommon}";
$lang->action->label->unlinkedfromproject = "移除了{$lang->projectCommon}";
$lang->action->label->unlinkedfrombuild = "移除了版本";
$lang->action->label->linked2release = "关联了发布";
$lang->action->label->unlinkedfromrelease = "移除了发布";
@@ -384,7 +376,7 @@ $lang->action->label->syncprogram = '开始了';
$lang->action->label->syncproject = '开始了';
$lang->action->label->syncexecution = '开始了';
$lang->action->label->syncexecutionbychild = '开始了';
$lang->action->label->startProgram = '(因项目开始而启动项目集)';
$lang->action->label->startProgram = "(因{$lang->projectCommon}开始而启动项目集)";
$lang->action->label->createmr = '合并请求关联了';
$lang->action->label->deletemr = '合并请求取消了';
$lang->action->label->mergedmr = '合并请求合并了';
@@ -430,8 +422,8 @@ $lang->action->label->synctwins = '同步修改了';
$lang->action->label->relieved = '解除了';
$lang->action->label->switchtolight = '从全生命周期管理模式切换为轻量管理模式';
$lang->action->label->linkedrepo = '关联代码库到';
$lang->action->label->unlinkedrepo = '取消了项目与代码库的关联';
$lang->action->label->unlinkproduct = '取消了与产品的关联';
$lang->action->label->unlinkedrepo = "取消了{$lang->projectCommon}与代码库的关联";
$lang->action->label->unlinkproduct = "取消了与{$lang->productCommon}的关联";
$lang->action->label->createdsnapshot = '创建了快照';
$lang->action->label->restoredsnapshot = '还原了快照';
$lang->action->label->editsnapshot = '编辑了快照';
@@ -455,12 +447,12 @@ $lang->action->dynamicAction->program['activated'] = '激活项目集';
$lang->action->dynamicAction->program['deleted'] = '删除项目集';
$lang->action->dynamicAction->program['closed'] = '关闭项目集';
$lang->action->dynamicAction->project['opened'] = '创建项目';
$lang->action->dynamicAction->project['edited'] = '编辑项目';
$lang->action->dynamicAction->project['started'] = '开始项目';
$lang->action->dynamicAction->project['suspended'] = '延期项目';
$lang->action->dynamicAction->project['activated'] = '激活项目';
$lang->action->dynamicAction->project['closed'] = '关闭项目';
$lang->action->dynamicAction->project['opened'] = "创建{$lang->projectCommon}";
$lang->action->dynamicAction->project['edited'] = "编辑{$lang->projectCommon}";
$lang->action->dynamicAction->project['started'] = "开始{$lang->projectCommon}";
$lang->action->dynamicAction->project['suspended'] = "延期{$lang->projectCommon}";
$lang->action->dynamicAction->project['activated'] = "激活{$lang->projectCommon}";
$lang->action->dynamicAction->project['closed'] = "关闭{$lang->projectCommon}";
$lang->action->dynamicAction->project['switchtolight'] = '切换模式';
$lang->action->dynamicAction->product['opened'] = '创建' . $lang->productCommon;
@@ -512,7 +504,7 @@ $lang->action->dynamicAction->story['linked2revision'] = "{$lang->SRCommon
$lang->action->dynamicAction->story['unlinkedfromrevision'] = "{$lang->SRCommon}取消关联代码提交";
$lang->action->dynamicAction->story['linked2build'] = "{$lang->SRCommon}关联版本";
$lang->action->dynamicAction->story['unlinkedfrombuild'] = "版本移除{$lang->SRCommon}";
$lang->action->dynamicAction->story['unlinkedfromproject'] = '移除项目';
$lang->action->dynamicAction->story['unlinkedfromproject'] = "移除{$lang->projectCommon}";
$lang->action->dynamicAction->story['undeleted'] = "还原{$lang->SRCommon}";
$lang->action->dynamicAction->story['hidden'] = "隐藏{$lang->SRCommon}";
$lang->action->dynamicAction->story['linked2execution'] = "关联$lang->SRCommon";
@@ -739,7 +731,7 @@ $lang->action->label->productplan = "计划|productplan|view|productID=%s";
$lang->action->label->release = '发布|release|view|productID=%s';
$lang->action->label->story = "{$lang->SRCommon}|story|view|storyID=%s";
$lang->action->label->program = "项目集|program|product|programID=%s";
$lang->action->label->project = "项目|project|index|projectID=%s";
$lang->action->label->project = "{$lang->projectCommon}|project|index|projectID=%s";
$lang->action->label->execution = "执行|execution|task|executionID=%s";
$lang->action->label->task = '任务|task|view|taskID=%s';
@@ -780,7 +772,7 @@ $lang->action->search = new stdclass();
$lang->action->search->objectTypeList[''] = '';
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
$lang->action->search->objectTypeList['program'] = '项目集';
$lang->action->search->objectTypeList['project'] = '项目';
$lang->action->search->objectTypeList['project'] = $lang->projectCommon;
$lang->action->search->objectTypeList['execution'] = '执行';
$lang->action->search->objectTypeList['bug'] = 'Bug';
$lang->action->search->objectTypeList['case'] = '用例';
@@ -919,8 +911,8 @@ $lang->action->apiTitle->marked = '编辑';
$lang->action->apiTitle->linked2execution = "关联{$lang->executionCommon}";
$lang->action->apiTitle->unlinkedfromexecution = "移除{$lang->executionCommon}";
$lang->action->apiTitle->linked2kanban = '关联看板';
$lang->action->apiTitle->linked2project = "关联项目";
$lang->action->apiTitle->unlinkedfromproject = "移除项目";
$lang->action->apiTitle->linked2project = "关联{$lang->projectCommon}";
$lang->action->apiTitle->unlinkedfromproject = "移除{$lang->projectCommon}";
$lang->action->apiTitle->unlinkedfrombuild = "移除版本";
$lang->action->apiTitle->linked2release = "关联发布";
$lang->action->apiTitle->unlinkedfromrelease = "移除发布";
@@ -959,4 +951,4 @@ $lang->action->desc->mergedmr = '$date, 由 <strong>$actor</
$lang->action->desc->approve = '$date, 由 <strong>$actor</strong> 审核通过。';
$lang->action->desc->reject = '$date, 由 <strong>$actor</strong> 拒绝。';
$lang->action->desc->linkedrepo = '$date, 由 <strong>$actor</strong> 关联代码库 $extra';
$lang->action->desc->unlinkedrepo = '$date, 由 <strong>$actor</strong> 取消了项目与代码库 $extra 的关联';
$lang->action->desc->unlinkedrepo = '$date, 由 <strong>$actor</strong> 取消了' . $lang->projectCommon . '与代码库 $extra 的关联';
+13 -3
View File
@@ -482,9 +482,19 @@ class actionModel extends model
if($name) $action->extra = common::hasPriv('testtask', 'view') ? html::a(helper::createLink('testtask', 'view', "taskID=$action->extra"), $name) : $name;
}
elseif(strpos('feedback,ticket', $action->objectType) === false and $actionName == 'tostory')
{
$title = $this->dao->select('title')->from(TABLE_STORY)->where('id')->eq($action->extra)->fetch('title');
if($title) $action->extra = common::hasPriv('story', 'view') ? html::a(helper::createLink('story', 'view', "storyID=$action->extra"), "#$action->extra " . $title) : "#$action->extra " . $title;
{
$productShadow = $this->dao->select('*')->from(TABLE_PRODUCT)->where('id')->in($action->product)->fetch('shadow');
$title = $this->dao->select('title')->from(TABLE_STORY)->where('id')->eq($action->extra)->fetch('title');
$defaultExtra = "#$action->extra ". $title;
if($productShadow === "1")
{
$projectID = $this->dao->select('project')->from(TABLE_PROJECTPRODUCT)->where('product')->in($action->product)->fetch('project');
if($title) $action->extra = common::hasPriv('projectstory', 'story') && $projectID ? html::a(helper::createLink('projectstory', 'story', "projectID=$projectID"), $defaultExtra) : $defaultExtra;
}
else
{
if($title) $action->extra = common::hasPriv('story', 'view') ? html::a(helper::createLink('story', 'view', "storyID=$action->extra"), $defaultExtra) : $defaultExtra;
}
}
elseif($actionName == 'importedcard')
{
+1 -1
View File
@@ -14,7 +14,7 @@
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<?php $activeClass = $currentObjectType == 'all' ? 'btn-active-text' : '';?>
<?php echo html::a($this->createLink('action', 'trash', "objectType=all&type=$type"), "<span class='text'>" . $lang->action->periods['all'] . "</span>", '', "class='btn btn-link $activeClass'");?>
<?php echo html::a($this->createLink('action', 'trash', "objectType=all&type=$type"), "<span class='text'>" . $lang->all . "</span>", '', "class='btn btn-link $activeClass'");?>
<?php
/* Output the objectType order by preferredTypeConfig. */
foreach($preferredTypeConfig as $objectType)
+2 -2
View File
@@ -10,11 +10,11 @@ if(!isset($config->safe->weak)) $config->safe->weak = '123456,password,12345,123
$config->admin->menuGroup['system'] = array('custom|mode', 'backup', 'cron', 'action|trash', 'admin|xuanxuan', 'setting|xuanxuan', 'admin|license', 'admin|checkweak', 'admin|resetpwdsetting', 'admin|safe', 'custom|timezone', 'search|buildindex', 'admin|tableengine', 'ldap', 'custom|libreoffice', 'conference', 'client');
$config->admin->menuGroup['company'] = array('dept', 'company', 'user', 'group', 'tutorial');
$config->admin->menuGroup['switch'] = array('admin|setmodule');
$config->admin->menuGroup['model'] = array('auditcl', 'stage', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|estimate', 'custom|hours', 'subject', 'process', 'activity', 'zoutput', 'classify', 'holiday', 'reviewsetting');
$config->admin->menuGroup['model'] = array('auditcl', 'stage', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|percent','custom|estimate', 'custom|hours', 'subject', 'process', 'activity', 'zoutput', 'classify', 'holiday', 'reviewsetting');
$config->admin->menuGroup['feature'] = array('custom|set', 'custom|product', 'custom|execution', 'custom|required', 'custom|kanban', 'approvalflow', 'measurement', 'meetingroom', 'custom|browsestoryconcept', 'custom|kanban', 'sqlbuilder', 'report');
$config->admin->menuGroup['template'] = array('custom|set', 'baseline');
$config->admin->menuGroup['message'] = array('mail', 'webhook', 'sms', 'message');
$config->admin->menuGroup['dev'] = array('dev', 'entry');
$config->admin->menuGroup['dev'] = array('dev', 'entry', 'editor');
$config->admin->menuGroup['extension'] = array('extension');
$config->admin->menuGroup['convert'] = array('convert');
+11 -7
View File
@@ -89,15 +89,17 @@ if(helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus')) $lang
$lang->admin->menuList->model['tabMenu']['common']['build'] = array('link' => "{$lang->build->common}|custom|required|module=build", 'alias' => 'set', 'exclude' => 'custom');
$lang->admin->menuList->model['tabMenu']['common']['flow'] = array('link' => "{$lang->custom->flow}|custom|flow|", 'divider' => true);
$lang->admin->menuList->model['tabMenu']['common']['code'] = array('link' => "{$lang->code}|custom|code|");
$lang->admin->menuList->model['tabMenu']['common']['percent'] = array('link' => "{$lang->stage->percent}|custom|percent|");
$lang->admin->menuList->model['tabMenu']['common']['hours'] = array('link' => "{$lang->workingHour}|custom|hours|", 'subModule' => 'holiday', 'links' => array('holiday|browse|', 'custom|hours|'));
if(helper::hasFeature('waterfall')) $lang->admin->menuList->model['tabMenu']['waterfall']['stage'] = array('link' => "{$lang->stage->list}|stage|browse|", 'subModule' => 'stage', 'exclude' => 'stage-plusbrowse');
if(helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['waterfallplus']['stage'] = array('link' => "{$lang->stage->list}|stage|plusbrowse|", 'subModule' => 'stage', 'exclude' => 'stage-browse');
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['5'] = 'project';
if(helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['7'] = 'stage';
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['10'] = 'build';
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['35'] = 'flow';
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['40'] = 'code';
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['43'] = 'percent';
$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['45'] = 'hours';
if(helper::hasFeature('waterfall')) $lang->admin->menuList->model['tabMenu']['menuOrder']['waterfall']['5'] = 'stage';
if(helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['menuOrder']['waterfallplus']['5'] = 'stage';
@@ -163,15 +165,17 @@ $lang->admin->menuList->message['menuOrder']['10'] = 'webhook';
$lang->admin->menuList->message['menuOrder']['20'] = 'browser';
$lang->admin->menuList->message['menuOrder']['25'] = 'setting';
$lang->admin->menuList->dev['subMenu']['api'] = array('link' => "{$lang->api->doc}|dev|api|module=index");
$lang->admin->menuList->dev['subMenu']['db'] = array('link' => "{$lang->database}|dev|db|table=" . trim(TABLE_EFFORT, '`'));
$lang->admin->menuList->dev['subMenu']['editor'] = array('link' => "{$lang->editor}|dev|editor|");
$lang->admin->menuList->dev['subMenu']['entry'] = array('link' => "{$lang->admin->entry}|entry|browse|", 'subModule' => 'entry');
$lang->admin->menuList->dev['subMenu']['api'] = array('link' => "{$lang->api->doc}|dev|api|module=index");
$lang->admin->menuList->dev['subMenu']['db'] = array('link' => "{$lang->database}|dev|db|table=" . trim(TABLE_EFFORT, '`'));
$lang->admin->menuList->dev['subMenu']['langItem'] = array('link' => "{$lang->langItem}|dev|langitem|");
$lang->admin->menuList->dev['subMenu']['editor'] = array('link' => "{$lang->editor->common}|dev|editor|", 'subModule' => 'editor');
$lang->admin->menuList->dev['subMenu']['entry'] = array('link' => "{$lang->admin->entry}|entry|browse|", 'subModule' => 'entry');
$lang->admin->menuList->dev['menuOrder']['5'] = 'api';
$lang->admin->menuList->dev['menuOrder']['10'] = 'db';
$lang->admin->menuList->dev['menuOrder']['15'] = 'editor';
$lang->admin->menuList->dev['menuOrder']['20'] = 'entry';
$lang->admin->menuList->dev['menuOrder']['15'] = 'langItem';
$lang->admin->menuList->dev['menuOrder']['20'] = 'editor';
$lang->admin->menuList->dev['menuOrder']['25'] = 'entry';
if($config->edition != 'max')
{
+21 -7
View File
@@ -320,6 +320,11 @@ class adminModel extends model
{
$menu['disabled'] = true;
if(!isset($menu['link'])) $menu['link'] = '';
if($menuKey == 'company')
{
$dept = $this->dao->select('id')->from(TABLE_DEPT)->fetch();
if($dept and common::hasPriv('company', 'browse')) $menu['link'] = helper::createLink('company', 'browse');
}
/* Set links to authorized navigation. */
if(isset($menu['subMenu']))
@@ -333,6 +338,21 @@ class adminModel extends model
/* Check sub menu priv. */
foreach($subMenuList as $subMenuKey => $subMenu)
{
if($menuKey == 'message' and $subMenuKey == 'mail')
{
$this->loadModel('mail');
if(!$this->config->mail->turnon and !$this->session->mailConfig) $subMenu['link'] = $this->lang->mail->common . '|mail|detect|';
}
if($menuKey == 'dev' and $subMenuKey == 'editor')
{
if(!empty($this->config->global->editor)) $subMenu['link'] = $this->lang->editor->common . '|editor|index|';
if(empty($this->config->global->editor) and !$this->app->user->admin)
{
unset($menu['subMenu']['editor']);
continue;
}
}
$link = array();
if(isset($menu['tabMenu'][$subMenuKey]))
{
@@ -362,12 +382,6 @@ class adminModel extends model
}
else
{
if($menuKey == 'message' and $subMenuKey == 'mail')
{
$this->loadModel('mail');
if(!$this->config->mail->turnon and !$this->session->mailConfig) $subMenu['link'] = $this->lang->mail->common . '|mail|detect|';
}
$link = $this->getHasPrivLink($subMenu);
}
@@ -634,7 +648,7 @@ class adminModel extends model
$connected = curl_exec($curl);
curl_close($curl);
return (bool)$connected;
return $connected ? true : false;
}
/**
+8 -1
View File
@@ -1,3 +1,10 @@
body {padding-bottom: 0px; background-color: #fff;}
::-webkit-scrollbar {width: 10px; height: 10px;}
::-webkit-scrollbar-button {width: 0; height: 0;}
::-webkit-scrollbar-thumb:vertical {min-height: 28px; background-color: rgba(0, 0, 0, 0.2); background-clip: padding-box; border-radius: 2px; -webkit-box-shadow: inset 1px 1px 0 rgb(0 0 0 / 10%), inset 0 -1px 0 rgb(0 0 0 / 7%);}
::-webkit-scrollbar-track:hover {background-color:rgba(0,0,0,.05);-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.1);}
::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,.4);}
body.m-api-debug {padding-bottom: 0px; background-color: #fff;}
#api p {margin: 5px 0 2px 0;}
.c-name {width: 80px;}
.m-api-debug .main-header {padding: 10px 20px;}
-1
View File
@@ -41,7 +41,6 @@ var app = new Vue({
},
methods: {
changeAttr(val) {
// console.log('更新之前', JSON.stringify(val))
this.body = val;
},
changeType(val) {
-1
View File
@@ -58,7 +58,6 @@ var app = new Vue({
},
methods: {
changeAttr(val) {
// console.log('新的值', JSON.stringify(val))
this.body = val
},
changeType(val) {
+1
View File
@@ -215,3 +215,4 @@ $lang->api_lib_release->version = 'Version';
$lang->api->error = new stdclass();
$lang->api->error->onlySelect = 'Das SQL Interface erlaubt nur SELECT Abfragen.';
$lang->api->error->disabled = 'For security reasons, this feature is disabled. You can go to the config directory and modify the configuration item %s to open this function.';
$lang->api->error->notInput = 'Debugging is not supported temporarily due to field parameter type restrictions';
+1
View File
@@ -215,3 +215,4 @@ $lang->api_lib_release->version = 'Version';
$lang->api->error = new stdclass();
$lang->api->error->onlySelect = 'SQL API only allows SELECT query.';
$lang->api->error->disabled = 'For security reasons, this feature is disabled. Go to the config directory and modify the configuration item %s to enable it.';
$lang->api->error->notInput = 'Debugging is not supported temporarily due to field parameter type restrictions';
+1
View File
@@ -215,3 +215,4 @@ $lang->api_lib_release->version = 'Version';
$lang->api->error = new stdclass();
$lang->api->error->onlySelect = 'Cette interface SQL ne supporte que les requêtes SELECT.';
$lang->api->error->disabled = 'For security reasons, this feature is disabled. You can go to the config directory and modify the configuration item %s to open this function.';
$lang->api->error->notInput = 'Debugging is not supported temporarily due to field parameter type restrictions';
+1
View File
@@ -215,3 +215,4 @@ $lang->api_lib_release->version = '版本';
$lang->api->error = new stdclass();
$lang->api->error->onlySelect = 'SQL查询接口只允许SELECT查询';
$lang->api->error->disabled = '因为安全原因,该功能被禁用。可以到config目录,修改配置项 %s,打开此功能。';
$lang->api->error->notInput = '因字段参数类型限制,暂不支持调试';
+4
View File
@@ -20,7 +20,11 @@
<?php foreach($method->parameters as $param):?>
<tr>
<th class='c-name'><?php echo $param->name?></th>
<?php if(!$param->isOptional() or is_string($param->getDefaultValue())):?>
<td><?php echo html::input("$param->name", $param->isOptional() ? $param->getDefaultValue() : '', "class='form-control'")?></td>
<?php else:?>
<td><?php echo $lang->api->error->notInput . html::hidden("$param->name", '', "class='form-control'")?></td>
<?php endif;?>
</tr>
<?php endforeach;?>
<tr>
+35 -35
View File
@@ -76,7 +76,7 @@ $lang->block->consumedHours = 'Cost';
$lang->block->time = 'No';
$lang->block->week = 'Week';
$lang->block->month = 'Month';
$lang->block->selectProduct = 'Product selection';
$lang->block->selectProduct = "{$lang->productCommon} selection";
$lang->block->of = ' von ';
$lang->block->remain = 'Left';
$lang->block->allStories = 'All';
@@ -114,10 +114,10 @@ $lang->block->left = 'Remain';
$lang->block->titleList['flowchart'] = 'Flow Chart';
$lang->block->titleList['guide'] = 'Guides';
$lang->block->titleList['statistic'] = 'Statistic';
$lang->block->titleList['recentproject'] = 'Recent Project';
$lang->block->titleList['recentproject'] = "Recent {$lang->projectCommon}";
$lang->block->titleList['assigntome'] = 'Assign to me';
$lang->block->titleList['projectteam'] = 'Project manpower input';
$lang->block->titleList['project'] = 'Project List';
$lang->block->titleList['projectteam'] = "{$lang->projectCommon} manpower input";
$lang->block->titleList['project'] = "{$lang->projectCommon} List";
$lang->block->titleList['dynamic'] = 'Dynamic';
$lang->block->titleList['list'] = 'Todo List';
$lang->block->titleList['contribute'] = 'Contribute';
@@ -125,7 +125,7 @@ $lang->block->titleList['scrumoverview'] = 'Scrumoverview';
$lang->block->titleList['scrumtest'] = 'Scrum Test';
$lang->block->titleList['scrumlist'] = 'Scrum List';
$lang->block->titleList['sprint'] = 'Sprint';
$lang->block->titleList['projectdynamic'] = 'Project Dynamic';
$lang->block->titleList['projectdynamic'] = "{$lang->projectCommon} Dynamic";
$lang->block->titleList['bug'] = 'Bug';
$lang->block->titleList['case'] = 'Case';
$lang->block->titleList['testtask'] = 'Test Task';
@@ -142,7 +142,7 @@ $lang->block->default['waterfall']['project']['6']['source'] = 'project';
$lang->block->default['waterfallplus'] = $lang->block->default['waterfall'];
$lang->block->default['scrum']['project']['1']['title'] = 'Project Overall';
$lang->block->default['scrum']['project']['1']['title'] = $lang->projectCommon . ' Overall';
$lang->block->default['scrum']['project']['1']['block'] = 'scrumoverview';
$lang->block->default['scrum']['project']['1']['grid'] = 8;
@@ -288,7 +288,7 @@ $lang->block->default['full']['my']['4']['grid'] = 4;
$lang->block->default['full']['my']['4']['source'] = 'todo';
$lang->block->default['full']['my']['4']['params']['count'] = '20';
$lang->block->default['full']['my']['5']['title'] = 'Project Statistic';
$lang->block->default['full']['my']['5']['title'] = "{$lang->projectCommon} Statistic";
$lang->block->default['full']['my']['5']['block'] = 'statistic';
$lang->block->default['full']['my']['5']['source'] = 'project';
$lang->block->default['full']['my']['5']['grid'] = 8;
@@ -299,8 +299,8 @@ $lang->block->default['full']['my']['6']['block'] = 'contribute';
$lang->block->default['full']['my']['6']['source'] = '';
$lang->block->default['full']['my']['6']['grid'] = 4;
$lang->block->default['full']['my']['7']['title'] = 'Recent Project';
$lang->block->default['full']['my']['7']['block'] = 'recentproject';
$lang->block->default['full']['my']['7']['title'] = "Recent {$lang->projectCommon}s";
$lang->block->default['full']['my']['7']['block'] = "recent{$lang->projectCommon}";
$lang->block->default['full']['my']['7']['source'] = 'project';
$lang->block->default['full']['my']['7']['grid'] = 8;
@@ -324,8 +324,8 @@ $lang->block->default['full']['my']['9']['block'] = 'project';
$lang->block->default['full']['my']['9']['source'] = 'project';
$lang->block->default['full']['my']['9']['grid'] = 8;
$lang->block->default['full']['my']['10']['title'] = 'Project List';
$lang->block->default['full']['my']['10']['block'] = 'project';
$lang->block->default['full']['my']['10']['title'] = "{$lang->projectCommon} List";
$lang->block->default['full']['my']['10']['block'] = $lang->projectCommon;
$lang->block->default['full']['my']['10']['source'] = 'project';
$lang->block->default['full']['my']['10']['grid'] = 8;
@@ -356,21 +356,21 @@ $lang->block->availableBlocks->feedback = 'Feedbacks';
$lang->block->availableBlocks->ticket = 'Tickets';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['project'] = 'Project';
$lang->block->moduleList['project'] = $lang->projectCommon;
$lang->block->moduleList['execution'] = $lang->execution->common;
$lang->block->moduleList['qa'] = 'QA';
$lang->block->moduleList['todo'] = 'Todos';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = 'Project List';
$lang->block->modules['project']->availableBlocks->recentproject = 'Recent Project';
$lang->block->modules['project']->availableBlocks->statistic = 'Project Statistic';
$lang->block->modules['project']->availableBlocks->projectteam = 'Project Human Input';
$lang->block->modules['project']->availableBlocks->project = "{$lang->projectCommon} List";
$lang->block->modules['project']->availableBlocks->recentproject = "Recent {$lang->projectCommon}";
$lang->block->modules['project']->availableBlocks->statistic = "{$lang->projectCommon} Statistic";
$lang->block->modules['project']->availableBlocks->projectteam = "{$lang->projectCommon} Manpower Input";
$lang->block->modules['scrum']['index'] = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = 'Project Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = "{$lang->projectCommon} Overview";
$lang->block->modules['scrum']['index']->availableBlocks->scrumlist = $lang->executionCommon . ' List';
$lang->block->modules['scrum']['index']->availableBlocks->sprint = $lang->executionCommon . ' Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumtest = 'Test Version';
@@ -423,10 +423,10 @@ $lang->block->orderByList->product['status_asc'] = 'Status Aufsteigend';
$lang->block->orderByList->product['status_desc'] = 'Status Absteigend';
$lang->block->orderByList->project = array();
$lang->block->orderByList->project['id_asc'] = 'ID Aufsteigend';
$lang->block->orderByList->project['id_desc'] = 'ID Absteigend';
$lang->block->orderByList->project['status_asc'] = 'Status Aufsteigend';
$lang->block->orderByList->project['status_desc'] = 'Status Absteigend';
$lang->block->orderByList->project['id_asc'] = "{$lang->projectCommon} ID ASC";
$lang->block->orderByList->project['id_desc'] = "{$lang->projectCommon} ID DESC";
$lang->block->orderByList->project['status_asc'] = "{$lang->projectCommon} Status ASC";
$lang->block->orderByList->project['status_desc'] = "{$lang->projectCommon} Status DESC";
$lang->block->orderByList->execution = array();
$lang->block->orderByList->execution['id_asc'] = 'ID Aufsteigend';
@@ -529,18 +529,18 @@ $lang->block->typeList->testtask['done'] = 'Erledigt';
$lang->block->typeList->testtask['all'] = 'Alle';
$lang->block->modules['project']->moreLinkList = new stdclass();
$lang->block->modules['project']->moreLinkList->recentproject = 'project|browse|';
$lang->block->modules['project']->moreLinkList->statistic = 'project|browse|';
$lang->block->modules['project']->moreLinkList->project = 'project|browse|';
$lang->block->modules['project']->moreLinkList->recentproject = "project|browse|";
$lang->block->modules['project']->moreLinkList->statistic = "project|browse|";
$lang->block->modules['project']->moreLinkList->project = "project|browse|";
$lang->block->modules['project']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['project']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['project']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['project']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['project']->moreLinkList->scrumlist = 'project|execution|';
$lang->block->modules['project']->moreLinkList->scrumlist = "project|execution|";
$lang->block->modules['project']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['project']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['project']->moreLinkList->sprint = 'project|execution|';
$lang->block->modules['project']->moreLinkList->projectdynamic = 'project|dynamic|';
$lang->block->modules['project']->moreLinkList->sprint = "project|execution|";
$lang->block->modules['project']->moreLinkList->projectdynamic = "project|dynamic|";
$lang->block->modules['product']->moreLinkList = new stdclass();
$lang->block->modules['product']->moreLinkList->list = 'product|all|';
@@ -572,9 +572,9 @@ $lang->block->gridOptions[4] = 'Rechts';
$lang->block->flowchart = array();
$lang->block->flowchart['admin'] = array('Administrator', 'Add Departments', 'Benutzer erstellen', 'Rechte pflegen');
if($config->systemMode == 'ALM') $lang->block->flowchart['program'] = array('Program Owner', 'Create Program', 'Link Product', "Create Project", "Budgeting and planning", 'Add Stakeholder');
if($config->systemMode == 'ALM') $lang->block->flowchart['program'] = array('Program Owner', 'Create Program', "Link {$lang->productCommon}", "Create {$lang->projectCommon}", "Budgeting and planning", 'Add Stakeholder');
$lang->block->flowchart['product'] = array($lang->productCommon . ' Besitzer', $lang->productCommon . ' erstellen', 'Module pflegen', 'Pläne pflegen', 'Storys pflegen', 'Release erstellen');
$lang->block->flowchart['project'] = array('Project Manager', 'Add projects and ' . $lang->execution->common . 's', 'Maintain Teams', 'Link Stories', 'Create Tasks', 'Track');
$lang->block->flowchart['project'] = array('Project Manager', "Add {$lang->productCommon}s and " . $lang->execution->common . 's', 'Maintain Teams', 'Link Stories', 'Create Tasks', 'Track');
$lang->block->flowchart['dev'] = array('Entwickler', 'Aufgabe/Bugs anfordern', 'Update Status', 'Aufgaben/Bugs abschließen');
$lang->block->flowchart['tester'] = array('QS Team', 'Fälle erstellen', 'Fälle ausführen', 'Bug Berichte', 'Bugs überprüfen', 'Bugs schließen');
@@ -587,8 +587,8 @@ $lang->block->zentaoapp->allStorySum = 'Total Stories';
$lang->block->zentaoapp->storyCompleteRate = 'Story CompleteRate';
$lang->block->zentaoapp->latestExecution = 'Latest Execution';
$lang->block->zentaoapp->involvedExecution = 'Involved Execution';
$lang->block->zentaoapp->mangedProduct = 'Manged Product';
$lang->block->zentaoapp->involvedProject = 'Involved Project';
$lang->block->zentaoapp->mangedProduct = "Manged {$lang->productCommon}";
$lang->block->zentaoapp->involvedProject = "Involved {$lang->projectCommon}";
$lang->block->zentaoapp->customIndexCard = 'Custom Index Cards';
$lang->block->zentaoapp->createStory = 'Story Create';
$lang->block->zentaoapp->createEffort = 'Effort Create';
@@ -599,7 +599,7 @@ $lang->block->zentaoapp->notSupportKanban = 'The mobile terminal does not su
$lang->block->zentaoapp->notSupportVersion = 'This version of ZenTao is not currently supported on the mobile terminal';
$lang->block->zentaoapp->incompatibleVersion = 'The current version of ZenTao is lower, please upgrade to the latest version and try again';
$lang->block->zentaoapp->canNotGetVersion = 'Failed to get ZenTao version, please confirm if the URL is correct';
$lang->block->zentaoapp->desc = 'ZenTao mobile app provides you with a mobile work environment, which is convenient for managing personal to-do tasks at any time, tracking project progress, and enhancing the flexibility and agility of project management.';
$lang->block->zentaoapp->desc = "ZenTao mobile app provides you with a mobile work environment, which is convenient for managing personal to-do tasks at any time, tracking {$lang->projectCommon} progress, and enhancing the flexibility and agility of {$lang->projectCommon} management.";
$lang->block->zentaoapp->downloadTip = 'Scan QR code to download';
$lang->block->zentaoclient = new stdClass();
@@ -632,11 +632,11 @@ $lang->block->visionTitle = 'The user interface of ZenTao is divided
$lang->block->visions['rnd'] = new stdclass();
$lang->block->visions['rnd']->key = 'rnd';
$lang->block->visions['rnd']->title = 'Full feature interface';
$lang->block->visions['rnd']->text = 'Integrate the program, product, project, execution, test, etc., and provide the lifecycle project management solution.';
$lang->block->visions['rnd']->text = "Integrate the program, {$lang->productCommon}, {$lang->projectCommon}, execution, test, etc., and provide the lifecycle {$lang->projectCommon} management solution.";
$lang->block->visions['lite'] = new stdclass();
$lang->block->visions['lite']->key = 'lite';
$lang->block->visions['lite']->title = 'Operation Management Interface';
$lang->block->visions['lite']->text = 'Specially designed for Non-R&D teams, and based on the visual Kanban project management model.';
$lang->block->visions['lite']->text = "Specially designed for Non-R&D teams, and based on the visual Kanban {$lang->projectCommon} management model.";
$lang->block->customModes['light'] = 'Light Mode';
$lang->block->customModes['ALM'] = 'ALM Mode';
@@ -644,4 +644,4 @@ $lang->block->customModes['ALM'] = 'ALM Mode';
$lang->block->customModeTip = new stdClass();
$lang->block->customModeTip->common = 'There are 2 running modes of ZenTao: Light Mode and ALM Mode.';
$lang->block->customModeTip->ALM = 'The concept is more complete and rigorous, and the function is more abundant. It is suitable for medium and large R&D teams.';
$lang->block->customModeTip->light = 'Provides the core function of project management, suitable for small R&D teams.';
$lang->block->customModeTip->light = "Provides the core function of {$lang->projectCommon} management, suitable for small R&D teams.";
+35 -35
View File
@@ -76,7 +76,7 @@ $lang->block->consumedHours = 'Cost';
$lang->block->time = 'No';
$lang->block->week = 'Week';
$lang->block->month = 'Month';
$lang->block->selectProduct = 'Product selection';
$lang->block->selectProduct = "{$lang->productCommon} selection";
$lang->block->of = ' of ';
$lang->block->remain = 'Left';
$lang->block->allStories = 'All';
@@ -114,10 +114,10 @@ $lang->block->left = 'Remain';
$lang->block->titleList['flowchart'] = 'Flow Chart';
$lang->block->titleList['guide'] = 'Guides';
$lang->block->titleList['statistic'] = 'Statistic';
$lang->block->titleList['recentproject'] = 'Recent Project';
$lang->block->titleList['recentproject'] = "Recent {$lang->projectCommon}";
$lang->block->titleList['assigntome'] = 'Assign to me';
$lang->block->titleList['projectteam'] = 'Project manpower input';
$lang->block->titleList['project'] = 'Project List';
$lang->block->titleList['projectteam'] = "{$lang->projectCommon} manpower input";
$lang->block->titleList['project'] = "{$lang->projectCommon} List";
$lang->block->titleList['dynamic'] = 'Dynamic';
$lang->block->titleList['list'] = 'Todo List';
$lang->block->titleList['contribute'] = 'Contribute';
@@ -125,7 +125,7 @@ $lang->block->titleList['scrumoverview'] = 'Scrumoverview';
$lang->block->titleList['scrumtest'] = 'Scrum Test';
$lang->block->titleList['scrumlist'] = 'Scrum List';
$lang->block->titleList['sprint'] = 'Sprint';
$lang->block->titleList['projectdynamic'] = 'Project Dynamic';
$lang->block->titleList['projectdynamic'] = "{$lang->projectCommon} Dynamic";
$lang->block->titleList['bug'] = 'Bug';
$lang->block->titleList['case'] = 'Case';
$lang->block->titleList['testtask'] = 'Test Task';
@@ -142,7 +142,7 @@ $lang->block->default['waterfall']['project']['6']['source'] = 'project';
$lang->block->default['waterfallplus'] = $lang->block->default['waterfall'];
$lang->block->default['scrum']['project']['1']['title'] = 'Project Overview';
$lang->block->default['scrum']['project']['1']['title'] = $lang->projectCommon . ' Overview';
$lang->block->default['scrum']['project']['1']['block'] = 'scrumoverview';
$lang->block->default['scrum']['project']['1']['grid'] = 8;
@@ -288,7 +288,7 @@ $lang->block->default['full']['my']['4']['grid'] = 4;
$lang->block->default['full']['my']['4']['source'] = 'todo';
$lang->block->default['full']['my']['4']['params']['count'] = '20';
$lang->block->default['full']['my']['5']['title'] = 'Project Statistic';
$lang->block->default['full']['my']['5']['title'] = "{$lang->projectCommon} Statistic";
$lang->block->default['full']['my']['5']['block'] = 'statistic';
$lang->block->default['full']['my']['5']['source'] = 'project';
$lang->block->default['full']['my']['5']['grid'] = 8;
@@ -299,8 +299,8 @@ $lang->block->default['full']['my']['6']['block'] = 'contribute';
$lang->block->default['full']['my']['6']['source'] = '';
$lang->block->default['full']['my']['6']['grid'] = 4;
$lang->block->default['full']['my']['7']['title'] = 'Recent Projects';
$lang->block->default['full']['my']['7']['block'] = 'recentproject';
$lang->block->default['full']['my']['7']['title'] = "Recent {$lang->projectCommon}s";
$lang->block->default['full']['my']['7']['block'] = "recent{$lang->projectCommon}";
$lang->block->default['full']['my']['7']['source'] = 'project';
$lang->block->default['full']['my']['7']['grid'] = 8;
@@ -324,8 +324,8 @@ $lang->block->default['full']['my']['9']['block'] = 'projectteam';
$lang->block->default['full']['my']['9']['source'] = 'project';
$lang->block->default['full']['my']['9']['grid'] = 8;
$lang->block->default['full']['my']['10']['title'] = 'Project List';
$lang->block->default['full']['my']['10']['block'] = 'project';
$lang->block->default['full']['my']['10']['title'] = "{$lang->projectCommon} List";
$lang->block->default['full']['my']['10']['block'] = $lang->projectCommon;
$lang->block->default['full']['my']['10']['source'] = 'project';
$lang->block->default['full']['my']['10']['grid'] = 8;
@@ -356,21 +356,21 @@ $lang->block->availableBlocks->feedback = 'Feedbacks';
$lang->block->availableBlocks->ticket = 'Tickets';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['project'] = 'Project';
$lang->block->moduleList['project'] = $lang->projectCommon;
$lang->block->moduleList['execution'] = $lang->execution->common;
$lang->block->moduleList['qa'] = 'Test';
$lang->block->moduleList['todo'] = 'Todo';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = 'Project List';
$lang->block->modules['project']->availableBlocks->recentproject = 'Recent Project';
$lang->block->modules['project']->availableBlocks->statistic = 'Project Statistic';
$lang->block->modules['project']->availableBlocks->projectteam = 'Project Manpower Input';
$lang->block->modules['project']->availableBlocks->project = "{$lang->projectCommon} List";
$lang->block->modules['project']->availableBlocks->recentproject = "Recent {$lang->projectCommon}";
$lang->block->modules['project']->availableBlocks->statistic = "{$lang->projectCommon} Statistic";
$lang->block->modules['project']->availableBlocks->projectteam = "{$lang->projectCommon} Manpower Input";
$lang->block->modules['scrum']['index'] = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = 'Project Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = "{$lang->projectCommon} Overview";
$lang->block->modules['scrum']['index']->availableBlocks->scrumlist = $lang->executionCommon . ' List';
$lang->block->modules['scrum']['index']->availableBlocks->sprint = $lang->executionCommon . ' Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumtest = 'Test Version';
@@ -423,10 +423,10 @@ $lang->block->orderByList->product['status_asc'] = 'Product Status ASC';
$lang->block->orderByList->product['status_desc'] = 'Product Status DESC';
$lang->block->orderByList->project = array();
$lang->block->orderByList->project['id_asc'] = 'Project ID ASC';
$lang->block->orderByList->project['id_desc'] = 'Project ID DESC';
$lang->block->orderByList->project['status_asc'] = 'Project Status ASC';
$lang->block->orderByList->project['status_desc'] = 'Project Status DESC';
$lang->block->orderByList->project['id_asc'] = "{$lang->projectCommon} ID ASC";
$lang->block->orderByList->project['id_desc'] = "{$lang->projectCommon} ID DESC";
$lang->block->orderByList->project['status_asc'] = "{$lang->projectCommon} Status ASC";
$lang->block->orderByList->project['status_desc'] = "{$lang->projectCommon} Status DESC";
$lang->block->orderByList->execution = array();
$lang->block->orderByList->execution['id_asc'] = 'Execution ID ASC';
@@ -529,18 +529,18 @@ $lang->block->typeList->testtask['done'] = 'Done';
$lang->block->typeList->testtask['all'] = 'All';
$lang->block->modules['project']->moreLinkList = new stdclass();
$lang->block->modules['project']->moreLinkList->recentproject = 'project|browse|';
$lang->block->modules['project']->moreLinkList->statistic = 'project|browse|';
$lang->block->modules['project']->moreLinkList->project = 'project|browse|';
$lang->block->modules['project']->moreLinkList->recentproject = "project|browse|";
$lang->block->modules['project']->moreLinkList->statistic = "project|browse|";
$lang->block->modules['project']->moreLinkList->project = "project|browse|";
$lang->block->modules['project']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['project']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['project']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['project']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['project']->moreLinkList->scrumlist = 'project|execution|';
$lang->block->modules['project']->moreLinkList->scrumlist = "project|execution|";
$lang->block->modules['project']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['project']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['project']->moreLinkList->sprint = 'project|execution|';
$lang->block->modules['project']->moreLinkList->projectdynamic = 'project|dynamic|';
$lang->block->modules['project']->moreLinkList->sprint = "project|execution|";
$lang->block->modules['project']->moreLinkList->projectdynamic = "project|dynamic|";
$lang->block->modules['product']->moreLinkList = new stdclass();
$lang->block->modules['product']->moreLinkList->list = 'product|all|';
@@ -572,9 +572,9 @@ $lang->block->gridOptions[4] = 'Right';
$lang->block->flowchart = array();
$lang->block->flowchart['admin'] = array('Administrator', 'Add Departments', 'Add Users', 'Maintain Privileges');
if($config->systemMode == 'ALM') $lang->block->flowchart['program'] = array('Program Owner', 'Create Program', 'Link Product', "Create Project", "Budgeting and planning", 'Add Stakeholder');
if($config->systemMode == 'ALM') $lang->block->flowchart['program'] = array('Program Owner', 'Create Program', "Link {$lang->productCommon}", "Create {$lang->projectCommon}", "Budgeting and planning", 'Add Stakeholder');
$lang->block->flowchart['product'] = array($lang->productCommon . ' Owner', 'Add ' . $lang->productCommon, 'Maintain Modules', 'Maintain Plans', 'Maintain Stories', 'Create Releases');
$lang->block->flowchart['project'] = array('Project Manager', 'Add projects and ' . $lang->execution->common . 's', 'Maintain Teams', 'Link Stories', 'Create Tasks', 'Track');
$lang->block->flowchart['project'] = array('Project Manager', "Add {$lang->productCommon}s and " . $lang->execution->common . 's', 'Maintain Teams', 'Link Stories', 'Create Tasks', 'Track');
$lang->block->flowchart['dev'] = array('Dev Team', 'Claim Tasks/Bugs', 'Design', 'Update Status', 'Finish Tasks/Bugs', 'Commit Code');
$lang->block->flowchart['tester'] = array('Test Team', 'Write Cases', 'Run Cases', 'Report Bugs', 'Verify Bugs', 'Close Bugs');
@@ -587,8 +587,8 @@ $lang->block->zentaoapp->allStorySum = 'Total Stories';
$lang->block->zentaoapp->storyCompleteRate = 'Story CompleteRate';
$lang->block->zentaoapp->latestExecution = 'Latest Execution';
$lang->block->zentaoapp->involvedExecution = 'Involved Execution';
$lang->block->zentaoapp->mangedProduct = 'Manged Product';
$lang->block->zentaoapp->involvedProject = 'Involved Project';
$lang->block->zentaoapp->mangedProduct = "Manged {$lang->productCommon}";
$lang->block->zentaoapp->involvedProject = "Involved {$lang->projectCommon}";
$lang->block->zentaoapp->customIndexCard = 'Custom Index Cards';
$lang->block->zentaoapp->createStory = 'Story Create';
$lang->block->zentaoapp->createEffort = 'Effort Create';
@@ -599,7 +599,7 @@ $lang->block->zentaoapp->notSupportKanban = 'The mobile terminal does not su
$lang->block->zentaoapp->notSupportVersion = 'This version of ZenTao is not currently supported on the mobile terminal';
$lang->block->zentaoapp->incompatibleVersion = 'The current version of ZenTao is lower, please upgrade to the latest version and try again';
$lang->block->zentaoapp->canNotGetVersion = 'Failed to get ZenTao version, please confirm if the URL is correct';
$lang->block->zentaoapp->desc = 'ZenTao mobile app provides you with a mobile work environment, which is convenient for managing personal to-do tasks at any time, tracking project progress, and enhancing the flexibility and agility of project management.';
$lang->block->zentaoapp->desc = "ZenTao mobile app provides you with a mobile work environment, which is convenient for managing personal to-do tasks at any time, tracking {$lang->projectCommon} progress, and enhancing the flexibility and agility of {$lang->projectCommon} management.";
$lang->block->zentaoapp->downloadTip = 'Scan QR code to download';
$lang->block->zentaoclient = new stdClass();
@@ -632,11 +632,11 @@ $lang->block->visionTitle = 'The user interface of ZenTao is divided
$lang->block->visions['rnd'] = new stdclass();
$lang->block->visions['rnd']->key = 'rnd';
$lang->block->visions['rnd']->title = 'Full feature interface';
$lang->block->visions['rnd']->text = 'Integrate the program, product, project, execution, test, etc., and provide the lifecycle project management solution.';
$lang->block->visions['rnd']->text = "Integrate the program, {$lang->productCommon}, {$lang->projectCommon}, execution, test, etc., and provide the lifecycle {$lang->projectCommon} management solution.";
$lang->block->visions['lite'] = new stdclass();
$lang->block->visions['lite']->key = 'lite';
$lang->block->visions['lite']->title = 'Operation Management Interface';
$lang->block->visions['lite']->text = 'Specially designed for Non-R&D teams, and based on the visual Kanban project management model.';
$lang->block->visions['lite']->text = "Specially designed for Non-R&D teams, and based on the visual Kanban {$lang->projectCommon} management model.";
$lang->block->customModes['light'] = 'Light Mode';
$lang->block->customModes['ALM'] = 'ALM Mode';
@@ -644,4 +644,4 @@ $lang->block->customModes['ALM'] = 'ALM Mode';
$lang->block->customModeTip = new stdClass();
$lang->block->customModeTip->common = 'There are 2 running modes of ZenTao: Light Mode and ALM Mode.';
$lang->block->customModeTip->ALM = 'The concept is more complete and rigorous, and the function is more abundant. It is suitable for medium and large R&D teams.';
$lang->block->customModeTip->light = 'Provides the core function of project management, suitable for small R&D teams.';
$lang->block->customModeTip->light = "Provides the core function of {$lang->projectCommon} management, suitable for small R&D teams.";
+38 -38
View File
@@ -76,7 +76,7 @@ $lang->block->consumedHours = 'Cost';
$lang->block->time = 'No';
$lang->block->week = 'Week';
$lang->block->month = 'Month';
$lang->block->selectProduct = 'Product selection';
$lang->block->selectProduct = "{$lang->productCommon} selection";
$lang->block->of = ' di ';
$lang->block->remain = 'Left';
$lang->block->allStories = 'All';
@@ -114,10 +114,10 @@ $lang->block->left = 'Remain';
$lang->block->titleList['flowchart'] = 'Flow Chart';
$lang->block->titleList['guide'] = 'Guides';
$lang->block->titleList['statistic'] = 'Statistic';
$lang->block->titleList['recentproject'] = 'Recent Project';
$lang->block->titleList['recentproject'] = "Recent {$lang->projectCommon}";
$lang->block->titleList['assigntome'] = 'Assign to me';
$lang->block->titleList['projectteam'] = 'Project manpower input';
$lang->block->titleList['project'] = 'Project List';
$lang->block->titleList['projectteam'] = "{$lang->projectCommon} manpower input";
$lang->block->titleList['project'] = "{$lang->projectCommon} List";
$lang->block->titleList['dynamic'] = 'Dynamic';
$lang->block->titleList['list'] = 'Todo List';
$lang->block->titleList['contribute'] = 'Contribute';
@@ -125,7 +125,7 @@ $lang->block->titleList['scrumoverview'] = 'Scrumoverview';
$lang->block->titleList['scrumtest'] = 'Scrum Test';
$lang->block->titleList['scrumlist'] = 'Scrum List';
$lang->block->titleList['sprint'] = 'Sprint';
$lang->block->titleList['projectdynamic'] = 'Project Dynamic';
$lang->block->titleList['projectdynamic'] = "{$lang->projectCommon} Dynamic";
$lang->block->titleList['bug'] = 'Bug';
$lang->block->titleList['case'] = 'Case';
$lang->block->titleList['testtask'] = 'Test Task';
@@ -136,13 +136,13 @@ $lang->block->default['waterfall']['project']['3']['source'] = 'project';
$lang->block->default['waterfall']['project']['3']['grid'] = 8;
$lang->block->default['waterfall']['project']['6']['title'] = 'Dynamic';
$lang->block->default['waterfall']['project']['6']['block'] = 'dynamic';
$lang->block->default['waterfall']['project']['6']['block'] = 'projectdynamic';
$lang->block->default['waterfall']['project']['6']['grid'] = 4;
$lang->block->default['waterfall']['project']['6']['source'] = '';
$lang->block->default['waterfall']['project']['6']['source'] = 'project';
$lang->block->default['waterfallplus'] = $lang->block->default['waterfall'];
$lang->block->default['scrum']['project']['1']['title'] = 'Project Overall';
$lang->block->default['scrum']['project']['1']['title'] = $lang->projectCommon . ' Overall';
$lang->block->default['scrum']['project']['1']['block'] = 'scrumoverview';
$lang->block->default['scrum']['project']['1']['grid'] = 8;
@@ -288,7 +288,7 @@ $lang->block->default['full']['my']['4']['grid'] = 4;
$lang->block->default['full']['my']['4']['source'] = 'todo';
$lang->block->default['full']['my']['4']['params']['count'] = '20';
$lang->block->default['full']['my']['5']['title'] = 'Project Statistic';
$lang->block->default['full']['my']['5']['title'] = "{$lang->projectCommon} Statistic";
$lang->block->default['full']['my']['5']['block'] = 'statistic';
$lang->block->default['full']['my']['5']['source'] = 'project';
$lang->block->default['full']['my']['5']['grid'] = 8;
@@ -299,9 +299,9 @@ $lang->block->default['full']['my']['6']['block'] = 'recentproject';
$lang->block->default['full']['my']['6']['source'] = 'project';
$lang->block->default['full']['my']['6']['grid'] = 8;
$lang->block->default['full']['my']['7']['title'] = 'Todo';
$lang->block->default['full']['my']['7']['block'] = 'assigntome';
$lang->block->default['full']['my']['7']['source'] = '';
$lang->block->default['full']['my']['7']['title'] = "Recent {$lang->projectCommon}s";
$lang->block->default['full']['my']['7']['block'] = "recent{$lang->projectCommon}";
$lang->block->default['full']['my']['7']['source'] = 'project';
$lang->block->default['full']['my']['7']['grid'] = 8;
$lang->block->default['full']['my']['8']['title'] = 'Human Input';
@@ -324,8 +324,8 @@ $lang->block->default['full']['my']['9']['block'] = 'project';
$lang->block->default['full']['my']['9']['source'] = 'project';
$lang->block->default['full']['my']['9']['grid'] = 8;
$lang->block->default['full']['my']['10']['title'] = 'Project List';
$lang->block->default['full']['my']['10']['block'] = 'project';
$lang->block->default['full']['my']['10']['title'] = "{$lang->projectCommon} List";
$lang->block->default['full']['my']['10']['block'] = $lang->projectCommon;
$lang->block->default['full']['my']['10']['source'] = 'project';
$lang->block->default['full']['my']['10']['grid'] = 8;
@@ -356,21 +356,21 @@ $lang->block->availableBlocks->feedback = 'Feedbacks';
$lang->block->availableBlocks->ticket = 'Tickets';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['project'] = 'Project';
$lang->block->moduleList['project'] = $lang->projectCommon;
$lang->block->moduleList['execution'] = $lang->execution->common;
$lang->block->moduleList['qa'] = 'Test';
$lang->block->moduleList['todo'] = 'Todo';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = 'Project List';
$lang->block->modules['project']->availableBlocks->recentproject = 'Recent Projects';
$lang->block->modules['project']->availableBlocks->statistic = 'Project Statistic';
$lang->block->modules['project']->availableBlocks->projectteam = 'Project Human Input';
$lang->block->modules['project']->availableBlocks->project = "{$lang->projectCommon} List";
$lang->block->modules['project']->availableBlocks->recentproject = "Recent {$lang->projectCommon}";
$lang->block->modules['project']->availableBlocks->statistic = "{$lang->projectCommon} Statistic";
$lang->block->modules['project']->availableBlocks->projectteam = "{$lang->projectCommon} Manpower Input";
$lang->block->modules['scrum']['index'] = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = 'Project Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = "{$lang->projectCommon} Overview";
$lang->block->modules['scrum']['index']->availableBlocks->scrumlist = $lang->executionCommon . ' List';
$lang->block->modules['scrum']['index']->availableBlocks->sprint = $lang->executionCommon . ' Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumtest = 'Test Version';
@@ -423,10 +423,10 @@ $lang->block->orderByList->product['status_asc'] = 'Tri par Statut ASC';
$lang->block->orderByList->product['status_desc'] = 'Tri par Statut DESC';
$lang->block->orderByList->project = array();
$lang->block->orderByList->project['id_asc'] = 'Tri par ID Projet ASC';
$lang->block->orderByList->project['id_desc'] = 'Tri par ID Projet DESC';
$lang->block->orderByList->project['status_asc'] = 'Tri par Statut ASC';
$lang->block->orderByList->project['status_desc'] = 'Tri par Statut DESC';
$lang->block->orderByList->project['id_asc'] = "{$lang->projectCommon} ID ASC";
$lang->block->orderByList->project['id_desc'] = "{$lang->projectCommon} ID DESC";
$lang->block->orderByList->project['status_asc'] = "{$lang->projectCommon} Status ASC";
$lang->block->orderByList->project['status_desc'] = "{$lang->projectCommon} Status DESC";
$lang->block->orderByList->execution = array();
$lang->block->orderByList->execution['id_asc'] = 'Tri par ID Execution ASC';
@@ -529,18 +529,18 @@ $lang->block->typeList->testtask['done'] = 'Jouées';
$lang->block->typeList->testtask['all'] = 'Toutes';
$lang->block->modules['project']->moreLinkList = new stdclass();
$lang->block->modules['project']->moreLinkList->recentproject = 'project|browse|';
$lang->block->modules['project']->moreLinkList->statistic = 'project|browse|';
$lang->block->modules['project']->moreLinkList->project = 'project|browse|';
$lang->block->modules['project']->moreLinkList->recentproject = "project|browse|";
$lang->block->modules['project']->moreLinkList->statistic = "project|browse|";
$lang->block->modules['project']->moreLinkList->project = "project|browse|";
$lang->block->modules['project']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['project']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['project']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['project']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['project']->moreLinkList->scrumlist = 'project|execution|';
$lang->block->modules['project']->moreLinkList->scrumlist = "project|execution|";
$lang->block->modules['project']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['project']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['project']->moreLinkList->sprint = 'project|execution|';
$lang->block->modules['project']->moreLinkList->projectdynamic = 'project|dynamic|';
$lang->block->modules['project']->moreLinkList->sprint = "project|execution|";
$lang->block->modules['project']->moreLinkList->projectdynamic = "project|dynamic|";
$lang->block->modules['product']->moreLinkList = new stdclass();
$lang->block->modules['product']->moreLinkList->list = 'product|all|';
@@ -572,9 +572,9 @@ $lang->block->gridOptions[4] = 'Right';
$lang->block->flowchart = array();
$lang->block->flowchart['admin'] = array('Administrateur', 'Add Departments', 'Ajoute Utilisateurs', 'Administre Privilèges');
if($config->systemMode == 'ALM') $lang->block->flowchart['program'] = array('Program Owner', 'Create Program', 'Link Product', "Create Project", "Budgeting and planning", 'Add Stakeholder');
if($config->systemMode == 'ALM') $lang->block->flowchart['program'] = array('Program Owner', 'Create Program', "Link {$lang->productCommon}", "Create {$lang->projectCommon}", "Budgeting and planning", 'Add Stakeholder');
$lang->block->flowchart['product'] = array($lang->productCommon . ' Owner', 'Ajoute ' . $lang->productCommon . '/Modules', 'Ajoute ' . $lang->executionCommon . 's', 'Ajoute Stories', 'Maintient Plans', 'Crée Releases');
$lang->block->flowchart['project'] = array('Project Manager', 'Add projects and ' . $lang->execution->common . 's', 'Maintain Teams', 'Link Stories', 'Create Tasks', 'Track');
$lang->block->flowchart['project'] = array('Project Manager', "Add {$lang->productCommon}s and " . $lang->execution->common . 's', 'Maintain Teams', 'Link Stories', 'Create Tasks', 'Track');
$lang->block->flowchart['dev'] = array('Développeurs', 'Réclament Tâches/Bugs', 'Effectuent Tâches', 'Corrigent Bugs', 'MàJ Statuts', 'Terminent Tâches/Bugs');
$lang->block->flowchart['tester'] = array('Testeurs', 'Rédigent CasTests', 'Jouent CasTests', 'Détectent Bugs', 'Vérifient Corrections', 'Ferment Bugs');
@@ -587,8 +587,8 @@ $lang->block->zentaoapp->allStorySum = 'Total Stories';
$lang->block->zentaoapp->storyCompleteRate = 'Story CompleteRate';
$lang->block->zentaoapp->latestExecution = 'Latest Execution';
$lang->block->zentaoapp->involvedExecution = 'Involved Execution';
$lang->block->zentaoapp->mangedProduct = 'Manged Product';
$lang->block->zentaoapp->involvedProject = 'Involved Project';
$lang->block->zentaoapp->mangedProduct = "Manged {$lang->productCommon}";
$lang->block->zentaoapp->involvedProject = "Involved {$lang->projectCommon}";
$lang->block->zentaoapp->customIndexCard = 'Custom Index Cards';
$lang->block->zentaoapp->createStory = 'Story Create';
$lang->block->zentaoapp->createEffort = 'Effort Create';
@@ -599,7 +599,7 @@ $lang->block->zentaoapp->notSupportKanban = 'The mobile terminal does not su
$lang->block->zentaoapp->notSupportVersion = 'This version of ZenTao is not currently supported on the mobile terminal';
$lang->block->zentaoapp->incompatibleVersion = 'The current version of ZenTao is lower, please upgrade to the latest version and try again';
$lang->block->zentaoapp->canNotGetVersion = 'Failed to get ZenTao version, please confirm if the URL is correct';
$lang->block->zentaoapp->desc = 'ZenTao mobile app provides you with a mobile work environment, which is convenient for managing personal to-do tasks at any time, tracking project progress, and enhancing the flexibility and agility of project management.';
$lang->block->zentaoapp->desc = "ZenTao mobile app provides you with a mobile work environment, which is convenient for managing personal to-do tasks at any time, tracking {$lang->projectCommon} progress, and enhancing the flexibility and agility of {$lang->projectCommon} management.";
$lang->block->zentaoapp->downloadTip = 'Scan QR code to download';
$lang->block->zentaoclient = new stdClass();
@@ -632,11 +632,11 @@ $lang->block->visionTitle = 'The user interface of ZenTao is divided
$lang->block->visions['rnd'] = new stdclass();
$lang->block->visions['rnd']->key = 'rnd';
$lang->block->visions['rnd']->title = 'Full feature interface';
$lang->block->visions['rnd']->text = 'Integrate the program, product, project, execution, test, etc., and provide the lifecycle project management solution.';
$lang->block->visions['rnd']->text = "Integrate the program, {$lang->productCommon}, {$lang->projectCommon}, execution, test, etc., and provide the lifecycle {$lang->projectCommon} management solution.";
$lang->block->visions['lite'] = new stdclass();
$lang->block->visions['lite']->key = 'lite';
$lang->block->visions['lite']->title = 'Operation Management Interface';
$lang->block->visions['lite']->text = 'Specially designed for Non-R&D teams, and based on the visual Kanban project management model.';
$lang->block->visions['lite']->text = "Specially designed for Non-R&D teams, and based on the visual Kanban {$lang->projectCommon} management model.";
$lang->block->customModes['light'] = 'Light Mode';
$lang->block->customModes['ALM'] = 'ALM Mode';
@@ -644,4 +644,4 @@ $lang->block->customModes['ALM'] = 'ALM Mode';
$lang->block->customModeTip = new stdClass();
$lang->block->customModeTip->common = 'There are 2 running modes of ZenTao: Light Mode and ALM Mode.';
$lang->block->customModeTip->ALM = 'The concept is more complete and rigorous, and the function is more abundant. It is suitable for medium and large R&D teams.';
$lang->block->customModeTip->light = 'Provides the core function of project management, suitable for small R&D teams.';
$lang->block->customModeTip->light = "Provides the core function of {$lang->projectCommon} management, suitable for small R&D teams.";
+27 -27
View File
@@ -76,7 +76,7 @@ $lang->block->consumedHours = '已消耗';
$lang->block->time = '第';
$lang->block->week = '周';
$lang->block->month = '月';
$lang->block->selectProduct = '选择产品';
$lang->block->selectProduct = "选择{$lang->productCommon}";
$lang->block->of = '的';
$lang->block->remain = '剩余工时';
$lang->block->allStories = '总需求';
@@ -113,15 +113,15 @@ $lang->block->left = '剩余';
$lang->block->titleList['flowchart'] = '流程图';
$lang->block->titleList['guide'] = '使用帮助';
$lang->block->titleList['statistic'] = '项目统计';
$lang->block->titleList['recentproject'] = '我近期参与的项目';
$lang->block->titleList['statistic'] = "{$lang->projectCommon}统计";
$lang->block->titleList['recentproject'] = "我近期参与的{$lang->projectCommon}";
$lang->block->titleList['assigntome'] = '待处理';
$lang->block->titleList['projectteam'] = '项目人力投入';
$lang->block->titleList['project'] = '项目列表';
$lang->block->titleList['projectteam'] = "{$lang->projectCommon}人力投入";
$lang->block->titleList['project'] = "{$lang->projectCommon}列表";
$lang->block->titleList['dynamic'] = '最新动态';
$lang->block->titleList['list'] = '我的待办';
$lang->block->titleList['contribute'] = '我的贡献';
$lang->block->titleList['scrumoverview'] = '项目概况';
$lang->block->titleList['scrumoverview'] = "{$lang->projectCommon}概况";
$lang->block->titleList['scrumtest'] = '待测版本';
$lang->block->titleList['scrumlist'] = '迭代列表';
$lang->block->titleList['sprint'] = '迭代总览';
@@ -130,7 +130,7 @@ $lang->block->titleList['bug'] = '指派给我的Bug';
$lang->block->titleList['case'] = '指派给我的用例';
$lang->block->titleList['testtask'] = '待测版本列表';
$lang->block->default['waterfall']['project']['3']['title'] = "项目计划";
$lang->block->default['waterfall']['project']['3']['title'] = "{$lang->projectCommon}计划";
$lang->block->default['waterfall']['project']['3']['block'] = 'waterfallgantt';
$lang->block->default['waterfall']['project']['3']['source'] = 'project';
$lang->block->default['waterfall']['project']['3']['grid'] = 8;
@@ -142,7 +142,7 @@ $lang->block->default['waterfall']['project']['6']['source'] = 'project';
$lang->block->default['waterfallplus'] = $lang->block->default['waterfall'];
$lang->block->default['scrum']['project']['1']['title'] = '项目概况';
$lang->block->default['scrum']['project']['1']['title'] = $lang->projectCommon . '概况';
$lang->block->default['scrum']['project']['1']['block'] = 'scrumoverview';
$lang->block->default['scrum']['project']['1']['grid'] = 8;
@@ -288,7 +288,7 @@ $lang->block->default['full']['my']['4']['grid'] = 4;
$lang->block->default['full']['my']['4']['source'] = 'todo';
$lang->block->default['full']['my']['4']['params']['count'] = '20';
$lang->block->default['full']['my']['5']['title'] = '项目统计';
$lang->block->default['full']['my']['5']['title'] = "{$lang->projectCommon}统计";
$lang->block->default['full']['my']['5']['block'] = 'statistic';
$lang->block->default['full']['my']['5']['source'] = 'project';
$lang->block->default['full']['my']['5']['grid'] = 8;
@@ -299,7 +299,7 @@ $lang->block->default['full']['my']['6']['block'] = 'contribute';
$lang->block->default['full']['my']['6']['source'] = '';
$lang->block->default['full']['my']['6']['grid'] = 4;
$lang->block->default['full']['my']['7']['title'] = '我近期参与的项目';
$lang->block->default['full']['my']['7']['title'] = "我近期参与的{$lang->projectCommon}";
$lang->block->default['full']['my']['7']['block'] = 'recentproject';
$lang->block->default['full']['my']['7']['source'] = 'project';
$lang->block->default['full']['my']['7']['grid'] = 8;
@@ -319,12 +319,12 @@ $lang->block->default['full']['my']['8']['params']['reviewCount'] = '20';
$lang->block->default['full']['my']['8']['params']['meetingCount'] = '20';
$lang->block->default['full']['my']['8']['params']['feedbackCount'] = '20';
$lang->block->default['full']['my']['9']['title'] = '项目人力投入';
$lang->block->default['full']['my']['9']['title'] = "{$lang->projectCommon}人力投入";
$lang->block->default['full']['my']['9']['block'] = 'projectteam';
$lang->block->default['full']['my']['9']['source'] = 'project';
$lang->block->default['full']['my']['9']['grid'] = 8;
$lang->block->default['full']['my']['10']['title'] = '项目列表';
$lang->block->default['full']['my']['10']['title'] = "{$lang->projectCommon}列表";
$lang->block->default['full']['my']['10']['block'] = 'project';
$lang->block->default['full']['my']['10']['source'] = 'project';
$lang->block->default['full']['my']['10']['grid'] = 8;
@@ -356,21 +356,21 @@ $lang->block->availableBlocks->feedback = '反馈';
$lang->block->availableBlocks->ticket = '工单';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['project'] = '项目';
$lang->block->moduleList['project'] = $lang->projectCommon;
$lang->block->moduleList['execution'] = $lang->execution->common;
$lang->block->moduleList['qa'] = '测试';
$lang->block->moduleList['todo'] = '待办';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = '项目列表';
$lang->block->modules['project']->availableBlocks->recentproject = '近期项目';
$lang->block->modules['project']->availableBlocks->statistic = '项目统计';
$lang->block->modules['project']->availableBlocks->projectteam = '项目人力投入';
$lang->block->modules['project']->availableBlocks->project = "{$lang->projectCommon}列表";
$lang->block->modules['project']->availableBlocks->recentproject = "近期{$lang->projectCommon}";
$lang->block->modules['project']->availableBlocks->statistic = "{$lang->projectCommon}统计";
$lang->block->modules['project']->availableBlocks->projectteam = "{$lang->projectCommon}人力投入";
$lang->block->modules['scrum']['index'] = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = '项目概况';
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = "{$lang->projectCommon}概况";
$lang->block->modules['scrum']['index']->availableBlocks->scrumlist = $lang->executionCommon . '列表';
$lang->block->modules['scrum']['index']->availableBlocks->sprint = $lang->executionCommon . '总览';
$lang->block->modules['scrum']['index']->availableBlocks->scrumtest = '待测版本';
@@ -380,7 +380,7 @@ $lang->block->modules['agileplus']['index'] = $lang->block->modules['scrum']['in
$lang->block->modules['waterfall']['index'] = new stdclass();
$lang->block->modules['waterfall']['index']->availableBlocks = new stdclass();
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallgantt = "项目计划";
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallgantt = "{$lang->projectCommon}计划";
$lang->block->modules['waterfall']['index']->availableBlocks->projectdynamic = '最新动态';
$lang->block->modules['waterfallplus']['index'] = $lang->block->modules['waterfall']['index'];
@@ -572,9 +572,9 @@ $lang->block->gridOptions[4] = '右侧';
$lang->block->flowchart = array();
$lang->block->flowchart['admin'] = array('管理员', '维护部门', '添加用户', '维护权限');
if($config->systemMode == 'ALM') $lang->block->flowchart['program'] = array('项目集负责人', '创建项目集', '关联产品', "创建项目", "制定预算和规划", '添加干系人');
if($config->systemMode == 'ALM') $lang->block->flowchart['program'] = array('项目集负责人', '创建项目集', "关联{$lang->productCommon}", "创建{$lang->projectCommon}", "制定预算和规划", '添加干系人');
$lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', "维护计划", "维护需求", '创建发布');
$lang->block->flowchart['project'] = array('项目经理', '创建项目、' . $lang->execution->common, '维护团队', "关联需求", '分解任务', '跟踪进度');
$lang->block->flowchart['project'] = array('项目经理', "创建{$lang->productCommon}、" . $lang->execution->common, '维护团队', "关联需求", '分解任务', '跟踪进度');
$lang->block->flowchart['dev'] = array('研发人员', '领取任务和Bug', '设计实现方案', '更新状态', '完成任务和Bug', '提交代码');
$lang->block->flowchart['tester'] = array('测试人员', '撰写用例', '执行用例', '提交Bug', '验证Bug', '关闭Bug');
@@ -587,8 +587,8 @@ $lang->block->zentaoapp->allStorySum = '需求总数';
$lang->block->zentaoapp->storyCompleteRate = '需求完成率';
$lang->block->zentaoapp->latestExecution = '近期执行';
$lang->block->zentaoapp->involvedExecution = '我参与的执行';
$lang->block->zentaoapp->mangedProduct = '负责产品';
$lang->block->zentaoapp->involvedProject = '参与项目';
$lang->block->zentaoapp->mangedProduct = "负责{$lang->productCommon}";
$lang->block->zentaoapp->involvedProject = "参与{$lang->projectCommon}";
$lang->block->zentaoapp->customIndexCard = '定制首页卡片';
$lang->block->zentaoapp->createStory = '提需求';
$lang->block->zentaoapp->createEffort = '记日志';
@@ -599,7 +599,7 @@ $lang->block->zentaoapp->notSupportKanban = '移动端暂不支持研发看
$lang->block->zentaoapp->notSupportVersion = '移动端暂不支持该禅道版本';
$lang->block->zentaoapp->incompatibleVersion = '当前禅道版本较低,请升级至最新版本后再试';
$lang->block->zentaoapp->canNotGetVersion = '获取禅道版本失败,请确认网址是否正确';
$lang->block->zentaoapp->desc = '禅道移动端为您提供移动办公的环境,方便随时管理个人待办事务,跟进项目进度,增强了项目管理的灵活性和敏捷性。';
$lang->block->zentaoapp->desc = "禅道移动端为您提供移动办公的环境,方便随时管理个人待办事务,跟进{$lang->projectCommon}进度,增强了{$lang->projectCommon}管理的灵活性和敏捷性。";
$lang->block->zentaoapp->downloadTip = '扫描二维码下载';
$lang->block->zentaoclient = new stdClass();
@@ -632,11 +632,11 @@ $lang->block->visionTitle = '禅道使用界面分为【研发综合
$lang->block->visions['rnd'] = new stdclass();
$lang->block->visions['rnd']->key = 'rnd';
$lang->block->visions['rnd']->title = '研发综合界面';
$lang->block->visions['rnd']->text = '集项目集、产品、项目、执行、测试等多维度管理于一体,提供全过程项目管理解决方案。';
$lang->block->visions['rnd']->text = "集项目集、{$lang->productCommon}、{$lang->projectCommon}、执行、测试等多维度管理于一体,提供全过程{$lang->projectCommon}管理解决方案。";
$lang->block->visions['lite'] = new stdclass();
$lang->block->visions['lite']->key = 'lite';
$lang->block->visions['lite']->title = '运营管理界面';
$lang->block->visions['lite']->text = '专为非研发团队打造,主要以直观、可视化的看板项目管理模型为主。';
$lang->block->visions['lite']->text = "专为非研发团队打造,主要以直观、可视化的看板{$lang->projectCommon}管理模型为主。";
$lang->block->customModes['light'] = '轻量管理模式';
$lang->block->customModes['ALM'] = '全生命周期管理模式';
@@ -644,4 +644,4 @@ $lang->block->customModes['ALM'] = '全生命周期管理模式';
$lang->block->customModeTip = new stdClass();
$lang->block->customModeTip->common = '禅道运行模式分为【轻量级管理模式】和【全生命周期管理模式】。';
$lang->block->customModeTip->ALM = '适用于中大型团队的管理模式,概念更加完整、严谨,功能更丰富。';
$lang->block->customModeTip->light = '适用于小型研发团队的管理模式,提供项目管理的核心功能。';
$lang->block->customModeTip->light = "适用于小型研发团队的管理模式,提供{$lang->projectCommon}管理的核心功能。";
+1 -1
View File
@@ -45,7 +45,7 @@
$viewLink = $this->createLink('execution', 'task', 'executionID=' . $execution->id);
?>
<tr <?php echo $appid?>>
<td class='c-name text-left' title='<?php echo $execution->name;?>'><nobr><?php echo html::a($viewLink, $execution->name, '', "title='$execution->name'");?></nobr></td>
<td class='c-name text-left' title='<?php echo $execution->name;?>'><nobr><?php echo html::a($viewLink, $execution->name, '', "title='$execution->name' class='text-primary'");?></nobr></td>
<td class="c-date"><?php echo $execution->end;?></td>
<?php if($longBlock):?>
<td class="w-70px">
@@ -205,7 +205,7 @@ $(function()
<div class='col-7'>
<div class='progress progress-text-left'>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="<?php echo $project->executions[0]->hours->progress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $project->executions[0]->hours->progress;?>%">
<span class='progress-text'><?php echo $project->executions[0]->hours->progress . '%';?></span>
<span class='progress-text'><?php echo !empty($project->executions[0]->hours->progress) ? $project->executions[0]->hours->progress . '%' : '0%';?></span>
</div>
</div>
</div>
+1 -1
View File
@@ -33,7 +33,7 @@
$typeName = '';
if(isset($lang->{$review->type}->common)) $typeName = $lang->{$review->type}->common;
if($type == 'story') $typeName = $lang->my->auditMenu->audit->story;
if($type == 'story') $typeName = $lang->SRCommon;
if($review->type == 'projectreview') $typeName = $lang->project->common;
if(isset($flows[$review->type])) $typeName = $flows[$review->type];
+2 -2
View File
@@ -27,7 +27,7 @@ $lang->branch->mergeBranch = 'Merge branch';
$lang->branch->mergeBranchAction = 'Merge branch';
$lang->branch->id = 'ID';
$lang->branch->product = 'Produkt';
$lang->branch->product = $lang->productCommon;
$lang->branch->name = 'Name';
$lang->branch->status = 'Status';
$lang->branch->createdDate = 'Created Date';
@@ -51,7 +51,7 @@ $lang->branch->targetBranchTips = 'You can merge it into an existing branch, me
$lang->branch->confirmMerge = 'The data of "mergedBranch" will be merged into "targetBranch", please confirm whether you want to perform the branch merge operation, the data will not be restored after the merge!';
$lang->branch->noData = 'No branches.';
$lang->branch->mainBranch = 'The default main branch of the product.';
$lang->branch->mainBranch = "The default main %s of the {$lang->productCommon}.";
$lang->branch->statusList = array();
$lang->branch->statusList['active'] = 'Active';
+2 -2
View File
@@ -27,7 +27,7 @@ $lang->branch->mergeBranch = 'Merge branch';
$lang->branch->mergeBranchAction = 'Merge branch';
$lang->branch->id = 'ID';
$lang->branch->product = 'Product';
$lang->branch->product = $lang->productCommon;
$lang->branch->name = 'Name';
$lang->branch->status = 'Status';
$lang->branch->createdDate = 'Created Date';
@@ -51,7 +51,7 @@ $lang->branch->targetBranchTips = 'You can merge it into an existing branch, me
$lang->branch->confirmMerge = 'The data of "mergedBranch" will be merged into "targetBranch", please confirm whether you want to perform the branch merge operation, the data will not be restored after the merge!';
$lang->branch->noData = 'No branches.';
$lang->branch->mainBranch = 'The default main %s of the product.';
$lang->branch->mainBranch = "The default main %s of the {$lang->productCommon}.";
$lang->branch->statusList = array();
$lang->branch->statusList['active'] = 'Active';
+2 -2
View File
@@ -27,7 +27,7 @@ $lang->branch->mergeBranch = 'Merge branch';
$lang->branch->mergeBranchAction = 'Merge branch';
$lang->branch->id = 'ID';
$lang->branch->product = 'Product';
$lang->branch->product = $lang->productCommon;
$lang->branch->name = 'Nom';
$lang->branch->status = 'Status';
$lang->branch->createdDate = 'Created Date';
@@ -51,7 +51,7 @@ $lang->branch->targetBranchTips = 'You can merge it into an existing branch, me
$lang->branch->confirmMerge = 'The data of "mergedBranch" will be merged into "targetBranch", please confirm whether you want to perform the branch merge operation, the data will not be restored after the merge!';
$lang->branch->noData = 'No branches.';
$lang->branch->mainBranch = 'The default main branch of the product.';
$lang->branch->mainBranch = "The default main %s of the {$lang->productCommon}.";
$lang->branch->statusList = array();
$lang->branch->statusList['active'] = 'Active';
+2 -2
View File
@@ -27,7 +27,7 @@ $lang->branch->mergeBranch = '合并@branch@';
$lang->branch->mergeBranchAction = '合并分支';
$lang->branch->id = 'ID';
$lang->branch->product = '所属产品';
$lang->branch->product = "所属{$lang->productCommon}";
$lang->branch->name = '%s名称';
$lang->branch->status = '状态';
$lang->branch->createdDate = '创建时间';
@@ -51,7 +51,7 @@ $lang->branch->targetBranchTips = '您可以将其合并到已有的一个@bran
$lang->branch->confirmMerge = '"mergedBranch"的数据将被合并到"targetBranch",请确认是否要执行分支合并操作,合并后数据将不可再恢复!';
$lang->branch->noData = '暂时没有分支。';
$lang->branch->mainBranch = '产品默认主干%s。';
$lang->branch->mainBranch = "{$lang->productCommon}默认主干%s。";
$lang->branch->statusList = array();
$lang->branch->statusList['active'] = '激活';
+13 -2
View File
@@ -1165,6 +1165,16 @@ class bug extends control
$productBugs = $this->bug->getProductBugPairs($productID, $branch);
unset($productBugs[$bugID]);
$executions = array(0 => '') + $this->product->getExecutionPairsByProduct($bug->product, $bug->branch, 'id_desc', $bug->project);
if(!empty($bug->execution) and empty($executions[$bug->execution])) $executions[$execution->id] = $execution->name . "({$this->lang->bug->deleted})";
$projects = array(0 => '') + $this->product->getProjectPairsByProduct($productID, $bug->branch);
if(!empty($bug->project) and empty($projects[$bug->project]))
{
$project = $this->loadModel('project')->getByID($bug->project);
$projects[$project->id] = $project->name . "({$this->lang->bug->deleted})";
}
if($product->shadow) $this->view->project = $this->loadModel('project')->getByShadowProduct($bug->product);
$this->view->bug = $bug;
@@ -1173,11 +1183,11 @@ class bug extends control
$this->view->productBugs = $productBugs;
$this->view->productName = $this->products[$productID];
$this->view->plans = $this->loadModel('productplan')->getPairs($productID, $bug->branch, '', true);
$this->view->projects = array(0 => '') + $this->product->getProjectPairsByProduct($productID, $bug->branch, $bug->project);
$this->view->projects = $projects;
$this->view->projectExecutionPairs = $this->loadModel('project')->getProjectExecutionPairs();
$this->view->moduleOptionMenu = $moduleOptionMenu;
$this->view->currentModuleID = $currentModuleID;
$this->view->executions = array(0 => '') + $this->product->getExecutionPairsByProduct($bug->product, $bug->branch, 'id_desc', $bug->project);
$this->view->executions = $executions;
$this->view->stories = $bug->execution ? $this->story->getExecutionStoryPairs($bug->execution) : $this->story->getProductStoryPairs($bug->product, $bug->branch, 0, 'all', 'id_desc', 0, 'full', 'story', false);
$this->view->branchOption = $branchOption;
$this->view->branchTagOption = $branchTagOption;
@@ -2490,6 +2500,7 @@ class bug extends control
public function ajaxGetProductBugs($productID, $bugID)
{
$product = $this->loadModel('product')->getById($productID);
$bug = $this->bug->getById($bugID);
$branch = $product->type == 'branch' ? ($bug->branch > 0 ? $bug->branch . ',0' : '0') : '';
$productBugs = $this->bug->getProductBugPairs($productID, $branch);
unset($productBugs[$bugID]);
+15 -15
View File
@@ -17,7 +17,7 @@ $lang->bug->branch = 'Branch/Platform';
$lang->bug->productplan = 'Plan';
$lang->bug->module = 'Modul';
$lang->bug->moduleAB = 'Modul';
$lang->bug->project = 'Project';
$lang->bug->project = $lang->projectCommon;
$lang->bug->execution = $lang->execution->common;
$lang->bug->kanban = 'Kanban';
$lang->bug->story = 'Story';
@@ -95,9 +95,9 @@ $lang->bug->toCase = 'Zu Fall';
$lang->bug->colorTag = 'Farb Tag';
$lang->bug->fixedRate = 'Fixed Rate';
$lang->bug->noticefeedbackBy = 'NoticeFeedbackBy';
$lang->bug->selectProjects = 'Select Projects';
$lang->bug->selectProjects = "Select {$lang->projectCommon}s";
$lang->bug->nextStep = 'Next Step';
$lang->bug->noProject = 'Haven’t chosen a project yet.';
$lang->bug->noProject = "Haven’t chosen a {$lang->projectCommon} yet.";
$lang->bug->noExecution = 'Haven’t chosen a ' . strtolower($lang->execution->common) . ' yet.';
/* Method list. */
@@ -154,7 +154,7 @@ $lang->bug->overdueBugs = 'Überfällig';
$lang->bug->allBugs = 'Alle';
$lang->bug->byQuery = 'Suche';
$lang->bug->needConfirm = 'Story geändert';
$lang->bug->allProject = 'All Projects';
$lang->bug->allProject = "All {$lang->projectCommon}s";
$lang->bug->allProduct = 'Alle' . $lang->productCommon;
$lang->bug->my = 'Meine';
$lang->bug->yesterdayResolved = 'Gestern gelöst ';
@@ -166,7 +166,7 @@ $lang->bug->openedByMeAB = 'Von mir erstellt';
$lang->bug->resolvedByMeAB = 'Von mir gelöst';
$lang->bug->ditto = 'Dito';
$lang->bug->dittoNotice = 'This bug is not linked to the same product as the last one!';
$lang->bug->dittoNotice = "This bug is not linked to the same {$lang->productCommon} as the last one is!";
$lang->bug->noAssigned = 'Zuweisen';
$lang->bug->noBug = 'Keine Bugs. ';
$lang->bug->noModule = '<div>Sie haben keine Module</div><div>Jetzt verwalten</div>';
@@ -192,8 +192,8 @@ global $config;
/* Legend list. */
$lang->bug->legendBasicInfo = 'Basis Info';
$lang->bug->legendAttatch = 'Anlagen';
$lang->bug->legendPRJExecStoryTask = 'Project/' . $lang->executionCommon . '/Story/Task';
$lang->bug->legendExecStoryTask = 'Porject/Story/Task';
$lang->bug->legendPRJExecStoryTask = "{$lang->SRCommon}/{$lang->executionCommon}/Story/Task";
$lang->bug->legendExecStoryTask = "{$lang->SRCommon}/Story/Task";
$lang->bug->lblTypeAndSeverity = 'Typ/Schwere';
$lang->bug->lblSystemBrowserAndHardware = 'System/Browser';
$lang->bug->legendSteps = 'Reproduktionsschritte';
@@ -426,11 +426,11 @@ $lang->bug->featureBar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe;
$lang->bug->featureBar['browse']['unresolved'] = $lang->bug->unResolved;
$lang->bug->featureBar['browse']['more'] = $lang->more;
$lang->bug->moreSelects['assignedbyme'] = $lang->bug->assignedByMe;
$lang->bug->moreSelects['unconfirmed'] = $lang->bug->unconfirmed;
$lang->bug->moreSelects['assigntonull'] = $lang->bug->assignToNull;
$lang->bug->moreSelects['longlifebugs'] = $lang->bug->longLifeBugs;
$lang->bug->moreSelects['toclosed'] = $lang->bug->toClosed;
$lang->bug->moreSelects['postponedbugs'] = $lang->bug->postponedBugs;
$lang->bug->moreSelects['overduebugs'] = $lang->bug->overdueBugs;
$lang->bug->moreSelects['needconfirm'] = $lang->bug->needConfirm;
$lang->bug->moreSelects['browse']['more']['assignedbyme'] = $lang->bug->assignedByMe;
$lang->bug->moreSelects['browse']['more']['unconfirmed'] = $lang->bug->unconfirmed;
$lang->bug->moreSelects['browse']['more']['assigntonull'] = $lang->bug->assignToNull;
$lang->bug->moreSelects['browse']['more']['longlifebugs'] = $lang->bug->longLifeBugs;
$lang->bug->moreSelects['browse']['more']['toclosed'] = $lang->bug->toClosed;
$lang->bug->moreSelects['browse']['more']['postponedbugs'] = $lang->bug->postponedBugs;
$lang->bug->moreSelects['browse']['more']['overduebugs'] = $lang->bug->overdueBugs;
$lang->bug->moreSelects['browse']['more']['needconfirm'] = $lang->bug->needConfirm;
+14 -14
View File
@@ -17,7 +17,7 @@ $lang->bug->branch = 'Branch/Platform';
$lang->bug->productplan = 'Plan';
$lang->bug->module = 'Module';
$lang->bug->moduleAB = 'Module';
$lang->bug->project = 'Project';
$lang->bug->project = $lang->projectCommon;
$lang->bug->execution = $lang->execution->common;
$lang->bug->kanban = 'Kanban';
$lang->bug->story = 'Story';
@@ -95,9 +95,9 @@ $lang->bug->toCase = 'To Case';
$lang->bug->colorTag = 'Color';
$lang->bug->fixedRate = 'Fixed Rate';
$lang->bug->noticefeedbackBy = 'NoticeFeedbackBy';
$lang->bug->selectProjects = 'Select Projects';
$lang->bug->selectProjects = "Select {$lang->projectCommon}s";
$lang->bug->nextStep = 'Next Step';
$lang->bug->noProject = 'Haven’t chosen a project yet.';
$lang->bug->noProject = "Haven’t chosen a {$lang->projectCommon} yet.";
$lang->bug->noExecution = 'Haven’t chosen a ' . strtolower($lang->execution->common) . ' yet.';
/* Method list. */
@@ -166,7 +166,7 @@ $lang->bug->openedByMeAB = 'ReportedByMe';
$lang->bug->resolvedByMeAB = 'ResolvedByMe';
$lang->bug->ditto = 'Ditto';
$lang->bug->dittoNotice = 'This bug is not linked to the same product as the last one is!';
$lang->bug->dittoNotice = "This bug is not linked to the same {$lang->productCommon} as the last one is!";
$lang->bug->noAssigned = 'Unassigned';
$lang->bug->noBug = 'No bugs yet.';
$lang->bug->noModule = '<div>You have no modules.</div><div>Manage now</div>';
@@ -192,8 +192,8 @@ global $config;
/* Legend list. */
$lang->bug->legendBasicInfo = 'Basic Info';
$lang->bug->legendAttatch = 'Files';
$lang->bug->legendPRJExecStoryTask = 'Project/' . $lang->executionCommon . '/Story/Task';
$lang->bug->legendExecStoryTask = 'Porject/Story/Task';
$lang->bug->legendPRJExecStoryTask = "{$lang->SRCommon}/{$lang->executionCommon}/Story/Task";
$lang->bug->legendExecStoryTask = "{$lang->SRCommon}/Story/Task";
$lang->bug->lblTypeAndSeverity = 'Type/Severity';
$lang->bug->lblSystemBrowserAndHardware = 'System/Browser';
$lang->bug->legendSteps = 'Repro Steps';
@@ -426,11 +426,11 @@ $lang->bug->featureBar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe;
$lang->bug->featureBar['browse']['unresolved'] = $lang->bug->unResolved;
$lang->bug->featureBar['browse']['more'] = $lang->more;
$lang->bug->moreSelects['assignedbyme'] = $lang->bug->assignedByMe;
$lang->bug->moreSelects['unconfirmed'] = $lang->bug->unconfirmed;
$lang->bug->moreSelects['assigntonull'] = $lang->bug->assignToNull;
$lang->bug->moreSelects['longlifebugs'] = $lang->bug->longLifeBugs;
$lang->bug->moreSelects['toclosed'] = $lang->bug->toClosed;
$lang->bug->moreSelects['postponedbugs'] = $lang->bug->postponedBugs;
$lang->bug->moreSelects['overduebugs'] = $lang->bug->overdueBugs;
$lang->bug->moreSelects['needconfirm'] = $lang->bug->needConfirm;
$lang->bug->moreSelects['browse']['more']['assignedbyme'] = $lang->bug->assignedByMe;
$lang->bug->moreSelects['browse']['more']['unconfirmed'] = $lang->bug->unconfirmed;
$lang->bug->moreSelects['browse']['more']['assigntonull'] = $lang->bug->assignToNull;
$lang->bug->moreSelects['browse']['more']['longlifebugs'] = $lang->bug->longLifeBugs;
$lang->bug->moreSelects['browse']['more']['toclosed'] = $lang->bug->toClosed;
$lang->bug->moreSelects['browse']['more']['postponedbugs'] = $lang->bug->postponedBugs;
$lang->bug->moreSelects['browse']['more']['overduebugs'] = $lang->bug->overdueBugs;
$lang->bug->moreSelects['browse']['more']['needconfirm'] = $lang->bug->needConfirm;
+15 -15
View File
@@ -17,7 +17,7 @@ $lang->bug->branch = 'Branche/Plateforme';
$lang->bug->productplan = 'Plan';
$lang->bug->module = 'Module';
$lang->bug->moduleAB = 'Module';
$lang->bug->project = 'Project';
$lang->bug->project = $lang->projectCommon;
$lang->bug->execution = $lang->execution->common;
$lang->bug->kanban = 'Kanban';
$lang->bug->story = 'Story';
@@ -95,9 +95,9 @@ $lang->bug->toCase = 'vers CasTest';
$lang->bug->colorTag = 'Couleur';
$lang->bug->fixedRate = 'Repair Rate';
$lang->bug->noticefeedbackBy = 'NoticeFeedbackBy';
$lang->bug->selectProjects = 'Select Projects';
$lang->bug->selectProjects = "Select {$lang->projectCommon}s";
$lang->bug->nextStep = 'Next Step';
$lang->bug->noProject = 'Haven’t chosen a project yet.';
$lang->bug->noProject = "Haven’t chosen a {$lang->projectCommon} yet.";
$lang->bug->noExecution = 'Haven’t chosen a ' . strtolower($lang->execution->common) . ' yet.';
/* Method list. */
@@ -154,7 +154,7 @@ $lang->bug->overdueBugs = 'Retard';
$lang->bug->allBugs = 'Tous';
$lang->bug->byQuery = 'Rechercher';
$lang->bug->needConfirm = 'Story Changée';
$lang->bug->allProject = 'All Projects';
$lang->bug->allProject = "All {$lang->projectCommon}s";
$lang->bug->allProduct = 'Tous les ' . $lang->productCommon . 's';
$lang->bug->my = 'Mes';
$lang->bug->yesterdayResolved = 'Bugs Résolus Hier ';
@@ -166,7 +166,7 @@ $lang->bug->openedByMeAB = 'Signalés par Moi';
$lang->bug->resolvedByMeAB = 'Résolus par Moi';
$lang->bug->ditto = 'Idem';
$lang->bug->dittoNotice = "Ce bug n'est pas lié au même product que le précédent !";
$lang->bug->dittoNotice = 'This bug is not linked to the same product as the last one!';
$lang->bug->noAssigned = 'Non affectés';
$lang->bug->noBug = "Pas de bug pour l'instant. Bravo !";
$lang->bug->noModule = "<div>Vous n'avez pas de modules.</div><div>Gérer Modules maintenant</div>";
@@ -192,8 +192,8 @@ global $config;
/* Legend list. */
$lang->bug->legendBasicInfo = 'Infos de Base';
$lang->bug->legendAttatch = 'Fichiers';
$lang->bug->legendPRJExecStoryTask = 'Project/' . $lang->executionCommon . '/Story/Task';
$lang->bug->legendExecStoryTask = 'Porject/Story/Task';
$lang->bug->legendPRJExecStoryTask = "{$lang->SRCommon}/{$lang->executionCommon}/Story/Task";
$lang->bug->legendExecStoryTask = "{$lang->SRCommon}/Story/Task";
$lang->bug->lblTypeAndSeverity = 'Type/Severité';
$lang->bug->lblSystemBrowserAndHardware = 'Système/Browser';
$lang->bug->legendSteps = 'Etapes Repro';
@@ -426,11 +426,11 @@ $lang->bug->featureBar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe;
$lang->bug->featureBar['browse']['unresolved'] = $lang->bug->unResolved;
$lang->bug->featureBar['browse']['more'] = $lang->more;
$lang->bug->moreSelects['assignedbyme'] = $lang->bug->assignedByMe;
$lang->bug->moreSelects['unconfirmed'] = $lang->bug->unconfirmed;
$lang->bug->moreSelects['assigntonull'] = $lang->bug->assignToNull;
$lang->bug->moreSelects['longlifebugs'] = $lang->bug->longLifeBugs;
$lang->bug->moreSelects['toclosed'] = $lang->bug->toClosed;
$lang->bug->moreSelects['postponedbugs'] = $lang->bug->postponedBugs;
$lang->bug->moreSelects['overduebugs'] = $lang->bug->overdueBugs;
$lang->bug->moreSelects['needconfirm'] = $lang->bug->needConfirm;
$lang->bug->moreSelects['browse']['more']['assignedbyme'] = $lang->bug->assignedByMe;
$lang->bug->moreSelects['browse']['more']['unconfirmed'] = $lang->bug->unconfirmed;
$lang->bug->moreSelects['browse']['more']['assigntonull'] = $lang->bug->assignToNull;
$lang->bug->moreSelects['browse']['more']['longlifebugs'] = $lang->bug->longLifeBugs;
$lang->bug->moreSelects['browse']['more']['toclosed'] = $lang->bug->toClosed;
$lang->bug->moreSelects['browse']['more']['postponedbugs'] = $lang->bug->postponedBugs;
$lang->bug->moreSelects['browse']['more']['overduebugs'] = $lang->bug->overdueBugs;
$lang->bug->moreSelects['browse']['more']['needconfirm'] = $lang->bug->needConfirm;
+14 -14
View File
@@ -17,7 +17,7 @@ $lang->bug->branch = '平台/分支';
$lang->bug->productplan = '所属' . '计划';
$lang->bug->module = '所属模块';
$lang->bug->moduleAB = '模块';
$lang->bug->project = '所属项目';
$lang->bug->project = '所属' . $lang->projectCommon;
$lang->bug->execution = '所属' . $lang->execution->common;
$lang->bug->kanban = '所属看板';
$lang->bug->story = "相关需求";
@@ -95,9 +95,9 @@ $lang->bug->toCase = '生成用例';
$lang->bug->colorTag = '颜色标签';
$lang->bug->fixedRate = '修复率';
$lang->bug->noticefeedbackBy = '通知反馈者';
$lang->bug->selectProjects = '选择项目';
$lang->bug->selectProjects = '选择' . $lang->projectCommon;
$lang->bug->nextStep = '下一步';
$lang->bug->noProject = '还没有选择项目!';
$lang->bug->noProject = "还没有选择{$lang->projectCommon}!";
$lang->bug->noExecution = "还没有选择{$lang->execution->common}!";
/* 方法列表。*/
@@ -154,7 +154,7 @@ $lang->bug->overdueBugs = '过期Bug';
$lang->bug->allBugs = '所有';
$lang->bug->byQuery = '搜索';
$lang->bug->needConfirm = "{$lang->SRCommon}变动";
$lang->bug->allProject = '所有项目';
$lang->bug->allProject = '所有' . $lang->projectCommon;
$lang->bug->allProduct = '所有' . $lang->productCommon;
$lang->bug->my = '我的';
$lang->bug->yesterdayResolved = '昨天解决Bug数';
@@ -166,7 +166,7 @@ $lang->bug->openedByMeAB = '由我创建';
$lang->bug->resolvedByMeAB = '由我解决';
$lang->bug->ditto = '同上';
$lang->bug->dittoNotice = '该bug与上一bug不属于同一产品!';
$lang->bug->dittoNotice = "该bug与上一bug不属于同一{$lang->productCommon}!";
$lang->bug->noAssigned = '未指派';
$lang->bug->noBug = '暂时没有Bug。';
$lang->bug->noModule = '<div>您现在还没有模块信息</div><div>请维护测试模块</div>';
@@ -192,8 +192,8 @@ global $config;
/* legend列表。*/
$lang->bug->legendBasicInfo = '基本信息';
$lang->bug->legendAttatch = '附件';
$lang->bug->legendPRJExecStoryTask = "项目/{$lang->executionCommon}/{$lang->SRCommon}/任务";
$lang->bug->legendExecStoryTask = "项目/{$lang->SRCommon}/任务";
$lang->bug->legendPRJExecStoryTask = "{$lang->projectCommon}/{$lang->executionCommon}/{$lang->SRCommon}/任务";
$lang->bug->legendExecStoryTask = "{$lang->projectCommon}/{$lang->SRCommon}/任务";
$lang->bug->lblTypeAndSeverity = '类型/严重程度';
$lang->bug->lblSystemBrowserAndHardware = '系统/浏览器';
$lang->bug->legendSteps = '重现步骤';
@@ -427,10 +427,10 @@ $lang->bug->featureBar['browse']['unresolved'] = $lang->bug->unResolved;
$lang->bug->featureBar['browse']['more'] = $lang->more;
$lang->bug->moreSelects['unconfirmed'] = $lang->bug->unconfirmed;
$lang->bug->moreSelects['assigntonull'] = $lang->bug->assignToNull;
$lang->bug->moreSelects['longlifebugs'] = $lang->bug->longLifeBugs;
$lang->bug->moreSelects['toclosed'] = $lang->bug->toClosed;
$lang->bug->moreSelects['postponedbugs'] = $lang->bug->postponedBugs;
$lang->bug->moreSelects['overduebugs'] = $lang->bug->overdueBugs;
$lang->bug->moreSelects['needconfirm'] = $lang->bug->needConfirm;
$lang->bug->moreSelects['browse']['more']['unconfirmed'] = $lang->bug->unconfirmed;
$lang->bug->moreSelects['browse']['more']['assigntonull'] = $lang->bug->assignToNull;
$lang->bug->moreSelects['browse']['more']['longlifebugs'] = $lang->bug->longLifeBugs;
$lang->bug->moreSelects['browse']['more']['toclosed'] = $lang->bug->toClosed;
$lang->bug->moreSelects['browse']['more']['postponedbugs'] = $lang->bug->postponedBugs;
$lang->bug->moreSelects['browse']['more']['overduebugs'] = $lang->bug->overdueBugs;
$lang->bug->moreSelects['browse']['more']['needconfirm'] = $lang->bug->needConfirm;
+5 -4
View File
@@ -66,18 +66,19 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
}
elseif($menuItem->name == 'more')
{
if(!empty($lang->bug->moreSelects))
$moreSelects = isset($lang->bug->moreSelects[$app->rawMethod]['more']) ? $lang->bug->moreSelects[$app->rawMethod]['more'] : array();
if(!empty($moreSelects))
{
$moreLabel = $lang->more;
$moreLabelActive = '';
if(isset($lang->bug->moreSelects[$this->session->bugBrowseType]))
if(isset($moreSelects[$this->session->bugBrowseType]))
{
$moreLabel = "<span class='text'>{$lang->bug->moreSelects[$this->session->bugBrowseType]}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>";
$moreLabel = "<span class='text'>{$moreSelects[$this->session->bugBrowseType]}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>";
$moreLabelActive = 'btn-active-text';
}
echo "<div class='btn-group'><a href='javascript:;' data-toggle='dropdown' class='btn btn-link {$moreLabelActive}'>{$moreLabel} <span class='caret'></span></a>";
echo "<ul class='dropdown-menu'>";
foreach($lang->bug->moreSelects as $menuBrowseType => $label)
foreach($moreSelects as $menuBrowseType => $label)
{
$active = $menuBrowseType == $this->session->bugBrowseType ? 'btn-active-text' : '';
echo '<li>' . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=$menuBrowseType"), "<span class='text'>{$label}</span>", '', "class='btn btn-link $active'") . '</li>';
+1 -1
View File
@@ -251,7 +251,7 @@
<?php if($browserList):?>
<p class='browserContent'>
<?php foreach($browserList as $browser):?>
<?php if($os) echo "<span class='label label-outline'>" . zget($lang->bug->browserList, $browser) . "</span>";?>
<?php if($browser) echo "<span class='label label-outline'>" . zget($lang->bug->browserList, $browser) . "</span>";?>
<?php endforeach;?>
</p>
<?php endif;?>
+7 -5
View File
@@ -66,6 +66,7 @@ class build extends control
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->createLink('build', 'view', "buildID=$buildID") . "#app={$this->app->tab}"));
}
$status = empty($this->config->CRProduct) ? 'noclosed' : '';
$this->loadModel('product');
$this->loadModel('project');
/* Set menu. */
@@ -74,7 +75,7 @@ class build extends control
$this->project->setMenu($projectID);
$executions = $this->execution->getPairs($projectID, 'all', 'stagefilter|leaf|order_asc');
$executionID = empty($executionID) ? key($executions) : $executionID;
$productGroups = $executionID ? $this->product->getProducts($executionID) : array();
$productGroups = $executionID ? $this->product->getProducts($executionID, $status) : array();
$branchGroups = $executionID ? $this->project->getBranchesByProject($executionID) : array();
$this->session->set('project', $projectID);
}
@@ -83,7 +84,7 @@ class build extends control
$execution = $this->execution->getByID($executionID);
$executions = $this->execution->getPairs($execution->project, 'all', 'stagefilter|leaf|order_asc');
$projectID = $execution->project;
$productGroups = $this->product->getProducts($executionID);
$productGroups = $this->product->getProducts($executionID, $status);
$branchGroups = $this->project->getBranchesByProject($executionID);
$this->execution->setMenu($executionID);
$this->session->set('project', $execution->project);
@@ -93,7 +94,7 @@ class build extends control
$execution = $this->execution->getByID($executionID);
$projectID = $execution ? $execution->project : 0;
$executions = $this->execution->getPairs($projectID, 'all', 'stagefilter|leaf');
$productGroups = $this->product->getProducts($executionID);
$productGroups = $this->product->getProducts($executionID, $status);
$branchGroups = $this->project->getBranchesByProject($executionID);
}
@@ -171,14 +172,15 @@ class build extends control
if($this->app->tab == 'execution') $this->execution->setMenu($build->execution);
$builds = array();
$status = empty($this->config->CRProduct) ? 'noclosed' : '';
if($build->execution)
{
$productGroups = $this->product->getProducts($build->execution);
$productGroups = $this->product->getProducts($build->execution, $status);
$branches = $this->loadModel('branch')->getList($build->product, $build->execution, 'all');
}
else
{
$productGroups = $this->product->getProducts($build->project);
$productGroups = $this->product->getProducts($build->project, $status);
$branches = $this->loadModel('branch')->getList($build->product, $build->project, 'all');
$builds = $this->build->getBuildPairs($build->product, 'all', 'noempty,notrunk,singled,separate', $build->project, 'project', $build->builds, false);
}
+2
View File
@@ -49,6 +49,8 @@ $().ready(function()
}
});
$('#product').change();
$('[data-toggle="popover"]').popover();
});
/**
+2 -2
View File
@@ -29,7 +29,7 @@ $lang->build->basicInfo = 'Basis Info';
$lang->build->id = 'ID';
$lang->build->product = $lang->productCommon;
$lang->build->project = 'Project';
$lang->build->project = $lang->projectCommon;
$lang->build->branch = 'Platform/Branch';
$lang->build->branchAll = 'All associated %s';
$lang->build->branchName = '%s';
@@ -64,7 +64,7 @@ $lang->build->notice = new stdclass();
$lang->build->notice->changeProduct = "The {$lang->SRCommon}, bug, or the version of the submitted test order has been linked, and its {$lang->productCommon} cannot be modified";
$lang->build->notice->changeExecution = "The version of the submitted test order cannot be modified {$lang->executionCommon}";
$lang->build->notice->changeBuilds = "The version of the submitted test order cannot be modified builds";
$lang->build->notice->autoRelation = "The completed requirements, resolved bugs, and generated bugs under the relevant version will be automatically associated with the project version";
$lang->build->notice->autoRelation = "The completed requirements, resolved bugs, and generated bugs under the relevant version will be automatically associated with the {$lang->projectCommon} version";
$lang->build->notice->createTest = "The execution of this version has been deleted, and the test cannot be submitted";
$lang->build->confirmChangeBuild = "After branch『%s』disassociation,under the %s have %s {$lang->SRCommon} and %s Bug will remove synchronization from version, whether to cancel?";
+1 -1
View File
@@ -29,7 +29,7 @@ $lang->build->basicInfo = 'Basic Info';
$lang->build->id = 'ID';
$lang->build->product = $lang->productCommon;
$lang->build->project = 'Project';
$lang->build->project = $lang->projectCommon;
$lang->build->branch = 'Platform/Branch';
$lang->build->branchAll = 'All associated %s';
$lang->build->branchName = '%s';
+2 -2
View File
@@ -29,7 +29,7 @@ $lang->build->basicInfo = 'Infos de Base';
$lang->build->id = 'ID';
$lang->build->product = $lang->productCommon;
$lang->build->project = 'Project';
$lang->build->project = $lang->projectCommon;
$lang->build->branch = 'Plateforme/Branche';
$lang->build->branchAll = 'All associated %s';
$lang->build->branchName = '%s';
@@ -64,7 +64,7 @@ $lang->build->notice = new stdclass();
$lang->build->notice->changeProduct = "The {$lang->SRCommon}, bug, or the version of the submitted test order has been linked, and its {$lang->productCommon} cannot be modified";
$lang->build->notice->changeExecution = "The version of the submitted test order cannot be modified {$lang->executionCommon}";
$lang->build->notice->changeBuilds = "The version of the submitted test order cannot be modified builds";
$lang->build->notice->autoRelation = "The completed requirements, resolved bugs, and generated bugs under the relevant version will be automatically associated with the project version";
$lang->build->notice->autoRelation = "The completed requirements, resolved bugs, and generated bugs under the relevant version will be automatically associated with the {$lang->projectCommon} version";
$lang->build->notice->createTest = "The execution of this version has been deleted, and the test cannot be submitted";
$lang->build->confirmChangeBuild = "After branch『%s』disassociation,under the %s have %s {$lang->SRCommon} and %s Bug will remove synchronization from version, whether to cancel?";
+2 -2
View File
@@ -29,7 +29,7 @@ $lang->build->basicInfo = '基本信息';
$lang->build->id = 'ID';
$lang->build->product = '所属' . $lang->productCommon;
$lang->build->project = '所属项目';
$lang->build->project = '所属' . $lang->projectCommon;
$lang->build->branch = '平台/分支';
$lang->build->branchAll = '所有关联%s';
$lang->build->branchName = '所属%s';
@@ -64,7 +64,7 @@ $lang->build->notice = new stdclass();
$lang->build->notice->changeProduct = "已经关联{$lang->SRCommon}、Bug或提交测试单的版本,不能修改其所属{$lang->productCommon}";
$lang->build->notice->changeExecution = "提交测试单的版本,不能修改其所属{$lang->executionCommon}";
$lang->build->notice->changeBuilds = "提交测试单的版本,不能修改关联版本";
$lang->build->notice->autoRelation = "相关版本下完成的需求、解决的Bug、产生的Bug将会自动关联到项目版本中";
$lang->build->notice->autoRelation = "相关版本下完成的需求、解决的Bug、产生的Bug将会自动关联到{$lang->projectCommon}版本中";
$lang->build->notice->createTest = "该版本所属执行已删除,不能提交测试";
$lang->build->confirmChangeBuild = "%s『%s』解除关联后,%s下 %s个{$lang->SRCommon}和%s个Bug将同步从版本移除,是否解除?";
+3 -1
View File
@@ -60,7 +60,9 @@
<tr class='hide'>
<th class='w-120px'><?php echo $lang->build->builds;?></th>
<td id='buildBox'><?php echo html::select('builds[]', array(), '', "class='form-control chosen' multiple data-placeholder='{$lang->build->placeholder->multipleSelect}'");?></td>
<td><?php echo $lang->build->notice->autoRelation;?></td>
<td>
<icon class='icon icon-help' data-toggle='popover' data-trigger='focus hover' data-placement='right' data-tip-class='text-muted popover-sm' data-content="<?php echo $lang->build->notice->autoRelation;?>"></icon>
</td>
</tr>
<tr>
<th class='w-120px'><?php echo $lang->build->name;?></th>
+2 -2
View File
@@ -74,7 +74,7 @@ tbody tr td:first-child input {display: none;}
<div class='actions'><?php echo html::a("javascript:showLink($build->id, \"story\")", '<i class="icon-link"></i> ' . $lang->build->linkStory, '', "class='btn btn-primary'");?></div>
<div class='linkBox cell hidden'></div>
<?php endif;?>
<form class='main-table table-story' data-ride='table' method='post' target='hiddenwin' action='<?php echo $this->createLink($module, 'batchUnlinkStory', "buildID={$build->id}")?>' id='linkedStoriesForm'>
<form class='main-table table-story<?php if($link === 'true' and $type == 'story') echo " hidden";?>' data-ride='table' method='post' target='hiddenwin' action='<?php echo $this->createLink($module, 'batchUnlinkStory', "buildID={$build->id}")?>' id='linkedStoriesForm'>
<table class='table has-sort-head' id='storyList'>
<?php $canBatchUnlink = ($canBeChanged and common::hasPriv($module, 'batchUnlinkStory'));?>
<?php $vars = "buildID={$build->id}&type=story&link=$link&param=$param&orderBy=%s";?>
@@ -192,7 +192,7 @@ tbody tr td:first-child input {display: none;}
<div class='actions'><?php echo html::a("javascript:showLink($build->id, \"bug\")", '<i class="icon-bug"></i> ' . $lang->build->linkBug, '', "class='btn btn-primary'");?></div>
<div class='linkBox cell hidden'></div>
<?php endif;?>
<form class='main-table table-bug' data-ride='table' method='post' target='hiddenwin' action="<?php echo $this->createLink($module, 'batchUnlinkBug', "build=$build->id");?>" id='linkedBugsForm'>
<form class='main-table table-bug<?php if($link === 'true' and $type == 'bug') echo " hidden";?>' data-ride='table' method='post' target='hiddenwin' action="<?php echo $this->createLink($module, 'batchUnlinkBug', "build=$build->id");?>" id='linkedBugsForm'>
<table class='table has-sort-head' id='bugList'>
<?php $canBatchUnlink = $canBeChanged and common::hasPriv($module, 'batchUnlinkBug');?>
<?php $vars = "buildID={$build->id}&type=bug&link=$link&param=$param&orderBy=%s";?>
+1
View File
@@ -65,6 +65,7 @@ $lang->custom = new stdclass();
$lang->mail = new stdclass();
$lang->cron = new stdclass();
$lang->dev = new stdclass();
$lang->editor = new stdclass();
$lang->entry = new stdclass();
$lang->webhook = new stdclass();
$lang->message = new stdclass();
+16 -10
View File
@@ -90,6 +90,8 @@ $lang->viewDetails = 'View Details';
$lang->actions = 'Aktionen';
$lang->restore = 'Wiederherstellen';
$lang->confirmDraft = 'There are unsaved form of %name%. Do you want to restore them?';
$lang->resume = 'resume';
$lang->comment = 'Notiz';
$lang->history = 'Historie';
$lang->attatch = 'Anlagen';
@@ -194,6 +196,7 @@ $lang->extension->common = 'Extension';
$lang->company->common = 'Company';
$lang->dept->common = 'Dept';
$lang->upgrade->common = 'Update';
$lang->editor->common = 'Editor';
$lang->program->list = 'Program List';
$lang->program->kanban = 'Program Kanban';
$lang->design->common = 'Design';
@@ -204,7 +207,9 @@ $lang->design->ADS = 'ADS';
$lang->stage->common = 'Stage';
$lang->stage->type = 'Stage Type';
$lang->stage->list = 'Stage List';
$lang->stage->percent = 'Workload Ratio';
$lang->execution->list = "{$lang->executionCommon} List";
$lang->execution->CFD = "Cumulative Flow Diagrams";
$lang->kanban->common = 'Kanban';
$lang->backup->common = 'Backup';
$lang->action->trash = 'Recycle';
@@ -254,17 +259,18 @@ $lang->indexPage = 'Index';
$lang->model = 'Model';
$lang->redev = 'Develop';
$lang->browser = 'Browser';
$lang->db = 'Database';
$lang->langItem = 'Lang Item';
$lang->api->doc = 'API Document';
$lang->database = 'Data Dictionary';
$lang->editor = 'Editor';
$lang->timezone = 'Timezone';
$lang->security = 'Security';
$lang->calendar = 'Calendar';
$lang->my->work = 'Work';
$lang->project->list = 'Project List';
$lang->project->kanban = 'Project Kanban';
$lang->project->list = $lang->projectCommon . ' List';
$lang->project->kanban = $lang->projectCommon . ' Kanban';
$lang->execution->executionKanban = "{$lang->execution->common} Kanban";
$lang->execution->all = "{$lang->execution->common} List";
@@ -272,8 +278,8 @@ $lang->execution->all = "{$lang->execution->common} List";
$lang->doc->recent = 'Recent';
$lang->doc->my = 'My';
$lang->doc->favorite = 'Favorite';
$lang->doc->product = 'Product';
$lang->doc->project = 'Project';
$lang->doc->product = $lang->productCommon;
$lang->doc->project = $lang->projectCommon;
$lang->doc->api = 'API';
$lang->doc->execution = $lang->execution->common;
$lang->doc->custom = 'Custom';
@@ -333,8 +339,8 @@ $lang->searchObjects['doc'] = 'Doc';
$lang->searchObjects['caselib'] = 'Case Library';
$lang->searchObjects['testreport'] = 'Test-Bericht';
$lang->searchObjects['program'] = 'Program';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['execution'] = $lang->executionCommon;
$lang->searchObjects['project'] = $lang->projectCommon;
$lang->searchObjects['execution'] = $lang->execution->common;
$lang->searchObjects['user'] = 'User';
$lang->searchTips = '';
@@ -358,12 +364,12 @@ $lang->visionList['lite'] = 'Operation Management Interface';
$lang->createObjects['todo'] = 'Todo';
$lang->createObjects['effort'] = 'Effort';
$lang->createObjects['bug'] = 'Bug';
$lang->createObjects['story'] = 'Story';
$lang->createObjects['story'] = $lang->SRCommon;
$lang->createObjects['task'] = 'Task';
$lang->createObjects['testcase'] = 'Case';
$lang->createObjects['execution'] = $lang->execution->common;
$lang->createObjects['project'] = 'Project';
$lang->createObjects['product'] = 'Product';
$lang->createObjects['project'] = $lang->projectCommon;
$lang->createObjects['product'] = $lang->productCommon;
$lang->createObjects['program'] = 'Program';
$lang->createObjects['doc'] = 'Doc';
$lang->createObjects['kanbanspace'] = 'Space';
+16 -10
View File
@@ -90,6 +90,8 @@ $lang->viewDetails = 'View Details';
$lang->actions = 'Action';
$lang->restore = 'Reset';
$lang->confirmDraft = 'There are unsaved form of %name%. Do you want to restore them?';
$lang->resume = 'resume';
$lang->comment = 'Note';
$lang->history = 'History';
$lang->attatch = 'Files';
@@ -194,6 +196,7 @@ $lang->extension->common = 'Extension';
$lang->company->common = 'Company';
$lang->dept->common = 'Dept';
$lang->upgrade->common = 'Update';
$lang->editor->common = 'Editor';
$lang->program->list = 'Program List';
$lang->program->kanban = 'Program Kanban';
$lang->design->common = 'Design';
@@ -204,7 +207,9 @@ $lang->design->ADS = 'Interface Design';
$lang->stage->common = 'Stage';
$lang->stage->type = 'Stage Type';
$lang->stage->list = 'Stage List';
$lang->stage->percent = 'Workload Ratio';
$lang->execution->list = "{$lang->executionCommon} List";
$lang->execution->CFD = "Cumulative Flow Diagrams";
$lang->kanban->common = 'Kanban';
$lang->backup->common = 'Backup';
$lang->action->trash = 'Recycle';
@@ -254,17 +259,18 @@ $lang->indexPage = 'Index';
$lang->model = 'Model';
$lang->redev = 'Develop';
$lang->browser = 'Browser';
$lang->db = 'Database';
$lang->langItem = 'Lang Item';
$lang->api->doc = 'API Document';
$lang->database = 'Data Dictionary';
$lang->editor = 'Editor';
$lang->timezone = 'Timezone';
$lang->security = 'Security';
$lang->calendar = 'Calendar';
$lang->my->work = 'Work';
$lang->project->list = 'Project List';
$lang->project->kanban = 'Project Kanban';
$lang->project->list = $lang->projectCommon . ' List';
$lang->project->kanban = $lang->projectCommon . ' Kanban';
$lang->execution->executionKanban = "{$lang->execution->common} Kanban";
$lang->execution->all = "{$lang->execution->common} List";
@@ -272,8 +278,8 @@ $lang->execution->all = "{$lang->execution->common} List";
$lang->doc->recent = 'Recent';
$lang->doc->my = 'My';
$lang->doc->favorite = 'Favorite';
$lang->doc->product = 'Product';
$lang->doc->project = 'Project';
$lang->doc->product = $lang->productCommon;
$lang->doc->project = $lang->projectCommon;
$lang->doc->api = 'API';
$lang->doc->execution = $lang->execution->common;
$lang->doc->custom = 'Custom';
@@ -333,8 +339,8 @@ $lang->searchObjects['doc'] = 'Document';
$lang->searchObjects['caselib'] = 'Case Library';
$lang->searchObjects['testreport'] = 'Test Report';
$lang->searchObjects['program'] = 'Program';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['execution'] = $lang->executionCommon;
$lang->searchObjects['project'] = $lang->projectCommon;
$lang->searchObjects['execution'] = $lang->execution->common;
$lang->searchObjects['user'] = 'User';
$lang->searchTips = 'ID (ctrl+g)';
@@ -358,12 +364,12 @@ $lang->visionList['lite'] = 'Operation Management Interface';
$lang->createObjects['todo'] = 'Todo';
$lang->createObjects['effort'] = 'Effort';
$lang->createObjects['bug'] = 'Bug';
$lang->createObjects['story'] = 'Story';
$lang->createObjects['story'] = $lang->SRCommon;
$lang->createObjects['task'] = 'Task';
$lang->createObjects['testcase'] = 'Case';
$lang->createObjects['execution'] = $lang->execution->common;
$lang->createObjects['project'] = 'Project';
$lang->createObjects['product'] = 'Product';
$lang->createObjects['project'] = $lang->projectCommon;
$lang->createObjects['product'] = $lang->productCommon;
$lang->createObjects['program'] = 'Program';
$lang->createObjects['doc'] = 'Doc';
$lang->createObjects['kanbanspace'] = 'Space';
+16 -10
View File
@@ -90,6 +90,8 @@ $lang->viewDetails = 'View Details';
$lang->actions = 'Action';
$lang->restore = 'Réinitialiser';
$lang->confirmDraft = 'There are unsaved form of %name%. Do you want to restore them?';
$lang->resume = 'resume';
$lang->comment = 'Note';
$lang->history = 'Historique';
$lang->attatch = 'Fichiers';
@@ -194,6 +196,7 @@ $lang->extension->common = 'Extension';
$lang->company->common = 'Company';
$lang->dept->common = 'Dept';
$lang->upgrade->common = 'Update';
$lang->editor->common = 'Editor';
$lang->program->list = 'Program List';
$lang->program->kanban = 'Program Kanban';
$lang->design->common = 'Design';
@@ -204,7 +207,9 @@ $lang->design->ADS = 'ADS';
$lang->stage->common = 'Stage';
$lang->stage->type = 'Stage Type';
$lang->stage->list = 'Stage List';
$lang->stage->percent = 'Workload Ratio';
$lang->execution->list = "{$lang->executionCommon} List";
$lang->execution->CFD = "Cumulative Flow Diagrams";
$lang->kanban->common = 'Kanban';
$lang->backup->common = 'Backup';
$lang->action->trash = 'Recycle';
@@ -254,17 +259,18 @@ $lang->indexPage = 'Index';
$lang->model = 'Model';
$lang->redev = 'Develop';
$lang->browser = 'Browser';
$lang->db = 'Database';
$lang->langItem = 'Lang Item';
$lang->api->doc = 'API Document';
$lang->database = 'Data Dictionary';
$lang->editor = 'Editor';
$lang->timezone = 'Timezone';
$lang->security = 'Security';
$lang->calendar = 'Calendar';
$lang->my->work = 'Work';
$lang->project->list = 'Project List';
$lang->project->kanban = 'Project Kanban';
$lang->project->list = $lang->projectCommon . ' List';
$lang->project->kanban = $lang->projectCommon . ' Kanban';
$lang->execution->executionKanban = "{$lang->execution->common} Kanban";
$lang->execution->all = "{$lang->execution->common} List";
@@ -272,8 +278,8 @@ $lang->execution->all = "{$lang->execution->common} List";
$lang->doc->recent = 'Recent';
$lang->doc->my = 'My';
$lang->doc->favorite = 'Favorite';
$lang->doc->product = 'Product';
$lang->doc->project = 'Project';
$lang->doc->product = $lang->productCommon;
$lang->doc->project = $lang->projectCommon;
$lang->doc->api = 'API';
$lang->doc->execution = $lang->execution->common;
$lang->doc->custom = 'Custom';
@@ -333,8 +339,8 @@ $lang->searchObjects['doc'] = 'Document';
$lang->searchObjects['caselib'] = 'Case Library';
$lang->searchObjects['testreport'] = 'CR de Test';
$lang->searchObjects['program'] = 'Program';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['execution'] = $lang->executionCommon;
$lang->searchObjects['project'] = $lang->projectCommon;
$lang->searchObjects['execution'] = $lang->execution->common;
$lang->searchObjects['user'] = 'User';
$lang->searchTips = '';
@@ -358,12 +364,12 @@ $lang->visionList['lite'] = 'Operation Management Interface';
$lang->createObjects['todo'] = 'Todo';
$lang->createObjects['effort'] = 'Effort';
$lang->createObjects['bug'] = 'Bug';
$lang->createObjects['story'] = 'Story';
$lang->createObjects['story'] = $lang->SRCommon;
$lang->createObjects['task'] = 'Task';
$lang->createObjects['testcase'] = 'Case';
$lang->createObjects['execution'] = $lang->execution->common;
$lang->createObjects['project'] = 'Project';
$lang->createObjects['product'] = 'Product';
$lang->createObjects['project'] = $lang->projectCommon;
$lang->createObjects['product'] = $lang->productCommon;
$lang->createObjects['program'] = 'Program';
$lang->createObjects['doc'] = 'Doc';
$lang->createObjects['kanbanspace'] = 'Space';

Some files were not shown because too many files have changed in this diff Show More