Merge branch 'master' of https://gitlab.zcorp.cc/easycorp/zentaopms into zentaopms_65
This commit is contained in:
@@ -227,7 +227,7 @@ $config->openMethods[] = 'doc.createbasicinfo';
|
||||
$config->openMethods[] = 'project.createguide';
|
||||
$config->openMethods[] = 'task.editteam';
|
||||
$config->openMethods[] = 'feedback.mergeproductmodule';
|
||||
$config->openMethods[] = 'zanode.nodeList';
|
||||
$config->openMethods[] = 'zanode.nodelist';
|
||||
$config->openMethods[] = 'action.restoreStages';
|
||||
|
||||
$config->openModules = array();
|
||||
@@ -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
-1
@@ -1,6 +1,6 @@
|
||||
DELETE FROM `zt_config` WHERE module = 'datatable' AND section = 'executionAll';
|
||||
|
||||
update `zt_task` set `assignedTo` = '' where `mode` = 'multi' and `status` != 'done' and `status` != 'closed';
|
||||
UPDATE `zt_task` SET `assignedTo` = '' WHERE `mode` = 'multi' AND `status` != 'done' AND `status` != 'closed';
|
||||
|
||||
REPLACE INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`, `vision`) SELECT `lang`, `module`, 'scrumClassify', `key`, `value`, `system`, `vision` FROM `zt_lang` WHERE `module` = 'process' and `section` = 'classify' and `system` = '1' ORDER BY id ASC;
|
||||
REPLACE INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`, `vision`) SELECT `lang`, `module`, 'agileplusClassify', `key`, `value`, `system`, `vision` FROM `zt_lang` WHERE `module` = 'process' and `section` = 'classify' and `system` = '1' ORDER BY id ASC;
|
||||
@@ -65,3 +65,5 @@ REPLACE INTO `zt_process` (`model`, `name`, `type`, `abbr`, `desc`, `assignedTo`
|
||||
|
||||
UPDATE `zt_chart` SET `sql` = 'SELECT tt.join as `year`, count(1) as number, tt.name from (\r\nselect \r\nt2.name, YEAR(t1.join) as `join`\r\nfrom zt_team t1 \r\nRIGHT JOIN zt_project t2 on t2.id = t1.root\r\nRIGHT JOIN zt_user t3 on t3.account = t1.account\r\nWHERE t1.type = \'project\'\r\nAND t2.deleted = \'0\'\r\n) tt\r\nGROUP BY tt.`name`, tt.join\r\nORDER BY tt.join, number desc, tt.name' WHERE `id` = '1097';
|
||||
UPDATE `zt_chart` SET `sql` = 'SELECT tt.join as `year`, count(1) as number, tt.setName from (\r\nselect \r\nYEAR(t1.join) as `join`, t4.name as setName \r\nfrom zt_team t1 \r\nRIGHT JOIN zt_project t2 on t2.id = t1.root\r\nLEFT JOIN zt_project t4 on FIND_IN_SET(t4.id,t2.path) and t4.grade = 1\r\nRIGHT JOIN zt_user t3 on t3.account = t1.account\r\nWHERE t1.type = \'project\'\r\nAND t2.deleted = \'0\'\r\nAND t3.deleted = \'0\'\r\n) tt\r\nGROUP BY tt.setName, tt.join\r\nORDER BY tt.join, number desc, tt.setName' WHERE `id` = '1086';
|
||||
|
||||
INSERT IGNORE INTO `zt_config` (`vision`, `owner`, `module`, `key`, `value`) VALUES ('', 'system', 'common', 'setCode', '1');
|
||||
|
||||
@@ -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
@@ -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
@@ -11,13 +11,13 @@ Z PUBLIC LICENSE(ZPL) 1.2
|
||||
|
||||
Authorization
|
||||
|
||||
Z PUBLIC LICENSE, also known as ZPL Agreement, is drafted by EasyCorp(www.easycorp.ltd).
|
||||
Z PUBLIC LICENSE, also known as ZPL Agreement, is drafted by ZenTao Software(www.easycorp.ltd).
|
||||
Anyone can use the agreement to publish open source software, and modify the blank in the following text of the agreement accordingly.
|
||||
No other text of the agreement shall be changed. EasyCorp has the final interpretation of the terms in the agreement.
|
||||
No other text of the agreement shall be changed. ZenTao Software has the final interpretation of the terms in the agreement.
|
||||
|
||||
Preface
|
||||
|
||||
ZenTao ALM (Hereinafter referred to as "the software") developed by EasyCorp (www.easycorp.ltd) (hereinafter referred to I). I'm entitled to all copyright of the software.
|
||||
ZenTao ALM (Hereinafter referred to as "the software") developed by ZenTao Software (www.easycorp.ltd) (hereinafter referred to I). I'm entitled to all copyright of the software.
|
||||
The software is released as open source software. You are authorized to use the software as long as you are in compliance with this agreement.
|
||||
By installation of the software, you agree that a contractual relationship between you and me is automatically established.
|
||||
You are obliged to fully comply with all the terms of this agreement unless you choose to stop using the software or you have signed additional agreement with me.
|
||||
|
||||
+3
-3
@@ -2,13 +2,13 @@ Z PUBLIC LICENSE 1.2
|
||||
|
||||
Authorization
|
||||
|
||||
Z PUBLIC LICENSE, also known as ZPL Agreement, is drafted by EasyCorp(www.easycorp.ltd).
|
||||
Z PUBLIC LICENSE, also known as ZPL Agreement, is drafted by ZenTao Software(www.easycorp.ltd).
|
||||
Anyone can use the agreement to publish open source software, and modify the blank in the following text of the agreement accordingly.
|
||||
No other text of the agreement shall be changed. EasyCorp has the final interpretation of the terms in the agreement.
|
||||
No other text of the agreement shall be changed. ZenTao Software has the final interpretation of the terms in the agreement.
|
||||
|
||||
Preface
|
||||
|
||||
ZenTao LITE (Hereinafter referred to as "the software") developed by EasyCorp (www.easycorp.ltd) (hereinafter referred to I). I'm entitled to all copyright of the software.
|
||||
ZenTao LITE (Hereinafter referred to as "the software") developed by ZenTao Software (www.easycorp.ltd) (hereinafter referred to I). I'm entitled to all copyright of the software.
|
||||
The software is released as open source software. You are authorized to use the software as long as you are in compliance with this agreement.
|
||||
By installation of the software, you agree that a contractual relationship between you and me is automatically established.
|
||||
You are obliged to fully comply with all the terms of this agreement unless you choose to stop using the software or you have signed additional agreement with me.
|
||||
|
||||
@@ -4,11 +4,11 @@ $lang->action->label->task = 'Task|task|view|taskID=%s';
|
||||
$lang->action->label->module = 'Katalog|tree|browse|productid=%s&type=story¤tModuleID=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|task|view|taskID=%s';
|
||||
$lang->action->label->module = 'Catalog|tree|browse|productid=%s&type=story¤tModuleID=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|task|view|taskID=%s';
|
||||
$lang->action->label->module = 'Table des matières|tree|browse|productid=%s&type=story¤tModuleID=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¤tModuleID=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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 = '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 = '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,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 = 'Kanban';
|
||||
$lang->company->product = 'Project';
|
||||
$lang->company->product = $lang->projectCommon;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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,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,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,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,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}看板";
|
||||
|
||||
@@ -11,11 +11,11 @@ enterprises. It enables every department and every employee in the company to ma
|
||||
|
||||
EOT;
|
||||
$lang->install->links = <<<EOT
|
||||
ZenTao Lite is developed by <strong><a href='https://en.easysoft.ltd' target='_blank' class='text-danger'>EasyCorp</a></strong>.
|
||||
ZenTao Lite is developed by <strong><a href='https://en.easysoft.ltd' target='_blank' class='text-danger'>ZenTao Software</a></strong>.
|
||||
Official Website: <a href='https://www.zentao.pm' target='_blank'>https://www.zentao.pm</a>
|
||||
Technical Support: <a href='https://www.zentao.pm/forum/' target='_blank'>https://www.zentao.pm/forum/</a>
|
||||
LinkedIn: <a href='https://www.linkedin.com/company/1156596/' target='_blank'>EasyCorp</a>
|
||||
Facebook: <a href='https://www.facebook.com/natureeasysoft' target='_blank'>EasyCorp</a>
|
||||
LinkedIn: <a href='https://www.linkedin.com/company/1156596/' target='_blank'>ZenTao Software</a>
|
||||
Facebook: <a href='https://www.facebook.com/natureeasysoft' target='_blank'>ZenTao Software</a>
|
||||
Twitter: <a href='https://twitter.com/ZentaoA' target='_blank'>ZenTao Lite</a>
|
||||
|
||||
|
||||
|
||||
@@ -11,11 +11,11 @@ enterprises. It enables every department and every employee in the company to ma
|
||||
|
||||
EOT;
|
||||
$lang->install->links = <<<EOT
|
||||
ZenTao Lite is developed by <strong><a href='https://en.easysoft.ltd' target='_blank' class='text-danger'>EasyCorp</a></strong>.
|
||||
ZenTao Lite is developed by <strong><a href='https://en.easysoft.ltd' target='_blank' class='text-danger'>ZenTao Software</a></strong>.
|
||||
Official Website: <a href='https://www.zentao.pm' target='_blank'>https://www.zentao.pm</a>
|
||||
Technical Support: <a href='https://www.zentao.pm/forum/' target='_blank'>https://www.zentao.pm/forum/</a>
|
||||
LinkedIn: <a href='https://www.linkedin.com/company/1156596/' target='_blank'>EasyCorp</a>
|
||||
Facebook: <a href='https://www.facebook.com/natureeasysoft' target='_blank'>EasyCorp</a>
|
||||
LinkedIn: <a href='https://www.linkedin.com/company/1156596/' target='_blank'>ZenTao Software</a>
|
||||
Facebook: <a href='https://www.facebook.com/natureeasysoft' target='_blank'>ZenTao Software</a>
|
||||
Twitter: <a href='https://twitter.com/ZentaoA' target='_blank'>ZenTao Lite</a>
|
||||
|
||||
|
||||
|
||||
@@ -11,11 +11,11 @@ enterprises. It enables every department and every employee in the company to ma
|
||||
|
||||
EOT;
|
||||
$lang->install->links = <<<EOT
|
||||
ZenTao Lite is developed by <strong><a href='https://en.easysoft.ltd' target='_blank' class='text-danger'>EasyCorp</a></strong>.
|
||||
ZenTao Lite is developed by <strong><a href='https://en.easysoft.ltd' target='_blank' class='text-danger'>ZenTao Software</a></strong>.
|
||||
Official Website: <a href='https://www.zentao.pm' target='_blank'>https://www.zentao.pm</a>
|
||||
Technical Support: <a href='https://www.zentao.pm/forum/' target='_blank'>https://www.zentao.pm/forum/</a>
|
||||
LinkedIn: <a href='https://www.linkedin.com/company/1156596/' target='_blank'>EasyCorp</a>
|
||||
Facebook: <a href='https://www.facebook.com/natureeasysoft' target='_blank'>EasyCorp</a>
|
||||
LinkedIn: <a href='https://www.linkedin.com/company/1156596/' target='_blank'>ZenTao Software</a>
|
||||
Facebook: <a href='https://www.facebook.com/natureeasysoft' target='_blank'>ZenTao Software</a>
|
||||
Twitter: <a href='https://twitter.com/ZentaoA' target='_blank'>ZenTao Lite</a>
|
||||
|
||||
|
||||
|
||||
@@ -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'] = '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'] = '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'] = '由我取消';
|
||||
@@ -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>
|
||||
|
||||
@@ -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 = '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 = '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>
|
||||
|
||||
@@ -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.';
|
||||
|
||||
|
||||
@@ -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.';
|
||||
|
||||
|
||||
@@ -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.';
|
||||
|
||||
|
||||
@@ -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 = '因该任务已经产生消耗,为保证数据一致性,我们会帮您创建一条同名子任务记录该消耗。';
|
||||
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
+23
-23
@@ -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
@@ -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
@@ -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
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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')
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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');
|
||||
|
||||
|
||||
@@ -53,23 +53,52 @@ class admin extends control
|
||||
|
||||
$this->loadModel('misc');
|
||||
|
||||
$hasInternet = $this->admin->checkInternet();
|
||||
$clientLang = $this->app->getClientLang();
|
||||
$langNotCN = common::checkNotCN();
|
||||
$dateUsed = $this->admin->genDateUsed();
|
||||
$clientLang = $this->app->getClientLang();
|
||||
$langNotCN = common::checkNotCN();
|
||||
$dateUsed = $this->admin->genDateUsed();
|
||||
|
||||
$zentaoData = $this->admin->getZentaoData();
|
||||
$hasInternet = $zentaoData->hasData;
|
||||
|
||||
$this->view->title = $this->lang->admin->common;
|
||||
$this->view->position[] = $this->lang->admin->index;
|
||||
$this->view->plugins = $this->admin->getExtensionsByAPI('plugin', $langNotCN ? 5 : 6, $hasInternet);
|
||||
$this->view->patches = $this->admin->getExtensionsByAPI('patch', 5, $hasInternet);
|
||||
$this->view->plugins = $zentaoData->plugins;
|
||||
$this->view->patches = $zentaoData->patches;
|
||||
$this->view->dateUsed = $dateUsed;
|
||||
$this->view->hasInternet = $hasInternet;
|
||||
$this->view->dynamics = ($hasInternet and !$langNotCN) ? $this->admin->getDynamicsByAPI(3) : array();
|
||||
$this->view->publicClass = ($hasInternet and !$langNotCN) ? $this->admin->getPublicClassByAPI(3) : array();
|
||||
$this->view->dynamics = $zentaoData->news;
|
||||
$this->view->publicClass = $zentaoData->publicclass;
|
||||
$this->view->langNotCN = $langNotCN;
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get zentao.net data by api.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function ajaxSetZentaoData()
|
||||
{
|
||||
$hasInternet = $this->admin->checkInternet();
|
||||
|
||||
if($hasInternet)
|
||||
{
|
||||
$nextWeek = date('Y-m-d', strtotime('-7 days'));
|
||||
$zentaoData = $this->loadModel('block')->getZentaoData($nextWeek);
|
||||
|
||||
if(empty($zentaoData))
|
||||
{
|
||||
$this->admin->setExtensionsByAPI('plugin', 6);
|
||||
$this->admin->setExtensionsByAPI('patch', 5);
|
||||
$this->admin->setDynamicsByAPI(3);
|
||||
$this->admin->setPublicClassByAPI(3);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->send(array('result' => 'success'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Ignore notice of register and bind.
|
||||
*
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
/* css for without internet */
|
||||
.main.without-internet {display: flex; flex-wrap: wrap;}
|
||||
.main.without-internet > .plug.panel {flex: 1 1 60%; margin-bottom: unset; margin-right: 16px;}
|
||||
.main.without-internet > .bottom {flex: 1 1 30%;}
|
||||
.main.without-internet > .bottom > .official.panel {margin-right: unset;}
|
||||
.main.without-internet > .bottom > .official.panel > .main-panel {flex-direction: row-reverse;}
|
||||
|
||||
|
||||
@@ -10,4 +10,6 @@ $(function()
|
||||
{
|
||||
window.open($(this).data('link'));
|
||||
});
|
||||
|
||||
if(!hasInternet) $.get(createLink('admin', 'ajaxSetZentaoData'));
|
||||
});
|
||||
|
||||
@@ -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')
|
||||
{
|
||||
|
||||
@@ -61,7 +61,7 @@ $lang->admin->info->account = "您的禅道社区账户为%s。";
|
||||
$lang->admin->info->log = '超出存天数的日志会被删除,需要开启计划任务。';
|
||||
|
||||
$lang->admin->notice = new stdclass();
|
||||
$lang->admin->notice->register = "可%s禅道社区 www.zentao.net, 及时获得禅道最新信息。";
|
||||
$lang->admin->notice->register = "可%s禅道社区 www.zentao.net,及时获得禅道最新信息。";
|
||||
$lang->admin->notice->ignore = "不再提示";
|
||||
$lang->admin->notice->int = "『%s』应当是正整数。";
|
||||
|
||||
|
||||
+96
-57
@@ -333,6 +333,13 @@ 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' and !empty($this->config->global->editor)) $subMenu['link'] = $this->lang->editor->common . '|editor|index|';
|
||||
|
||||
$link = array();
|
||||
if(isset($menu['tabMenu'][$subMenuKey]))
|
||||
{
|
||||
@@ -362,12 +369,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);
|
||||
}
|
||||
|
||||
@@ -506,7 +507,7 @@ class adminModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* Get extensions from zentao.net.
|
||||
* Set extensions from zentao.net.
|
||||
*
|
||||
* @param string $type plugin|patch
|
||||
* @param int $limit
|
||||
@@ -514,41 +515,22 @@ class adminModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getExtensionsByAPI($type = 'plugin', $limit = 6, $hasInternet = true)
|
||||
public function setExtensionsByAPI($type = 'plugin', $limit = 5)
|
||||
{
|
||||
if($hasInternet)
|
||||
$searchType = $type == 'plugin' ? 'byModule,offcial' : 'byModule';
|
||||
$param = $type == 'plugin' ? '' : 'MTIxOA==';
|
||||
$extensions = $this->loadModel('extension')->getExtensionsByAPI($searchType, $param, 0, $limit);
|
||||
$extensions = isset($extensions->extensions) ? (array)$extensions->extensions : array();
|
||||
$plugins = array();
|
||||
foreach($extensions as $extension)
|
||||
{
|
||||
$searchType = $type == 'plugin' ? 'byUpdatedTime,offcial' : 'byModule';
|
||||
$param = $type == 'plugin' ? '' : 'MTIxOA==';
|
||||
$extensions = $this->loadModel('extension')->getExtensionsByAPI($searchType, $param, 0, $limit);
|
||||
$plugins = isset($extensions->extensions) ? (array)$extensions->extensions : array();
|
||||
foreach($plugins as $id => $plugin)
|
||||
{
|
||||
$plugin->viewLink = str_replace(array('info', 'client'), '', $plugin->viewLink);
|
||||
if($type == 'patch' and !isset($plugin->compatibleRelease)) unset($plugins[$id]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($this->config->edition == 'open')
|
||||
{
|
||||
$plugins = array(
|
||||
$this->config->admin->plugins[27],
|
||||
$this->config->admin->plugins[26],
|
||||
$this->config->admin->plugins[30]
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$plugins = array(
|
||||
$this->config->admin->plugins[198],
|
||||
$this->config->admin->plugins[194],
|
||||
$this->config->admin->plugins[203]
|
||||
);
|
||||
}
|
||||
if($type == 'patch' and !isset($extension->compatibleRelease)) continue;
|
||||
|
||||
$extension->viewLink = str_replace(array('info', 'client'), '', $extension->viewLink);
|
||||
$plugins[] = $extension;
|
||||
}
|
||||
|
||||
return $plugins;
|
||||
return $this->loadModel('block')->setZentaoData($type, $plugins);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -572,13 +554,13 @@ class adminModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* Get public class from zentao.net.
|
||||
* Set public class from zentao.net.
|
||||
*
|
||||
* @param int $limit
|
||||
* @access public
|
||||
* @return array
|
||||
* @return void
|
||||
*/
|
||||
public function getPublicClassByAPI($limit = 2)
|
||||
public function setPublicClassByAPI($limit = 3)
|
||||
{
|
||||
$apiURL = $this->config->admin->videoAPIURL;
|
||||
$data = $this->fetchAPI($apiURL);
|
||||
@@ -596,24 +578,25 @@ class adminModel extends model
|
||||
$publicClass[$index]->viewLink = $this->config->admin->apiRoot . '/publicclass/' . ($course->alias ? "{$course->alias}-" : '') . "{$course->id}.html";
|
||||
$index ++;
|
||||
}
|
||||
return $publicClass;
|
||||
|
||||
return $this->loadModel('block')->setZentaoData('publicclass', $publicClass);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get dynamics by API.
|
||||
* Set dynamics by API.
|
||||
*
|
||||
* @param int $limit
|
||||
* @access public
|
||||
* @return array
|
||||
* @return void
|
||||
*/
|
||||
public function getDynamicsByAPI($limit = 2)
|
||||
public function setDynamicsByAPI($limit = 2)
|
||||
{
|
||||
$apiURL = $this->config->admin->downloadAPIURL;
|
||||
$data = $this->fetchAPI($apiURL);
|
||||
$articles = $data->articles;
|
||||
|
||||
$index = 1;
|
||||
$downloads = array();
|
||||
$index = 1;
|
||||
$news = array();
|
||||
foreach($articles as $article)
|
||||
{
|
||||
if($index > $limit) break;
|
||||
@@ -622,14 +605,15 @@ class adminModel extends model
|
||||
if(!isset($this->lang->admin->$tagKey)) break;
|
||||
if(!preg_match("/{$this->lang->admin->$tagKey}\d/", $article->title)) continue;
|
||||
|
||||
$downloads[$index] = new stdClass();
|
||||
$downloads[$index]->id = $article->id;
|
||||
$downloads[$index]->title = $article->title;
|
||||
$downloads[$index]->addedDate = $article->addedDate;
|
||||
$downloads[$index]->link = $this->config->admin->apiRoot . "/download/{$article->alias}-{$article->id}.html";
|
||||
$news[$index] = new stdClass();
|
||||
$news[$index]->id = $article->id;
|
||||
$news[$index]->title = $article->title;
|
||||
$news[$index]->addedDate = $article->addedDate;
|
||||
$news[$index]->link = $this->config->admin->apiRoot . "/download/{$article->alias}-{$article->id}.html";
|
||||
$index ++;
|
||||
}
|
||||
return $downloads;
|
||||
|
||||
return $this->loadModel('block')->setZentaoData('news', $news);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -640,17 +624,18 @@ class adminModel extends model
|
||||
*/
|
||||
public function checkInternet()
|
||||
{
|
||||
$curl = curl_init();
|
||||
$timeout = 3;
|
||||
$curl = curl_init();
|
||||
curl_setopt($curl, CURLOPT_URL, $this->config->admin->apiSite);
|
||||
curl_setopt($curl, CURLOPT_TIMEOUT_MS, 1000);
|
||||
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT_MS, 1000);
|
||||
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
|
||||
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
|
||||
$connected = curl_exec($curl);
|
||||
curl_close($curl);
|
||||
|
||||
return (bool)$connected;
|
||||
return $connected ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -670,4 +655,58 @@ class adminModel extends model
|
||||
|
||||
return helper::getDateInterval($firstUseDate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get zentao.net data.
|
||||
*
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getZentaoData()
|
||||
{
|
||||
$zentaoData = $this->loadModel('block')->getZentaoData();
|
||||
|
||||
$data = new stdclass();
|
||||
$data->hasData = true;
|
||||
|
||||
$news = array();
|
||||
$publicclass = array();
|
||||
$plugins = array();
|
||||
$patches = array();
|
||||
if(empty($zentaoData))
|
||||
{
|
||||
$data->hasData = false;
|
||||
if($this->config->edition == 'open')
|
||||
{
|
||||
$plugins = array(
|
||||
$this->config->admin->plugins[27],
|
||||
$this->config->admin->plugins[26],
|
||||
$this->config->admin->plugins[30]
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$plugins = array(
|
||||
$this->config->admin->plugins[198],
|
||||
$this->config->admin->plugins[194],
|
||||
$this->config->admin->plugins[203]
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$news = json_decode($zentaoData['news']);
|
||||
$publicclass = json_decode($zentaoData['publicclass']);
|
||||
$plugins = json_decode($zentaoData['plugin']);
|
||||
$patches = json_decode($zentaoData['patch']);
|
||||
if(common::checkNotCN()) array_pop($plugins);
|
||||
}
|
||||
|
||||
$data->news = $news;
|
||||
$data->publicclass = $publicclass;
|
||||
$data->plugins = $plugins;
|
||||
$data->patches = $patches;
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<img src="static/svg/admin-<?php echo $menuKey;?>.svg"/>
|
||||
<?php echo $menu['name'];?>
|
||||
</div>
|
||||
<?php echo html::a($config->admin->helpURL[$menuKey], "<i class='icon icon-help'></i> ", '_blank', 'class="text-muted setting-help"');?>
|
||||
<?php echo html::a($config->admin->helpURL[$menuKey], "<i title='{$lang->help}' class='icon icon-help'></i> ", '_blank', 'class="text-muted setting-help"');?>
|
||||
</h4>
|
||||
<p class="text-muted setting-desc" title="<?php echo $menu['desc'];?>"><?php echo $menu['desc'];?></p>
|
||||
</button>
|
||||
|
||||
@@ -41,7 +41,6 @@ var app = new Vue({
|
||||
},
|
||||
methods: {
|
||||
changeAttr(val) {
|
||||
// console.log('更新之前', JSON.stringify(val))
|
||||
this.body = val;
|
||||
},
|
||||
changeType(val) {
|
||||
|
||||
@@ -58,7 +58,6 @@ var app = new Vue({
|
||||
},
|
||||
methods: {
|
||||
changeAttr(val) {
|
||||
// console.log('新的值', JSON.stringify(val))
|
||||
this.body = val
|
||||
},
|
||||
changeType(val) {
|
||||
|
||||
+35
-35
@@ -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
@@ -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
@@ -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
@@ -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}管理的核心功能。";
|
||||
|
||||
@@ -1072,4 +1072,43 @@ class blockModel extends model
|
||||
{
|
||||
return $this->dao->select('count(estimate) as estimate')->from(TABLE_STORY)->where('id')->in($storyID)->fetch('estimate');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get zentao.net data.
|
||||
*
|
||||
* @param string $minTime
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getZentaoData($minTime = '')
|
||||
{
|
||||
return $this->dao->select('type,params')->from(TABLE_BLOCK)
|
||||
->where('account')->eq('system')
|
||||
->andWhere('vision')->eq('rnd')
|
||||
->andWhere('module')->eq('zentao')
|
||||
->beginIF($minTime)->andWhere('source')->ge($minTime)->fi()
|
||||
->andWhere('type')->in('plugin,patch,publicclass,news')
|
||||
->fetchPairs('type');
|
||||
}
|
||||
|
||||
/**
|
||||
* Set zentao data.
|
||||
*
|
||||
* @param string $type
|
||||
* @param string $params
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function setZentaoData($type = 'patch', $params = '')
|
||||
{
|
||||
$data = new stdclass();
|
||||
$data->account = 'system';
|
||||
$data->vision = 'rnd';
|
||||
$data->module = 'zentao';
|
||||
$data->type = $type;
|
||||
$data->source = date('Y-m-d');
|
||||
$data->params = json_encode($params);
|
||||
|
||||
$this->dao->replace(TABLE_BLOCK)->data($data)->exec();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
.picker-single .picker-option.picker-option-selected.picker-option-active.option-ursr > .border,
|
||||
.picker-single .picker-option.picker-option-selected.picker-option-active.option-ursr > .border {
|
||||
background: rgba(230,240,255, 0.4)!important;
|
||||
border: 1px solid #2E7FFF;
|
||||
}
|
||||
#pickerDropMenu-pk_URSR > .picker-option-list {
|
||||
display: flex;
|
||||
@@ -173,7 +172,7 @@ function initPreference() {
|
||||
$option.addClass('option-ursr');
|
||||
$option.parent().addClass('list-ursr');
|
||||
$option.empty();
|
||||
$option.prepend('<div class="border"><div class="value"><p>' + (b.$_index + 1) + '</p></div><div class="context">' + b.text + '</div></div>');
|
||||
$option.prepend('<div class="border shadow-primary-hover"><div class="value"><p>' + (b.$_index + 1) + '</p></div><div class="context">' + b.text + '</div></div>');
|
||||
}
|
||||
return $option;
|
||||
}
|
||||
@@ -204,4 +203,5 @@ $(function()
|
||||
initPreference();
|
||||
})
|
||||
|
||||
</script>
|
||||
</script>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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];
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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'] = '激活';
|
||||
|
||||
Regular → Executable
+1
-1
@@ -223,7 +223,7 @@ $config->bug->datatable->fieldList['execution']['title'] = 'execution';
|
||||
$config->bug->datatable->fieldList['execution']['fixed'] = 'no';
|
||||
$config->bug->datatable->fieldList['execution']['width'] = '120';
|
||||
$config->bug->datatable->fieldList['execution']['required'] = 'no';
|
||||
$config->bug->datatable->fieldList['execution']['dataSource'] = array('module' => 'product', 'method' =>'getAllExecutionPairsByProduct', 'params' => '$productID&$branch');
|
||||
$config->bug->datatable->fieldList['execution']['dataSource'] = array('module' => 'product', 'method' =>'getAllExecutionPairsByProduct', 'params' => '$productID&$branch&0&stagefilter');
|
||||
|
||||
$config->bug->datatable->fieldList['plan']['title'] = 'plan';
|
||||
$config->bug->datatable->fieldList['plan']['fixed'] = 'no';
|
||||
|
||||
+16
-5
@@ -636,7 +636,7 @@ class bug extends control
|
||||
|
||||
/* Get executions. */
|
||||
$executions = array(0 => '');
|
||||
if(isset($projects[$projectID])) $executions += $this->product->getExecutionPairsByProduct($productID, $branch ? "0,$branch" : 0, 'id_desc', $projectID, !$projectID ? 'multiple' : '');
|
||||
if(isset($projects[$projectID])) $executions += $this->product->getExecutionPairsByProduct($productID, $branch ? "0,$branch" : 0, 'id_desc', $projectID, !$projectID ? 'multiple|stagefilter' : 'stagefilter');
|
||||
$execution = $executionID ? $this->loadModel('execution')->getByID($executionID) : '';
|
||||
$executions = isset($executions[$executionID]) ? $executions : $executions + array($executionID => $execution->name);
|
||||
|
||||
@@ -859,7 +859,7 @@ class bug extends control
|
||||
$this->view->users = $this->user->getPairs('devfirst|noclosed');
|
||||
$this->view->projects = array('' => '') + $this->product->getProjectPairsByProduct($productID, $branch ? "0,$branch" : 0, 'id_desc', $projectID);
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->executions = array('' => '') + $this->product->getExecutionPairsByProduct($productID, $branch ? "0,$branch" : 0, 'id_desc', $projectID, 'multiple');
|
||||
$this->view->executions = array('' => '') + $this->product->getExecutionPairsByProduct($productID, $branch ? "0,$branch" : 0, 'id_desc', $projectID, 'multiple,stagefilter');
|
||||
$this->view->executionID = $executionID;
|
||||
$this->view->moduleOptionMenu = $this->tree->getOptionMenu($productID, $viewType = 'bug', $startModuleID = 0, $branch === 'all' ? 0 : $branch);
|
||||
$this->view->moduleID = $moduleID;
|
||||
@@ -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;
|
||||
@@ -1398,7 +1408,7 @@ class bug extends control
|
||||
}
|
||||
|
||||
/* Set users. */
|
||||
$users = $this->user->getPairs('devfirst', '', $this->config->maxCount);
|
||||
$users = $this->user->getPairs('devfirst');
|
||||
$users = array('' => '', 'ditto' => $this->lang->bug->ditto) + $users;
|
||||
|
||||
/* Assign. */
|
||||
@@ -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]);
|
||||
|
||||
@@ -369,7 +369,7 @@ function loadProductExecutions(productID, projectID = 0)
|
||||
var execution = $('#execution').val();
|
||||
}
|
||||
|
||||
link = createLink('product', 'ajaxGetExecutions', 'productID=' + productID + '&projectID=' + projectID + '&branch=' + branch + '&number=&executionID=' + execution);
|
||||
link = createLink('product', 'ajaxGetExecutions', 'productID=' + productID + '&projectID=' + projectID + '&branch=' + branch + '&number=&executionID=' + execution + '&from=&mode=stagefilter');
|
||||
$('#executionIdBox').load(link, function()
|
||||
{
|
||||
$(this).find('select').chosen();
|
||||
|
||||
+15
-15
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -74,9 +74,6 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($bugs as $bugID => $bug):?>
|
||||
<?php
|
||||
if(!empty($this->config->user->moreLink)) $this->config->moreLinks["assignedTos[$bugID]"] = $this->config->user->moreLink;
|
||||
?>
|
||||
<tr>
|
||||
<td><?php echo $bugID . html::hidden("bugIDList[$bugID]", $bugID);?></td>
|
||||
<td <?php echo zget($visibleFields, 'type', "class='hidden'")?>><?php echo html::select("types[$bugID]", $typeList, $bug->type, 'class=form-control');?></td>
|
||||
|
||||
@@ -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>';
|
||||
|
||||
@@ -125,7 +125,7 @@ if($this->app->tab == 'project') js::set('objectID', $bug->project);
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class='<?php if(!($product->shadow and zget($project, 'model') == 'scrum' and $project->multiple)) echo 'hide'?>'>
|
||||
<tr class='<?php if($product->shadow and isset($project) and !$project->multiple) echo 'hide'?>'>
|
||||
<th><?php echo $lang->bug->productplan;?></th>
|
||||
<td>
|
||||
<span id="planIdBox"><?php echo html::select('plan', $plans, $bug->plan, "class='form-control chosen'");?></span>
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
<th><?php echo $lang->bug->fromCase;?></th>
|
||||
<td><?php if($bug->case) echo html::a(helper::createLink('testcase', 'view', "caseID=$bug->case&version=$bug->caseVersion", '', true), "<i class='icon icon-sitemap'></i> {$lang->bug->fromCase}$lang->colon$bug->case", '', isonlybody() ? '' : "data-toggle='modal' data-type='iframe' data-width='80%'");?></td>
|
||||
</tr>
|
||||
<tr valign='middle' class='<?php if(!($product->shadow and zget($project, 'model') == 'scrum' and $project->multiple)) echo 'hide'?>'>
|
||||
<tr valign='middle' class='<?php if($product->shadow and isset($project) and !$project->multiple) echo 'hide'?>'>
|
||||
<th><?php echo $lang->bug->productplan;?></th>
|
||||
<td><?php if(!$bug->plan or !common::printLink('productplan', 'view', "planID=$bug->plan&type=bug", $bug->planName)) echo $bug->planName;?></td>
|
||||
</tr>
|
||||
@@ -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;?>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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?";
|
||||
|
||||
@@ -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';
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user