diff --git a/db/standard/zentao17.5.sql b/db/standard/zentao17.5.sql
index 2473991ba5..0b25e0fd50 100644
--- a/db/standard/zentao17.5.sql
+++ b/db/standard/zentao17.5.sql
@@ -746,6 +746,42 @@ CREATE TABLE `zt_deploy` (
`deleted` enum('0','1') NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_chart` (
+ `id` mediumint NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL,
+ `type` varchar(30) NOT NULL,
+ `dataset` varchar(30) NOT NULL,
+ `desc` mediumtext NOT NULL,
+ `settings` mediumtext NOT NULL,
+ `filters` mediumtext NOT NULL,
+ `createdBy` char(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `deleted` tinyint NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_dashboard` (
+ `id` mediumint(8) NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL,
+ `module` mediumint NOT NULL,
+ `desc` mediumtext NOT NULL,
+ `layout` mediumtext NOT NULL,
+ `filters` mediumtext NOT NULL,
+ `createdBy` varchar(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `deleted` tinyint NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_dataset` (
+ `id` mediumint unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(155) NOT NULL,
+ `sql` text NOT NULL,
+ `fields` mediumtext NOT NULL,
+ `objects` mediumtext NOT NULL,
+ `createdBy` varchar(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `deleted` tinyint NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `zt_deployproduct` (
`deploy` mediumint(8) unsigned NOT NULL,
`product` mediumint(8) unsigned NOT NULL,
diff --git a/db/zentao.sql b/db/zentao.sql
index 0521a0b66f..7bee5678c7 100755
--- a/db/zentao.sql
+++ b/db/zentao.sql
@@ -6687,7 +6687,7 @@ CREATE TABLE IF NOT EXISTS `zt_relationoftasks` (
`action` ENUM( 'begin', 'end' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY (`id`),
KEY `relationoftasks` (`execution`,`task`)
-) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1,'execution','gantt'),
(1,'execution','relation'),
diff --git a/extension/lite/block/ext/view/printassigntomeblock.lite.html.hook.php b/extension/lite/block/ext/view/printassigntomeblock.lite.html.hook.php
index ddfa6fcaa1..e69de29bb2 100644
--- a/extension/lite/block/ext/view/printassigntomeblock.lite.html.hook.php
+++ b/extension/lite/block/ext/view/printassigntomeblock.lite.html.hook.php
@@ -1,3 +0,0 @@
-
diff --git a/extension/lite/common/ext/lang/de/lite.php b/extension/lite/common/ext/lang/de/lite.php
index 6146068c76..5096451099 100644
--- a/extension/lite/common/ext/lang/de/lite.php
+++ b/extension/lite/common/ext/lang/de/lite.php
@@ -51,6 +51,7 @@ else
}
$lang->task->common = 'Task';
+$lang->dashboard = isset($lang->dashboard->common) ? $lang->dashboard->common : $lang->dashboard;
/* My menu. */
$lang->my->menu = new stdclass();
diff --git a/extension/lite/common/ext/lang/en/lite.php b/extension/lite/common/ext/lang/en/lite.php
index 6146068c76..5096451099 100644
--- a/extension/lite/common/ext/lang/en/lite.php
+++ b/extension/lite/common/ext/lang/en/lite.php
@@ -51,6 +51,7 @@ else
}
$lang->task->common = 'Task';
+$lang->dashboard = isset($lang->dashboard->common) ? $lang->dashboard->common : $lang->dashboard;
/* My menu. */
$lang->my->menu = new stdclass();
diff --git a/extension/lite/common/ext/lang/fr/lite.php b/extension/lite/common/ext/lang/fr/lite.php
index 6146068c76..5096451099 100644
--- a/extension/lite/common/ext/lang/fr/lite.php
+++ b/extension/lite/common/ext/lang/fr/lite.php
@@ -51,6 +51,7 @@ else
}
$lang->task->common = 'Task';
+$lang->dashboard = isset($lang->dashboard->common) ? $lang->dashboard->common : $lang->dashboard;
/* My menu. */
$lang->my->menu = new stdclass();
diff --git a/extension/lite/common/ext/lang/zh-cn/lite.php b/extension/lite/common/ext/lang/zh-cn/lite.php
index 69a02f326e..c74deb3e3f 100644
--- a/extension/lite/common/ext/lang/zh-cn/lite.php
+++ b/extension/lite/common/ext/lang/zh-cn/lite.php
@@ -51,6 +51,7 @@ else
}
$lang->task->common = '任务';
+$lang->dashboard = isset($lang->dashboard->common) ? $lang->dashboard->common : $lang->dashboard;
/* My menu. */
$lang->my->menu = new stdclass();
diff --git a/extension/lite/task/ext/config/lite.php b/extension/lite/task/ext/config/lite.php
index f93feacbbc..aeb63bd17a 100644
--- a/extension/lite/task/ext/config/lite.php
+++ b/extension/lite/task/ext/config/lite.php
@@ -7,4 +7,4 @@ $config->task->datatable->fieldList['lane']['title'] = 'lane';
$config->task->datatable->fieldList['lane']['fixed'] = 'no';
$config->task->datatable->fieldList['lane']['width'] = '120';
$config->task->datatable->fieldList['lane']['required'] = 'no';
-$config->task->datatable->fieldList['lane']['sort'] = 'no';
\ No newline at end of file
+$config->task->datatable->fieldList['lane']['sort'] = 'no';
diff --git a/module/admin/control.php b/module/admin/control.php
index 7061b75c1c..99c5142927 100644
--- a/module/admin/control.php
+++ b/module/admin/control.php
@@ -393,62 +393,72 @@ class admin extends control
* @access public
* @return void
*/
- public function ajaxChangeTableEngine($tableName)
+ public function ajaxChangeTableEngine()
{
$response = array();
- $response['result'] = 'success';
- $response['message'] = '';
+ $response['result'] = 'success';
+ $response['message'] = '';
+ $response['thisTable'] = '';
+ $response['nextTable'] = '';
$tableEngines = $this->loadModel('misc')->getTableEngines();
- if(!isset($tableEngines[$tableName]))
+
+ $thisTable = '';
+ $nextTable = '';
+ foreach($tableEngines as $table => $engine)
{
- $response['result'] = 'fail';
- return print(json_encode($response));
+ if($engine == 'InnoDB') continue;
+ if(strpos(",{$this->session->errorTables},", ",{$table},") !== false) continue;
+
+ if(stripos($table, 'searchindex') !== false)
+ {
+ $mysqlVersion = $this->loadModel('install')->getMysqlVersion();
+ if($mysqlVersion < 5.6) continue;
+ }
+
+ if($thisTable and empty($nextTable)) $nextTable = $table;
+ if(empty($thisTable)) $thisTable = $table;
+ if($thisTable and $nextTable) break;
}
- if($tableEngines[$tableName] == 'InnoDB')
+ if(empty($thisTable))
{
- $response['message'] = sprintf($this->lang->admin->changeSuccess, $tableName);
+ unset($_SESSION['errorTables']);
+ $response['result'] = 'finished';
return print(json_encode($response));
}
try
{
/* Check process this table or not. */
- $dbProcesses = $this->dao->query("SHOW PROCESSLIST")->fetchAll();
+ $dbProcesses = $this->dbh->query("SHOW PROCESSLIST")->fetchAll();
foreach($dbProcesses as $dbProcess)
{
if($dbProcess->db != $this->config->db->name) continue;
- if(strpos($dbProcess->Info, " {$tableName} ") !== false)
+ if(strpos($dbProcess->Info, " {$thisTable} ") !== false)
{
- $response['message'] = sprintf($this->lang->upgrade->changingTable, $tableName);
+ $response['message'] = sprintf($this->lang->upgrade->changingTable, $thisTable);
return print(json_encode($response));
}
}
}
catch(PDOException $e){}
- if(stripos($tableName, 'searchindex') !== false)
- {
- $mysqlVersion = $this->loadModel('install')->getMysqlVersion();
- if($mysqlVersion < 5.6)
- {
- $response['result'] = 'fail';
- $response['message'] = $this->lang->admin->errorInnodb;
- return print(json_encode($response));
- }
- }
+ $response['thisTable'] = $thisTable;
+ $response['nextTable'] = $nextTable;
try
{
- $sql = "ALTER TABLE `$tableName` ENGINE='InnoDB'";
- $this->dao->exec($sql);
- $response['message'] = sprintf($this->lang->admin->changeSuccess, $tableName);
+ $sql = "ALTER TABLE `$thisTable` ENGINE='InnoDB'";
+ $this->dbh->exec($sql);
+ $response['message'] = sprintf($this->lang->admin->changeSuccess, $thisTable);
}
catch(PDOException $e)
{
+ $this->session->set('errorTables', $this->session->errorTables . ',' . $thisTable);
+
$response['result'] = 'fail';
- $response['message'] = sprintf($this->lang->admin->changeFail, $tableName, htmlspecialchars($e->getMessage()));
+ $response['message'] = sprintf($this->lang->admin->changeFail, $thisTable, htmlspecialchars($e->getMessage()));
}
return print(json_encode($response));
diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php
index b498651993..4911a17729 100644
--- a/module/admin/lang/de.php
+++ b/module/admin/lang/de.php
@@ -35,6 +35,7 @@ $lang->admin->changingTable = 'Replacing data table %s engine...';
$lang->admin->changeSuccess = 'The data table %s engine has been changed to InnoDB.';
$lang->admin->changeFail = "Failed to replace table %s engine. Reason: %s。";
$lang->admin->errorInnodb = 'Your MySQL does not support InnoDB data table engine.';
+$lang->admin->changeFinished = "Database engine replacement completed.";
$lang->admin->engineInfo = "The %s table engine is %s.";
$lang->admin->engineSummary['hasMyISAM'] = "There are %s tables that are not InnoDB engines";
$lang->admin->engineSummary['allInnoDB'] = "All tables are InnoDB engines";
diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php
index c850026926..1c8d55ebc2 100644
--- a/module/admin/lang/en.php
+++ b/module/admin/lang/en.php
@@ -35,6 +35,7 @@ $lang->admin->changingTable = 'Replacing data table %s engine...';
$lang->admin->changeSuccess = 'The data table %s engine has been changed to InnoDB.';
$lang->admin->changeFail = "Failed to replace table %s engine. Reason: %s。";
$lang->admin->errorInnodb = 'Your MySQL does not support InnoDB data table engine.';
+$lang->admin->changeFinished = "Database engine replacement completed.";
$lang->admin->engineInfo = "The %s table engine is %s.";
$lang->admin->engineSummary['hasMyISAM'] = "There are %s tables that are not InnoDB engines";
$lang->admin->engineSummary['allInnoDB'] = "All tables are InnoDB engines";
diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php
index a7749f2a4b..4bb1433680 100644
--- a/module/admin/lang/fr.php
+++ b/module/admin/lang/fr.php
@@ -35,6 +35,7 @@ $lang->admin->changingTable = 'Replacing data table %s engine...';
$lang->admin->changeSuccess = 'The data table %s engine has been changed to InnoDB.';
$lang->admin->changeFail = "Failed to replace table %s engine. Reason: %s。";
$lang->admin->errorInnodb = 'Your MySQL does not support InnoDB data table engine.';
+$lang->admin->changeFinished = "Database engine replacement completed.";
$lang->admin->engineInfo = "The %s table engine is %s.";
$lang->admin->engineSummary['hasMyISAM'] = "There are %s tables that are not InnoDB engines";
$lang->admin->engineSummary['allInnoDB'] = "All tables are InnoDB engines";
diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php
index 10d8a111a6..51b9e2c510 100644
--- a/module/admin/lang/zh-cn.php
+++ b/module/admin/lang/zh-cn.php
@@ -35,6 +35,7 @@ $lang->admin->changingTable = '正在更换数据表%s引擎...';
$lang->admin->changeSuccess = '已经更换数据表%s引擎为InnoDB。';
$lang->admin->changeFail = "更换数据表%s引擎失败,原因:%s。";
$lang->admin->errorInnodb = '您当前的数据库不支持使用InnoDB数据表引擎。';
+$lang->admin->changeFinished = "更换数据库引擎完毕。";
$lang->admin->engineInfo = "表%s的引擎是%s。";
$lang->admin->engineSummary['hasMyISAM'] = "有%s个表不是InnoDB引擎";
$lang->admin->engineSummary['allInnoDB'] = "所有的表都是InnoDB引擎了";
diff --git a/module/admin/view/tableengine.html.php b/module/admin/view/tableengine.html.php
index 32d83293de..aff6b38e6b 100644
--- a/module/admin/view/tableengine.html.php
+++ b/module/admin/view/tableengine.html.php
@@ -36,7 +36,9 @@
admin->changingTable);?>
+admin->engineSummary['hasMyISAM']);?>
diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php
index 1327985178..dda70b11b2 100644
--- a/module/common/lang/menu.php
+++ b/module/common/lang/menu.php
@@ -320,6 +320,9 @@ $lang->execution->menu->task = array('link' => "{$lang->task->common}|execut
$lang->execution->menu->kanban = array('link' => "$lang->executionKanban|execution|taskkanban|executionID=%s");
$lang->execution->menu->burn = array('link' => "$lang->burn|execution|burn|executionID=%s");
$lang->execution->menu->view = array('link' => "$lang->view|execution|grouptask|executionID=%s", 'alias' => 'grouptask,tree,taskeffort,gantt,calendar,relation,maintainrelation');
+
+if($config->edition != 'open') $lang->execution->menu->view = array('link' => "$lang->view|execution|gantt|executionID=%s", 'alias' => 'grouptask,tree,taskeffort,gantt,calendar,relation,maintainrelation');
+
$lang->execution->menu->story = array('link' => "$lang->SRCommon|execution|story|executionID=%s", 'subModule' => 'story', 'alias' => 'batchcreate,linkstory,storykanban,batchtotask');
$lang->execution->menu->qa = array('link' => "{$lang->qa->common}|execution|bug|executionID=%s", 'subModule' => 'bug,testcase,testtask,testreport', 'alias' => 'qa,bug,testcase,testtask,testreport');
$lang->execution->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo');
diff --git a/module/common/view/noticeimport.html.php b/module/common/view/noticeimport.html.php
index 600fcbea00..5f87dd9b43 100644
--- a/module/common/view/noticeimport.html.php
+++ b/module/common/view/noticeimport.html.php
@@ -27,7 +27,5 @@ function submitForm(type)
$('.modal-body #insert').val(type == 'insert' ? 1 : 0);
$('#importNoticeModal .form-actions .btn').addClass('disabled');
$("button[data-target='#importNoticeModal']").closest('form').submit();
-
- setTimeout(function(){$('#importNoticeModal .form-actions .btn').removeClass('disabled');}, 1000);
}
diff --git a/module/port/model.php b/module/port/model.php
index ffc231ee4f..55b0e52e16 100644
--- a/module/port/model.php
+++ b/module/port/model.php
@@ -479,7 +479,7 @@ class portModel extends model
{
$getParams = $this->session->{$model . 'PortParams'};
- if($params)
+ if($params and $getParams)
{
$params = explode('&', $params);
foreach($params as $param => $value)
@@ -642,6 +642,7 @@ class portModel extends model
foreach($listFields as $field)
{
$listName = $field . 'List';
+ if(!empty($_POST[$listName])) continue;
if(!empty($fieldList[$field]))
{
$lists[$listName] = $fieldList[$field]['values'];
@@ -901,6 +902,8 @@ class portModel extends model
$result->isEndPage = $pagerID >= $result->allPager;
$result->datas = $datas;
+ $this->session->set('insert', true);
+
foreach($datas as $data)
{
if(isset($data->id)) $this->session->set('insert', false);
@@ -1302,7 +1305,7 @@ class portModel extends model
elseif($field == 'estimate')
{
$html .= '
';
- if(is_array($object->estimate))
+ if(!empty($object->estimate) and is_array($object->estimate))
{
$html .= "";
foreach($object->estimate as $account => $estimate)
diff --git a/module/port/view/footer.html.php b/module/port/view/footer.html.php
index 6fd32ded84..38c6c2541d 100644
--- a/module/port/view/footer.html.php
+++ b/module/port/view/footer.html.php
@@ -1,5 +1,5 @@
diff --git a/module/programplan/view/gantt.html.php b/module/programplan/view/gantt.html.php
index cd90dcc682..11e683f4d8 100644
--- a/module/programplan/view/gantt.html.php
+++ b/module/programplan/view/gantt.html.php
@@ -94,7 +94,9 @@ form {display: block; margin-top: 0em; margin-block-end: 1em;}
task->pri . " : "?>
execution->gantt->progressColor as $pri => $color):?>
+
+
diff --git a/module/project/control.php b/module/project/control.php
index 96f41a566d..fd90e7168d 100644
--- a/module/project/control.php
+++ b/module/project/control.php
@@ -143,14 +143,14 @@ class project extends control
public function ajaxGetCopyProjects()
{
$data = fixer::input('post')->get();
- $projects = $this->dao->select('id, name')->from(TABLE_PROJECT)
+ $projectPairs = $this->dao->select('id, name')->from(TABLE_PROJECT)
->where('type')->eq('project')
->andWhere('deleted')->eq(0)
->andWhere('vision')->eq($this->config->vision)
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)->fi()
->beginIF(trim($data->name))->andWhere('name')->like("%$data->name%")->fi()
->fetchPairs();
-
+ $projects = $this->project->getPairsByModel('', 0, '', array_keys($projectPairs));
$html = empty($projects) ? "{$this->lang->noData} " : '';
foreach($projects as $id => $name)
{
diff --git a/module/projectrelease/control.php b/module/projectrelease/control.php
index 43118269bc..572b0b934a 100644
--- a/module/projectrelease/control.php
+++ b/module/projectrelease/control.php
@@ -238,7 +238,7 @@ class projectrelease extends control
->page($storyPager)
->fetchAll('id');
- $stages = $this->dao->select('*')->from(TABLE_STORYSTAGE)->where('story')->in($release->stories)->andWhere('branch')->eq($release->branch)->fetchPairs('story', 'stage');
+ $stages = $this->dao->select('*')->from(TABLE_STORYSTAGE)->where('story')->in(array_keys($stories))->andWhere('branch')->eq($release->branch)->fetchPairs('story', 'stage');
foreach($stages as $storyID => $stage) $stories[$storyID]->stage = $stage;
diff --git a/module/testcase/view/showimport.html.php b/module/testcase/view/showimport.html.php
index 5627391e48..01506ec369 100644
--- a/module/testcase/view/showimport.html.php
+++ b/module/testcase/view/showimport.html.php
@@ -14,8 +14,8 @@
|
diff --git a/module/tree/lang/de.php b/module/tree/lang/de.php
old mode 100644
new mode 100755
index 7b81ef314a..6789dce35c
--- a/module/tree/lang/de.php
+++ b/module/tree/lang/de.php
@@ -10,44 +10,46 @@
* @link http://www.zentao.net
*/
$lang->tree = new stdclass();
-$lang->tree->common = 'Modul';
-$lang->tree->edit = 'Bearbeiten';
-$lang->tree->delete = 'Löschen';
-$lang->tree->browse = 'Allgemeine Module verwalten';
-$lang->tree->browseTask = 'Aufgaben Modul verwalten';
-$lang->tree->manage = 'Modul verwalten';
-$lang->tree->fix = 'Fix';
-$lang->tree->manageProduct = "Verwalte {$lang->productCommon}";
-$lang->tree->manageExecution = "Verwalte {$lang->executionCommon}";
-$lang->tree->manageLine = "Manage {$lang->productCommon} Line";
-$lang->tree->manageBug = 'Verwalte Bugs';
-$lang->tree->manageCase = 'Verwalte Fälle';
-$lang->tree->manageCaseLib = 'Verwalte Bibliothek';
-$lang->tree->manageCustomDoc = 'Verwalte Dokumente';
-$lang->tree->manageApiChild = 'Manage API Directory';
-$lang->tree->updateOrder = 'Sortierung';
-$lang->tree->manageChild = 'Verwalte Untermodul';
-$lang->tree->manageStoryChild = 'Verwalte Untermodul';
-$lang->tree->manageLineChild = 'Verwalte Produktlinie';
-$lang->tree->manageBugChild = 'Verwalte Bugs';
-$lang->tree->manageCaseChild = 'Verwalte Fälle';
-$lang->tree->manageCaselibChild = 'Verwalte Bibliothek';
-$lang->tree->manageTaskChild = "Verwalte {$lang->executionCommon}";
-$lang->tree->syncFromProduct = "Copy from Other {$lang->productCommon}s";
-$lang->tree->dragAndSort = "Ziehen und Sotieren";
-$lang->tree->sort = "Sortieren";
-$lang->tree->addChild = "Hinzufügen";
-$lang->tree->confirmDelete = 'Do you want to delete this module and its child modules?';
-$lang->tree->confirmDeleteMenu = 'Do you want to delete this menu and its child menus?';
-$lang->tree->confirmDelCategory = 'Möchten Sie diese Kategorie und ihre Kinderkategorien löschen?';
-$lang->tree->confirmDeleteLine = "Do you want to delete this {$lang->productCommon} line?";
-$lang->tree->confirmRoot = "Any changes to the {$lang->productCommon} will change the stories, bugs, cases of {$lang->productCommon} it belongs to, as well as the linkage of {$lang->executionCommon} and {$lang->productCommon}, which is dangerous. Do you want to change it?";
-$lang->tree->confirmRoot4Doc = "Any changes to the library will change the document of library it belongs to, which is dangerous. Do you want to change it?";
-$lang->tree->noSubmodule = "There are no copyable submodules under the current module!";
-$lang->tree->successSave = 'Saved.';
-$lang->tree->successFixed = 'Fixed.';
-$lang->tree->repeatName = 'The name "%s" exists!';
-$lang->tree->shouldNotBlank = 'Module name should not be blank!';
+$lang->tree->common = 'Modul';
+$lang->tree->edit = 'Bearbeiten';
+$lang->tree->delete = 'Löschen';
+$lang->tree->browse = 'Allgemeine Module verwalten';
+$lang->tree->browseTask = 'Aufgaben Modul verwalten';
+$lang->tree->manage = 'Modul verwalten';
+$lang->tree->fix = 'Fix';
+$lang->tree->manageProduct = "Verwalte {$lang->productCommon}";
+$lang->tree->manageExecution = "Verwalte {$lang->executionCommon}";
+$lang->tree->manageLine = "Manage {$lang->productCommon} Line";
+$lang->tree->manageBug = 'Verwalte Bugs';
+$lang->tree->manageCase = 'Verwalte Fälle';
+$lang->tree->manageCaseLib = 'Verwalte Bibliothek';
+$lang->tree->manageCustomDoc = 'Verwalte Dokumente';
+$lang->tree->manageApiChild = 'Manage API Directory';
+$lang->tree->updateOrder = 'Sortierung';
+$lang->tree->manageChild = 'Verwalte Untermodul';
+$lang->tree->manageStoryChild = 'Verwalte Untermodul';
+$lang->tree->manageLineChild = 'Verwalte Produktlinie';
+$lang->tree->manageBugChild = 'Verwalte Bugs';
+$lang->tree->manageCaseChild = 'Verwalte Fälle';
+$lang->tree->manageCaselibChild = 'Verwalte Bibliothek';
+$lang->tree->manageDashboard = 'Manage Dashboard Module';
+$lang->tree->manageDashboardChild = 'Manage Dashboard Child Module';
+$lang->tree->manageTaskChild = "Verwalte {$lang->executionCommon}";
+$lang->tree->syncFromProduct = "Copy from Other {$lang->productCommon}s";
+$lang->tree->dragAndSort = "Ziehen und Sotieren";
+$lang->tree->sort = "Sortieren";
+$lang->tree->addChild = "Hinzufügen";
+$lang->tree->confirmDelete = 'Do you want to delete this module and its child modules?';
+$lang->tree->confirmDeleteMenu = 'Do you want to delete this menu and its child menus?';
+$lang->tree->confirmDelCategory = 'Möchten Sie diese Kategorie und ihre Kinderkategorien löschen?';
+$lang->tree->confirmDeleteLine = "Do you want to delete this {$lang->productCommon} line?";
+$lang->tree->confirmRoot = "Any changes to the {$lang->productCommon} will change the stories, bugs, cases of {$lang->productCommon} it belongs to, as well as the linkage of {$lang->executionCommon} and {$lang->productCommon}, which is dangerous. Do you want to change it?";
+$lang->tree->confirmRoot4Doc = "Any changes to the library will change the document of library it belongs to, which is dangerous. Do you want to change it?";
+$lang->tree->noSubmodule = "There are no copyable submodules under the current module!";
+$lang->tree->successSave = 'Saved.';
+$lang->tree->successFixed = 'Fixed.';
+$lang->tree->repeatName = 'The name "%s" exists!';
+$lang->tree->shouldNotBlank = 'Module name should not be blank!';
$lang->tree->module = 'Modul';
$lang->tree->name = 'Name';
diff --git a/module/tree/lang/en.php b/module/tree/lang/en.php
old mode 100644
new mode 100755
index a0d96af45a..e38a92c257
--- a/module/tree/lang/en.php
+++ b/module/tree/lang/en.php
@@ -10,44 +10,46 @@
* @link http://www.zentao.net
*/
$lang->tree = new stdclass();
-$lang->tree->common = 'Module';
-$lang->tree->edit = 'Edit Module';
-$lang->tree->delete = 'Delete Module';
-$lang->tree->browse = 'Manage General Module';
-$lang->tree->browseTask = 'Manage Task Module';
-$lang->tree->manage = 'Manage Module';
-$lang->tree->fix = 'Fix Module';
-$lang->tree->manageProduct = "Manage {$lang->productCommon} Modules";
-$lang->tree->manageExecution = "Manage {$lang->execution->common} Modules";
-$lang->tree->manageLine = "Manage {$lang->productCommon} Line";
-$lang->tree->manageBug = 'Manage Bug';
-$lang->tree->manageCase = 'Manage Case';
-$lang->tree->manageCaseLib = 'Manage Library';
-$lang->tree->manageCustomDoc = 'Manage Document Library';
-$lang->tree->manageApiChild = 'Manage API Directory';
-$lang->tree->updateOrder = 'Rank Module';
-$lang->tree->manageChild = 'Manage Child Modules';
-$lang->tree->manageStoryChild = 'Manage Child Modules';
-$lang->tree->manageLineChild = "Manage {$lang->productCommon} Line";
-$lang->tree->manageBugChild = 'Manage Child Modules of Bugs';
-$lang->tree->manageCaseChild = 'Manage Child Cases';
-$lang->tree->manageCaselibChild = 'Manage Child Libraries';
-$lang->tree->manageTaskChild = "Manage Child {$lang->execution->common} Modules";
-$lang->tree->syncFromProduct = "Copy from Other {$lang->productCommon}s";
-$lang->tree->dragAndSort = "Drag to order";
-$lang->tree->sort = "Order";
-$lang->tree->addChild = "Add Child Module";
-$lang->tree->confirmDelete = 'Do you want to delete this module and its child modules?';
-$lang->tree->confirmDeleteMenu = 'Do you want to delete this menu and its child menus?';
-$lang->tree->confirmDelCategory = 'Do you want to delete this category and its child categories?';
-$lang->tree->confirmDeleteLine = "Do you want to delete this {$lang->productCommon} line?";
-$lang->tree->confirmRoot = "Any changes to the {$lang->productCommon} will change the stories, bugs, cases of {$lang->productCommon} it belongs to, as well as the linkage of {$lang->executionCommon} and {$lang->productCommon}, which is dangerous. Do you want to change it?";
-$lang->tree->confirmRoot4Doc = "Any changes to the library will change the document of library it belongs to, which is dangerous. Do you want to change it?";
-$lang->tree->noSubmodule = "There are no copyable submodules under the current module!";
-$lang->tree->successSave = 'Saved.';
-$lang->tree->successFixed = 'Fixed.';
-$lang->tree->repeatName = 'The name "%s" exists!';
-$lang->tree->shouldNotBlank = 'Module name should not be blank!';
+$lang->tree->common = 'Module';
+$lang->tree->edit = 'Edit Module';
+$lang->tree->delete = 'Delete Module';
+$lang->tree->browse = 'Manage General Module';
+$lang->tree->browseTask = 'Manage Task Module';
+$lang->tree->manage = 'Manage Module';
+$lang->tree->fix = 'Fix Module';
+$lang->tree->manageProduct = "Manage {$lang->productCommon} Modules";
+$lang->tree->manageExecution = "Manage {$lang->execution->common} Modules";
+$lang->tree->manageLine = "Manage {$lang->productCommon} Line";
+$lang->tree->manageBug = 'Manage Bug';
+$lang->tree->manageCase = 'Manage Case';
+$lang->tree->manageCaseLib = 'Manage Library';
+$lang->tree->manageCustomDoc = 'Manage Document Library';
+$lang->tree->manageApiChild = 'Manage API Directory';
+$lang->tree->updateOrder = 'Rank Module';
+$lang->tree->manageChild = 'Manage Child Modules';
+$lang->tree->manageStoryChild = 'Manage Child Modules';
+$lang->tree->manageLineChild = "Manage {$lang->productCommon} Line";
+$lang->tree->manageBugChild = 'Manage Child Modules of Bugs';
+$lang->tree->manageCaseChild = 'Manage Child Cases';
+$lang->tree->manageCaselibChild = 'Manage Child Libraries';
+$lang->tree->manageDashboard = 'Manage Dashboard Module';
+$lang->tree->manageDashboardChild = 'Manage Dashboard Child Module';
+$lang->tree->manageTaskChild = "Manage Child {$lang->execution->common} Modules";
+$lang->tree->syncFromProduct = "Copy from Other {$lang->productCommon}s";
+$lang->tree->dragAndSort = "Drag to order";
+$lang->tree->sort = "Order";
+$lang->tree->addChild = "Add Child Module";
+$lang->tree->confirmDelete = 'Do you want to delete this module and its child modules?';
+$lang->tree->confirmDeleteMenu = 'Do you want to delete this menu and its child menus?';
+$lang->tree->confirmDelCategory = 'Do you want to delete this category and its child categories?';
+$lang->tree->confirmDeleteLine = "Do you want to delete this {$lang->productCommon} line?";
+$lang->tree->confirmRoot = "Any changes to the {$lang->productCommon} will change the stories, bugs, cases of {$lang->productCommon} it belongs to, as well as the linkage of {$lang->executionCommon} and {$lang->productCommon}, which is dangerous. Do you want to change it?";
+$lang->tree->confirmRoot4Doc = "Any changes to the library will change the document of library it belongs to, which is dangerous. Do you want to change it?";
+$lang->tree->noSubmodule = "There are no copyable submodules under the current module!";
+$lang->tree->successSave = 'Saved.';
+$lang->tree->successFixed = 'Fixed.';
+$lang->tree->repeatName = 'The name "%s" exists!';
+$lang->tree->shouldNotBlank = 'Module name should not be blank!';
$lang->tree->module = 'Module';
$lang->tree->name = 'Module Name';
diff --git a/module/tree/lang/fr.php b/module/tree/lang/fr.php
old mode 100644
new mode 100755
index 644eaa3b38..878c047632
--- a/module/tree/lang/fr.php
+++ b/module/tree/lang/fr.php
@@ -10,44 +10,46 @@
* @link http://www.zentao.net
*/
$lang->tree = new stdclass();
-$lang->tree->common = 'Module';
-$lang->tree->edit = 'Editer Module';
-$lang->tree->delete = 'Supprimer Module';
-$lang->tree->browse = 'Gérer les Modules Généraux';
-$lang->tree->browseTask = 'Gérer les Modules Tâche';
-$lang->tree->manage = 'Gérer les Modules';
-$lang->tree->fix = 'Corrigez Module';
-$lang->tree->manageProduct = "Gérer les Modules {$lang->productCommon}";
-$lang->tree->manageExecution = "Gérer les Modules {$lang->executionCommon}";
-$lang->tree->manageLine = 'Gérer Ligne Produit';
-$lang->tree->manageBug = 'Gérer Bugs';
-$lang->tree->manageCase = 'Gérer CasTests';
-$lang->tree->manageCaseLib = 'Gérer Librairie de recette';
-$lang->tree->manageCustomDoc = 'Gérer la librairie de Doc';
-$lang->tree->manageApiChild = 'Manage API Directory';
-$lang->tree->updateOrder = 'Rang Module';
-$lang->tree->manageChild = 'Gérer Sous-Module';
-$lang->tree->manageStoryChild = 'Gérer Sous-Module';
-$lang->tree->manageLineChild = 'Gérer Ligne Produit';
-$lang->tree->manageBugChild = 'Gérer Sous-Bugs';
-$lang->tree->manageCaseChild = 'Gérer Sous-CasTests';
-$lang->tree->manageCaselibChild = 'Gérer Sous-Librairies';
-$lang->tree->manageTaskChild = "Gérer Sous-Modules {$lang->executionCommon}";
-$lang->tree->syncFromProduct = "Copier d'un autre {$lang->productCommon}";
-$lang->tree->dragAndSort = "Faites glisser pour ordonner";
-$lang->tree->sort = "Ordonnez";
-$lang->tree->addChild = "Ajout Sous-Module";
-$lang->tree->confirmDelete = 'Voulez-vous supprimer ce module et tous ses sous-modules ?';
-$lang->tree->confirmDeleteMenu = 'Do you want to delete this menu and its child menus?';
-$lang->tree->confirmDelCategory = 'Voulez-vous supprimer cette catégorie et ses sous-catégories?';
-$lang->tree->confirmDeleteLine = 'Voulez-vous supprimer cette ligne de produit ?';
-$lang->tree->confirmRoot = "Les changements du {$lang->productCommon} vont impacter les stories, bugs, casTests du {$lang->productCommon} auquel ils appartiennent, ainsi que les associations de {$lang->executionCommon} et {$lang->productCommon}, ce qui est dangereux. Voulez-vous malgré tout effectuer le changement ?";
-$lang->tree->confirmRoot4Doc = "Toute modification apportée à la bibliothèque modifiera le document de la bibliothèque à laquelle elle appartient, ce qui est dangereux. Voulez-vous le changer ?";
-$lang->tree->noSubmodule = "There are no copyable submodules under the current module!";
-$lang->tree->successSave = 'Sauvé.';
-$lang->tree->successFixed = 'Corrigé.';
-$lang->tree->repeatName = 'Le nom "%s" existe déjà !';
-$lang->tree->shouldNotBlank = 'Module name should not be blank!';
+$lang->tree->common = 'Module';
+$lang->tree->edit = 'Editer Module';
+$lang->tree->delete = 'Supprimer Module';
+$lang->tree->browse = 'Gérer les Modules Généraux';
+$lang->tree->browseTask = 'Gérer les Modules Tâche';
+$lang->tree->manage = 'Gérer les Modules';
+$lang->tree->fix = 'Corrigez Module';
+$lang->tree->manageProduct = "Gérer les Modules {$lang->productCommon}";
+$lang->tree->manageExecution = "Gérer les Modules {$lang->executionCommon}";
+$lang->tree->manageLine = 'Gérer Ligne Produit';
+$lang->tree->manageBug = 'Gérer Bugs';
+$lang->tree->manageCase = 'Gérer CasTests';
+$lang->tree->manageCaseLib = 'Gérer Librairie de recette';
+$lang->tree->manageCustomDoc = 'Gérer la librairie de Doc';
+$lang->tree->manageApiChild = 'Manage API Directory';
+$lang->tree->updateOrder = 'Rang Module';
+$lang->tree->manageChild = 'Gérer Sous-Module';
+$lang->tree->manageStoryChild = 'Gérer Sous-Module';
+$lang->tree->manageLineChild = 'Gérer Ligne Produit';
+$lang->tree->manageBugChild = 'Gérer Sous-Bugs';
+$lang->tree->manageCaseChild = 'Gérer Sous-CasTests';
+$lang->tree->manageCaselibChild = 'Gérer Sous-Librairies';
+$lang->tree->manageDashboard = 'Manage Dashboard Module';
+$lang->tree->manageDashboardChild = 'Manage Dashboard Child Module';
+$lang->tree->manageTaskChild = "Gérer Sous-Modules {$lang->executionCommon}";
+$lang->tree->syncFromProduct = "Copier d'un autre {$lang->productCommon}";
+$lang->tree->dragAndSort = "Faites glisser pour ordonner";
+$lang->tree->sort = "Ordonnez";
+$lang->tree->addChild = "Ajout Sous-Module";
+$lang->tree->confirmDelete = 'Voulez-vous supprimer ce module et tous ses sous-modules ?';
+$lang->tree->confirmDeleteMenu = 'Do you want to delete this menu and its child menus?';
+$lang->tree->confirmDelCategory = 'Voulez-vous supprimer cette catégorie et ses sous-catégories?';
+$lang->tree->confirmDeleteLine = 'Voulez-vous supprimer cette ligne de produit ?';
+$lang->tree->confirmRoot = "Les changements du {$lang->productCommon} vont impacter les stories, bugs, casTests du {$lang->productCommon} auquel ils appartiennent, ainsi que les associations de {$lang->executionCommon} et {$lang->productCommon}, ce qui est dangereux. Voulez-vous malgré tout effectuer le changement ?";
+$lang->tree->confirmRoot4Doc = "Toute modification apportée à la bibliothèque modifiera le document de la bibliothèque à laquelle elle appartient, ce qui est dangereux. Voulez-vous le changer ?";
+$lang->tree->noSubmodule = "There are no copyable submodules under the current module!";
+$lang->tree->successSave = 'Sauvé.';
+$lang->tree->successFixed = 'Corrigé.';
+$lang->tree->repeatName = 'Le nom "%s" existe déjà !';
+$lang->tree->shouldNotBlank = 'Module name should not be blank!';
$lang->tree->module = 'Module';
$lang->tree->name = 'Nom';
diff --git a/module/tree/lang/vi.php b/module/tree/lang/vi.php
old mode 100644
new mode 100755
index f0900f94b3..d8252731c1
--- a/module/tree/lang/vi.php
+++ b/module/tree/lang/vi.php
@@ -10,42 +10,44 @@
* @link http://www.zentao.net
*/
$lang->tree = new stdclass();
-$lang->tree->common = 'Module';
-$lang->tree->edit = 'Sửa Module';
-$lang->tree->delete = 'Xóa Module';
-$lang->tree->browse = 'Quản lý module chung';
-$lang->tree->browseTask = 'Quản lý Module nhiệm vụ';
-$lang->tree->manage = 'Quản lý Module';
-$lang->tree->fix = 'Sửa Module';
-$lang->tree->manageProduct = "Quản lý module {$lang->productCommon}";
-$lang->tree->manageExecution = "Quản lý module {$lang->executionCommon}";
-$lang->tree->manageLine = "Quản lý dòng {$lang->productCommon}";
-$lang->tree->manageBug = 'Quản lý Bug';
-$lang->tree->manageCase = 'Quản lý tình huống';
-$lang->tree->manageCaseLib = 'Quản lý thư viện';
-$lang->tree->manageCustomDoc = 'Quản lý thư viện tài liệu';
-$lang->tree->updateOrder = 'Đánh giá Module';
-$lang->tree->manageChild = 'Quản lý module con';
-$lang->tree->manageStoryChild = 'Quản lý module con';
-$lang->tree->manageLineChild = "Quản lý dòng {$lang->productCommon}";
-$lang->tree->manageBugChild = 'Quản lý Bugs con';
-$lang->tree->manageCaseChild = 'Quản lý tình huống con';
-$lang->tree->manageCaselibChild = 'Quản lý thư viện con';
-$lang->tree->manageTaskChild = "Quản lý module {$lang->executionCommon} con";
-$lang->tree->syncFromProduct = "Sao chép từ {$lang->productCommon} khác";
-$lang->tree->dragAndSort = "Drag để sắp xếp";
-$lang->tree->sort = "Thứ tự";
-$lang->tree->addChild = "Thêm Module con";
-$lang->tree->confirmDelete = 'Bạn có muốn xóa module này và module con của nó?';
-$lang->tree->confirmDeleteMenu = 'Do you want to delete this menu and its child menus?';
-$lang->tree->confirmDelCategory = 'Bạn có muốn xoá hạng mục này và loại con của nó không?';
-$lang->tree->confirmDeleteLine = "Bạn có muốn xóa dòng {$lang->productCommon} này không?";
-$lang->tree->confirmRoot = "Mọi sự thay đổi tới {$lang->productCommon} này sẽ thay đổi the câu chuyện, bugs, tình huống của {$lang->productCommon} nó sở hữu, cũng như liên kết của {$lang->executionCommon} và {$lang->productCommon}, điều này nguy hiểm. Bạn có muốn thay đổi nó?";
-$lang->tree->confirmRoot4Doc = "Mọi sự thay đổi tới thư viện này sẽ thay đổi thư viện tài liệu nó sở hữu, điều này nguy hiểm. Bạn có muốn thay đổi nó?";
-$lang->tree->successSave = 'Đã lưu.';
-$lang->tree->successFixed = 'Đã sửa';
-$lang->tree->repeatName = 'Tên "%s" đã tồn tại!';
-$lang->tree->shouldNotBlank = 'Module name should not be blank!';
+$lang->tree->common = 'Module';
+$lang->tree->edit = 'Sửa Module';
+$lang->tree->delete = 'Xóa Module';
+$lang->tree->browse = 'Quản lý module chung';
+$lang->tree->browseTask = 'Quản lý Module nhiệm vụ';
+$lang->tree->manage = 'Quản lý Module';
+$lang->tree->fix = 'Sửa Module';
+$lang->tree->manageProduct = "Quản lý module {$lang->productCommon}";
+$lang->tree->manageExecution = "Quản lý module {$lang->executionCommon}";
+$lang->tree->manageLine = "Quản lý dòng {$lang->productCommon}";
+$lang->tree->manageBug = 'Quản lý Bug';
+$lang->tree->manageCase = 'Quản lý tình huống';
+$lang->tree->manageCaseLib = 'Quản lý thư viện';
+$lang->tree->manageCustomDoc = 'Quản lý thư viện tài liệu';
+$lang->tree->updateOrder = 'Đánh giá Module';
+$lang->tree->manageChild = 'Quản lý module con';
+$lang->tree->manageStoryChild = 'Quản lý module con';
+$lang->tree->manageLineChild = "Quản lý dòng {$lang->productCommon}";
+$lang->tree->manageBugChild = 'Quản lý Bugs con';
+$lang->tree->manageCaseChild = 'Quản lý tình huống con';
+$lang->tree->manageCaselibChild = 'Quản lý thư viện con';
+$lang->tree->manageDashboard = 'Manage Dashboard Module';
+$lang->tree->manageDashboardChild = 'Manage Dashboard Child Module';
+$lang->tree->manageTaskChild = "Quản lý module {$lang->executionCommon} con";
+$lang->tree->syncFromProduct = "Sao chép từ {$lang->productCommon} khác";
+$lang->tree->dragAndSort = "Drag để sắp xếp";
+$lang->tree->sort = "Thứ tự";
+$lang->tree->addChild = "Thêm Module con";
+$lang->tree->confirmDelete = 'Bạn có muốn xóa module này và module con của nó?';
+$lang->tree->confirmDeleteMenu = 'Do you want to delete this menu and its child menus?';
+$lang->tree->confirmDelCategory = 'Bạn có muốn xoá hạng mục này và loại con của nó không?';
+$lang->tree->confirmDeleteLine = "Bạn có muốn xóa dòng {$lang->productCommon} này không?";
+$lang->tree->confirmRoot = "Mọi sự thay đổi tới {$lang->productCommon} này sẽ thay đổi the câu chuyện, bugs, tình huống của {$lang->productCommon} nó sở hữu, cũng như liên kết của {$lang->executionCommon} và {$lang->productCommon}, điều này nguy hiểm. Bạn có muốn thay đổi nó?";
+$lang->tree->confirmRoot4Doc = "Mọi sự thay đổi tới thư viện này sẽ thay đổi thư viện tài liệu nó sở hữu, điều này nguy hiểm. Bạn có muốn thay đổi nó?";
+$lang->tree->successSave = 'Đã lưu.';
+$lang->tree->successFixed = 'Đã sửa';
+$lang->tree->repeatName = 'Tên "%s" đã tồn tại!';
+$lang->tree->shouldNotBlank = 'Module name should not be blank!';
$lang->tree->module = 'Module';
$lang->tree->name = 'Tên';
diff --git a/module/tree/lang/zh-cn.php b/module/tree/lang/zh-cn.php
old mode 100644
new mode 100755
index 3e34d65234..1c6c9a6a11
--- a/module/tree/lang/zh-cn.php
+++ b/module/tree/lang/zh-cn.php
@@ -9,45 +9,47 @@
* @version $Id: zh-cn.php 4836 2013-06-19 05:39:40Z zhujinyonging@gmail.com $
* @link http://www.zentao.net
*/
-$lang->tree = new stdclass();
-$lang->tree->common = '模块维护';
-$lang->tree->edit = '编辑模块';
-$lang->tree->delete = '删除模块';
-$lang->tree->browse = '通用模块维护';
-$lang->tree->browseTask = '任务模块维护';
-$lang->tree->manage = '维护模块';
-$lang->tree->fix = '修正数据';
-$lang->tree->manageProduct = "维护{$lang->productCommon}视图模块";
-$lang->tree->manageExecution = "维护{$lang->execution->common}视图模块";
-$lang->tree->manageLine = "维护{$lang->productCommon}线";
-$lang->tree->manageBug = '维护测试视图模块';
-$lang->tree->manageCase = '维护用例视图模块';
-$lang->tree->manageCaseLib = '维护用例库模块';
-$lang->tree->manageCustomDoc = '维护文档库分类';
-$lang->tree->manageApiChild = '维护接口库目录';
-$lang->tree->updateOrder = '更新排序';
-$lang->tree->manageChild = '维护子模块';
-$lang->tree->manageStoryChild = '维护子模块';
-$lang->tree->manageLineChild = "维护{$lang->productCommon}线";
-$lang->tree->manageBugChild = '维护Bug子模块';
-$lang->tree->manageCaseChild = '维护用例子模块';
-$lang->tree->manageCaselibChild = '维护用例库子模块';
-$lang->tree->manageTaskChild = "维护{$lang->execution->common}子模块";
-$lang->tree->syncFromProduct = '复制模块';
-$lang->tree->dragAndSort = "拖放排序";
-$lang->tree->sort = "排序";
-$lang->tree->addChild = "增加子模块";
-$lang->tree->confirmDelete = '该模块及其子模块都会被删除,您确定删除吗?';
-$lang->tree->confirmDeleteMenu = '该目录及其子目录都会被删除,您确定删除吗?';
-$lang->tree->confirmDelCategory = '该分类及其子分类都会被删除,您确定删除吗?';
-$lang->tree->confirmDeleteLine = "您确定删除该{$lang->productCommon}线吗?";
-$lang->tree->confirmRoot = "模块的所属{$lang->productCommon}修改,会关联修改该模块下的{$lang->SRCommon}、Bug、用例的所属{$lang->productCommon},以及{$lang->executionCommon}和{$lang->productCommon}的关联关系。该操作比较危险,请谨慎操作。是否确认修改?";
-$lang->tree->confirmRoot4Doc = "修改所属文档库,会同时修改该分类下文档的关联关系。该操作比较危险,请谨慎操作。是否确认修改?";
-$lang->tree->noSubmodule = "当前模块下没有可复制的子模块!";
-$lang->tree->successSave = '成功保存';
-$lang->tree->successFixed = '成功修正数据!';
-$lang->tree->repeatName = '模块名“%s”已经存在!';
-$lang->tree->shouldNotBlank = '模块名不能为空格!';
+$lang->tree = new stdclass();
+$lang->tree->common = '模块维护';
+$lang->tree->edit = '编辑模块';
+$lang->tree->delete = '删除模块';
+$lang->tree->browse = '通用模块维护';
+$lang->tree->browseTask = '任务模块维护';
+$lang->tree->manage = '维护模块';
+$lang->tree->fix = '修正数据';
+$lang->tree->manageProduct = "维护{$lang->productCommon}视图模块";
+$lang->tree->manageExecution = "维护{$lang->execution->common}视图模块";
+$lang->tree->manageLine = "维护{$lang->productCommon}线";
+$lang->tree->manageBug = '维护测试视图模块';
+$lang->tree->manageCase = '维护用例视图模块';
+$lang->tree->manageCaseLib = '维护用例库模块';
+$lang->tree->manageCustomDoc = '维护文档库分类';
+$lang->tree->manageApiChild = '维护接口库目录';
+$lang->tree->updateOrder = '更新排序';
+$lang->tree->manageChild = '维护子模块';
+$lang->tree->manageStoryChild = '维护子模块';
+$lang->tree->manageLineChild = "维护{$lang->productCommon}线";
+$lang->tree->manageBugChild = '维护Bug子模块';
+$lang->tree->manageCaseChild = '维护用例子模块';
+$lang->tree->manageCaselibChild = '维护用例库子模块';
+$lang->tree->manageDashboard = '维护仪表盘模块';
+$lang->tree->manageDashboardChild = '维护仪表盘子模块';
+$lang->tree->manageTaskChild = "维护{$lang->execution->common}子模块";
+$lang->tree->syncFromProduct = '复制模块';
+$lang->tree->dragAndSort = "拖放排序";
+$lang->tree->sort = "排序";
+$lang->tree->addChild = "增加子模块";
+$lang->tree->confirmDelete = '该模块及其子模块都会被删除,您确定删除吗?';
+$lang->tree->confirmDeleteMenu = '该目录及其子目录都会被删除,您确定删除吗?';
+$lang->tree->confirmDelCategory = '该分类及其子分类都会被删除,您确定删除吗?';
+$lang->tree->confirmDeleteLine = "您确定删除该{$lang->productCommon}线吗?";
+$lang->tree->confirmRoot = "模块的所属{$lang->productCommon}修改,会关联修改该模块下的{$lang->SRCommon}、Bug、用例的所属{$lang->productCommon},以及{$lang->executionCommon}和{$lang->productCommon}的关联关系。该操作比较危险,请谨慎操作。是否确认修改?";
+$lang->tree->confirmRoot4Doc = "修改所属文档库,会同时修改该分类下文档的关联关系。该操作比较危险,请谨慎操作。是否确认修改?";
+$lang->tree->noSubmodule = "当前模块下没有可复制的子模块!";
+$lang->tree->successSave = '成功保存';
+$lang->tree->successFixed = '成功修正数据!';
+$lang->tree->repeatName = '模块名“%s”已经存在!';
+$lang->tree->shouldNotBlank = '模块名不能为空格!';
$lang->tree->module = '模块';
$lang->tree->name = '模块名称';
diff --git a/module/tree/lang/zh-tw.php b/module/tree/lang/zh-tw.php
old mode 100644
new mode 100755
diff --git a/module/upgrade/config.php b/module/upgrade/config.php
index d95f95d8fc..7a4a79ae15 100644
--- a/module/upgrade/config.php
+++ b/module/upgrade/config.php
@@ -354,7 +354,6 @@ $config->delete['17_2'][] = 'extension/lite/workflow/ext/view/flowchart.flow.htm
$config->delete['17_2'][] = 'extension/lite/workflow/ext/view/release.flow.html.hook.php';
$config->delete['17_2'][] = 'extension/lite/workflow/ext/view/setcss.flow.html.hook.php';
$config->delete['17_2'][] = 'extension/lite/workflow/ext/view/setjs.flow.html.hook.php';
-$config->delete['17_2'][] = 'extension/lite/workflow/ext/view/ui.flow.html.hook.php';
$config->delete['17_2'][] = 'extension/lite/workflowaction/ext/view/browse.flow.html.hook.php';
$config->delete['17_2'][] = 'extension/lite/workflowaction/ext/view/edit.flow.html.hook.php';
$config->delete['17_2'][] = 'extension/lite/workflowaction/ext/view/setnotice.flow.html.hook.php';
diff --git a/module/upgrade/css/afterexec.css b/module/upgrade/css/afterexec.css
index 3dd0eb71dd..c6ed6559de 100644
--- a/module/upgrade/css/afterexec.css
+++ b/module/upgrade/css/afterexec.css
@@ -70,4 +70,4 @@
.card.ad > .card-reveal {color: #333;}
.card.ad > .card-reveal li {line-height: 1.5; font-size: 12px;}
-.result-box {height: 400px; position: fixed; left: 50%; top: 50%; margin-left: -400px; margin-top: -200px;}
+.result-box {min-height: 400px; position: fixed; left: 50%; top: 50%; margin-left: -400px; margin-top: -200px;}
diff --git a/module/upgrade/model.php b/module/upgrade/model.php
index fed5db039d..793c336335 100644
--- a/module/upgrade/model.php
+++ b/module/upgrade/model.php
@@ -681,13 +681,13 @@ class upgradeModel extends model
case 'biz6_4':
$this->importLiteModules();
break;
- case 'biz7.0.beta1':
+ case 'biz7_0_beta1':
$this->processViewFields();
break;
- case 'biz7.0':
+ case 'biz7_0':
$this->processFlowPosition();
break;
- case 'biz7.4':
+ case 'biz7_4':
$this->processCreatedInfo();
$this->processCreatedBy();
$this->updateApproval();
|