This commit is contained in:
zhujinyong
2022-08-16 15:02:50 +08:00
36 changed files with 346 additions and 259 deletions
+36
View File
@@ -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,
+1 -1
View File
@@ -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'),
@@ -1,3 +0,0 @@
<script>
$('#assigntomeBlock>ul>li>a:not([href$="todo"]):not([href$="task"]:not[href$="feedback"])').parent().remove();
</script>
@@ -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();
@@ -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();
@@ -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();
@@ -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();
+1 -1
View File
@@ -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';
$config->task->datatable->fieldList['lane']['sort'] = 'no';
+35 -25
View File
@@ -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));
+1
View File
@@ -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: <span class='text-red'>%s</span>。";
$lang->admin->errorInnodb = 'Your MySQL does not support InnoDB data table engine.';
$lang->admin->changeFinished = "Database engine replacement completed.";
$lang->admin->engineInfo = "The <strong>%s</strong> table engine is <strong>%s</strong>.";
$lang->admin->engineSummary['hasMyISAM'] = "There are %s tables that are not InnoDB engines";
$lang->admin->engineSummary['allInnoDB'] = "All tables are InnoDB engines";
+1
View File
@@ -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: <span class='text-red'>%s</span>。";
$lang->admin->errorInnodb = 'Your MySQL does not support InnoDB data table engine.';
$lang->admin->changeFinished = "Database engine replacement completed.";
$lang->admin->engineInfo = "The <strong>%s</strong> table engine is <strong>%s</strong>.";
$lang->admin->engineSummary['hasMyISAM'] = "There are %s tables that are not InnoDB engines";
$lang->admin->engineSummary['allInnoDB'] = "All tables are InnoDB engines";
+1
View File
@@ -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: <span class='text-red'>%s</span>。";
$lang->admin->errorInnodb = 'Your MySQL does not support InnoDB data table engine.';
$lang->admin->changeFinished = "Database engine replacement completed.";
$lang->admin->engineInfo = "The <strong>%s</strong> table engine is <strong>%s</strong>.";
$lang->admin->engineSummary['hasMyISAM'] = "There are %s tables that are not InnoDB engines";
$lang->admin->engineSummary['allInnoDB'] = "All tables are InnoDB engines";
+1
View File
@@ -35,6 +35,7 @@ $lang->admin->changingTable = '正在更换数据表%s引擎...';
$lang->admin->changeSuccess = '已经更换数据表%s引擎为InnoDB。';
$lang->admin->changeFail = "更换数据表%s引擎失败,原因:<span class='text-red'>%s</span>。";
$lang->admin->errorInnodb = '您当前的数据库不支持使用InnoDB数据表引擎。';
$lang->admin->changeFinished = "更换数据库引擎完毕。";
$lang->admin->engineInfo = "表<strong>%s</strong>的引擎是<strong>%s</strong>。";
$lang->admin->engineSummary['hasMyISAM'] = "有%s个表不是InnoDB引擎";
$lang->admin->engineSummary['allInnoDB'] = "所有的表都是InnoDB引擎了";
+31 -18
View File
@@ -36,7 +36,9 @@
</div>
</div>
<?php js::set('changingTable', $lang->admin->changingTable);?>
<?php js::set('hasMyISAM', $lang->admin->engineSummary['hasMyISAM']);?>
<script>
var changeFails = 0;
/**
* Change all table engines.
*
@@ -45,34 +47,23 @@
*/
function changeAllEngines()
{
var tables = [];
var $engineBox = $('#engineBox');
$engineBox.find('li').each(function()
{
tables.push($(this).attr('data-table'));
});
$('.btn.changeEngine').hide();
$engineBox.empty();
$.each(tables, function(_, table)
{
changeEngine(table);
});
changeTableEngine();
}
/**
* Change one engine.
* Ajax change table engine.
*
* @param string $table
* @access public
* @return void
*/
function changeEngine(table)
function changeTableEngine()
{
var $engineBox = $('#engineBox');
var link = createLink('admin', 'ajaxChangeTableEngine', 'table=' + table);
if($engineBox.find('[data-table=' + table + ']').length == 0) $engineBox.append("<div data-table='" + table + "'>" + changingTable.replace('%s', table) + "</div>");
var link = createLink('admin', 'ajaxChangeTableEngine');
$.ajax(
{
type: "GET",
@@ -80,11 +71,33 @@ function changeEngine(table)
success: function(response)
{
response = JSON.parse(response);
$engineBox.find('[data-table=' + table + ']').html(response.message).addClass('text-success');
if(response == null || response.result == 'finished')
{
$engineBox.append("<div class='text-success'><?php echo $lang->admin->changeFinished?></div>");
$engineBox.append("<div class='btn btn-sm'><a href='javascript:location.reload()'><?php echo $lang->refresh;?></a></div>");
if(changeFails == 0) $('#mainContent .main-header h2').html("<?php echo $lang->admin->engineSummary['allInnoDB']?>");
if(changeFails != 0) $('#mainContent .main-header h2').html(hasMyISAM.replace('%s', changeFails));
}
else
{
table = response.thisTable;
if($engineBox.find('[data-table=' + table + ']').length == 0) $engineBox.append("<li data-table='" + table + "'>" + changingTable.replace('%s', table) + "</li>");
$engineBox.find('[data-table=' + table + ']').html(response.message);
if(response.result == 'success') $engineBox.find('[data-table=' + table + ']').addClass('text-success');
if(response.result == 'fail') $engineBox.find('[data-table=' + table + ']').addClass('text-warning');
nextTable = response.nextTable;
if(nextTable && $engineBox.find('[data-table=' + nextTable + ']').length == 0) $engineBox.append("<li data-table='" + nextTable + "'>" + changingTable.replace('%s', nextTable) + "</li>");
if(response.result == 'fail') changeFails += 1;
$(document).scrollTop($(document).height());
changeTableEngine();
}
},
error: function()
{
changeEngine(table);
changeTableEngine();
}
})
}
+1 -1
View File
@@ -252,7 +252,7 @@ class build extends control
->page($storyPager)
->fetchAll('id');
$stages = $this->dao->select('*')->from(TABLE_STORYSTAGE)->where('story')->in($build->stories)->andWhere('branch')->eq($build->branch)->fetchPairs('story', 'stage');
$stages = $this->dao->select('*')->from(TABLE_STORYSTAGE)->where('story')->in(array_keys($stories))->andWhere('branch')->eq($build->branch)->fetchPairs('story', 'stage');
foreach($stages as $storyID => $stage) $stories[$storyID]->stage = $stage;
-1
View File
@@ -1,2 +1 @@
.table table td,.outer .table table tbody > tr:last-child td {padding: 2px 0 2px 5px !important; border: none !important;}
.c-pri{width: 70px;}
+9 -4
View File
@@ -14,11 +14,12 @@ $datas = $datas->datas;
?>
<style>
form{overflow-x: scroll}
.c-pri, .c-estStarted, .c-deadline{width:100px;}
thead > tr > th{width:150px;}
.c-estimate {width:150px;}
.c-story{width:150px;}
.c-team {width:100px; padding:0px 0px 8px 0px !important;}
.c-estimate-1 {width:50px;padding:0px 0px 8px 8px !important;}
.c-step{width:400px;}
.c-pri,.c-stage{width:150px}
.c-precondition{width:200px;}
</style>
<?php if(!empty($suhosinInfo)):?>
<div class='alert alert-info'><?php echo $suhosinInfo?></div>
@@ -37,7 +38,11 @@ $(function()
{
if(parseInt($('#maxImport').val())) $('#times').html(Math.ceil(parseInt($('#allCount').html()) / parseInt($('#maxImport').val())));
});
$('#import').click(function(){location.href = createLink('caselib', 'showImport', "libID=<?php echo $libID;?>&pageID=1&maxImport=" + $('#maxImport').val())})
$('#import').click(function()
{
$.cookie('maxImport', $('#maxImport').val());
location.href = createLink('caselib', 'showImport', "libID=<?php echo $libID;?>&pageID=1&maxImport=" + $('#maxImport').val())
});
});
</script>
<?php else:?>
+3
View File
@@ -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');
-2
View File
@@ -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);
}
</script>
+5 -2
View File
@@ -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 .= '<td>';
if(is_array($object->estimate))
if(!empty($object->estimate) and is_array($object->estimate))
{
$html .= "<table class='table-borderless'>";
foreach($object->estimate as $account => $estimate)
+2 -1
View File
@@ -1,5 +1,5 @@
<script>
$('#showData > tbody').addClass('load-indicator loading');
$.get(createLink('port', 'ajaxGetTbody','model=<?php echo $model;?>&lastID=0&pagerID=<?php echo $pagerID;?>'), function(data)
{
$('#showData > tbody').append(data);
@@ -7,6 +7,7 @@ $.get(createLink('port', 'ajaxGetTbody','model=<?php echo $model;?>&lastID=0&pag
$('#showData tbody').find('.picker-select').picker({chosenMode: true});
$('.form-date').datetimepicker('update');
$('.form-datetime').datetimepicker('update');
$('#showData > tbody').removeClass('load-indicator loading');
})
window.addEventListener('scroll', this.handleScroll);
+3 -1
View File
@@ -18,11 +18,13 @@ $notEmptyRule = $this->session->notEmptyRule;
form{overflow-x: scroll}
#maxImport:focus {outline: none;}
.pointorNone{pointer-events:none;}
thead > tr > th{width:150px;}
.c-pri{width:100px}
#showData > thead > tr > th{width:150px;}
.c-precondition{width:200px;}
.c-id{width:50px}
.c-team {width:100px; padding:0px 0px 8px 0px !important;}
.c-estimate-1 {width:50px;padding:0px 0px 8px 8px !important;}
.load-indicator{width: 100px; height: 500px;}
</style>
<?php if(!empty($suhosinInfo)):?>
<div class='alert alert-info'><?php echo $suhosinInfo?></div>
+1
View File
@@ -33,6 +33,7 @@ $('#subNavbar').find('ul li').each(function()
{
var that = $(this);
if(that.attr('data-id') != browseType) that.removeClass('active');
if(that.attr('data-id') == 'gantt' && 'assignedTo' == browseType) that.addClass('active');
});
</script>
<?php include '../../common/view/footer.html.php';?>
+2
View File
@@ -94,7 +94,9 @@ form {display: block; margin-top: 0em; margin-block-end: 1em;}
<div class='btn btn-link' id='ganttPris'>
<strong><?php echo $lang->task->pri . " : "?></strong>
<?php foreach($lang->execution->gantt->progressColor as $pri => $color):?>
<?php if($pri <= 4):?>
<span style="background:<?php echo $color?>"><?php echo $pri;?></span> &nbsp;
<?php endif;?>
<?php endforeach;?>
</div>
</div>
+2 -2
View File
@@ -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) ? "<div class='text-center'>{$this->lang->noData}</div>" : '';
foreach($projects as $id => $name)
{
+1 -1
View File
@@ -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;
+2 -2
View File
@@ -14,8 +14,8 @@
<th class='c-step'>
<table class='w-p100 table-borderless'>
<tr>
<th class="no-padding"><?php echo $fields['stepDesc']['title']?></th>
<th class="no-padding"><?php echo $fields['stepExpect']['title']?></th>
<th><?php echo $fields['stepDesc']['title']?></th>
<th><?php echo $fields['stepExpect']['title']?></th>
</tr>
</table>
</th>
Regular → Executable
+40 -38
View File
@@ -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';
Regular → Executable
+40 -38
View File
@@ -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';
Regular → Executable
+40 -38
View File
@@ -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';
Regular → Executable
+38 -36
View File
@@ -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}{$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}{$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';
Regular → Executable
+41 -39
View File
@@ -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 = '模块名称';
Regular → Executable
View File
-1
View File
@@ -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';
+1 -1
View File
@@ -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;}
+3 -3
View File
@@ -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();