Merge branch 'master' of github.com:easysoft/zentaopms
This commit is contained in:
@@ -4,6 +4,9 @@ ALTER TABLE `zt_todo` ADD `cycle` tinyint unsigned NOT NULL DEFAULT '0' AFTER `t
|
||||
INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`, `lastTime`) VALUES
|
||||
('1', '1', '*', '*', '*', 'moduleName=todo&methodName=createCycle', '生成周期性待办', 'zentao', 1, 'normal', '0000-00-00 00:00:00');
|
||||
|
||||
|
||||
ALTER TABLE `zt_projectproduct` ADD `plan` MEDIUMINT(8) UNSIGNED NOT NULL AFTER `branch`;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zt_notify` (
|
||||
`id` mediumint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`objectType` varchar(50) NOT NULL,
|
||||
|
||||
@@ -499,6 +499,7 @@ CREATE TABLE IF NOT EXISTS `zt_projectproduct` (
|
||||
`project` mediumint(8) unsigned NOT NULL,
|
||||
`product` mediumint(8) unsigned NOT NULL,
|
||||
`branch` mediumint(8) unsigned NOT NULL,
|
||||
`plan` mediumint(8) unsigned NOT NULL,
|
||||
PRIMARY KEY (`project`,`product`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_projectstory`;
|
||||
|
||||
+31
-10
@@ -5,7 +5,7 @@
|
||||
*
|
||||
* The author disclaims copyright to this source code. In place of
|
||||
* a legal notice, here is a blessing:
|
||||
*
|
||||
*
|
||||
* May you do good and not evil.
|
||||
* May you find forgiveness for yourself and forgive others.
|
||||
* May you share freely, never taking more than you give.
|
||||
@@ -43,7 +43,7 @@ class helper extends baseHelper
|
||||
{
|
||||
if(isset($_GET[$config->viewVar]))
|
||||
{
|
||||
$viewType = $_GET[$config->viewVar];
|
||||
$viewType = $_GET[$config->viewVar];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -59,9 +59,9 @@ class helper extends baseHelper
|
||||
|
||||
/**
|
||||
* Encode json for $.parseJSON
|
||||
*
|
||||
* @param array $data
|
||||
* @param int $options
|
||||
*
|
||||
* @param array $data
|
||||
* @param int $options
|
||||
* @static
|
||||
* @access public
|
||||
* @return string
|
||||
@@ -78,10 +78,10 @@ class helper extends baseHelper
|
||||
|
||||
/**
|
||||
* Convert encoding.
|
||||
*
|
||||
* @param string $string
|
||||
* @param string $fromEncoding
|
||||
* @param string $toEncoding
|
||||
*
|
||||
* @param string $string
|
||||
* @param string $fromEncoding
|
||||
* @param string $toEncoding
|
||||
* @static
|
||||
* @access public
|
||||
* @return string
|
||||
@@ -111,12 +111,33 @@ class helper extends baseHelper
|
||||
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate two working days.
|
||||
*
|
||||
* @param string $begin
|
||||
* @param string $end
|
||||
*
|
||||
* @return bool|float
|
||||
*/
|
||||
static public function workDays($begin, $end)
|
||||
{
|
||||
$begin = strtotime($begin);
|
||||
$end = strtotime($end);
|
||||
if($end < $begin) return false;
|
||||
|
||||
$double = floor(($end - $begin) / (7 * 24 * 3600));
|
||||
$begin = date('w', $begin);
|
||||
$end = date('w', $end);
|
||||
$end = $begin > $end ? $end + 5 : $end;
|
||||
return $double * 5 + $end - $begin;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否是onlybody模式。
|
||||
* Check exist onlybody param.
|
||||
*
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
|
||||
+11
-11
@@ -12,10 +12,10 @@
|
||||
$lang->action->common = 'Log';
|
||||
$lang->action->product = $lang->productCommon;
|
||||
$lang->action->project = $lang->projectCommon;
|
||||
$lang->action->objectType = 'Object';
|
||||
$lang->action->objectType = 'Object Type';
|
||||
$lang->action->objectID = 'ID';
|
||||
$lang->action->objectName = 'Name';
|
||||
$lang->action->actor = 'Done by';
|
||||
$lang->action->objectName = 'Object Name';
|
||||
$lang->action->actor = 'Operator';
|
||||
$lang->action->action = 'Action';
|
||||
$lang->action->actionID = 'Action ID';
|
||||
$lang->action->date = 'Date';
|
||||
@@ -44,11 +44,11 @@ $lang->action->history->diff = 'Diff';
|
||||
$lang->action->dynamic = new stdclass();
|
||||
$lang->action->dynamic->today = 'Today';
|
||||
$lang->action->dynamic->yesterday = 'Yesterday';
|
||||
$lang->action->dynamic->twoDaysAgo = 'Two Days Ago';
|
||||
$lang->action->dynamic->thisWeek = 'This Week';
|
||||
$lang->action->dynamic->lastWeek = 'Last Week';
|
||||
$lang->action->dynamic->thisMonth = 'This Month';
|
||||
$lang->action->dynamic->lastMonth = 'Last Month';
|
||||
$lang->action->dynamic->twoDaysAgo = 'TwoDaysAgo';
|
||||
$lang->action->dynamic->thisWeek = 'ThisWeek';
|
||||
$lang->action->dynamic->lastWeek = 'LastWeek';
|
||||
$lang->action->dynamic->thisMonth = 'ThisMonth';
|
||||
$lang->action->dynamic->lastMonth = 'LastMonth';
|
||||
$lang->action->dynamic->all = 'All';
|
||||
$lang->action->dynamic->hidden = 'Hidden';
|
||||
$lang->action->dynamic->search = 'Search';
|
||||
@@ -68,7 +68,7 @@ $lang->action->objectTypes['testtask'] = 'Test Build';
|
||||
$lang->action->objectTypes['user'] = 'User';
|
||||
$lang->action->objectTypes['doc'] = 'Doc';
|
||||
$lang->action->objectTypes['doclib'] = 'Doc Lib';
|
||||
$lang->action->objectTypes['todo'] = 'To-Dos';
|
||||
$lang->action->objectTypes['todo'] = 'Todo';
|
||||
$lang->action->objectTypes['branch'] = 'Branch';
|
||||
$lang->action->objectTypes['module'] = 'Module';
|
||||
$lang->action->objectTypes['testsuite'] = 'Suite';
|
||||
@@ -197,7 +197,7 @@ $lang->action->label->case = 'Case|testcase|view|caseID=%s';
|
||||
$lang->action->label->testtask = 'Test Task|testtask|view|caseID=%s';
|
||||
$lang->action->label->testsuite = 'Test Suite|testsuite|view|suiteID=%s';
|
||||
$lang->action->label->caselib = 'Case Library|testsuite|libview|libID=%s';
|
||||
$lang->action->label->todo = 'To-Do|todo|view|todoID=%s';
|
||||
$lang->action->label->todo = 'Todo|todo|view|todoID=%s';
|
||||
$lang->action->label->doclib = 'Doc Lib|doc|browse|libID=%s';
|
||||
$lang->action->label->doc = 'Doc|doc|view|docID=%s';
|
||||
$lang->action->label->user = 'User|user|view|account=%s';
|
||||
@@ -220,7 +220,7 @@ $lang->action->search->objectTypeList['testtask'] = 'Test Task';
|
||||
$lang->action->search->objectTypeList['user'] = 'User';
|
||||
$lang->action->search->objectTypeList['doc'] = 'Doc';
|
||||
$lang->action->search->objectTypeList['doclib'] = 'Doc Lib';
|
||||
$lang->action->search->objectTypeList['todo'] = 'To-Dos';
|
||||
$lang->action->search->objectTypeList['todo'] = 'Todo';
|
||||
$lang->action->search->objectTypeList['build'] = 'Build';
|
||||
$lang->action->search->objectTypeList['release'] = 'Release';
|
||||
$lang->action->search->objectTypeList['productplan'] = 'Plan';
|
||||
|
||||
@@ -29,23 +29,23 @@ $lang->admin->saveSuccess = 'Saved.';
|
||||
|
||||
$lang->admin->info = new stdclass();
|
||||
$lang->admin->info->version = 'Current Version is %s. ';
|
||||
$lang->admin->info->links = 'You can visit ';
|
||||
$lang->admin->info->links = 'You can visit links below';
|
||||
$lang->admin->info->account = 'Your ZenTao account is %s.';
|
||||
$lang->admin->info->log = 'Logs that is beyond valid days will be deleted and it has to run cron.';
|
||||
|
||||
$lang->admin->notice = new stdclass();
|
||||
$lang->admin->notice->register = "Note: You haven't registered in ZenTao(www.zentao.pm). Register %s and get the latest ZenTao news.";
|
||||
$lang->admin->notice->register = "Note: You haven't registered in ZenTao(www.zentao.pm). %s then get the Latest ZenTao Upgrades and News.";
|
||||
$lang->admin->notice->ignore = "Ignore";
|
||||
$lang->admin->notice->int = "『%s』should be a positive integer.";
|
||||
|
||||
$lang->admin->register = new stdclass();
|
||||
$lang->admin->register->common = 'Account Binding';
|
||||
$lang->admin->register->caption = 'Register';
|
||||
$lang->admin->register->click = 'Click Here';
|
||||
$lang->admin->register->lblAccount = 'at least 3 characters; must contain letters and numbers.';
|
||||
$lang->admin->register->lblPasswd = 'at least 6 characters; must contain letters and numbers.';
|
||||
$lang->admin->register->common = 'Binding New Account';
|
||||
$lang->admin->register->caption = 'Register in Zentao Community';
|
||||
$lang->admin->register->click = 'Please Register here';
|
||||
$lang->admin->register->lblAccount = 'at least 3 characters pls; contains letters and numbers.';
|
||||
$lang->admin->register->lblPasswd = 'at least 6 characters pls; contains letters and numbers.';
|
||||
$lang->admin->register->submit = 'Register';
|
||||
$lang->admin->register->bind = "If you have already registered an account, link your account %s.";
|
||||
$lang->admin->register->bind = "Binding Exsit Account";
|
||||
$lang->admin->register->success = "You have registered with us!";
|
||||
|
||||
$lang->admin->bind = new stdclass();
|
||||
|
||||
+10
-10
@@ -46,7 +46,7 @@ $lang->block->refresh = 'Refresh';
|
||||
$lang->block->hidden = 'Hide';
|
||||
$lang->block->dynamicInfo = "%s, %s <em>%s</em> %s <a href='%s'>%s</a>.";
|
||||
|
||||
$lang->block->default['product']['1']['title'] = 'Open' . $lang->productCommon;
|
||||
$lang->block->default['product']['1']['title'] = 'Open ' . $lang->productCommon . 's';
|
||||
$lang->block->default['product']['1']['block'] = 'list';
|
||||
$lang->block->default['product']['1']['grid'] = 8;
|
||||
|
||||
@@ -61,7 +61,7 @@ $lang->block->default['product']['2']['params']['num'] = 15;
|
||||
$lang->block->default['product']['2']['params']['orderBy'] = 'id_desc';
|
||||
$lang->block->default['product']['2']['params']['type'] = 'assignedTo';
|
||||
|
||||
$lang->block->default['project']['1']['title'] = 'Doing' . $lang->projectCommon;
|
||||
$lang->block->default['project']['1']['title'] = 'Active ' . $lang->projectCommon . 's';
|
||||
$lang->block->default['project']['1']['block'] = 'list';
|
||||
$lang->block->default['project']['1']['grid'] = 8;
|
||||
|
||||
@@ -111,7 +111,7 @@ $lang->block->default['full']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['full']['my']['2']['source'] = '';
|
||||
$lang->block->default['full']['my']['3'] = $lang->block->default['project']['1'];
|
||||
$lang->block->default['full']['my']['3']['source'] = 'project';
|
||||
$lang->block->default['full']['my']['4']['title'] = 'My To-Dos';
|
||||
$lang->block->default['full']['my']['4']['title'] = 'My Todo';
|
||||
$lang->block->default['full']['my']['4']['block'] = 'list';
|
||||
$lang->block->default['full']['my']['4']['grid'] = 4;
|
||||
$lang->block->default['full']['my']['4']['source'] = 'todo';
|
||||
@@ -134,7 +134,7 @@ $lang->block->default['onlyTest']['my']['2']['title'] = 'Dynamic';
|
||||
$lang->block->default['onlyTest']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTest']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTest']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTest']['my']['3']['title'] = 'My To-Dos';
|
||||
$lang->block->default['onlyTest']['my']['3']['title'] = 'My Todo';
|
||||
$lang->block->default['onlyTest']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTest']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTest']['my']['3']['source'] = 'todo';
|
||||
@@ -150,7 +150,7 @@ $lang->block->default['onlyStory']['my']['2']['title'] = 'Dynamic';
|
||||
$lang->block->default['onlyStory']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyStory']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyStory']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyStory']['my']['3']['title'] = 'My To-Dos';
|
||||
$lang->block->default['onlyStory']['my']['3']['title'] = 'My Todo';
|
||||
$lang->block->default['onlyStory']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyStory']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyStory']['my']['3']['source'] = 'todo';
|
||||
@@ -166,7 +166,7 @@ $lang->block->default['onlyTask']['my']['2']['title'] = 'Dynamic';
|
||||
$lang->block->default['onlyTask']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['onlyTask']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['onlyTask']['my']['2']['source'] = '';
|
||||
$lang->block->default['onlyTask']['my']['3']['title'] = 'My To-Dos';
|
||||
$lang->block->default['onlyTask']['my']['3']['title'] = 'My Todo';
|
||||
$lang->block->default['onlyTask']['my']['3']['block'] = 'list';
|
||||
$lang->block->default['onlyTask']['my']['3']['grid'] = 6;
|
||||
$lang->block->default['onlyTask']['my']['3']['source'] = 'todo';
|
||||
@@ -181,7 +181,7 @@ $lang->block->orderBy = 'Order by';
|
||||
|
||||
$lang->block->availableBlocks = new stdclass();
|
||||
|
||||
$lang->block->availableBlocks->todo = 'My To-Dos';
|
||||
$lang->block->availableBlocks->todo = 'My Todo';
|
||||
$lang->block->availableBlocks->task = 'My Tasks';
|
||||
$lang->block->availableBlocks->bug = 'My Bugs';
|
||||
$lang->block->availableBlocks->case = 'My Cases';
|
||||
@@ -196,7 +196,7 @@ $lang->block->availableBlocks->testtask = 'Test Builds';
|
||||
$lang->block->moduleList['product'] = $lang->productCommon;
|
||||
$lang->block->moduleList['project'] = $lang->projectCommon;
|
||||
$lang->block->moduleList['qa'] = 'QA';
|
||||
$lang->block->moduleList['todo'] = 'To-Dos';
|
||||
$lang->block->moduleList['todo'] = 'Todo';
|
||||
|
||||
$lang->block->modules['product'] = new stdclass();
|
||||
$lang->block->modules['product']->availableBlocks = new stdclass();
|
||||
@@ -216,7 +216,7 @@ $lang->block->modules['qa']->availableBlocks->case = 'Cases';
|
||||
$lang->block->modules['qa']->availableBlocks->testtask = 'Test Builds';
|
||||
$lang->block->modules['todo'] = new stdclass();
|
||||
$lang->block->modules['todo']->availableBlocks = new stdclass();
|
||||
$lang->block->modules['todo']->availableBlocks->list = 'To-Dos';
|
||||
$lang->block->modules['todo']->availableBlocks->list = 'Todo';
|
||||
|
||||
$lang->block->orderByList = new stdclass();
|
||||
|
||||
@@ -282,7 +282,7 @@ $lang->block->typeList->product['closed'] = 'Closed';
|
||||
$lang->block->typeList->product['all'] = 'All';
|
||||
$lang->block->typeList->product['involved'] = 'Involved';
|
||||
|
||||
$lang->block->typeList->project['undone'] = 'Undone';
|
||||
$lang->block->typeList->project['undone'] = 'Unfinished';
|
||||
$lang->block->typeList->project['isdoing'] = 'Doing';
|
||||
$lang->block->typeList->project['all'] = 'All';
|
||||
$lang->block->typeList->project['involved'] = 'Involved';
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
<th width='65' title='<?php echo $lang->story->common;?>'><?php echo $lang->story->statusList['changed'];?></th>
|
||||
<th width='65' title='<?php echo $lang->story->common;?>'><?php echo $lang->story->statusList['draft'];?></th>
|
||||
<th width='65'><?php echo $lang->product->plans;?></th>
|
||||
<th width='65'><?php echo $lang->product->releases;?></th>
|
||||
<th width='65' title='<?php echo $lang->bug->common;?>'><?php echo $lang->product->bugs;?></th>
|
||||
<th width='65' title='<?php echo $lang->bug->common;?>'><?php echo $lang->bug->unResolved;?></th>
|
||||
<th width='70'><?php echo $lang->product->releases;?></th>
|
||||
<th width='95' title='<?php echo $lang->bug->common;?>'><?php echo $lang->product->bugs;?></th>
|
||||
<th width='95' title='<?php echo $lang->bug->common;?>'><?php echo $lang->bug->unResolved;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<tr class='text-center'>
|
||||
<th class='text-left'><?php echo $lang->project->name;?></th>
|
||||
<th width='80'><?php echo $lang->project->end;?></th>
|
||||
<th width='50'><?php echo $lang->statusAB;?></th>
|
||||
<th width='70'><?php echo $lang->statusAB;?></th>
|
||||
<th width='60'><?php echo $lang->project->totalEstimate;?></th>
|
||||
<th width='60'><?php echo $lang->project->totalConsumed;?></th>
|
||||
<th width='60'><?php echo $lang->project->totalLeft;?></th>
|
||||
|
||||
@@ -19,7 +19,7 @@ td.delayed{background: #e84e0f!important; color: white;}
|
||||
<th width='50'><?php echo $lang->idAB?></th>
|
||||
<th width='30'><?php echo $lang->priAB?></th>
|
||||
<th> <?php echo $lang->task->name;?></th>
|
||||
<th width='40'><?php echo $lang->task->estimateAB;?></th>
|
||||
<th width='50'><?php echo $lang->task->estimateAB;?></th>
|
||||
<th width='75'><?php echo $lang->task->deadline;?></th>
|
||||
<th width='70'><?php echo $lang->statusAB;?></th>
|
||||
</tr>
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
<table class='table tablesorter table-data table-hover block-testtask table-fixed'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width='50'><?php echo $lang->idAB?></th>
|
||||
<th> <?php echo $lang->testtask->product;?></th>
|
||||
<th> <?php echo $lang->testtask->name;?></th>
|
||||
<th> <?php echo $lang->testtask->project . '/' . $lang->testtask->build;?></th>
|
||||
<th width='80'><?php echo $lang->testtask->begin;?></th>
|
||||
<th width='80'><?php echo $lang->testtask->end;?></th>
|
||||
<th width='30'><?php echo $lang->idAB?></th>
|
||||
<th width='80'><?php echo $lang->testtask->product;?></th>
|
||||
<th width='80'> <?php echo $lang->testtask->name;?></th>
|
||||
<th width='80'><?php echo $lang->testtask->project . '/' . $lang->testtask->build;?></th>
|
||||
<th width='50'><?php echo $lang->testtask->begin;?></th>
|
||||
<th width='50'><?php echo $lang->testtask->end;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<?php foreach($testtasks as $testtask):?>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<th width='90'><?php echo $lang->todo->date?></th>
|
||||
<th width='40'><?php echo $lang->priAB?></th>
|
||||
<th> <?php echo $lang->todo->name;?></th>
|
||||
<th width='50'><?php echo $lang->todo->beginAB;?></th>
|
||||
<th width='55'><?php echo $lang->todo->beginAB;?></th>
|
||||
<th width='50'><?php echo $lang->todo->endAB;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -267,7 +267,7 @@ $config->bug->datatable->fieldList['openedBuild']['fixed'] = 'no';
|
||||
$config->bug->datatable->fieldList['openedBuild']['width'] = '120';
|
||||
$config->bug->datatable->fieldList['openedBuild']['required'] = 'no';
|
||||
|
||||
$config->bug->datatable->fieldList['assignedTo']['title'] = 'assignedTo';
|
||||
$config->bug->datatable->fieldList['assignedTo']['title'] = 'assignedToAB';
|
||||
$config->bug->datatable->fieldList['assignedTo']['fixed'] = 'no';
|
||||
$config->bug->datatable->fieldList['assignedTo']['width'] = '80';
|
||||
$config->bug->datatable->fieldList['assignedTo']['required'] = 'no';
|
||||
|
||||
+27
-24
@@ -21,9 +21,9 @@ $lang->bug->project = $lang->projectCommon;
|
||||
$lang->bug->story = 'Story';
|
||||
$lang->bug->task = 'Task';
|
||||
$lang->bug->title = 'Title';
|
||||
$lang->bug->severity = 'Severity';
|
||||
$lang->bug->severity = 'Severity(S)';
|
||||
$lang->bug->severityAB = 'S';
|
||||
$lang->bug->pri = 'Priority';
|
||||
$lang->bug->pri = 'Priority(P)';
|
||||
$lang->bug->type = 'Type';
|
||||
$lang->bug->os = 'OS';
|
||||
$lang->bug->browser = 'Browser';
|
||||
@@ -37,26 +37,28 @@ $lang->bug->confirmed = 'Confirmed';
|
||||
$lang->bug->toTask = 'Convert to Task';
|
||||
$lang->bug->toStory = 'Convert to Story';
|
||||
$lang->bug->mailto = 'Mail To';
|
||||
$lang->bug->openedBy = 'Open By';
|
||||
$lang->bug->openedDate = 'Open On';
|
||||
$lang->bug->openedDateAB = 'Created on';
|
||||
$lang->bug->openedBy = 'Creator';
|
||||
$lang->bug->openedDate = 'Created on';
|
||||
$lang->bug->openedDateAB = 'Created';
|
||||
$lang->bug->openedBuild = 'Open Build';
|
||||
$lang->bug->assignedTo = 'Assigned To';
|
||||
$lang->bug->assignedTo = 'To';
|
||||
$lang->bug->assignBug = 'Assign To';
|
||||
$lang->bug->assignedToAB = 'To';
|
||||
$lang->bug->assignedDate = 'Assigned On';
|
||||
$lang->bug->resolvedBy = 'Resolved By';
|
||||
$lang->bug->resolvedBy = 'Resolved';
|
||||
$lang->bug->resolvedByAB = 'Resolved';
|
||||
$lang->bug->resolution = 'Solution';
|
||||
$lang->bug->resolutionAB = 'Solution';
|
||||
$lang->bug->resolvedBuild = 'Resolved Build';
|
||||
$lang->bug->resolvedDate = 'Resolved On';
|
||||
$lang->bug->resolvedDateAB = 'Resolved On';
|
||||
$lang->bug->resolvedDate = 'Resolved on';
|
||||
$lang->bug->resolvedDateAB = 'Resolved';
|
||||
$lang->bug->deadline = 'Deadline';
|
||||
$lang->bug->plan = 'Plan';
|
||||
$lang->bug->closedBy = 'Closed By';
|
||||
$lang->bug->closedDate = 'Closed On';
|
||||
$lang->bug->duplicateBug = 'Duplicate';
|
||||
$lang->bug->lastEditedBy = 'Last Edited By';
|
||||
$lang->bug->linkBug = 'linked';
|
||||
$lang->bug->lastEditedBy = 'Edited By';
|
||||
$lang->bug->linkBug = 'Linked Bug';
|
||||
$lang->bug->linkBugs = 'Link Bug';
|
||||
$lang->bug->unlinkBug = 'Unlink';
|
||||
$lang->bug->case = 'Case';
|
||||
@@ -88,32 +90,33 @@ $lang->bug->resolve = 'Resolve';
|
||||
$lang->bug->batchResolve = 'Batch Resolve';
|
||||
$lang->bug->close = 'Close';
|
||||
$lang->bug->activate = 'Activate';
|
||||
$lang->bug->batchActivate = 'batchActivate';
|
||||
$lang->bug->batchActivate = 'Batch Activate';
|
||||
$lang->bug->reportChart = 'Report';
|
||||
$lang->bug->export = 'Export';
|
||||
$lang->bug->delete = 'Delete';
|
||||
$lang->bug->deleted = 'Deleted';
|
||||
$lang->bug->saveTemplate = 'Save as Template';
|
||||
$lang->bug->setPublic = 'Set as Public';
|
||||
$lang->bug->setPublic = 'Set as Public Template';
|
||||
$lang->bug->deleteTemplate = 'Delete Template';
|
||||
$lang->bug->confirmStoryChange = 'Confirm Story Change';
|
||||
$lang->bug->copy = 'Copy';
|
||||
|
||||
/* 查询条件列表。*/
|
||||
$lang->bug->assignToMe = 'Assigned to Me';
|
||||
$lang->bug->openedByMe = 'Created by Me';
|
||||
$lang->bug->resolvedByMe = 'Resolved by Me';
|
||||
$lang->bug->closedByMe = 'Closed by Me';
|
||||
$lang->bug->assignToMe = 'AssignedToMe';
|
||||
$lang->bug->openedByMe = 'CreatedByMe';
|
||||
$lang->bug->resolvedByMe = 'ResolvedByMe';
|
||||
$lang->bug->closedByMe = 'ClosedByMe';
|
||||
$lang->bug->assignToNull = 'Unassigned';
|
||||
$lang->bug->unConfirmed = 'Unconfirmed';
|
||||
$lang->bug->unResolved = 'Unresolved';
|
||||
$lang->bug->toClosed = 'To Be Closed';
|
||||
$lang->bug->unclosed = 'Open';
|
||||
$lang->bug->toClosed = 'WaitForClose';
|
||||
$lang->bug->unclosed = 'Active';
|
||||
$lang->bug->longLifeBugs = 'Pending';
|
||||
$lang->bug->postponedBugs = 'Postponed';
|
||||
$lang->bug->overdueBugs = 'Overdue';
|
||||
$lang->bug->allBugs = 'All';
|
||||
$lang->bug->byQuery = 'Search';
|
||||
$lang->bug->needConfirm = 'Story Change';
|
||||
$lang->bug->needConfirm = 'StoryChanged';
|
||||
$lang->bug->allProduct = 'All' . $lang->productCommon;
|
||||
$lang->bug->my = 'My';
|
||||
|
||||
@@ -137,7 +140,7 @@ $lang->bug->lblTypeAndSeverity = 'Type/Priority Level';
|
||||
$lang->bug->lblSystemBrowserAndHardware = 'System/Browser';
|
||||
$lang->bug->legendSteps = 'Repro Steps';
|
||||
$lang->bug->legendComment = 'Note';
|
||||
$lang->bug->legendLife = 'Lifecycle';
|
||||
$lang->bug->legendLife = 'Life of Bug';
|
||||
$lang->bug->legendMisc = 'Misc';
|
||||
$lang->bug->legendRelated = 'Related Info';
|
||||
|
||||
@@ -239,14 +242,14 @@ $lang->bug->confirmedList[1] = 'Yes';
|
||||
$lang->bug->confirmedList[0] = 'No';
|
||||
|
||||
$lang->bug->resolutionList[''] = '';
|
||||
$lang->bug->resolutionList['bydesign'] = 'Design Issue';
|
||||
$lang->bug->resolutionList['bydesign'] = 'By Design';
|
||||
$lang->bug->resolutionList['duplicate'] = 'Duplicated';
|
||||
$lang->bug->resolutionList['external'] = 'External';
|
||||
$lang->bug->resolutionList['fixed'] = 'Resolved';
|
||||
$lang->bug->resolutionList['notrepro'] = 'Irreproducible';
|
||||
$lang->bug->resolutionList['postponed'] = 'Postponed';
|
||||
$lang->bug->resolutionList['willnotfix'] = "Not to Resolve";
|
||||
$lang->bug->resolutionList['tostory'] = 'Convert to Story';
|
||||
$lang->bug->resolutionList['tostory'] = 'Converted to Story';
|
||||
|
||||
/* 统计报表。*/
|
||||
$lang->bug->report = new stdclass();
|
||||
@@ -372,7 +375,7 @@ $lang->bug->featureBar['browse']['all'] = $lang->bug->allBugs;
|
||||
|
||||
|
||||
$lang->bug->featureBar['browse']['my'] = $lang->bug->my;
|
||||
$lang->bug->featureBar['browse']['unconfirmed'] = $lang->bug->confirmedList[0];
|
||||
$lang->bug->featureBar['browse']['unconfirmed'] = $lang->bug->unConfirmed;
|
||||
$lang->bug->featureBar['browse']['assigntonull'] = $lang->bug->assignToNull;
|
||||
$lang->bug->featureBar['browse']['unresolved'] = $lang->bug->unResolved;
|
||||
$lang->bug->featureBar['browse']['toclosed'] = $lang->bug->toClosed;
|
||||
|
||||
@@ -42,6 +42,8 @@ $lang->bug->openedDate = '创建日期';
|
||||
$lang->bug->openedDateAB = '创建日期';
|
||||
$lang->bug->openedBuild = '影响版本';
|
||||
$lang->bug->assignedTo = '指派给';
|
||||
$lang->bug->assignBug = '指派给';
|
||||
$lang->bug->assignedToAB = '指派给';
|
||||
$lang->bug->assignedDate = '指派日期';
|
||||
$lang->bug->resolvedBy = '解决者';
|
||||
$lang->bug->resolvedByAB = '解决';
|
||||
|
||||
@@ -42,6 +42,8 @@ $lang->bug->openedDate = '創建日期';
|
||||
$lang->bug->openedDateAB = '創建日期';
|
||||
$lang->bug->openedBuild = '影響版本';
|
||||
$lang->bug->assignedTo = '指派給';
|
||||
$lang->bug->assignBug = '指派給';
|
||||
$lang->bug->assignedToAB = '指派給';
|
||||
$lang->bug->assignedDate = '指派日期';
|
||||
$lang->bug->resolvedBy = '解決者';
|
||||
$lang->bug->resolvedByAB = '解決';
|
||||
|
||||
@@ -20,14 +20,14 @@ js::set('page', 'assignedto');
|
||||
<div class='heading'>
|
||||
<span class='prefix'><?php echo html::icon($lang->icons['bug']);?> <strong><?php echo $bug->id;?></strong></span>
|
||||
<strong><?php echo html::a($this->createLink('bug', 'view', 'bug=' . $bug->id), $bug->title, '_blank');?></strong>
|
||||
<small class='text-muted'> <?php echo $lang->bug->assignedTo;?> <?php echo html::icon($lang->icons['assignTo']);?></small>
|
||||
<small class='text-muted'> <?php echo $lang->bug->assignBug;?> <?php echo html::icon($lang->icons['assignTo']);?></small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form class='form-condensed' method='post' target='hiddenwin'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-80px'><?php echo $lang->bug->assignedTo;?></th>
|
||||
<th class='w-80px'><?php echo $lang->bug->assignBug;?></th>
|
||||
<td class='w-p25-f'><?php echo html::select('assignedTo', $users, $bug->assignedTo, "class='form-control chosen'");?></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->build->common = "Build";
|
||||
$lang->build->create = "Create";
|
||||
$lang->build->create = "Create Build";
|
||||
$lang->build->edit = "Edit";
|
||||
$lang->build->linkStory = "Link Story";
|
||||
$lang->build->linkBug = "Link Bug";
|
||||
@@ -44,7 +44,7 @@ $lang->build->unlinkStory = 'Unlink Story';
|
||||
$lang->build->unlinkBug = 'Unlink Bug';
|
||||
$lang->build->stories = 'Finished Story';
|
||||
$lang->build->bugs = 'Resolved Bug';
|
||||
$lang->build->generatedBugs = 'Remained Bug';
|
||||
$lang->build->generatedBugs = 'Left Bug';
|
||||
$lang->build->noProduct = " <span style='color:red'>This {$lang->projectCommon} has not linked to {$lang->productCommon}, so Build cannot be created. Please first <a href='%s'> link {$lang->productCommon}</a></span>";
|
||||
|
||||
$lang->build->finishStories = ' %s Story(ies) have been finished.';
|
||||
|
||||
@@ -26,9 +26,9 @@ include '../../common/view/tablesorter.html.php';
|
||||
<th class="text-left"><?php echo $lang->story->title;?></th>
|
||||
<th class='w-user'> <?php echo $lang->openedByAB;?></th>
|
||||
<th class='w-user'> <?php echo $lang->assignedToAB;?></th>
|
||||
<th class='w-30px'> <?php echo $lang->story->estimateAB;?></th>
|
||||
<th class='w-60px'> <?php echo $lang->story->estimateAB;?></th>
|
||||
<th class='w-status'><?php echo $lang->statusAB;?></th>
|
||||
<th class='w-60px'> <?php echo $lang->story->stageAB;?></th>
|
||||
<th class='w-80px'> <?php echo $lang->story->stageAB;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@@ -102,7 +102,7 @@ tfoot tr td .table-actions .btn{display:none;}
|
||||
<th class='w-hour {sorter:false}'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
|
||||
<th class='w-hour {sorter:false}'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
<th class='w-100px {sorter:false}'> <?php common::printOrderLink('stage', $orderBy, $vars, $lang->story->stageAB);?></th>
|
||||
<th class='w-50px {sorter:false}'> <?php echo $lang->actions?></th>
|
||||
<th class='w-60px {sorter:false}'> <?php echo $lang->actions?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<?php $canBatchUnlink = common::hasPriv('build', 'batchUnlinkStory');?>
|
||||
@@ -162,7 +162,7 @@ tfoot tr td .table-actions .btn{display:none;}
|
||||
<th class='w-date {sorter:false}'> <?php common::printOrderLink('openedDate', $orderBy, $vars, $lang->bug->openedDateAB);?></th>
|
||||
<th class='w-user {sorter:false}'> <?php common::printOrderLink('resolvedBy', $orderBy, $vars, $lang->bug->resolvedByAB);?></th>
|
||||
<th class='w-100px {sorter:false}'> <?php common::printOrderLink('resolvedDate', $orderBy, $vars, $lang->bug->resolvedDateAB);?></th>
|
||||
<th class='w-50px {sorter:false}'> <?php echo $lang->actions?></th>
|
||||
<th class='w-60px {sorter:false}'> <?php echo $lang->actions?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<?php $canBatchUnlink = common::hasPriv('build', 'batchUnlinkBug');?>
|
||||
|
||||
+93
-93
@@ -46,7 +46,7 @@ $lang->goback = 'Back';
|
||||
$lang->goPC = 'PC';
|
||||
$lang->more = 'More';
|
||||
$lang->day = 'Day';
|
||||
$lang->customConfig = 'Custom';
|
||||
$lang->customConfig = 'Custom Configuration';
|
||||
$lang->public = 'Public';
|
||||
$lang->trunk = 'Trunk';
|
||||
$lang->sort = 'Order';
|
||||
@@ -86,14 +86,14 @@ $lang->loading = 'Loading...';
|
||||
$lang->notFound = 'Not found!';
|
||||
$lang->showAll = '[[Show All]]';
|
||||
|
||||
$lang->future = 'Pending';
|
||||
$lang->year = 'Year';
|
||||
$lang->workingHour = 'Hour';
|
||||
$lang->future = 'Pending';
|
||||
$lang->year = 'Year';
|
||||
$lang->workingHour = 'Hour';
|
||||
|
||||
$lang->idAB = 'ID';
|
||||
$lang->priAB = 'P';
|
||||
$lang->statusAB = 'Status';
|
||||
$lang->openedByAB = 'Created by';
|
||||
$lang->openedByAB = 'Creator';
|
||||
$lang->assignedToAB = 'Assignee';
|
||||
$lang->typeAB = 'Type';
|
||||
|
||||
@@ -102,14 +102,14 @@ $lang->common->common = 'Common Module';
|
||||
|
||||
/* 主导航菜单。*/
|
||||
$lang->menu = new stdclass();
|
||||
$lang->menu->my = '<i class="icon-home"></i><span>Dashboard</span>|my|index';
|
||||
$lang->menu->product = $lang->productCommon . '|product|index';
|
||||
$lang->menu->project = $lang->projectCommon . '|project|index';
|
||||
$lang->menu->qa = 'QA|qa|index';
|
||||
$lang->menu->doc = 'Doc|doc|index';
|
||||
$lang->menu->report = 'Report|report|index';
|
||||
$lang->menu->company = 'Company|company|index';
|
||||
$lang->menu->admin = 'Admin|admin|index';
|
||||
$lang->menu->my = '<i class="icon-home"></i><span>Dashboard</span>|my|index';
|
||||
$lang->menu->product = $lang->productCommon . '|product|index';
|
||||
$lang->menu->project = $lang->projectCommon . '|project|index';
|
||||
$lang->menu->qa = 'QA|qa|index';
|
||||
$lang->menu->doc = 'Doc|doc|index';
|
||||
$lang->menu->report = 'Report|report|index';
|
||||
$lang->menu->company = 'Company|company|index';
|
||||
$lang->menu->admin = 'Admin|admin|index';
|
||||
|
||||
/* 查询条中可以选择的对象列表。*/
|
||||
$lang->searchObjects['bug'] = 'Bug';
|
||||
@@ -145,12 +145,12 @@ $lang->exportTypeList['selected'] = 'Selected';
|
||||
$lang->lang = 'Language';
|
||||
|
||||
/* 风格列表。*/
|
||||
$lang->theme = 'Theme';
|
||||
$lang->themes['default'] = 'Default';
|
||||
$lang->themes['green'] = 'Green';
|
||||
$lang->themes['red'] = 'Red';
|
||||
$lang->themes['lightblue'] = 'Bright Blue';
|
||||
$lang->themes['blackberry'] = 'Blackberry';
|
||||
$lang->theme = 'Theme';
|
||||
$lang->themes['default'] = 'Default';
|
||||
$lang->themes['green'] = 'Green';
|
||||
$lang->themes['red'] = 'Red';
|
||||
$lang->themes['lightblue'] = 'Bright Blue';
|
||||
$lang->themes['blackberry'] = 'Blackberry';
|
||||
|
||||
/* 首页菜单设置。*/
|
||||
$lang->index = new stdclass();
|
||||
@@ -165,7 +165,7 @@ $lang->my->menu = new stdclass();
|
||||
|
||||
$lang->my->menu->account = array('link' => '<span id="myname"><i class="icon-user"></i> %s' . $lang->arrow . '</span>', 'fixed' => true);
|
||||
$lang->my->menu->index = 'Home|my|index';
|
||||
$lang->my->menu->todo = array('link' => 'To-Do|my|todo|', 'subModule' => 'todo');
|
||||
$lang->my->menu->todo = array('link' => 'Todo|my|todo|', 'subModule' => 'todo');
|
||||
$lang->my->menu->task = array('link' => 'Task|my|task|', 'subModule' => 'task');
|
||||
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
|
||||
$lang->my->menu->testtask = array('link' => 'Test Task|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
|
||||
@@ -187,20 +187,20 @@ $lang->score->menu = $lang->my->menu;
|
||||
$lang->product = new stdclass();
|
||||
$lang->product->menu = new stdclass();
|
||||
|
||||
$lang->product->menu->list = array('link' => '%s', 'fixed' => true);
|
||||
$lang->product->menu->story = array('link' => 'Story|product|browse|productID=%s', 'alias' => 'batchedit', 'subModule' => 'story');
|
||||
$lang->product->menu->dynamic = 'Dynamic|product|dynamic|productID=%s';
|
||||
$lang->product->menu->plan = array('link' => 'Plan|productplan|browse|productID=%s', 'subModule' => 'productplan');
|
||||
$lang->product->menu->release = array('link' => 'Release|release|browse|productID=%s', 'subModule' => 'release');
|
||||
$lang->product->menu->roadmap = 'Roadmap|product|roadmap|productID=%s';
|
||||
$lang->product->menu->doc = array('link' => 'Doc|doc|objectLibs|type=product&objectID=%s&from=product', 'subModule' => 'doc');
|
||||
$lang->product->menu->branch = '@branch@|branch|manage|productID=%s';
|
||||
$lang->product->menu->module = 'Module|tree|browse|productID=%s&view=story';
|
||||
$lang->product->menu->view = array('link' => 'Overview|product|view|productID=%s', 'alias' => 'edit');
|
||||
$lang->product->menu->project = "{$lang->projectCommon}|product|project|status=all&productID=%s";
|
||||
$lang->product->menu->create = array('link' => "<i class='icon-plus'></i> Add{$lang->productCommon}|product|create", 'float' => 'right');
|
||||
$lang->product->menu->all = array('link' => "<i class='icon-cubes'></i> All{$lang->productCommon}|product|all|productID=%s", 'float' => 'right');
|
||||
$lang->product->menu->index = array('link' => "<i class='icon-home'></i>{$lang->productCommon}|product|index|locate=no", 'float' => 'right');
|
||||
$lang->product->menu->list = array('link' => '%s', 'fixed' => true);
|
||||
$lang->product->menu->story = array('link' => 'Story|product|browse|productID=%s', 'alias' => 'batchedit', 'subModule' => 'story');
|
||||
$lang->product->menu->dynamic = 'Dynamic|product|dynamic|productID=%s';
|
||||
$lang->product->menu->plan = array('link' => 'Plan|productplan|browse|productID=%s', 'subModule' => 'productplan');
|
||||
$lang->product->menu->release = array('link' => 'Release|release|browse|productID=%s', 'subModule' => 'release');
|
||||
$lang->product->menu->roadmap = 'Roadmap|product|roadmap|productID=%s';
|
||||
$lang->product->menu->doc = array('link' => 'Doc|doc|objectLibs|type=product&objectID=%s&from=product', 'subModule' => 'doc');
|
||||
$lang->product->menu->branch = '@branch@|branch|manage|productID=%s';
|
||||
$lang->product->menu->module = 'Module|tree|browse|productID=%s&view=story';
|
||||
$lang->product->menu->view = array('link' => 'Overview|product|view|productID=%s', 'alias' => 'edit');
|
||||
$lang->product->menu->project = "{$lang->projectCommon}|product|project|status=all&productID=%s";
|
||||
$lang->product->menu->create = array('link' => "<i class='icon-plus'></i> Add{$lang->productCommon}|product|create", 'float' => 'right');
|
||||
$lang->product->menu->all = array('link' => "<i class='icon-cubes'></i> All{$lang->productCommon}|product|all|productID=%s", 'float' => 'right');
|
||||
$lang->product->menu->index = array('link' => "<i class='icon-home'></i>{$lang->productCommon}|product|index|locate=no", 'float' => 'right');
|
||||
|
||||
$lang->story = new stdclass();
|
||||
$lang->productplan = new stdclass();
|
||||
@@ -216,20 +216,20 @@ $lang->release->menu = $lang->product->menu;
|
||||
$lang->project = new stdclass();
|
||||
$lang->project->menu = new stdclass();
|
||||
|
||||
$lang->project->menu->list = array('link' => '%s', 'fixed' => true);
|
||||
$lang->project->menu->task = array('link' => 'Task|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug,kanban,printkanban,tree');
|
||||
$lang->project->menu->story = array('link' => 'Story|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory,storykanban');
|
||||
$lang->project->menu->bug = 'Bug|project|bug|projectID=%s';
|
||||
$lang->project->menu->dynamic = 'Dynamic|project|dynamic|projectID=%s';
|
||||
$lang->project->menu->build = array('link' => 'Build|project|build|projectID=%s', 'subModule' => 'build');
|
||||
$lang->project->menu->testtask = array('link' => 'Test Task|project|testtask|projectID=%s');
|
||||
$lang->project->menu->team = array('link' => 'Team|project|team|projectID=%s', 'alias' => 'managemembers');
|
||||
$lang->project->menu->doc = array('link' => 'Doc|doc|objectLibs|type=project&objectID=%s&from=project', 'subModule' => 'doc');
|
||||
$lang->project->menu->product = $lang->productCommon . '|project|manageproducts|projectID=%s';
|
||||
$lang->project->menu->view = array('link' => 'Overview|project|view|projectID=%s', 'alias' => 'edit,start,suspend,putoff,close');
|
||||
$lang->project->menu->create = array('link' => "<i class='icon-plus'></i> Add {$lang->projectCommon}|project|create", 'float' => 'right');
|
||||
$lang->project->menu->all = array('link' => "<i class='icon-th-large'></i> All {$lang->projectCommon}|project|all|status=undone&projectID=%s", 'float' => 'right');
|
||||
$lang->project->menu->index = array('link' => "<i class='icon-home'></i>{$lang->projectCommon}|project|index|locate=no", 'float' => 'right');
|
||||
$lang->project->menu->list = array('link' => '%s', 'fixed' => true);
|
||||
$lang->project->menu->task = array('link' => 'Task|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug,kanban,printkanban,tree');
|
||||
$lang->project->menu->story = array('link' => 'Story|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory,storykanban');
|
||||
$lang->project->menu->bug = 'Bug|project|bug|projectID=%s';
|
||||
$lang->project->menu->dynamic = 'Dynamic|project|dynamic|projectID=%s';
|
||||
$lang->project->menu->build = array('link' => 'Build|project|build|projectID=%s', 'subModule' => 'build');
|
||||
$lang->project->menu->testtask = array('link' => 'Test Task|project|testtask|projectID=%s');
|
||||
$lang->project->menu->team = array('link' => 'Team|project|team|projectID=%s', 'alias' => 'managemembers');
|
||||
$lang->project->menu->doc = array('link' => 'Doc|doc|objectLibs|type=project&objectID=%s&from=project', 'subModule' => 'doc');
|
||||
$lang->project->menu->product = $lang->productCommon . '|project|manageproducts|projectID=%s';
|
||||
$lang->project->menu->view = array('link' => 'Overview|project|view|projectID=%s', 'alias' => 'edit,start,suspend,putoff,close');
|
||||
$lang->project->menu->create = array('link' => "<i class='icon-plus'></i> Add {$lang->projectCommon}|project|create", 'float' => 'right');
|
||||
$lang->project->menu->all = array('link' => "<i class='icon-th-large'></i> All {$lang->projectCommon}|project|all|status=undone&projectID=%s", 'float' => 'right');
|
||||
$lang->project->menu->index = array('link' => "<i class='icon-home'></i>{$lang->projectCommon}|project|index|locate=no", 'float' => 'right');
|
||||
|
||||
$lang->task = new stdclass();
|
||||
$lang->build = new stdclass();
|
||||
@@ -296,9 +296,9 @@ $lang->caselib->menu->index = array('link' => "<i class='icon-home'></i>Test
|
||||
$lang->doc = new stdclass();
|
||||
$lang->doc->menu = new stdclass();
|
||||
|
||||
$lang->doc->menu->list = array('link' => '%s', 'fixed' => true);
|
||||
$lang->doc->menu->crumb = array('link' => '%s', 'fixed' => true);
|
||||
$lang->doc->menu->create = array('link' => '<i class="icon-plus"></i> Add Doc Lib|doc|createLib', 'float' => 'right');
|
||||
$lang->doc->menu->list = array('link' => '%s', 'fixed' => true);
|
||||
$lang->doc->menu->crumb = array('link' => '%s', 'fixed' => true);
|
||||
$lang->doc->menu->create = array('link' => '<i class="icon-plus"></i> Add Doc Lib|doc|createLib', 'float' => 'right');
|
||||
|
||||
/* 统计视图菜单设置。*/
|
||||
$lang->report = new stdclass();
|
||||
@@ -336,17 +336,17 @@ $lang->user->menu = $lang->company->menu;
|
||||
/* 后台管理菜单设置。*/
|
||||
$lang->admin = new stdclass();
|
||||
$lang->admin->menu = new stdclass();
|
||||
$lang->admin->menu->index = array('link' => 'Home|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
|
||||
$lang->admin->menu->index = array('link' => 'Home|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
|
||||
|
||||
$lang->admin->menu->custom = array('link' => 'Custom|custom|set', 'subModule' => 'custom');
|
||||
$lang->admin->menu->mail = array('link' => 'Email|mail|index', 'subModule' => 'mail');
|
||||
$lang->admin->menu->backup = array('link' => 'Backup|backup|index', 'subModule' => 'backup');
|
||||
$lang->admin->menu->safe = array('link' => 'Security|admin|safe', 'alias' => 'checkweak');
|
||||
$lang->admin->menu->cron = array('link' => 'Cron|cron|index', 'subModule' => 'cron');
|
||||
$lang->admin->menu->trashes = array('link' => 'Recycle|action|trash', 'subModule' => 'action');
|
||||
$lang->admin->menu->dev = array('link' => 'Develop|dev|api', 'alias' => 'db', 'subModule' => 'dev,editor');
|
||||
$lang->admin->menu->api = array('link' => 'API|webhook|browse', 'alias' => 'create,edit', 'subModule' => 'entry,webhook');
|
||||
$lang->admin->menu->sso = 'RangerTeam|admin|sso';
|
||||
$lang->admin->menu->custom = array('link' => 'Custom|custom|set', 'subModule' => 'custom');
|
||||
$lang->admin->menu->mail = array('link' => 'Email|mail|index', 'subModule' => 'mail');
|
||||
$lang->admin->menu->backup = array('link' => 'Backup|backup|index', 'subModule' => 'backup');
|
||||
$lang->admin->menu->safe = array('link' => 'Security|admin|safe', 'alias' => 'checkweak');
|
||||
$lang->admin->menu->cron = array('link' => 'Cron|cron|index', 'subModule' => 'cron');
|
||||
$lang->admin->menu->trashes = array('link' => 'Recycle|action|trash', 'subModule' => 'action');
|
||||
$lang->admin->menu->dev = array('link' => 'Develop|dev|api', 'alias' => 'db', 'subModule' => 'dev,editor');
|
||||
$lang->admin->menu->api = array('link' => 'API|webhook|browse', 'alias' => 'create,edit', 'subModule' => 'entry,webhook');
|
||||
$lang->admin->menu->sso = 'RangerTeam|admin|sso';
|
||||
|
||||
$lang->convert = new stdclass();
|
||||
$lang->upgrade = new stdclass();
|
||||
@@ -454,7 +454,7 @@ $lang->error->entry['SESSION_VERIFY_FAILED'] = 'Session verification failed.';
|
||||
|
||||
/* 分页信息。*/
|
||||
$lang->pager = new stdclass();
|
||||
$lang->pager->noRecord = "No History";
|
||||
$lang->pager->noRecord = "No Records";
|
||||
$lang->pager->digest = " <strong>%s</strong> in total. %s <strong>%s/%s</strong> ";
|
||||
$lang->pager->recPerPage = " <strong>%s</strong> per page";
|
||||
$lang->pager->first = "<i class='icon-step-backward' title='Home'></i>";
|
||||
@@ -466,32 +466,32 @@ $lang->pager->previousPage = "Prev";
|
||||
$lang->pager->nextPage = "Next";
|
||||
$lang->pager->summery = "<strong>%s-%s</strong> of <strong>%s</strong>.";
|
||||
|
||||
$lang->proVersion = "<a href='http://api.zentao.pm/goto.php?item=proversion&from=footer' target='_blank' id='proLink' class='text-important'>ZenTao Pro <i class='text-danger icon-pro-version'></i></a> ";
|
||||
$lang->downNotify = "Download Desktop Notification";
|
||||
$lang->proVersion = "<a href='http://api.zentao.pm/goto.php?item=proversion&from=footer' target='_blank' id='proLink' class='text-important'>ZenTao Pro <i class='text-danger icon-pro-version'></i></a> ";
|
||||
$lang->downNotify = "Download Desktop Notification";
|
||||
$lang->website = "http://www.zentao.pm";
|
||||
|
||||
$lang->suhosinInfo = "Warning! Data is reaching the limit. Please change <font color=red>sohusin.post.max_vars</font> and <font color=red>sohusin.request.max_vars</font> (set larger %s value) in php.ini, then save and restart Apache or php-fpm, or some data will not be saved.";
|
||||
$lang->maxVarsInfo = "Warning! Data is reaching the limit. Please change <font color=red>max_input_vars</font> (set larger %s value) in php.ini, then save and restart Apache or php-fpm, or some data will not be saved.";
|
||||
$lang->pasteTextInfo = "Paste text here. Each line will be a header of each data record. ";
|
||||
$lang->pasteTextInfo = "Paste text here. Each line will be the title of each record. ";
|
||||
$lang->noticeImport = "<p style='font-size:14px'>Imported data contains data that has already existed in system. Please confirm you actions on the date </p><p><a href='javascript:submitForm(\"cover\")' class='btn btn-mini'>Override</a> <a href='javascript:submitForm(\"insert\")' class='btn btn-mini'>New Insertion</a></p>";
|
||||
|
||||
$lang->noResultsMatch = "No results match!";
|
||||
$lang->searchMore = "More results:";
|
||||
$lang->chooseUsersToMail = "Choose users that will be notified.";
|
||||
$lang->browserNotice = 'Your current browser might not show the best effect. Please use Chrome, Firefox, IE9+, Opera or Safari.';
|
||||
$lang->noticePasteImg = "Paste image here.";
|
||||
$lang->noResultsMatch = "No results match!";
|
||||
$lang->searchMore = "More results:";
|
||||
$lang->chooseUsersToMail = "Choose users that will be notified.";
|
||||
$lang->browserNotice = 'Your current browser might not show the best effect. Please use Chrome, Firefox, IE9+, Opera or Safari.';
|
||||
$lang->noticePasteImg = "Support pasting images.";
|
||||
|
||||
/* 时间格式设置。*/
|
||||
if(!defined('DT_DATETIME1')) define('DT_DATETIME1', 'Y-m-d H:i:s');
|
||||
if(!defined('DT_DATETIME2')) define('DT_DATETIME2', 'y-m-d H:i');
|
||||
if(!defined('DT_MONTHTIME1')) define('DT_MONTHTIME1', 'n/d H:i');
|
||||
if(!defined('DT_MONTHTIME2')) define('DT_MONTHTIME2', 'n/d H:i');
|
||||
if(!defined('DT_DATE1')) define('DT_DATE1', 'Y-m-d');
|
||||
if(!defined('DT_DATE2')) define('DT_DATE2', 'Ymd');
|
||||
if(!defined('DT_DATE3')) define('DT_DATE3', 'Y/m/d');
|
||||
if(!defined('DT_DATE4')) define('DT_DATE4', 'n/j');
|
||||
if(!defined('DT_TIME1')) define('DT_TIME1', 'H:i:s');
|
||||
if(!defined('DT_TIME2')) define('DT_TIME2', 'H:i');
|
||||
if(!defined('DT_DATETIME1')) define('DT_DATETIME1', 'Y-m-d H:i:s');
|
||||
if(!defined('DT_DATETIME2')) define('DT_DATETIME2', 'y-m-d H:i');
|
||||
if(!defined('DT_MONTHTIME1'))define('DT_MONTHTIME1', 'n/d H:i');
|
||||
if(!defined('DT_MONTHTIME2'))define('DT_MONTHTIME2', 'n/d H:i');
|
||||
if(!defined('DT_DATE1')) define('DT_DATE1', 'Y-m-d');
|
||||
if(!defined('DT_DATE2')) define('DT_DATE2', 'Ymd');
|
||||
if(!defined('DT_DATE3')) define('DT_DATE3', 'Y/m/d');
|
||||
if(!defined('DT_DATE4')) define('DT_DATE4', 'n/j');
|
||||
if(!defined('DT_TIME1')) define('DT_TIME1', 'H:i:s');
|
||||
if(!defined('DT_TIME2')) define('DT_TIME2', 'H:i');
|
||||
|
||||
/* datepicker 时间*/
|
||||
$lang->datepicker = new stdclass();
|
||||
@@ -609,7 +609,7 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
|
||||
/* Adjust sub menu of product module. */
|
||||
unset($lang->product->menu->project);
|
||||
unset($lang->product->menu->doc);
|
||||
|
||||
|
||||
/* Rename product module. */
|
||||
$lang->menu->product = "{$lang->productCommon}|product|index";
|
||||
|
||||
@@ -762,15 +762,15 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
$lang->testtask->menu->report = array('link' => 'Report|testreport|browse');
|
||||
$lang->testtask->menu->create = array('link' => "<i class='icon-plus'></i> Create|testtask|create|productID=%s", 'float' => 'right');
|
||||
|
||||
$lang->testtask->menuOrder[5] = 'product';
|
||||
$lang->testtask->menuOrder[10] = 'scope';
|
||||
$lang->testtask->menuOrder[15] = 'wait';
|
||||
$lang->testtask->menuOrder[20] = 'doing';
|
||||
$lang->testtask->menuOrder[25] = 'blocked';
|
||||
$lang->testtask->menuOrder[30] = 'done';
|
||||
$lang->testtask->menuOrder[35] = 'totalStatus';
|
||||
$lang->testtask->menuOrder[40] = 'report';
|
||||
$lang->testtask->menuOrder[45] = 'create';
|
||||
$lang->testtask->menuOrder[5] = 'product';
|
||||
$lang->testtask->menuOrder[10] = 'scope';
|
||||
$lang->testtask->menuOrder[15] = 'wait';
|
||||
$lang->testtask->menuOrder[20] = 'doing';
|
||||
$lang->testtask->menuOrder[25] = 'blocked';
|
||||
$lang->testtask->menuOrder[30] = 'done';
|
||||
$lang->testtask->menuOrder[35] = 'totalStatus';
|
||||
$lang->testtask->menuOrder[40] = 'report';
|
||||
$lang->testtask->menuOrder[45] = 'create';
|
||||
|
||||
$lang->testreport->menu = $lang->testtask->menu;
|
||||
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
|
||||
@@ -807,7 +807,7 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
|
||||
$lang->build->menu = $lang->product->menu;
|
||||
$lang->build->menuOrder = $lang->product->menuOrder;
|
||||
|
||||
|
||||
/* Adjust menu group. */
|
||||
$lang->menugroup->bug = 'bug';
|
||||
$lang->menugroup->testcase = 'testcase';
|
||||
@@ -815,8 +815,8 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
$lang->menugroup->testsuite = 'testsuite';
|
||||
$lang->menugroup->testreport = 'testtask';
|
||||
$lang->menugroup->build = 'product';
|
||||
|
||||
/* Adjust search objects. */
|
||||
|
||||
/* Adjust search objects. */
|
||||
unset($lang->searchObjects['story']);
|
||||
unset($lang->searchObjects['task']);
|
||||
unset($lang->searchObjects['release']);
|
||||
|
||||
@@ -11,25 +11,25 @@
|
||||
*/
|
||||
$lang->company->common = 'Company';
|
||||
$lang->company->index = "Home";
|
||||
$lang->company->edit = "Edit";
|
||||
$lang->company->view = "Info";
|
||||
$lang->company->edit = "Edit Company";
|
||||
$lang->company->view = "Company Info";
|
||||
$lang->company->browse = "User List";
|
||||
$lang->company->dynamic = "Dynamic";
|
||||
$lang->company->orgView = 'View';
|
||||
|
||||
$lang->company->name = 'Company Name';
|
||||
$lang->company->name = 'Name';
|
||||
$lang->company->phone = 'Phone';
|
||||
$lang->company->fax = 'Fax';
|
||||
$lang->company->address = 'Mailing Address';
|
||||
$lang->company->zipcode = 'Zip Code';
|
||||
$lang->company->website = 'Website';
|
||||
$lang->company->backyard = 'Intranet';
|
||||
$lang->company->guest = 'Guest Login';
|
||||
$lang->company->guest = 'Anonymous Login';
|
||||
$lang->company->admins = 'Administrators';
|
||||
|
||||
$lang->company->product = $lang->productCommon;
|
||||
$lang->company->project = $lang->projectCommon;
|
||||
$lang->company->user = 'User';
|
||||
|
||||
$lang->company->guestOptions[0] = 'Off';
|
||||
$lang->company->guestOptions[1] = 'On';
|
||||
$lang->company->guestOptions[0] = 'Deny';
|
||||
$lang->company->guestOptions[1] = 'Allow';
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<form class='form-condensed mw-500px pdb-20' method='post' target='hiddenwin'>
|
||||
<table align='center' class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-100px'><?php echo $lang->company->name;?></th>
|
||||
<th class='w-150px'><?php echo $lang->company->name;?></th>
|
||||
<td><?php echo html::input('name', $company->name, "class='form-control' autocomplete='off'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</div>
|
||||
<table class='table table-borderless table-data'>
|
||||
<tr>
|
||||
<th class='w-100px'><?php echo $lang->company->name;?></th>
|
||||
<th class='w-150px'><?php echo $lang->company->name;?></th>
|
||||
<td><?php echo $company->name;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
+21
-21
@@ -5,9 +5,9 @@ $lang->custom->set = 'Customize';
|
||||
$lang->custom->restore = 'Reset to Default';
|
||||
$lang->custom->key = 'Key';
|
||||
$lang->custom->value = 'Value';
|
||||
$lang->custom->flow = 'Process';
|
||||
$lang->custom->working = 'Working';
|
||||
$lang->custom->select = 'Select Process';
|
||||
$lang->custom->flow = 'Workflow';
|
||||
$lang->custom->working = 'WorkStyle';
|
||||
$lang->custom->select = 'Select Workflow';
|
||||
$lang->custom->branch = 'Multi Branch';
|
||||
$lang->custom->owner = 'Owner';
|
||||
$lang->custom->module = 'Module';
|
||||
@@ -23,25 +23,25 @@ $lang->custom->object['task'] = 'Task';
|
||||
$lang->custom->object['bug'] = 'Bug';
|
||||
$lang->custom->object['testcase'] = 'Case';
|
||||
$lang->custom->object['testtask'] = 'Build';
|
||||
$lang->custom->object['todo'] = 'To-Dos';
|
||||
$lang->custom->object['todo'] = 'Todo';
|
||||
$lang->custom->object['user'] = 'User';
|
||||
$lang->custom->object['block'] = 'Block';
|
||||
$lang->custom->object['block'] = 'ClosedBlock';
|
||||
|
||||
$lang->custom->story = new stdClass();
|
||||
$lang->custom->story->fields['priList'] = 'Priority';
|
||||
$lang->custom->story->fields['sourceList'] = 'Source';
|
||||
$lang->custom->story->fields['reasonList'] = 'Reason';
|
||||
$lang->custom->story->fields['reasonList'] = 'Close Reason';
|
||||
$lang->custom->story->fields['stageList'] = 'Stage';
|
||||
$lang->custom->story->fields['statusList'] = 'Status';
|
||||
$lang->custom->story->fields['reviewResultList'] = 'Result';
|
||||
$lang->custom->story->fields['review'] = 'Review';
|
||||
$lang->custom->story->fields['reviewResultList'] = 'Review Result';
|
||||
$lang->custom->story->fields['review'] = 'Review Required';
|
||||
|
||||
$lang->custom->task = new stdClass();
|
||||
$lang->custom->task->fields['priList'] = 'Priority';
|
||||
$lang->custom->task->fields['typeList'] = 'Type';
|
||||
$lang->custom->task->fields['reasonList'] = 'Reason';
|
||||
$lang->custom->task->fields['reasonList'] = 'Close Reason';
|
||||
$lang->custom->task->fields['statusList'] = 'Status';
|
||||
$lang->custom->task->fields['hours'] = 'Working hours';
|
||||
$lang->custom->task->fields['hours'] = 'Man-hours';
|
||||
|
||||
$lang->custom->bug = new stdClass();
|
||||
$lang->custom->bug->fields['priList'] = 'Priority';
|
||||
@@ -51,7 +51,7 @@ $lang->custom->bug->fields['browserList'] = 'Browser';
|
||||
$lang->custom->bug->fields['typeList'] = 'Type';
|
||||
$lang->custom->bug->fields['resolutionList'] = 'Solution';
|
||||
$lang->custom->bug->fields['statusList'] = 'Status';
|
||||
$lang->custom->bug->fields['longlife'] = 'Long Life Days';
|
||||
$lang->custom->bug->fields['longlife'] = 'Shelved Days';
|
||||
|
||||
$lang->custom->testcase = new stdClass();
|
||||
$lang->custom->testcase->fields['priList'] = 'Priority';
|
||||
@@ -59,7 +59,7 @@ $lang->custom->testcase->fields['typeList'] = 'Type';
|
||||
$lang->custom->testcase->fields['stageList'] = 'Stage';
|
||||
$lang->custom->testcase->fields['resultList'] = 'Result';
|
||||
$lang->custom->testcase->fields['statusList'] = 'Status';
|
||||
$lang->custom->testcase->fields['review'] = 'Review';
|
||||
$lang->custom->testcase->fields['review'] = 'Review Required';
|
||||
|
||||
$lang->custom->testtask = new stdClass();
|
||||
$lang->custom->testtask->fields['priList'] = 'Priority';
|
||||
@@ -84,10 +84,10 @@ $lang->custom->confirmRestore = 'Do you want to reset to Default?';
|
||||
|
||||
$lang->custom->notice = new stdclass();
|
||||
$lang->custom->notice->userRole = 'Key must be no more than 20 characters!';
|
||||
$lang->custom->notice->canNotAdd = 'This item will be processed, so customized feature is not enabled.';
|
||||
$lang->custom->notice->forceReview = 'Review is required for %s submitted by certain assignee.';
|
||||
$lang->custom->notice->forceNotReview = "Not review is required for %s submitted by certain assignee.";
|
||||
$lang->custom->notice->longlife = 'List "Undone" bugs that are older than hold days from "Longlife" bugs.';
|
||||
$lang->custom->notice->canNotAdd = 'These items are parameters of calculation, so customized creation is not enabled.';
|
||||
$lang->custom->notice->forceReview = '%s Review is required for certain submitters.';
|
||||
$lang->custom->notice->forceNotReview = "%s Review is NOT required for certain submitters.";
|
||||
$lang->custom->notice->longlife = 'Define shelved bugs.';
|
||||
$lang->custom->notice->priListKey = 'Priority list key should be numbers!';
|
||||
$lang->custom->notice->keyList = 'key should be English or digital!';
|
||||
$lang->custom->notice->severityListKey = 'Bug severity list key should be numbers.';
|
||||
@@ -96,7 +96,7 @@ $lang->custom->notice->indexPage['project'] = "ZenTao 8.2+ has Project Homepage.
|
||||
$lang->custom->notice->indexPage['qa'] = "ZenTao 8.2+ has QA Homepage. Do you want to go to QA Homepage?";
|
||||
|
||||
$lang->custom->storyReview = 'Review';
|
||||
$lang->custom->forceReview = 'Review Required';
|
||||
$lang->custom->forceReview = 'Selective Review';
|
||||
$lang->custom->forceNotReview = 'No review';
|
||||
$lang->custom->reviewList[1] = 'On';
|
||||
$lang->custom->reviewList[0] = 'Off';
|
||||
@@ -116,10 +116,10 @@ $lang->custom->productProject->relation['1_1'] = 'Project - Sprint';
|
||||
|
||||
$lang->custom->productProject->notice = 'Please select according to your team.';
|
||||
|
||||
$lang->custom->workingList['full'] = 'Full';
|
||||
$lang->custom->workingList['onlyTest'] = 'Test';
|
||||
$lang->custom->workingList['onlyStory'] = 'Story';
|
||||
$lang->custom->workingList['onlyTask'] = 'Task';
|
||||
$lang->custom->workingList['full'] = 'Full Management of Dev';
|
||||
$lang->custom->workingList['onlyTest'] = 'Test Management';
|
||||
$lang->custom->workingList['onlyStory'] = 'Story Management';
|
||||
$lang->custom->workingList['onlyTask'] = 'Task Management';
|
||||
|
||||
$lang->custom->menuTip = 'Click to show/hide navigation bar. Drag to swtich display order.';
|
||||
$lang->custom->saveFail = 'Failed to save!';
|
||||
|
||||
@@ -115,7 +115,7 @@ EOT;
|
||||
<?php elseif($module == 'user' and $field == 'deleted'):?>
|
||||
<table class='table table-form mw-600px'>
|
||||
<tr>
|
||||
<th class='w-100px'><?php echo $lang->custom->user->fields['deleted'];?></th>
|
||||
<th class='w-150px'><?php echo $lang->custom->user->fields['deleted'];?></th>
|
||||
<td><?php echo html::radio('showDeleted', $lang->custom->deletedList, $showDeleted);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -8,8 +8,8 @@ $lang->datatable->reset = 'Reset';
|
||||
|
||||
$lang->datatable->custom = 'Custom Columns';
|
||||
$lang->datatable->customTip = 'Check Columns to Display';
|
||||
$lang->datatable->switchToTable = 'Switch to Table';
|
||||
$lang->datatable->switchToDatatable = 'Switch to Datatable';
|
||||
$lang->datatable->switchToTable = 'Switch to Common Table';
|
||||
$lang->datatable->switchToDatatable = 'Switch to Advanced Table';
|
||||
$lang->datatable->required = 'Required';
|
||||
$lang->datatable->confirmReset = 'Do you want to restore the default settings?';
|
||||
$lang->datatable->setGlobal = 'Global';
|
||||
@@ -18,7 +18,7 @@ $lang->datatable->resetGlobal = 'Reset Global Default';
|
||||
$lang->datatable->branch = 'Branch';
|
||||
$lang->datatable->platform = 'Platform';
|
||||
|
||||
$lang->datatable->showModule = 'Show/Hide Module Name';
|
||||
$lang->datatable->showModule = 'Show/Hide module name';
|
||||
$lang->datatable->showModuleList[] = 'N/A';
|
||||
$lang->datatable->showModuleList['base'] = 'Base Node';
|
||||
$lang->datatable->showModuleList['end'] = 'End Node';
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->dept->common = 'Department';
|
||||
$lang->dept->manageChild = "Children";
|
||||
$lang->dept->manageChild = "Child Department";
|
||||
$lang->dept->edit = "Edit";
|
||||
$lang->dept->delete = "Delete";
|
||||
$lang->dept->parent = "Parent";
|
||||
$lang->dept->manager = "Manager";
|
||||
$lang->dept->name = "Dept Name";
|
||||
$lang->dept->browse = "Departments";
|
||||
$lang->dept->browse = "Manage";
|
||||
$lang->dept->manage = "Maintain Dept";
|
||||
$lang->dept->updateOrder = "Update/Order";
|
||||
$lang->dept->updateOrder = "Sort";
|
||||
$lang->dept->add = "Add Dept";
|
||||
$lang->dept->dragAndSort = "Drag and Sort";
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ $lang->dev->tableList['team'] = 'Team';
|
||||
$lang->dev->tableList['testresult'] = 'Testing Result';
|
||||
$lang->dev->tableList['testrun'] = 'Run Testing ';
|
||||
$lang->dev->tableList['testtask'] = 'Test Task';
|
||||
$lang->dev->tableList['todo'] = 'To-Do';
|
||||
$lang->dev->tableList['todo'] = 'Todo';
|
||||
$lang->dev->tableList['user'] = 'User';
|
||||
$lang->dev->tableList['usercontact'] = 'User Contact';
|
||||
$lang->dev->tableList['usergroup'] = 'User Group';
|
||||
|
||||
+16
-16
@@ -24,10 +24,10 @@ $lang->doc->content = 'Text';
|
||||
$lang->doc->keywords = 'Keywords';
|
||||
$lang->doc->url = 'URL';
|
||||
$lang->doc->files = 'File';
|
||||
$lang->doc->addedBy = 'Added By';
|
||||
$lang->doc->addedDate = 'Added Date';
|
||||
$lang->doc->editedBy = 'Edited By';
|
||||
$lang->doc->editedDate = 'Edited Date';
|
||||
$lang->doc->addedBy = 'Creator';
|
||||
$lang->doc->addedDate = 'Create Date';
|
||||
$lang->doc->editedBy = 'Edit By';
|
||||
$lang->doc->editedDate = 'Edit Date';
|
||||
$lang->doc->version = 'Version';
|
||||
$lang->doc->basicInfo = 'Basic Info';
|
||||
$lang->doc->deleted = 'Deleted';
|
||||
@@ -45,22 +45,22 @@ $lang->doc->groups = 'Groups';
|
||||
$lang->doc->users = 'Users';
|
||||
|
||||
$lang->doc->moduleDoc = 'By Module';
|
||||
$lang->doc->searchDoc = 'By Search';
|
||||
$lang->doc->searchDoc = 'Search';
|
||||
$lang->doc->allDoc = 'All';
|
||||
$lang->doc->openedByMe = 'Opened By Me';
|
||||
$lang->doc->openedByMe = 'My';
|
||||
$lang->doc->orderByOpen = 'Recently Added';
|
||||
$lang->doc->orderByEdit = 'Recently Modifie';
|
||||
|
||||
/* 方法列表。*/
|
||||
$lang->doc->index = 'Home';
|
||||
$lang->doc->create = 'Create';
|
||||
$lang->doc->create = 'Create Doc';
|
||||
$lang->doc->edit = 'Edit';
|
||||
$lang->doc->delete = 'Delete';
|
||||
$lang->doc->browse = 'List';
|
||||
$lang->doc->view = 'Details';
|
||||
$lang->doc->diff = 'Diff';
|
||||
$lang->doc->sort = 'Sort';
|
||||
$lang->doc->manageType = 'Manage Category';
|
||||
$lang->doc->manageType = 'Manage category';
|
||||
$lang->doc->editType = 'Edit';
|
||||
$lang->doc->deleteType = 'Delete';
|
||||
$lang->doc->addType = 'Add';
|
||||
@@ -74,8 +74,8 @@ $lang->doc->createLib = 'Create Library';
|
||||
$lang->doc->allLibs = 'Libraries';
|
||||
$lang->doc->objectLibs = "{$lang->productCommon}/{$lang->projectCommon} Library List";
|
||||
$lang->doc->showFiles = 'File Library';
|
||||
$lang->doc->editLib = 'Edit';
|
||||
$lang->doc->deleteLib = 'Delete';
|
||||
$lang->doc->editLib = 'Edit Library';
|
||||
$lang->doc->deleteLib = 'Delete Library';
|
||||
$lang->doc->fixedMenu = 'Fixed In Menu';
|
||||
$lang->doc->removeMenu = 'Remove From Menu';
|
||||
$lang->doc->search = 'Search';
|
||||
@@ -84,8 +84,8 @@ $lang->doc->search = 'Search';
|
||||
$lang->doc->allProduct = 'All' . $lang->productCommon;
|
||||
$lang->doc->allProject = 'All' . $lang->projectCommon;
|
||||
|
||||
$lang->doc->libTypeList['product'] = $lang->productCommon . ' Library';
|
||||
$lang->doc->libTypeList['project'] = $lang->projectCommon . ' Library';
|
||||
$lang->doc->libTypeList['product'] = $lang->productCommon . ' Scope';
|
||||
$lang->doc->libTypeList['project'] = $lang->projectCommon . ' Scope';
|
||||
$lang->doc->libTypeList['custom'] = 'Custom Library';
|
||||
|
||||
$lang->doc->systemLibs['product'] = $lang->productCommon . 'Doc Lib';
|
||||
@@ -127,14 +127,14 @@ $lang->doc->placeholder->url = 'Url';
|
||||
|
||||
$lang->doclib = new stdclass();
|
||||
$lang->doclib->name = 'Name';
|
||||
$lang->doclib->control = 'Privilege';
|
||||
$lang->doclib->control = 'Access Control';
|
||||
$lang->doclib->group = 'Group';
|
||||
$lang->doclib->user = 'User';
|
||||
$lang->doclib->files = 'Files';
|
||||
$lang->doclib->all = 'All';
|
||||
$lang->doclib->all = 'All Library';
|
||||
$lang->doclib->select = 'Select';
|
||||
$lang->doclib->project = $lang->projectCommon . ' Library';
|
||||
$lang->doclib->product = $lang->productCommon . ' Library';
|
||||
|
||||
$lang->doclib->main['product'] = $lang->productCommon . ' Main';
|
||||
$lang->doclib->main['project'] = $lang->projectCommon . ' Main';
|
||||
$lang->doclib->main['product'] = 'Main Lib';
|
||||
$lang->doclib->main['project'] = 'Main Lib';
|
||||
|
||||
@@ -69,7 +69,7 @@ $lang->editor->modules['story'] = 'Story';
|
||||
$lang->editor->modules['task'] = 'Task';
|
||||
$lang->editor->modules['testcase'] = 'Case';
|
||||
$lang->editor->modules['testtask'] = 'Test Task';
|
||||
$lang->editor->modules['todo'] = 'To-Do';
|
||||
$lang->editor->modules['todo'] = 'Todo';
|
||||
$lang->editor->modules['tree'] = 'Module';
|
||||
$lang->editor->modules['upgrade'] = 'Upgrade';
|
||||
$lang->editor->modules['user'] = 'User';
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->file = new stdclass();
|
||||
$lang->file->common = 'Attachment';
|
||||
$lang->file->common = 'File';
|
||||
$lang->file->uploadImages = 'Batch Upload Images';
|
||||
$lang->file->download = 'Download Files';
|
||||
$lang->file->uploadDate = 'Uploaded on';
|
||||
@@ -26,16 +26,16 @@ $lang->file->exportFields = "Fileds to be Exported";
|
||||
$lang->file->defaultTPL = "Default Template";
|
||||
$lang->file->setExportTPL = "Settings";
|
||||
$lang->file->preview = "Preview";
|
||||
$lang->file->addFile = 'Add File';
|
||||
$lang->file->beginUpload = 'Start uploading';
|
||||
$lang->file->uploadSuccess = 'uploaded Successfully';
|
||||
$lang->file->addFile = 'Add';
|
||||
$lang->file->beginUpload = 'Upload';
|
||||
$lang->file->uploadSuccess = 'Uploaded!';
|
||||
|
||||
$lang->file->pathname = 'Path Name';
|
||||
$lang->file->title = 'Title';
|
||||
$lang->file->extension = 'Extension';
|
||||
$lang->file->size = 'Size';
|
||||
$lang->file->addedBy = 'Added By';
|
||||
$lang->file->addedDate = 'Added Date';
|
||||
$lang->file->addedDate = 'Added On';
|
||||
$lang->file->downloads = 'Downloads';
|
||||
$lang->file->extra = 'Extra';
|
||||
|
||||
@@ -50,4 +50,4 @@ $lang->file->errorFileMove = " Uploading failed, there was an error when movi
|
||||
$lang->file->dangerFile = " File has been rejected to upload for security issues.";
|
||||
$lang->file->errorSuffix = 'Format is incorrect. .zip files ONLY!';
|
||||
$lang->file->errorExtract = 'Extracting file failed. File might be damaged or invalid files in the zip package.';
|
||||
$lang->file->uploadImagesExplain = 'Note: please upload "jpg, jpeg, gif, png" format of the picture, the program will use the file name as the title, the picture as content.';
|
||||
$lang->file->uploadImagesExplain = 'Note: upload .jpg, .jpeg, .gif, and .png images. The image name will be taken as the title of the story and the image as its content.';
|
||||
|
||||
+13
-13
@@ -9,25 +9,25 @@
|
||||
* @version $Id: en.php 4719 2013-05-03 02:20:28Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->group->common = 'Privileges';
|
||||
$lang->group->browse = 'Groups';
|
||||
$lang->group->create = 'Add a Group';
|
||||
$lang->group->common = 'Groups';
|
||||
$lang->group->browse = 'Browse Groups';
|
||||
$lang->group->create = 'Create Group';
|
||||
$lang->group->edit = 'Edit';
|
||||
$lang->group->copy = 'Copy';
|
||||
$lang->group->delete = 'Delete';
|
||||
$lang->group->manageView = 'View';
|
||||
$lang->group->managePriv = 'Privileges';
|
||||
$lang->group->managePrivByGroup = 'Assign by Groups';
|
||||
$lang->group->managePrivByModule = 'Assign by Modules';
|
||||
$lang->group->manageView = 'Object Privilege';
|
||||
$lang->group->managePriv = 'Batch Assign Operations';
|
||||
$lang->group->managePrivByGroup = 'Operation Privilege';
|
||||
$lang->group->managePrivByModule = 'Batch Assign Operations';
|
||||
$lang->group->byModuleTips = '<span class="tips">(Press shift/control to multi select)</span>';
|
||||
$lang->group->manageMember = 'Members';
|
||||
$lang->group->confirmDelete = 'Do you want to delete this User Group?';
|
||||
$lang->group->successSaved = 'Saved!';
|
||||
$lang->group->errorNotSaved = 'Not saved. Please select actions and groups.';
|
||||
$lang->group->viewList = 'Access List';
|
||||
$lang->group->productList = 'Access is allowed.' . $lang->productCommon;
|
||||
$lang->group->projectList = 'Access is allowed.' . $lang->projectCommon;
|
||||
$lang->group->noticeVisit = 'N/A means access is not restricted.';
|
||||
$lang->group->viewList = 'Views can be accessed';
|
||||
$lang->group->productList = 'Products can be accessed';
|
||||
$lang->group->projectList = 'Projects can be accessed';
|
||||
$lang->group->noticeVisit = 'Empty means All.';
|
||||
|
||||
$lang->group->id = 'ID';
|
||||
$lang->group->name = 'Name';
|
||||
@@ -36,8 +36,8 @@ $lang->group->role = 'Role';
|
||||
$lang->group->acl = 'Right';
|
||||
$lang->group->users = 'Users';
|
||||
$lang->group->module = 'Module';
|
||||
$lang->group->method = 'Method';
|
||||
$lang->group->priv = 'P';
|
||||
$lang->group->method = 'Operation';
|
||||
$lang->group->priv = 'Group';
|
||||
$lang->group->option = 'Option';
|
||||
$lang->group->inside = 'Group Users';
|
||||
$lang->group->outside = 'Other Users';
|
||||
|
||||
@@ -23,7 +23,7 @@ $lang->install->seeLatestRelease = 'View Latest Version';
|
||||
$lang->install->welcome = 'Welcome to ZenTao Project Management Software!';
|
||||
$lang->install->license = 'ZenTao PMS is under Z PUBLIC LICENSE(ZPL) 1.2';
|
||||
$lang->install->desc = <<<EOT
|
||||
ZenTao Project Management Software (ZenTao PMS) is originated in China and under <a href='http://zpl.pub' target='_blank'>ZPL</a>. It us an open source and free project management software, integrated with Product Management、Project Management、QA Management, as weel as To-Dos Management, Company Managementetc, which is the best choice for small and medium organizations to manage projects.
|
||||
ZenTao Project Management Software (ZenTao PMS) is originated in China and under <a href='http://zpl.pub' target='_blank'>ZPL</a>. It us an open source and free project management software, integrated with Product Management、Project Management、QA Management, as weel as Todo Management, Company Managementetc, which is the best choice for small and medium organizations to manage projects.
|
||||
|
||||
ZenTao PMS uses PHP + MySQL as programming langugages and is based on ZenTaoPHP, an independent framwork developed by our team. Third party developers/organizations can develop extensions or customization tailored to their needs.
|
||||
EOT;
|
||||
@@ -100,10 +100,10 @@ $lang->install->working = 'Working way';
|
||||
$lang->install->requestTypes['GET'] = 'GET';
|
||||
$lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO';
|
||||
|
||||
$lang->install->workingList['full'] = 'Full';
|
||||
$lang->install->workingList['onlyTest'] = 'Only Test';
|
||||
$lang->install->workingList['onlyStory'] = 'Only Story';
|
||||
$lang->install->workingList['onlyTask'] = 'Only Task';
|
||||
$lang->install->workingList['full'] = 'Full Management of Dev';
|
||||
$lang->install->workingList['onlyTest'] = 'Only Test Management';
|
||||
$lang->install->workingList['onlyStory'] = 'Only Story Management';
|
||||
$lang->install->workingList['onlyTask'] = 'Only Task Management';
|
||||
|
||||
$lang->install->errorConnectDB = 'Connection to database Failed. ';
|
||||
$lang->install->errorDBName = 'Database name should exclude “.” ';
|
||||
@@ -139,9 +139,9 @@ $lang->install->groupList['PO']['desc'] = 'for Product Owner';
|
||||
$lang->install->groupList['TD']['name'] = 'Dev Manager';
|
||||
$lang->install->groupList['TD']['desc'] = 'for Dev Manager';
|
||||
$lang->install->groupList['PD']['name'] = 'PD';
|
||||
$lang->install->groupList['PD']['desc'] = 'for Product Director';
|
||||
$lang->install->groupList['PD']['desc'] = 'for Product Manager';
|
||||
$lang->install->groupList['QD']['name'] = 'QD';
|
||||
$lang->install->groupList['QD']['desc'] = 'for QA Director';
|
||||
$lang->install->groupList['QD']['desc'] = 'for QA Manager';
|
||||
$lang->install->groupList['TOP']['name'] = 'Senior';
|
||||
$lang->install->groupList['TOP']['desc'] = 'for Senior Manager';
|
||||
$lang->install->groupList['OTHERS']['name'] = 'Other';
|
||||
@@ -185,7 +185,7 @@ $lang->install->chanzhi->desc = <<<EOD
|
||||
EOD;
|
||||
|
||||
$lang->install->ranzhi = new stdclass();
|
||||
$lang->install->ranzhi->name = 'Ranger Collaborative System';
|
||||
$lang->install->ranzhi->name = 'Zdoo Collaborative System';
|
||||
$lang->install->ranzhi->logo = 'images/main/zdoo_org.png';
|
||||
$lang->install->ranzhi->url = 'http://www.zdoo.org';
|
||||
$lang->install->ranzhi->desc = <<<EOD
|
||||
|
||||
+13
-13
@@ -17,24 +17,24 @@ $lang->mail->sendcloudUser = 'Sync Contact';
|
||||
$lang->mail->agreeLicense = 'Yes';
|
||||
$lang->mail->disagree = 'No';
|
||||
|
||||
$lang->mail->turnon = 'Turn On';
|
||||
$lang->mail->async = 'Asynchronous';
|
||||
$lang->mail->fromAddress = 'Email Address';
|
||||
$lang->mail->turnon = 'Turn On Mail';
|
||||
$lang->mail->async = 'Async Sending';
|
||||
$lang->mail->fromAddress = 'Sender Email';
|
||||
$lang->mail->fromName = 'Sender';
|
||||
$lang->mail->domain = 'Domain';
|
||||
$lang->mail->domain = 'Zentao Domain';
|
||||
$lang->mail->host = 'SMTP Server';
|
||||
$lang->mail->port = 'SMTP Port';
|
||||
$lang->mail->auth = 'Acceptance Required';
|
||||
$lang->mail->auth = 'Validation Required';
|
||||
$lang->mail->username = 'SMTP Account';
|
||||
$lang->mail->password = 'SMTP Password';
|
||||
$lang->mail->secure = 'Secure';
|
||||
$lang->mail->debug = 'Debug';
|
||||
$lang->mail->secure = 'Encryption';
|
||||
$lang->mail->debug = 'Debug Level';
|
||||
$lang->mail->charset = 'Charset';
|
||||
$lang->mail->accessKey = 'Access Key';
|
||||
$lang->mail->secretKey = 'Secret Key';
|
||||
$lang->mail->license = 'ZenTao Cloud Notice';
|
||||
|
||||
$lang->mail->selectMTA = 'Select MTA';
|
||||
$lang->mail->selectMTA = 'Select MTA(Mail Transfer Agent)';
|
||||
$lang->mail->smtp = 'SMTP';
|
||||
|
||||
$lang->mail->syncedUser = 'Synchronized';
|
||||
@@ -45,8 +45,8 @@ $lang->mail->remove = 'Remove';
|
||||
$lang->mail->toList = 'Addressee';
|
||||
$lang->mail->ccList = 'Copy to';
|
||||
$lang->mail->subject = 'Subject';
|
||||
$lang->mail->createdBy = 'Sender';
|
||||
$lang->mail->createdDate = 'Added Date';
|
||||
$lang->mail->addedBy = 'Sender';
|
||||
$lang->mail->addedDate = 'Added Date';
|
||||
$lang->mail->sendTime = 'Send Date';
|
||||
$lang->mail->status = 'Status';
|
||||
$lang->mail->failReason = 'Fail Reason';
|
||||
@@ -73,7 +73,7 @@ $lang->mail->secureList['tls'] = 'tls';
|
||||
|
||||
$lang->mail->more = 'More';
|
||||
$lang->mail->noticeResend = 'Sent it again!';
|
||||
$lang->mail->inputFromEmail = 'Enter Email Address';
|
||||
$lang->mail->inputFromEmail = 'Enter Sender Email';
|
||||
$lang->mail->nextStep = 'Next';
|
||||
$lang->mail->successSaved = 'Configuration has been saved.';
|
||||
$lang->mail->testSubject = 'Testing Email';
|
||||
@@ -95,7 +95,7 @@ $lang->mail->sendCloudHelp = <<<EOD
|
||||
EOD;
|
||||
$lang->mail->sendCloudSuccess = 'Done';
|
||||
$lang->mail->closeSendCloud = 'Close';
|
||||
$lang->mail->addressWhiteList = 'Please add the email to the whilte list on email server to avoid be treated as spam';
|
||||
$lang->mail->addressWhiteList = 'Please add to the whilte list of email server to avoid being blocked';
|
||||
$lang->mail->ztCloudNotice = <<<EOD
|
||||
|
||||
|
||||
@@ -109,4 +109,4 @@ $lang->mail->ztCloudNotice = <<<EOD
|
||||
EOD;
|
||||
|
||||
$lang->mail->placeholder = new stdclass();
|
||||
$lang->mail->placeholder->password = 'Some mail needs to fill in the auth code, specific to the mailbox related settings query.';
|
||||
$lang->mail->placeholder->password = 'Some mail server needs auth code, refer to your mail supplier.';
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<form class='form-condensed' method='post' action='<?php echo inlink('save');?>' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='rowhead w-110px'><?php echo $lang->mail->turnon; ?></th>
|
||||
<th class='rowhead w-130px'><?php echo $lang->mail->turnon; ?></th>
|
||||
<td class='w-p25-f'><?php echo html::radio('turnon', $lang->mail->turnonList, 1);?></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
|
||||
+18
-18
@@ -3,37 +3,37 @@ $lang->my->common = 'Dashboard';
|
||||
|
||||
/* Method List。*/
|
||||
$lang->my->index = 'Home';
|
||||
$lang->my->todo = 'My To-Dos';
|
||||
$lang->my->task = 'My Tasks';
|
||||
$lang->my->bug = 'My Bugs';
|
||||
$lang->my->testTask = 'My Builds';
|
||||
$lang->my->testCase = 'My Cases';
|
||||
$lang->my->story = 'My Stories';
|
||||
$lang->my->myProject = "My {$lang->projectCommon}s";
|
||||
$lang->my->todo = 'My Todo';
|
||||
$lang->my->task = 'My Task';
|
||||
$lang->my->bug = 'My Bug';
|
||||
$lang->my->testTask = 'My Build';
|
||||
$lang->my->testCase = 'My Case';
|
||||
$lang->my->story = 'My Story';
|
||||
$lang->my->myProject = "My {$lang->projectCommon}";
|
||||
$lang->my->profile = 'My Profile';
|
||||
$lang->my->dynamic = 'My Dynamic';
|
||||
$lang->my->editProfile = 'Edit';
|
||||
$lang->my->editProfile = 'Edit Profile';
|
||||
$lang->my->changePassword = 'Edit Password';
|
||||
$lang->my->unbind = 'Unbind Ranger';
|
||||
$lang->my->manageContacts = 'Maintain Contact';
|
||||
$lang->my->deleteContacts = 'Delete Contact';
|
||||
$lang->my->shareContacts = 'Share List';
|
||||
$lang->my->shareContacts = 'Share the list';
|
||||
$lang->my->limited = 'Restricted operation (editing only content related to itself)';
|
||||
$lang->my->score = 'My Score';
|
||||
$lang->my->scoreRule = 'Score Rule';
|
||||
|
||||
$lang->my->taskMenu = new stdclass();
|
||||
$lang->my->taskMenu->assignedToMe = 'Assigned to Me';
|
||||
$lang->my->taskMenu->openedByMe = 'Created by Me';
|
||||
$lang->my->taskMenu->finishedByMe = 'Finished by Me';
|
||||
$lang->my->taskMenu->closedByMe = 'Closed by Me';
|
||||
$lang->my->taskMenu->canceledByMe = 'Cancelled by Me';
|
||||
$lang->my->taskMenu->assignedToMe = 'AssignedToMe';
|
||||
$lang->my->taskMenu->openedByMe = 'CreatedByMe';
|
||||
$lang->my->taskMenu->finishedByMe = 'FinishedByMe';
|
||||
$lang->my->taskMenu->closedByMe = 'ClosedByMe';
|
||||
$lang->my->taskMenu->canceledByMe = 'CancelledByMe';
|
||||
|
||||
$lang->my->storyMenu = new stdclass();
|
||||
$lang->my->storyMenu->assignedToMe = 'Assigned to Me';
|
||||
$lang->my->storyMenu->openedByMe = 'Created by Me';
|
||||
$lang->my->storyMenu->reviewedByMe = 'Reviewed by Me';
|
||||
$lang->my->storyMenu->closedByMe = 'Closed by Me';
|
||||
$lang->my->storyMenu->assignedToMe = 'AssignedToMe';
|
||||
$lang->my->storyMenu->openedByMe = 'CreatedByMe';
|
||||
$lang->my->storyMenu->reviewedByMe = 'ReviewedByMe';
|
||||
$lang->my->storyMenu->closedByMe = 'ClosedByMe';
|
||||
|
||||
$lang->my->home = new stdclass();
|
||||
$lang->my->home->latest = 'Dynamic';
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<th class='w-status'><?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
<th class='w-140px'> <?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php $canBatchEdit = common::hasPriv('task', 'batchEdit');?>
|
||||
<?php $canBatchClose = (common::hasPriv('task', 'batchClose') and $type != 'closedBy');?>
|
||||
@@ -52,7 +52,7 @@
|
||||
<?php if($canBatchEdit or $canBatchClose):?><input type='checkbox' name='taskIDList[]' value='<?php echo $task->id;?>' /><?php endif;?>
|
||||
<?php echo html::a($this->createLink('task', 'view', "taskID=$task->id"), sprintf('%03d', $task->id));?>
|
||||
</td>
|
||||
<td><span class='<?php echo 'pri' . zget(array_keys($lang->task->priList), $task->pri, $task->pri);?>'><?php echo zget(array_keys($lang->task->priList), $task->pri, $task->pri);?></span></td>
|
||||
<td><span class='<?php echo 'pri' . $task->pri;?>'><?php echo $task->pri;?></span></td>
|
||||
<td class='nobr text-left'><?php echo html::a($this->createLink('project', 'browse', "projectid=$task->projectID"), $task->projectName);?></td>
|
||||
<td class='text-left nobr'><?php echo html::a($this->createLink('task', 'view', "taskID=$task->id"), $task->name, null, "style='color: $task->color'");?></td>
|
||||
<td><?php echo zget($users, $task->openedBy);?></td>
|
||||
@@ -64,7 +64,7 @@
|
||||
<td class='<?php if(isset($task->delay)) echo 'delayed';?>'><?php if(substr($task->deadline, 0, 4) > 0) echo $task->deadline;?></td>
|
||||
<td class='task-<?php echo $task->status;?>'><?php echo $lang->task->statusList[$task->status];?></td>
|
||||
<td class='text-right'>
|
||||
<?php
|
||||
<?php
|
||||
common::printIcon('task', 'assignTo', "projectID=$task->project&taskID=$task->id", $task, 'list', 'hand-right', '', 'iframe', true);
|
||||
common::printIcon('task', 'start', "taskID=$task->id", $task, 'list', 'play', '', 'iframe', true);
|
||||
common::printIcon('task', 'recordEstimate', "taskID=$task->id", $task, 'list', 'time', '', 'iframe', true);
|
||||
@@ -81,7 +81,7 @@
|
||||
<td colspan='13'>
|
||||
<?php if(count($tasks)):?>
|
||||
<div class='table-actions clearfix'>
|
||||
<?php
|
||||
<?php
|
||||
if($canBatchEdit or $canBatchClose) echo html::selectButton();
|
||||
echo "<div class='btn-group'>";
|
||||
if($canBatchEdit)
|
||||
@@ -96,13 +96,13 @@
|
||||
}
|
||||
echo '</div>';
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php $pager->show();?>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</table>
|
||||
</form>
|
||||
<?php js::set('listName', 'tasktable')?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
+18
-18
@@ -9,11 +9,11 @@
|
||||
* @version $Id: en.php 5091 2013-07-10 06:06:46Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->product->common = $lang->productCommon . 'View';
|
||||
$lang->product->common = $lang->productCommon;
|
||||
$lang->product->index = $lang->productCommon . "Home";
|
||||
$lang->product->browse = "Story List";
|
||||
$lang->product->dynamic = "Dynamic";
|
||||
$lang->product->view = "{$lang->productCommon}s";
|
||||
$lang->product->view = "Overview";
|
||||
$lang->product->edit = "Edit {$lang->productCommon}";
|
||||
$lang->product->batchEdit = "Batch Edit";
|
||||
$lang->product->create = "Create {$lang->productCommon}";
|
||||
@@ -31,13 +31,13 @@ $lang->product->export = "Export";
|
||||
$lang->product->basicInfo = 'Basic Info';
|
||||
$lang->product->otherInfo = 'Other Info';
|
||||
|
||||
$lang->product->plans = 'Plans';
|
||||
$lang->product->releases = 'Releases';
|
||||
$lang->product->plans = 'Plan';
|
||||
$lang->product->releases = 'Release';
|
||||
$lang->product->docs = 'Doc';
|
||||
$lang->product->bugs = 'Linked Bug';
|
||||
$lang->product->projects = "Linked {$lang->projectCommon}";
|
||||
$lang->product->cases = 'Cases';
|
||||
$lang->product->builds = 'Builds';
|
||||
$lang->product->cases = 'Case';
|
||||
$lang->product->builds = 'Build';
|
||||
$lang->product->roadmap = 'Roadmap';
|
||||
$lang->product->doc = 'Doc';
|
||||
$lang->product->project = $lang->projectCommon . 'List';
|
||||
@@ -48,7 +48,7 @@ $lang->product->changedStories = 'Changed Story';
|
||||
$lang->product->draftStories = 'Draft Story';
|
||||
$lang->product->closedStories = 'Closed Story';
|
||||
$lang->product->unResolvedBugs = 'Unresolved Bug';
|
||||
$lang->product->assignToNullBugs = 'No Assigned Bug';
|
||||
$lang->product->assignToNullBugs = 'Unassigned Bug';
|
||||
|
||||
$lang->product->confirmDelete = " Do you want to delete {$lang->productCommon}?";
|
||||
|
||||
@@ -64,27 +64,27 @@ $lang->product->type = "Type";
|
||||
$lang->product->status = 'Status';
|
||||
$lang->product->desc = 'Description';
|
||||
$lang->product->PO = "PO";
|
||||
$lang->product->QD = 'QD';
|
||||
$lang->product->RD = 'RD';
|
||||
$lang->product->acl = 'Acceptance';
|
||||
$lang->product->QD = 'QA Manager';
|
||||
$lang->product->RD = 'Release Manager';
|
||||
$lang->product->acl = 'Access Control';
|
||||
$lang->product->whitelist = 'Whitelist';
|
||||
$lang->product->branch = '%s';
|
||||
|
||||
$lang->product->searchStory = 'Search';
|
||||
$lang->product->assignedToMe = 'Assigned to Me';
|
||||
$lang->product->openedByMe = 'Created by Me';
|
||||
$lang->product->reviewedByMe = 'Reviewed by Me';
|
||||
$lang->product->closedByMe = 'Closed by Me';
|
||||
$lang->product->assignedToMe = 'AssignedToMe';
|
||||
$lang->product->openedByMe = 'CreatedByMe';
|
||||
$lang->product->reviewedByMe = 'ReviewedByMe';
|
||||
$lang->product->closedByMe = 'ClosedByMe';
|
||||
$lang->product->draftStory = 'Draft';
|
||||
$lang->product->activeStory = 'Activate';
|
||||
$lang->product->activeStory = 'Activated';
|
||||
$lang->product->changedStory = 'Changed';
|
||||
$lang->product->willClose = 'To be Closed';
|
||||
$lang->product->willClose = 'ToBeClose';
|
||||
$lang->product->closedStory = 'Closed';
|
||||
$lang->product->unclosed = 'Open';
|
||||
$lang->product->unplan = 'No plan';
|
||||
$lang->product->unplan = 'Wait';
|
||||
$lang->product->my = 'My';
|
||||
|
||||
$lang->product->allStory = 'All Stories';
|
||||
$lang->product->allStory = 'All';
|
||||
$lang->product->allProduct = 'All' . $lang->productCommon;
|
||||
$lang->product->allProductsOfProject = 'All linked' . $lang->productCommon;
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
<th class='w-80px text-left'><?php common::printOrderLink('line', $orderBy, $vars, $lang->product->line);?></th>
|
||||
<th class='w-80px'><?php echo $lang->product->activeStories;?></th>
|
||||
<th class='w-80px'><?php echo $lang->product->changedStories;?></th>
|
||||
<th class='w-80px'><?php echo $lang->product->draftStories;?></th>
|
||||
<th class='w-70px'><?php echo $lang->product->draftStories;?></th>
|
||||
<th class='w-80px'><?php echo $lang->product->closedStories;?></th>
|
||||
<th class='w-80px'><?php echo $lang->product->plans;?></th>
|
||||
<th class='w-80px'><?php echo $lang->product->releases;?></th>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<form class='form-condensed' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-90px'><?php echo $lang->product->name;?></th>
|
||||
<th class='w-110px'><?php echo $lang->product->name;?></th>
|
||||
<td class='w-p25-f'><?php echo html::input('name', '', "class='form-control' autocomplete='off'");?></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
<thead>
|
||||
<tr class='colhead'>
|
||||
<?php $vars = "productID={$productID}&type=$type¶m=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
|
||||
<th class='w-150px'><?php common::printOrderLink('date', $orderBy, $vars, $lang->action->date);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('date', $orderBy, $vars, $lang->action->date);?></th>
|
||||
<th class='w-80px'> <?php common::printOrderLink('actor', $orderBy, $vars, $lang->action->actor);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('action', $orderBy, $vars, $lang->action->action);?></th>
|
||||
<th class='w-90px'> <?php common::printOrderLink('objectType', $orderBy, $vars, $lang->action->objectType);?></th>
|
||||
<th class='w-110px'> <?php common::printOrderLink('objectType', $orderBy, $vars, $lang->action->objectType);?></th>
|
||||
<th class='w-id'> <?php common::printOrderLink('objectID', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th><?php echo $lang->action->objectName;?></th>
|
||||
</tr>
|
||||
|
||||
@@ -191,6 +191,7 @@ class productplan extends control
|
||||
*/
|
||||
public function browse($productID = 0, $branch = 0, $browseType = 'all', $orderBy = 'begin_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1 )
|
||||
{
|
||||
$this->app->loadLang('project');
|
||||
/* Load pager. */
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* @version $Id: en.php 4659 2013-04-17 06:45:08Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->productplan->common = $lang->productCommon . 'Plan';
|
||||
$lang->productplan->common = $lang->productCommon . ' Plan';
|
||||
$lang->productplan->browse = "View";
|
||||
$lang->productplan->index = "List";
|
||||
$lang->productplan->create = "Create";
|
||||
@@ -21,16 +21,16 @@ $lang->productplan->info = 'Info';
|
||||
$lang->productplan->batchEdit = 'Batch Edit';
|
||||
|
||||
$lang->productplan->batchUnlink = "Batch Unlink";
|
||||
$lang->productplan->linkStory = "Linked Story";
|
||||
$lang->productplan->linkStory = "Link Story";
|
||||
$lang->productplan->unlinkStory = "Unlink Story";
|
||||
$lang->productplan->batchUnlinkStory = "Batch Unlink";
|
||||
$lang->productplan->linkedStories = 'link Story';
|
||||
$lang->productplan->unlinkedStories = 'UnLinkEd';
|
||||
$lang->productplan->updateOrder = 'Ranking';
|
||||
$lang->productplan->linkedStories = 'Linked Story';
|
||||
$lang->productplan->unlinkedStories = 'Unlinked Story';
|
||||
$lang->productplan->updateOrder = 'Sort';
|
||||
|
||||
$lang->productplan->linkBug = "Link Bug";
|
||||
$lang->productplan->unlinkBug = "Unlink Bug";
|
||||
$lang->productplan->batchUnlinkBug = "Batch Unlink";
|
||||
$lang->productplan->batchUnlinkBug = "Batch Unlink Bug";
|
||||
$lang->productplan->linkedBugs = 'Linked Bug';
|
||||
$lang->productplan->unlinkedBugs = 'Unlinked';
|
||||
|
||||
@@ -50,6 +50,7 @@ $lang->productplan->future = 'Future';
|
||||
$lang->productplan->stories = 'Stories';
|
||||
$lang->productplan->bugs = 'Bugs';
|
||||
$lang->productplan->hour = 'Hour';
|
||||
$lang->productplan->project = $lang->projectCommon;
|
||||
|
||||
$lang->productplan->endList[7] = '1 Week';
|
||||
$lang->productplan->endList[14] = '2 Weeks';
|
||||
@@ -66,5 +67,5 @@ $lang->productplan->errorNoEnd = 'ID %s end time should not be empty.';
|
||||
$lang->productplan->beginGeEnd = 'ID %s begin time value should not be greater than t.';
|
||||
|
||||
$lang->productplan->featureBar['browse']['all'] = 'All';
|
||||
$lang->productplan->featureBar['browse']['unexpired'] = 'On Time';
|
||||
$lang->productplan->featureBar['browse']['overdue'] = 'Overdue';
|
||||
$lang->productplan->featureBar['browse']['unexpired'] = 'Unexpired';
|
||||
$lang->productplan->featureBar['browse']['overdue'] = 'Expired';
|
||||
|
||||
@@ -50,6 +50,7 @@ $lang->productplan->future = '待定';
|
||||
$lang->productplan->stories = '需求数';
|
||||
$lang->productplan->bugs = 'Bug数';
|
||||
$lang->productplan->hour = '工时';
|
||||
$lang->productplan->project = $lang->projectCommon;
|
||||
|
||||
$lang->productplan->endList[7] = '一星期';
|
||||
$lang->productplan->endList[14] = '两星期';
|
||||
|
||||
@@ -73,11 +73,13 @@ class productplanModel extends model
|
||||
public function getList($product = 0, $branch = 0, $browseType = 'all', $pager = null, $orderBy = 'begin_desc')
|
||||
{
|
||||
$date = date('Y-m-d');
|
||||
$productPlans = $this->dao->select('*')->from(TABLE_PRODUCTPLAN)->where('product')->eq($product)
|
||||
->andWhere('deleted')->eq(0)
|
||||
->beginIF(!empty($branch))->andWhere('branch')->eq($branch)->fi()
|
||||
->beginIF($browseType == 'unexpired')->andWhere('end')->gt($date)->fi()
|
||||
->beginIF($browseType == 'overdue')->andWhere('end')->le($date)->fi()
|
||||
$productPlans = $this->dao->select('t1.*,t2.project')->from(TABLE_PRODUCTPLAN)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t2.plan = t1.id and t2.product = ' . $product)
|
||||
->where('t1.product')->eq($product)
|
||||
->andWhere('t1.deleted')->eq(0)
|
||||
->beginIF(!empty($branch))->andWhere('t1.branch')->eq($branch)->fi()
|
||||
->beginIF($browseType == 'unexpired')->andWhere('t1.end')->gt($date)->fi()
|
||||
->beginIF($browseType == 'overdue')->andWhere('t1.end')->le($date)->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll('id');
|
||||
@@ -90,9 +92,10 @@ class productplanModel extends model
|
||||
->where("CONCAT(',', plan, ',')")->like("%,{$productPlan->id},%")
|
||||
->andWhere('deleted')->eq(0)
|
||||
->fetchPairs('id', 'estimate');
|
||||
$productPlan->stories = count($stories);
|
||||
$productPlan->bugs = $this->dao->select()->from(TABLE_BUG)->where("plan")->eq($productPlan->id)->andWhere('deleted')->eq(0)->count();
|
||||
$productPlan->hour = array_sum($stories);
|
||||
$productPlan->stories = count($stories);
|
||||
$productPlan->bugs = $this->dao->select()->from(TABLE_BUG)->where("plan")->eq($productPlan->id)->andWhere('deleted')->eq(0)->count();
|
||||
$productPlan->hour = array_sum($stories);
|
||||
$productPlan->projectID = $productPlan->project;
|
||||
}
|
||||
}
|
||||
return $productPlans;
|
||||
@@ -185,9 +188,10 @@ class productplanModel extends model
|
||||
{
|
||||
$oldPlan = $this->dao->findByID((int)$planID)->from(TABLE_PRODUCTPLAN)->fetch();
|
||||
$plan = fixer::input('post')->stripTags($this->config->productplan->editor->edit['id'], $this->config->allowedTags)
|
||||
->setIF($this->post->delta == 9999 || empty($this->post->end), 'end', '2030-01-01')
|
||||
->setIF($this->post->delta == 9999 || $this->post->end == '', 'end', '2030-01-01')
|
||||
->remove('delta,uid')
|
||||
->get();
|
||||
|
||||
$plan = $this->loadModel('file')->processImgURL($plan, $this->config->productplan->editor->edit['id'], $this->post->uid);
|
||||
$this->dao->update(TABLE_PRODUCTPLAN)
|
||||
->data($plan)
|
||||
|
||||
@@ -43,18 +43,19 @@
|
||||
<thead>
|
||||
<?php $vars = "productID=$productID&branch=$branch&browseType=$browseType&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
|
||||
<tr class='colhead'>
|
||||
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th> <?php common::printOrderLink('title', $orderBy, $vars, $lang->productplan->title);?></th>
|
||||
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th> <?php common::printOrderLink('title', $orderBy, $vars, $lang->productplan->title);?></th>
|
||||
<?php if($this->session->currentProductType != 'normal'):?>
|
||||
<th class='w-100px'> <?php common::printOrderLink('branch',$orderBy, $vars, $lang->product->branch);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('branch',$orderBy, $vars, $lang->product->branch);?></th>
|
||||
<?php endif;?>
|
||||
<th class='w-60px'> <?php echo $lang->productplan->stories;?></th>
|
||||
<th class='w-60px'> <?php echo $lang->productplan->bugs;?></th>
|
||||
<th class='w-60px'> <?php echo $lang->productplan->hour;?></th>
|
||||
<th class='w-p50'> <?php echo $lang->productplan->desc;?></th>
|
||||
<th class='w-100px'> <?php common::printOrderLink('begin', $orderBy, $vars, $lang->productplan->begin);?></th>
|
||||
<th class='w-100px'> <?php common::printOrderLink('end', $orderBy, $vars, $lang->productplan->end);?></th>
|
||||
<th class="w-110px {sorter: false}"><?php echo $lang->actions;?></th>
|
||||
<th class='w-60px'> <?php echo $lang->productplan->project;?></th>
|
||||
<th class='w-p40'> <?php echo $lang->productplan->desc;?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('begin', $orderBy, $vars, $lang->productplan->begin);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->productplan->end);?></th>
|
||||
<th class="w-130px {sorter: false}"><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -73,11 +74,13 @@
|
||||
<td class='text-center'><?php echo $plan->stories;?></td>
|
||||
<td class='text-center'><?php echo $plan->bugs;?></td>
|
||||
<td class='text-center'><?php echo $plan->hour;?></td>
|
||||
<td class='text-center'><?php if(!empty($plan->projectID)) echo html::a(helper::createLink('project', 'task', 'projectID=' . $plan->projectID), '<i class="icon-search"></i>');?></td>
|
||||
<td class='text-left content'><div class='article-content'><?php echo $plan->desc;?></div></td>
|
||||
<td><?php echo $plan->begin;?></td>
|
||||
<td><?php echo $plan->end == '2030-01-01' ? $lang->productplan->future : $plan->end;?></td>
|
||||
<td class='text-center'>
|
||||
<?php
|
||||
if(common::hasPriv('project', 'create')) echo html::a(helper::createLink('project', 'create', "projectID=©ProjectID=&planID=$plan->id"), '<i class="icon-play"></i>', '', "class='btn-icon' title='{$lang->project->create}'");
|
||||
if(common::hasPriv('productplan', 'linkStory')) echo html::a(inlink('view', "planID=$plan->id&type=story&orderBy=id_desc&link=true"), '<i class="icon-link"></i>', '', "class='btn-icon' title='{$lang->productplan->linkStory}'");
|
||||
if(common::hasPriv('productplan', 'linkBug') and $config->global->flow != 'onlyStory') echo html::a(inlink('view', "planID=$plan->id&type=bug&orderBy=id_desc&link=true"), '<i class="icon-bug"></i>', '', "class='btn-icon' title='{$lang->productplan->linkBug}'");
|
||||
common::printIcon('productplan', 'edit', "planID=$plan->id", $plan, 'list');
|
||||
@@ -94,7 +97,7 @@
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan='<?php echo $this->session->currentProductType == 'normal' ? '9' : '10';?>'>
|
||||
<td colspan='<?php echo $this->session->currentProductType == 'normal' ? '10' : '11';?>'>
|
||||
<div class='table-actions clearfix'>
|
||||
<?php echo html::selectButton();?>
|
||||
<?php if(common::hasPriv('productplan', 'batchEdit')) echo html::submitButton($lang->edit);?>
|
||||
|
||||
+104
-43
@@ -41,7 +41,7 @@ class project extends control
|
||||
{
|
||||
if($this->app->user->account == 'guest' or commonModel::isTutorialMode()) $this->config->project->homepage = 'index';
|
||||
if(!isset($this->config->project->homepage))
|
||||
{
|
||||
{
|
||||
if($this->projects and $this->app->viewType != 'mhtml') die($this->fetch('custom', 'ajaxSetHomepage', "module=project"));
|
||||
|
||||
$this->config->project->homepage = 'index';
|
||||
@@ -375,7 +375,7 @@ class project extends control
|
||||
$this->view->title = $project->name . $this->lang->colon . $this->lang->project->importTask;
|
||||
$this->view->position[] = html::a(inlink('browse', "projectID=$toProject"), $project->name);
|
||||
$this->view->position[] = $this->lang->project->importTask;
|
||||
$this->view->tasks2Imported = $tasks2Imported;
|
||||
$this->view->tasks2Imported = $tasks2Imported;
|
||||
$this->view->projects = $projects;
|
||||
$this->view->projectID = $project->id;
|
||||
$this->view->fromProject = $fromProject;
|
||||
@@ -600,16 +600,27 @@ class project extends control
|
||||
|
||||
/* Count T B C */
|
||||
$storyIdList = array_keys($stories);;
|
||||
$storyTasks = $this->loadModel('task')->getStoryTaskCounts($storyIdList,$projectID);
|
||||
$storyBugs = $this->loadModel('bug')->getStoryBugCounts($storyIdList,$projectID);
|
||||
$storyTasks = $this->loadModel('task')->getStoryTaskCounts($storyIdList, $projectID);
|
||||
$storyBugs = $this->loadModel('bug')->getStoryBugCounts($storyIdList, $projectID);
|
||||
$storyCases = $this->loadModel('testcase')->getStoryCaseCounts($storyIdList);
|
||||
|
||||
$plans = $this->project->getPlans($productID);
|
||||
$allPlans = array('' => '');
|
||||
if(!empty($plans))
|
||||
{
|
||||
foreach($plans as $productID => $plan)
|
||||
{
|
||||
$allPlans = $allPlans + $plan;
|
||||
}
|
||||
}
|
||||
|
||||
/* Assign. */
|
||||
$this->view->title = $title;
|
||||
$this->view->position = $position;
|
||||
$this->view->productID = $productID;
|
||||
$this->view->project = $project;
|
||||
$this->view->stories = $stories;
|
||||
$this->view->allPlans = $allPlans;
|
||||
$this->view->summary = $this->product->summary($stories);
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->type = $type;
|
||||
@@ -823,8 +834,8 @@ class project extends control
|
||||
|
||||
/**
|
||||
* Fix burn for first date.
|
||||
*
|
||||
* @param int $projectID
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -870,14 +881,16 @@ class project extends control
|
||||
*
|
||||
* @param string $projectID
|
||||
* @param string $copyProjectID
|
||||
* @param int $planID
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function create($projectID = '', $copyProjectID = '')
|
||||
public function create($projectID = '', $copyProjectID = '', $planID = 0)
|
||||
{
|
||||
if($projectID)
|
||||
{
|
||||
if(!empty($planID)) $this->project->linkStories($projectID);
|
||||
$this->view->title = $this->lang->project->tips;
|
||||
$this->view->tips = $this->fetch('project', 'tips', "projectID=$projectID");
|
||||
$this->view->projectID = $projectID;
|
||||
@@ -885,12 +898,14 @@ class project extends control
|
||||
exit;
|
||||
}
|
||||
|
||||
$name = '';
|
||||
$code = '';
|
||||
$team = '';
|
||||
$products = array();
|
||||
$whitelist = '';
|
||||
$acl = 'open';
|
||||
$name = '';
|
||||
$code = '';
|
||||
$team = '';
|
||||
$products = array();
|
||||
$whitelist = '';
|
||||
$acl = 'open';
|
||||
$plan = new stdClass();
|
||||
$productPlan = new stdClass();
|
||||
|
||||
if($copyProjectID)
|
||||
{
|
||||
@@ -903,6 +918,16 @@ class project extends control
|
||||
$products = $this->project->getProducts($copyProjectID);
|
||||
}
|
||||
|
||||
if(!empty($planID))
|
||||
{
|
||||
$plan = $this->dao->select('*')->from(TABLE_PRODUCTPLAN)->where('id')->eq($planID)->fetch();
|
||||
$products = $this->dao->select('t1.id, t1.name, t1.type, t2.branch')->from(TABLE_PRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.id = t2.product')
|
||||
->where('t1.id')->eq($plan->product)
|
||||
->fetchAll('id');
|
||||
$productPlan = $this->loadModel('productplan')->getPairs($plan->product, 0, 'unexpired');
|
||||
}
|
||||
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$projectID = $copyProjectID == '' ? $this->project->create() : $this->project->create($copyProjectID);
|
||||
@@ -910,7 +935,15 @@ class project extends control
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
$this->loadModel('action')->create('project', $projectID, 'opened');
|
||||
die(js::locate($this->createLink('project', 'create', "projectID=$projectID"), 'parent'));
|
||||
$url = $this->createLink('project', 'create', "projectID=$projectID");
|
||||
if(!empty($planID))
|
||||
{
|
||||
die(js::confirm($this->lang->project->importPlanStory, $url . '©ProjectID=&planID=' . $planID, $url, 'parent', 'parent'));
|
||||
}
|
||||
else
|
||||
{
|
||||
die(js::locate($url, 'parent'));
|
||||
}
|
||||
}
|
||||
|
||||
$this->project->setMenu($this->projects, key($this->projects));
|
||||
@@ -920,12 +953,14 @@ class project extends control
|
||||
$this->view->projects = array('' => '') + $this->projects;
|
||||
$this->view->groups = $this->loadModel('group')->getPairs();
|
||||
$this->view->allProducts = array(0 => '') + $this->loadModel('product')->getPairs('noclosed|nocode');
|
||||
$this->view->acl = $acl;
|
||||
$this->view->plan = $plan;
|
||||
$this->view->name = $name;
|
||||
$this->view->code = $code;
|
||||
$this->view->team = $team;
|
||||
$this->view->products = $products ;
|
||||
$this->view->products = $products;
|
||||
$this->view->productPlan = $productPlan;
|
||||
$this->view->whitelist = $whitelist;
|
||||
$this->view->acl = $acl ;
|
||||
$this->view->copyProjectID = $copyProjectID;
|
||||
$this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($products));
|
||||
$this->display();
|
||||
@@ -935,6 +970,9 @@ class project extends control
|
||||
* Edit a project.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $action
|
||||
* @param string $extra
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -991,6 +1029,7 @@ class project extends control
|
||||
$this->view->qdUsers = $this->user->getPairs('noclosed|nodeleted|qdfirst', $project->QD);
|
||||
$this->view->rdUsers = $this->user->getPairs('noclosed|nodeleted|devfirst', $project->RD);
|
||||
$this->view->groups = $this->loadModel('group')->getPairs();
|
||||
$this->view->plans = $this->project->getPlans(array_keys($linkedProducts));
|
||||
$this->view->allProducts = $allProducts;
|
||||
$this->view->linkedProducts = $linkedProducts;
|
||||
$this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($linkedProducts));
|
||||
@@ -1263,10 +1302,10 @@ class project extends control
|
||||
|
||||
/**
|
||||
* Kanban.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $type
|
||||
* @param string $orderBy
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $type
|
||||
* @param string $orderBy
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -1310,8 +1349,8 @@ class project extends control
|
||||
/**
|
||||
* Tree view.
|
||||
* Product
|
||||
*
|
||||
* @param int $projectID
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $type
|
||||
* @access public
|
||||
* @return void
|
||||
@@ -1337,14 +1376,14 @@ class project extends control
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->level = $type;
|
||||
$this->view->tree = $tree;
|
||||
$this->display();
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Print kanban.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $orderBy
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $orderBy
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -1359,7 +1398,7 @@ class project extends control
|
||||
$storySpecs = $this->story->getStorySpecs(array_keys($stories));
|
||||
|
||||
$order = 1;
|
||||
foreach($stories as $story) $story->order = $order++;
|
||||
foreach($stories as $story) $story->order = $order++;
|
||||
|
||||
$kanbanTasks = $this->project->getKanbanTasks($projectID, "id");
|
||||
$kanbanBugs = $this->loadModel('bug')->getProjectBugs($projectID);
|
||||
@@ -1446,13 +1485,13 @@ class project extends control
|
||||
|
||||
$this->view->position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name);
|
||||
$this->view->position[] = $this->lang->project->printKanban;
|
||||
$this->display();
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Story kanban.
|
||||
*
|
||||
* @param int $projectID
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -1804,7 +1843,7 @@ class project extends control
|
||||
$this->project->unlinkStory($projectID, $storyID);
|
||||
|
||||
/* if kanban then reload and if ajax request then send result. */
|
||||
if(isonlybody())
|
||||
if(isonlybody())
|
||||
{
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
@@ -2016,8 +2055,8 @@ class project extends control
|
||||
|
||||
/**
|
||||
* Story sort.
|
||||
*
|
||||
* @param int $projectID
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -2076,11 +2115,11 @@ class project extends control
|
||||
}
|
||||
|
||||
/**
|
||||
* Export project.
|
||||
*
|
||||
* @param string $status
|
||||
* @param int $productID
|
||||
* @param string $orderBy
|
||||
* Export project.
|
||||
*
|
||||
* @param string $status
|
||||
* @param int $productID
|
||||
* @param string $orderBy
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -2141,8 +2180,8 @@ class project extends control
|
||||
|
||||
/**
|
||||
* Kanban setting.
|
||||
*
|
||||
* @param int $projectID
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -2178,9 +2217,9 @@ class project extends control
|
||||
|
||||
/**
|
||||
* Ajax reset kanban setting
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $confirm
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $confirm
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -2204,4 +2243,26 @@ class project extends control
|
||||
|
||||
die(js::reload('parent.parent'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Import stories by plan.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param int $planID
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function importPlanStories($projectID, $planID)
|
||||
{
|
||||
$planStories = $planProducts = array();
|
||||
$planStory = $this->loadModel('story')->getPlanStories($planID);
|
||||
if(!empty($planStory))
|
||||
{
|
||||
$planStories = array_keys($planStory);
|
||||
foreach($planStory as $story) $planProducts[$story->id] = $story->product;
|
||||
$this->project->linkStory($projectID, $planStories, $planProducts);
|
||||
}
|
||||
die(js::locate(helper::createLink('project', 'story', 'projectID=' . $projectID), 'parent'));
|
||||
}
|
||||
}
|
||||
|
||||
+38
-20
@@ -16,8 +16,8 @@ function switchGroup(projectID, groupBy)
|
||||
|
||||
/**
|
||||
* Convert a date string like 2011-11-11 to date object in js.
|
||||
*
|
||||
* @param string $date
|
||||
*
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return date
|
||||
*/
|
||||
@@ -29,9 +29,9 @@ function convertStringToDate(dateString)
|
||||
|
||||
/**
|
||||
* Compute delta of two days.
|
||||
*
|
||||
* @param string $date1
|
||||
* @param string $date1
|
||||
*
|
||||
* @param string $date1
|
||||
* @param string $date1
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
@@ -49,12 +49,12 @@ function computeDaysDelta(date1, date2)
|
||||
date1 += 1000 * 60 * 60 * 24;
|
||||
date1 = new Date(date1);
|
||||
}
|
||||
return delta - weekEnds;
|
||||
return delta - weekEnds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute work days.
|
||||
*
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -80,12 +80,12 @@ function computeWorkDays(currentID)
|
||||
endDate = $('#end').val();
|
||||
}
|
||||
|
||||
if(beginDate && endDate)
|
||||
if(beginDate && endDate)
|
||||
{
|
||||
if(isBactchEdit) $('#dayses\\[' + index + '\\]').val(computeDaysDelta(beginDate, endDate));
|
||||
if(!isBactchEdit) $('#days').val(computeDaysDelta(beginDate, endDate));
|
||||
}
|
||||
else if($('input[checked="true"]').val())
|
||||
else if($('input[checked="true"]').val())
|
||||
{
|
||||
computeEndDate();
|
||||
}
|
||||
@@ -93,8 +93,8 @@ function computeWorkDays(currentID)
|
||||
|
||||
/**
|
||||
* Compute the end date for project.
|
||||
*
|
||||
* @param int $delta
|
||||
*
|
||||
* @param int $delta
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -117,8 +117,8 @@ function computeEndDate(delta)
|
||||
|
||||
/**
|
||||
* Load branches.
|
||||
*
|
||||
* @param int $product
|
||||
*
|
||||
* @param int $product
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -134,20 +134,20 @@ function loadBranches(product)
|
||||
$product.trigger("chosen:updated");
|
||||
return false;
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
if($('#productsBox .input-group:last select:first').val() != 0)
|
||||
{
|
||||
var length = $('#productsBox .input-group').size();
|
||||
$('#productsBox .row').append('<div class="col-sm-3">' + $('#productsBox .col-sm-3:last').html() + '</div>');
|
||||
if($('#productsBox .input-group:last select').size() >= 2)$('#productsBox .input-group:last select:last').remove();
|
||||
if($('#productsBox .input-group:last select').size() >= 2) $('#productsBox .input-group:last select:last').remove();
|
||||
$('#productsBox .input-group:last .chosen-container').remove();
|
||||
$('#productsBox .input-group:last select:first').attr('name', 'products[' + length + ']').attr('id', 'products' + length);
|
||||
$('#productsBox .input-group:last .chosen').chosen(defaultChosenOptions);
|
||||
}
|
||||
|
||||
var $inputgroup = $(product).closest('.input-group');
|
||||
if($inputgroup.find('select').size() >= 2)$inputgroup.find('select:last').remove();
|
||||
if($inputgroup.find('select').size() >= 2) $inputgroup.find('select:last').remove();
|
||||
var index = $inputgroup.find('select:first').attr('id').replace('products' , '');
|
||||
$.get(createLink('branch', 'ajaxGetBranches', "productID=" + $(product).val()), function(data)
|
||||
{
|
||||
@@ -156,12 +156,30 @@ function loadBranches(product)
|
||||
$inputgroup.append(data);
|
||||
$inputgroup.find('select:last').attr('name', 'branch[' + index + ']').attr('id', 'branch' + index).css('width', '80px');
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
var productID = $(product).val();
|
||||
|
||||
if(productID == 0 || productID != $(product).data('last')) $("#plan" + $(product).data('last')).remove();
|
||||
|
||||
if(productID != 0 && $("#plan" + productID).length == 0)
|
||||
{
|
||||
$(product).data("last", productID);
|
||||
$.get(createLink('product', 'ajaxGetPlans', "productID=" + productID), function(data)
|
||||
{
|
||||
if(data)
|
||||
{
|
||||
$("#plansBox .row").append('<div class="col-sm-3" id="plan' + productID+ '">' + data + '</div>');
|
||||
$("#plan" + $(product).val()).find('select').attr('name', 'plans[' + productID + ']').attr('id', 'plans' + productID);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function loadBranch(){}
|
||||
|
||||
/* Auto compute the work days. */
|
||||
$(function()
|
||||
$(function()
|
||||
{
|
||||
if(typeof(replaceID) != 'undefined')
|
||||
{
|
||||
@@ -195,8 +213,8 @@ $(function()
|
||||
$('tr.parent-'+id).hide();
|
||||
$toggleIcon.removeClass('icon-double-angle-up').addClass('icon-double-angle-down');
|
||||
}
|
||||
|
||||
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
@@ -8,10 +8,10 @@ $(function()
|
||||
$('#cpmBtn').click(function(){$('#copyProjectModal').modal('show')});
|
||||
$('#copyProjects a').click(function(){setCopyProject($(this).data('id')); $('#copyProjectModal').modal('hide')});
|
||||
var typeWidth = $('#type').closest('td').width();
|
||||
$('#productsBox .col-sm-3').width(typeWidth);
|
||||
$('#productsBox .col-sm-3,#plansBox .col-sm-3').width(typeWidth);
|
||||
$(document).on('change', "#productsBox select", function()
|
||||
{
|
||||
$('#productsBox .col-sm-3').width(typeWidth);
|
||||
$('#productsBox .col-sm-3,#plansBox .col-sm-3').width(typeWidth);
|
||||
});
|
||||
$('#begin').on('change', function()
|
||||
{
|
||||
@@ -37,3 +37,4 @@ function showTypeTips()
|
||||
$('.type-tips').hide();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,17 @@ $(function()
|
||||
$('#branch' + branchID).addClass('active');
|
||||
$(document).on('click', "#storyList tbody tr", function(){showCheckedSummary();});
|
||||
$(document).on('change', "#storyList :checkbox", function(){showCheckedSummary();});
|
||||
|
||||
$("a[data-toggle='linkStoryByPlan']").click(function(){$('#linkStoryByPlan').modal('show')})
|
||||
|
||||
$('#toTaskButton').on('click', function ()
|
||||
{
|
||||
var planID = $('#plan').val();
|
||||
if(planID)
|
||||
{
|
||||
parent.location.href = createLink('project', 'importPlanStories', 'projectID=' + projectID + '&planID=' + planID);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
function showCheckedSummary()
|
||||
|
||||
+49
-46
@@ -17,43 +17,43 @@ $lang->project->name = 'Name';
|
||||
$lang->project->code = 'Alias';
|
||||
$lang->project->begin = 'Begin';
|
||||
$lang->project->end = 'End';
|
||||
$lang->project->dateRange = 'Time Frame';
|
||||
$lang->project->dateRange = 'Duration';
|
||||
$lang->project->to = 'To';
|
||||
$lang->project->days = 'Man-Day';
|
||||
$lang->project->day = 'day';
|
||||
$lang->project->workHour = 'Hour';
|
||||
$lang->project->workHour = 'Hour(s)';
|
||||
$lang->project->status = 'Status';
|
||||
$lang->project->desc = 'Desc';
|
||||
$lang->project->owner = 'Owner';
|
||||
$lang->project->PO = $lang->productCommon . ' Owner';
|
||||
$lang->project->PM = $lang->projectCommon . ' Manager';
|
||||
$lang->project->QD = 'Quality Director';
|
||||
$lang->project->RD = 'Release Director';
|
||||
$lang->project->PO = 'PO';
|
||||
$lang->project->PM = 'PM';
|
||||
$lang->project->QD = 'QA Manager';
|
||||
$lang->project->RD = 'Release Manager';
|
||||
$lang->project->acl = 'Access Control';
|
||||
$lang->project->teamname = 'Team Name';
|
||||
$lang->project->order = "Sort {$lang->projectCommon}";
|
||||
$lang->project->products = "Link {$lang->productCommon}";
|
||||
$lang->project->products = "Linked {$lang->productCommon}";
|
||||
$lang->project->whitelist = 'Whitelist';
|
||||
$lang->project->totalEstimate = 'Est.';
|
||||
$lang->project->totalConsumed = 'Consumed';
|
||||
$lang->project->totalLeft = 'Total Remained';
|
||||
$lang->project->Left = 'Remained';
|
||||
$lang->project->totalEstimate = 'Est.(h)';
|
||||
$lang->project->totalConsumed = 'Cost';
|
||||
$lang->project->totalLeft = 'Left';
|
||||
$lang->project->Left = 'Left';
|
||||
$lang->project->progress = 'Progress';
|
||||
$lang->project->hours = 'Estimate %s, Consumed %s, Remained %s';
|
||||
$lang->project->hours = '%s Estimate, %s Cost, %s Left.';
|
||||
$lang->project->viewBug = 'Bugs';
|
||||
$lang->project->noProduct = "No {$lang->productCommon}";
|
||||
$lang->project->createStory = "Create Story";
|
||||
$lang->project->all = 'All';
|
||||
$lang->project->undone = 'Undone';
|
||||
$lang->project->undone = 'Unfinished';
|
||||
$lang->project->unclosed = 'Unclosed';
|
||||
$lang->project->typeDesc = 'No story, bug, build, testtask and burndown allowed in OPS';
|
||||
$lang->project->typeDesc = 'No story, bug, build, test task or burndown is allowed in OPS';
|
||||
$lang->project->mine = 'My Responsibility: ';
|
||||
$lang->project->other = 'Other:';
|
||||
$lang->project->deleted = 'Deleted';
|
||||
$lang->project->delayed = 'Delayed';
|
||||
$lang->project->product = $lang->project->products;
|
||||
$lang->project->readjustTime = 'Readjust project time for begin and end';
|
||||
$lang->project->readjustTask = 'Readjust task start date and deadline';
|
||||
$lang->project->readjustTime = 'Adjust project begin and end time';
|
||||
$lang->project->readjustTask = 'Adjust task start date and deadline';
|
||||
|
||||
$lang->project->start = 'Start';
|
||||
$lang->project->activate = 'Activate';
|
||||
@@ -77,12 +77,12 @@ $lang->project->endList[365] = '1 Year';
|
||||
$lang->team = new stdclass();
|
||||
$lang->team->account = 'Account';
|
||||
$lang->team->role = 'Role';
|
||||
$lang->team->join = 'Joined Date';
|
||||
$lang->team->join = 'Joined';
|
||||
$lang->team->hours = 'Hour/Day';
|
||||
$lang->team->days = 'Workdays';
|
||||
$lang->team->totalHours = 'Total';
|
||||
|
||||
$lang->team->limited = 'limited User';
|
||||
$lang->team->limited = 'Limited User';
|
||||
$lang->team->limitedList['no'] = 'No';
|
||||
$lang->team->limitedList['yes'] = 'Yes';
|
||||
|
||||
@@ -95,14 +95,14 @@ $lang->project->statusList['doing'] = 'Doing';
|
||||
$lang->project->statusList['suspended'] = 'Suspend';
|
||||
$lang->project->statusList['done'] = 'Done';
|
||||
|
||||
$lang->project->aclList['open'] = "Default (You have access to {$lang->projectCommon}, if you can view it.)";
|
||||
$lang->project->aclList['private'] = 'Private (Only team members can access to it.)';
|
||||
$lang->project->aclList['custom'] = 'Whitelist (Team members and the whitelist members have access to it.)';
|
||||
$lang->project->aclList['open'] = "Default (Those who can visit ‘project view’ can access.)";
|
||||
$lang->project->aclList['private'] = 'Private (Only team members can access.)';
|
||||
$lang->project->aclList['custom'] = 'Whitelist (Team members and the whitelist members can access.)';
|
||||
|
||||
/* 方法列表。*/
|
||||
$lang->project->index = "Home";
|
||||
$lang->project->task = 'Tasks';
|
||||
$lang->project->groupTask = 'View by';
|
||||
$lang->project->groupTask = 'View by Group';
|
||||
$lang->project->story = 'Stories';
|
||||
$lang->project->bug = 'Bugs';
|
||||
$lang->project->dynamic = 'Dynamic';
|
||||
@@ -112,16 +112,18 @@ $lang->project->burn = 'Burndown';
|
||||
$lang->project->baseline = 'Base Line';
|
||||
$lang->project->computeBurn = 'Update';
|
||||
$lang->project->burnData = 'Burndown Data';
|
||||
$lang->project->fixFirst = 'Edit 1st Day Data';
|
||||
$lang->project->fixFirst = 'Edit 1st Day Man-hour';
|
||||
$lang->project->team = 'Team Member';
|
||||
$lang->project->doc = 'Doc';
|
||||
$lang->project->manageProducts = 'Link ' . $lang->productCommon;
|
||||
$lang->project->linkStory = 'Linked Story';
|
||||
$lang->project->linkPlan = 'Linked Plan';
|
||||
$lang->project->linkStoryByPlan = 'Linked Story From Plan';
|
||||
$lang->project->unlinkStoryTasks = 'Unlinked';
|
||||
$lang->project->linkedProducts = 'Linked Products';
|
||||
$lang->project->unlinkedProducts = 'Unlinked Products';
|
||||
$lang->project->view = "Info";
|
||||
$lang->project->create = "Add";
|
||||
$lang->project->view = "Overview";
|
||||
$lang->project->create = "Create Project";
|
||||
$lang->project->copy = "Copy {$lang->projectCommon}";
|
||||
$lang->project->delete = "Delete";
|
||||
$lang->project->browse = "Browse";
|
||||
@@ -136,12 +138,13 @@ $lang->project->importBug = 'Import Bug';
|
||||
$lang->project->updateOrder = 'Order';
|
||||
$lang->project->tree = 'Tree';
|
||||
$lang->project->storyKanban = 'Story Kanban';
|
||||
$lang->project->storySort = 'Story Sort';
|
||||
$lang->project->storySort = 'Sort Story';
|
||||
$lang->project->importPlanStory = 'Import the stories with the plan?';
|
||||
|
||||
/* 分组浏览。*/
|
||||
$lang->project->allTasks = 'All';
|
||||
$lang->project->assignedToMe = 'Assigned to Me';
|
||||
$lang->project->myInvolved = 'My Involved';
|
||||
$lang->project->assignedToMe = 'My';
|
||||
$lang->project->myInvolved = 'Involved';
|
||||
|
||||
$lang->project->statusSelects[''] = 'More';
|
||||
$lang->project->statusSelects['wait'] = 'Wait';
|
||||
@@ -167,7 +170,7 @@ $lang->project->groupFilter['pri']['noset'] = 'Not set';
|
||||
$lang->project->groupFilter['assignedTo']['undone'] = 'Pending';
|
||||
$lang->project->groupFilter['assignedTo']['all'] = $lang->project->all;
|
||||
|
||||
$lang->project->byQuery = 'Search';
|
||||
$lang->project->byQuery = 'Search';
|
||||
|
||||
/* 查询条件列表。*/
|
||||
$lang->project->allProject = "All {$lang->projectCommon}";
|
||||
@@ -176,14 +179,14 @@ $lang->project->aboveAllProject = "All the above {$lang->projectCommon}";
|
||||
|
||||
/* 页面提示。*/
|
||||
$lang->project->selectProject = "Select {$lang->projectCommon}";
|
||||
$lang->project->beginAndEnd = 'Time Frame';
|
||||
$lang->project->lblStats = 'Hour Report';
|
||||
$lang->project->stats = '<strong>%s</strong> Hour(s) available, <strong>%s</strong> Hour(s) Estimated, <strong>%s</strong> Hour(s) Consumed, <strong>%s</strong> Hour(s) Remained.';
|
||||
$lang->project->taskSummary = " <strong>%s</strong> Tasks on this page, <strong>%s</strong> Wait, <strong>%s</strong> Doing. <strong>%s</strong> Hour(s) Estimated, <strong>%s</strong> Hour(s) Consumed, <strong>%s</strong> Hour(s) Remained.";
|
||||
$lang->project->checkedSummary = " <strong>%total%</strong> Checked, <strong>%wait%</strong> Wait, <strong>%doing%</strong> Doing, <strong>%estimate%</strong> Hour(s) Estimated, <strong>%consumed%</strong> Hour(s) Consumed, <strong>%left%</strong> Hour(s) Remained.";
|
||||
$lang->project->beginAndEnd = 'Duration';
|
||||
$lang->project->lblStats = 'Man-Hour Summary(h) : ';
|
||||
$lang->project->stats = '<strong>%s</strong> Available, <strong>%s</strong> Total Estimated, <strong>%s</strong> Cost, <strong>%s</strong> Left.';
|
||||
$lang->project->taskSummary = "Tasks on this page : <strong>%s</strong> Total, <strong>%s</strong> Wait, <strong>%s</strong> Doing; Hours : <strong>%s</strong> Est., <strong>%s</strong> Cost, <strong>%s</strong> Left.";
|
||||
$lang->project->checkedSummary = " <strong>%total%</strong> Checked, <strong>%wait%</strong> Wait, <strong>%doing%</strong> Doing, <strong>%estimate%</strong> Hour(s) Estimated, <strong>%consumed%</strong> Hour(s) Cost, <strong>%left%</strong> Hour(s) Left.";
|
||||
$lang->project->memberHours = "%s has <strong>%s</strong> Hour(s) available ";
|
||||
$lang->project->groupSummary = "<strong>%s</strong> Tasks in this group, Wait <strong>%s</strong>, Doing <strong>%s</strong>. <strong>%s</strong> Hour(s) Estimated , <strong>%s</strong> Hour(s) Consumed, <strong>%s</strong> Hour(s) Remained.";
|
||||
$lang->project->groupSummaryAB = "Total Tasks <strong>%s</strong>, Wait <strong>%s</strong>, Doing <strong>%s</strong>.<br /> <strong>%s</strong> Hour(s) Estimated, <strong>%s</strong> Hour(s) Consumed,<strong>%s</strong> Hour(s) Remained.";
|
||||
$lang->project->groupSummary = "<strong>%s</strong> Tasks in this group, Wait <strong>%s</strong>, Doing <strong>%s</strong>. <strong>%s</strong> Hour(s) Estimated , <strong>%s</strong> Hour(s) Cost, <strong>%s</strong> Hour(s) Left.";
|
||||
$lang->project->groupSummaryAB = "Tasks:<strong>%s</strong> Total,<strong>%s</strong> Wait, <strong>%s</strong> Doing.<br />Hours: <strong>%s</strong> Est., <strong>%s</strong> Cost,<strong>%s</strong> Left.";
|
||||
$lang->project->noTimeSummary = " <strong>%s</strong> Tasks in this group, Wait <strong>%s</strong>, Doing <strong>%s</strong>.";
|
||||
$lang->project->wbs = "Decompose Task";
|
||||
$lang->project->batchWBS = "Batch Decompose";
|
||||
@@ -202,7 +205,7 @@ $lang->project->copyNoProject = "No {$lang->projectCommon} can be duplicated."
|
||||
$lang->project->copyFromProject = "Duplicate from {$lang->projectCommon} <strong>%s</strong>";
|
||||
$lang->project->cancelCopy = 'Cancel Duplication';
|
||||
$lang->project->byPeriod = 'By Time';
|
||||
$lang->project->byUser = 'By User';
|
||||
$lang->project->byUser = 'ByUser';
|
||||
|
||||
/* 交互提示。*/
|
||||
$lang->project->confirmDelete = "Do you want to delete {$lang->projectCommon}[%s]?";
|
||||
@@ -220,7 +223,7 @@ $lang->project->goback = "Go Back";
|
||||
$lang->project->noweekend = 'Without Weekend';
|
||||
$lang->project->withweekend = 'With Weekend';
|
||||
$lang->project->interval = 'Intervals';
|
||||
$lang->project->fixFirstWithLeft = 'Modify the left time';
|
||||
$lang->project->fixFirstWithLeft = 'Modify the left';
|
||||
|
||||
/* 统计。*/
|
||||
$lang->project->charts = new stdclass();
|
||||
@@ -236,8 +239,8 @@ $lang->project->charts->burn->graph->rotateNames = 1;
|
||||
$lang->project->charts->burn->graph->showValues = 0;
|
||||
|
||||
$lang->project->placeholder = new stdclass();
|
||||
$lang->project->placeholder->code = "{$lang->projectCommon} Code";
|
||||
$lang->project->placeholder->totalLeft = 'Hour(s) remained at the beginning of Project';
|
||||
$lang->project->placeholder->code = 'Project abbreviation in team';
|
||||
$lang->project->placeholder->totalLeft = 'Hour(s) remained at Project Starting';
|
||||
|
||||
$lang->project->selectGroup = new stdclass();
|
||||
$lang->project->selectGroup->done = '(Done)';
|
||||
@@ -255,7 +258,7 @@ $lang->project->resetKanban = "Reset Setting";
|
||||
$lang->project->printKanban = "Print Kanban";
|
||||
$lang->project->bugList = "Bugs";
|
||||
|
||||
$lang->project->kanbanHideCols = 'Kanban hidden has been closed and canceled columns';
|
||||
$lang->project->kanbanHideCols = 'hide closed and canceled columns in Kanban';
|
||||
$lang->project->kanbanShowOption = 'Display folding information';
|
||||
$lang->project->kanbanColsColor = 'Custom color for Kanban column';
|
||||
|
||||
@@ -279,14 +282,14 @@ $lang->project->featureBar['task']['all'] = $lang->project->allTasks;
|
||||
$lang->project->featureBar['task']['assignedtome'] = $lang->project->assignedToMe;
|
||||
$lang->project->featureBar['task']['myinvolved'] = $lang->project->myInvolved;
|
||||
$lang->project->featureBar['task']['delayed'] = 'Delayed';
|
||||
$lang->project->featureBar['task']['needconfirm'] = 'Story Changed';
|
||||
$lang->project->featureBar['task']['needconfirm'] = 'StoryChanged';
|
||||
$lang->project->featureBar['task']['status'] = $lang->project->statusSelects[''];
|
||||
|
||||
$lang->project->treeLevel = array();
|
||||
$lang->project->treeLevel['root'] = 'Show Root';
|
||||
$lang->project->treeLevel['story'] = 'Show Story';
|
||||
$lang->project->treeLevel['task'] = 'Show Task';
|
||||
$lang->project->treeLevel['all'] = 'Show All';
|
||||
$lang->project->treeLevel['root'] = 'Collapse All';
|
||||
$lang->project->treeLevel['story'] = 'Show Story';
|
||||
$lang->project->treeLevel['task'] = 'Show Task';
|
||||
$lang->project->treeLevel['all'] = 'Expand All';
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyTask')
|
||||
|
||||
@@ -66,13 +66,13 @@ $lang->project->typeList['sprint'] = "短期$lang->projectCommon";
|
||||
$lang->project->typeList['waterfall'] = "长期$lang->projectCommon";
|
||||
$lang->project->typeList['ops'] = "运维$lang->projectCommon";
|
||||
|
||||
$lang->project->endList[7] = '一星期';
|
||||
$lang->project->endList[14] = '两星期';
|
||||
$lang->project->endList[31] = '一个月';
|
||||
$lang->project->endList[62] = '两个月';
|
||||
$lang->project->endList[93] = '三个月';
|
||||
$lang->project->endList[186] = '半年';
|
||||
$lang->project->endList[365] = '一年';
|
||||
$lang->project->endList[7] = '一星期';
|
||||
$lang->project->endList[14] = '两星期';
|
||||
$lang->project->endList[31] = '一个月';
|
||||
$lang->project->endList[62] = '两个月';
|
||||
$lang->project->endList[93] = '三个月';
|
||||
$lang->project->endList[186] = '半年';
|
||||
$lang->project->endList[365] = '一年';
|
||||
|
||||
$lang->team = new stdclass();
|
||||
$lang->team->account = '用户';
|
||||
@@ -117,6 +117,8 @@ $lang->project->team = '团队成员';
|
||||
$lang->project->doc = '文档列表';
|
||||
$lang->project->manageProducts = '关联' . $lang->productCommon;
|
||||
$lang->project->linkStory = '关联需求';
|
||||
$lang->project->linkStoryByPlan = '按照计划关联';
|
||||
$lang->project->linkPlan = '关联计划';
|
||||
$lang->project->unlinkStoryTasks = '未关联需求任务';
|
||||
$lang->project->linkedProducts = '已关联';
|
||||
$lang->project->unlinkedProducts = '未关联';
|
||||
@@ -137,6 +139,7 @@ $lang->project->updateOrder = '排序';
|
||||
$lang->project->tree = '树状图';
|
||||
$lang->project->storyKanban = '需求看板';
|
||||
$lang->project->storySort = '需求排序';
|
||||
$lang->project->importPlanStory = '是否导入计划关联的相关需求?';
|
||||
|
||||
/* 分组浏览。*/
|
||||
$lang->project->allTasks = '所有';
|
||||
@@ -283,10 +286,10 @@ $lang->project->featureBar['task']['needconfirm'] = '需求变动';
|
||||
$lang->project->featureBar['task']['status'] = $lang->project->statusSelects[''];
|
||||
|
||||
$lang->project->treeLevel = array();
|
||||
$lang->project->treeLevel['root'] = '全部折叠';
|
||||
$lang->project->treeLevel['story'] = '显示需求';
|
||||
$lang->project->treeLevel['task'] = '显示任务';
|
||||
$lang->project->treeLevel['all'] = '全部展开';
|
||||
$lang->project->treeLevel['root'] = '全部折叠';
|
||||
$lang->project->treeLevel['story'] = '显示需求';
|
||||
$lang->project->treeLevel['task'] = '显示任务';
|
||||
$lang->project->treeLevel['all'] = '全部展开';
|
||||
|
||||
global $config;
|
||||
if($config->global->flow == 'onlyTask')
|
||||
|
||||
@@ -219,6 +219,8 @@ class projectModel extends model
|
||||
/**
|
||||
* Create a project.
|
||||
*
|
||||
* @param string $copyProjectID
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -232,7 +234,7 @@ class projectModel extends model
|
||||
->setDefault('team', substr($this->post->name,0, 30))
|
||||
->join('whitelist', ',')
|
||||
->stripTags($this->config->project->editor->create['id'], $this->config->allowedTags)
|
||||
->remove('products, workDays, delta, branch,uid')
|
||||
->remove('products, workDays, delta, branch, uid, plans')
|
||||
->get();
|
||||
$project = $this->loadModel('file')->processImgURL($project, $this->config->project->editor->create['id'], $this->post->uid);
|
||||
$this->dao->insert(TABLE_PROJECT)->data($project)
|
||||
@@ -318,7 +320,7 @@ class projectModel extends model
|
||||
->setDefault('team', $this->post->name)
|
||||
->join('whitelist', ',')
|
||||
->stripTags($this->config->project->editor->edit['id'], $this->config->allowedTags)
|
||||
->remove('products,branch,uid')
|
||||
->remove('products, branch, uid, plans')
|
||||
->get();
|
||||
$project = $this->loadModel('file')->processImgURL($project, $this->config->project->editor->edit['id'], $this->post->uid);
|
||||
$this->dao->update(TABLE_PROJECT)->data($project)
|
||||
@@ -1035,7 +1037,7 @@ class projectModel extends model
|
||||
if(!$withBranch) return $this->loadModel('tutorial')->getProductPairs();
|
||||
return $this->loadModel('tutorial')->getProjectProducts();
|
||||
}
|
||||
$query = $this->dao->select('t2.id, t2.name, t2.type, t1.branch')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
$query = $this->dao->select('t2.id, t2.name, t2.type, t1.branch, t1.plan')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PRODUCT)->alias('t2')
|
||||
->on('t1.product = t2.id')
|
||||
->where('t1.project')->eq((int)$projectID);
|
||||
@@ -1146,6 +1148,7 @@ class projectModel extends model
|
||||
if(!isset($_POST['products'])) return;
|
||||
$products = $_POST['products'];
|
||||
$branches = isset($_POST['branch']) ? $_POST['branch'] : array();
|
||||
$plans = $_POST['plans'];
|
||||
|
||||
$existedProducts = array();
|
||||
$addedProducts = array();
|
||||
@@ -1166,6 +1169,7 @@ class projectModel extends model
|
||||
$data->project = $projectID;
|
||||
$data->product = $productID;
|
||||
$data->branch = isset($branches[$i]) ? $branches[$i] : 0;
|
||||
$data->plan = isset($plans[$productID]) ? $plans[$productID] : 0;
|
||||
$this->dao->insert(TABLE_PROJECTPRODUCT)->data($data)->exec();
|
||||
$existedProducts[$productID] = true;
|
||||
}
|
||||
@@ -1431,21 +1435,25 @@ class projectModel extends model
|
||||
/**
|
||||
* Link story.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param int $projectID
|
||||
* @param array $stories
|
||||
* @param array $products
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
* @return mixed
|
||||
*/
|
||||
public function linkStory($projectID, $stories = array())
|
||||
public function linkStory($projectID, $stories = array(), $products = array())
|
||||
{
|
||||
if(empty($stories)) $stories = $this->post->stories;
|
||||
if(empty($stories)) return false;
|
||||
if(empty($products)) $products = $this->post->products;
|
||||
|
||||
$this->loadModel('action');
|
||||
$versions = $this->loadModel('story')->getVersions($stories);
|
||||
$lastOrder = (int)$this->dao->select('*')->from(TABLE_PROJECTSTORY)->where('project')->eq($projectID)->orderBy('order_desc')->limit(1)->fetch('order');
|
||||
foreach($stories as $key => $storyID)
|
||||
{
|
||||
$productID = (int)$this->post->products[$storyID];
|
||||
$productID = (int)$products[$storyID];
|
||||
$data = new stdclass();
|
||||
$data->project = $projectID;
|
||||
$data->product = $productID;
|
||||
@@ -1458,6 +1466,34 @@ class projectModel extends model
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Link all stories by project.
|
||||
*
|
||||
* @param $projectID
|
||||
*/
|
||||
public function linkStories($projectID)
|
||||
{
|
||||
$plans = $this->dao->select('plan,product')->from(TABLE_PROJECTPRODUCT)
|
||||
->where('project')->eq($projectID)
|
||||
->fetchPairs('plan', 'product');
|
||||
|
||||
$planStories = array();
|
||||
$planProducts = array();
|
||||
if(!empty($plans))
|
||||
{
|
||||
foreach($plans as $planID => $productID)
|
||||
{
|
||||
$planStory = $this->loadModel('story')->getPlanStories($planID);
|
||||
if(!empty($planStory))
|
||||
{
|
||||
$planStories = array_merge($planStories, array_keys($planStory));
|
||||
foreach($planStory as $story) $planProducts[$story->id] = $story->product;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->linkStory($projectID, $planStories, $planProducts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unlink story.
|
||||
*
|
||||
@@ -2543,4 +2579,25 @@ class projectModel extends model
|
||||
if(isset($fullTrees[0]) and empty($fullTrees[0]->children)) array_shift($fullTrees);
|
||||
return array_values($fullTrees);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get plans by $productID.
|
||||
*
|
||||
* @param int|array $productID
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getPlans($productID)
|
||||
{
|
||||
$plans = $this->dao->select('id,title,product')->from(TABLE_PRODUCTPLAN)
|
||||
->where('product')->in($productID)
|
||||
->fetchAll();
|
||||
|
||||
$productPlans = array();
|
||||
foreach ($plans as $plan)
|
||||
{
|
||||
$productPlans[$plan->product][$plan->id] = $plan->title;
|
||||
}
|
||||
return $productPlans;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
$weekend = ($type == 'noweekend') ? 'withweekend' : "noweekend";
|
||||
common::printLink('project', 'computeBurn', 'reload=yes', $lang->project->computeBurn, 'hiddenwin', "title='{$lang->project->computeBurn}{$lang->project->burn}' class='btn btn-primary btn-sm' id='computeBurn'");
|
||||
echo html::a($this->createLink('project', 'burn', "projectID=$projectID&type=$weekend&interval=$interval"), $lang->project->$weekend, '', "class='btn btn-sm'");
|
||||
common::printLink('project', 'fixFirst', "project=$project->id", $lang->project->fixFirst, '', "class='btn btn-sm iframe' data-width='500'");
|
||||
common::printLink('project', 'fixFirst', "project=$project->id", $lang->project->fixFirst, '', "class='btn btn-sm iframe' data-width='600'");
|
||||
echo $lang->project->howToUpdateBurn;
|
||||
?>
|
||||
</div>
|
||||
|
||||
@@ -44,22 +44,22 @@
|
||||
</div>
|
||||
</div>
|
||||
<form class='form-condensed' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-90px'><?php echo $lang->project->name;?></th>
|
||||
<th class='w-100px'><?php echo $lang->project->name;?></th>
|
||||
<td class='w-p25-f'><?php echo html::input('name', $name, "class='form-control' autocomplete='off'");?></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->code;?></th>
|
||||
<td><?php echo html::input('code', $code, "class='form-control' autocomplete='off'");?></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->dateRange;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('begin',date('Y-m-d'), "class='form-control w-100px form-date' onchange='computeWorkDays()' placeholder='" . $lang->project->begin . "'");?>
|
||||
<?php echo html::input('begin', (isset($plan) && !empty($plan->begin) ? $plan->begin : date('Y-m-d')), "class='form-control w-100px form-date' onchange='computeWorkDays()' placeholder='" . $lang->project->begin . "'");?>
|
||||
<span class='input-group-addon'><?php echo $lang->project->to;?></span>
|
||||
<?php echo html::input('end', '', "class='form-control form-date' onchange='computeWorkDays()' placeholder='" . $lang->project->end . "'");?>
|
||||
<?php echo html::input('end', (isset($plan) && !empty($plan->end) ? $plan->end : ''), "class='form-control form-date' onchange='computeWorkDays()' placeholder='" . $lang->project->end . "'");?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
@@ -70,15 +70,15 @@
|
||||
<th><?php echo $lang->project->days;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('days', '', "class='form-control' autocomplete='off'");?>
|
||||
<?php echo html::input('days', (isset($plan) && !empty($plan->begin) ? helper::workDays($plan->begin, $plan->end) : ''), "class='form-control' autocomplete='off'");?>
|
||||
<span class='input-group-addon'><?php echo $lang->project->day;?></span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->teamname;?></th>
|
||||
<td><?php echo html::input('team', $team, "class='form-control' autocomplete='off'");?></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->type;?></th>
|
||||
<td>
|
||||
@@ -96,8 +96,8 @@
|
||||
<?php foreach($products as $product):?>
|
||||
<div class='col-sm-3'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("products[$i]", $allProducts, $product->id, "class='form-control chosen' onchange='loadBranches(this)'");?>
|
||||
<span class='input-group-addon fix-border' style='padding:0px'></span>
|
||||
<?php echo html::select("products[$i]", $allProducts, $product->id, "class='form-control chosen' onchange='loadBranches(this)' data-last='" . $product->id . "'");?>
|
||||
<span class='input-group-addon fix-border' style='padding:0'></span>
|
||||
<?php if($product->type != 'normal') echo html::select("branch[$i]", $branchGroups[$product->id], $product->branch, "class='form-control' style='width:80px'")?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -106,20 +106,32 @@
|
||||
<div class='col-sm-3'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("products[$i]", $allProducts, '', "class='form-control chosen' onchange='loadBranches(this)'");?>
|
||||
<span class='input-group-addon fix-border' style='padding:0px'></span>
|
||||
<span class='input-group-addon fix-border' style='padding:0'></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr <?php if($this->config->global->flow == 'onlyTask') echo "class='hidden'";?>>
|
||||
<th><?php echo $lang->project->linkPlan;?></th>
|
||||
<td colspan="2" id="plansBox">
|
||||
<div class='row'>
|
||||
<?php if(isset($plan) && !empty($plan->begin)):?>
|
||||
<div class="col-sm-3" id="plan<?php echo $plan->product;?>">
|
||||
<?php echo html::select("plans[" . $plan->product . "]", $productPlan, $plan->id, "class='form-control'");?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->desc;?></th>
|
||||
<td colspan='2'><?php echo html::textarea('desc', '', "rows='6' class='form-control'");?></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->acl;?></th>
|
||||
<td colspan='2'><?php echo nl2br(html::radio('acl', $lang->project->aclList, $acl, "onclick='setWhite(this.value);'", 'block'));?></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr id='whitelistBox' <?php if($acl != 'custom') echo "class='hidden'";?>>
|
||||
<th><?php echo $lang->project->whitelist;?></th>
|
||||
<td colspan='2'><?php echo html::checkbox('whitelist', $groups, $whitelist);?></td>
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<form class='form-condensed' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-90px'><?php echo $lang->project->name;?></th>
|
||||
<td class='w-p45'><?php echo html::input('name', $project->name, "class='form-control' autocomplete='off'");?></td><td></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->code;?></th>
|
||||
<td><?php echo html::input('code', $project->code, "class='form-control' autocomplete='off'");?></td>
|
||||
@@ -58,15 +58,15 @@
|
||||
<span class='input-group-addon'><?php echo $lang->project->day;?></span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->type;?></th>
|
||||
<td><?php echo html::select('type', $lang->project->typeList, $project->type, "class='form-control'");?></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->teamname;?></th>
|
||||
<td><?php echo html::input('team', $project->team, "class='form-control' autocomplete='off'");?></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->status;?></th>
|
||||
<td><?php echo html::select('status', $lang->project->statusList, $project->status, "class='form-control'");?></td>
|
||||
@@ -115,7 +115,7 @@
|
||||
<?php foreach($linkedProducts as $product):?>
|
||||
<div class='col-sm-3'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("products[$i]", $allProducts, $product->id, "class='form-control chosen' onchange='loadBranches(this)'");?>
|
||||
<?php echo html::select("products[$i]", $allProducts, $product->id, "class='form-control chosen' onchange='loadBranches(this)' data-last='" . $product->id . "'");?>
|
||||
<span class='input-group-addon fix-border' style='padding:0px'></span>
|
||||
<?php if($product->type != 'normal' and isset($branchGroups[$product->id])) echo html::select("branch[$i]", $branchGroups[$product->id], $product->branch, "class='form-control' style='width:80px'")?>
|
||||
</div>
|
||||
@@ -131,6 +131,18 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr <?php if($this->config->global->flow == 'onlyTask') echo "class='hidden'";?>>
|
||||
<th><?php echo $lang->project->linkPlan;?></th>
|
||||
<td class='text-left' id="plansBox" colspan="2">
|
||||
<div class='row'>
|
||||
<?php foreach($plans as $productID => $plan):?>
|
||||
<div class="col-sm-3" id="plan<?php echo $productID;?>">
|
||||
<?php echo html::select("plans[$productID]", $plan, $linkedProducts[$productID]->plan, "class='form-control'");?>
|
||||
</div>
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->desc;?></th>
|
||||
<td colspan='2'><?php echo html::textarea('desc', htmlspecialchars($project->desc), "rows='6' class='form-control'");?></td>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<span class='input-group-addon fix-border'><input id='withLeft' type='checkbox' checked name='withLeft' value='1' /> <label for='withLeft'><?php echo $lang->project->fixFirstWithLeft?></label></span>
|
||||
<span class='input-group-btn'><?php echo html::submitButton();?></span>
|
||||
</div>
|
||||
<div class='alert alert-info'><?php echo $lang->project->totalEstimate . $project->totalEstimate . $lang->project->workHour;?></div>
|
||||
<div class='alert alert-info'><?php echo $lang->project->totalEstimate . ' : ' . $project->totalEstimate . $lang->project->workHour;?></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -25,21 +25,21 @@
|
||||
<table class='table active-disabled table-condensed table-fixed' id='groupTable'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='text-left' style='width:210px'>
|
||||
<th class='text-left' style='width:230px'>
|
||||
<?php echo html::a('###', "<i class='icon-caret-down'></i> " . $lang->task->$groupBy, '', "class='expandAll' data-action='expand'")?>
|
||||
<?php echo html::a('###', "<i class='icon-caret-right'></i> " . $lang->task->$groupBy, '', "class='collapseAll hidden' data-action='collapse'")?>
|
||||
</th>
|
||||
<th class='w-id'><?php echo $lang->task->id;?></th>
|
||||
<th class='w-pri'> <?php echo $lang->priAB;?></th>
|
||||
<th><?php echo $lang->task->name;?></th>
|
||||
<th class='w-80px'><?php echo $lang->task->status;?></th>
|
||||
<th class='w-70px'><?php echo $lang->task->status;?></th>
|
||||
<th class='w-80px'><?php echo $lang->task->deadlineAB;?></th>
|
||||
<th class='w-user'><?php echo $lang->task->assignedTo;?></th>
|
||||
<th class='w-user'><?php echo $lang->task->finishedBy;?></th>
|
||||
<th class='w-50px'><?php echo $lang->task->estimateAB;?></th>
|
||||
<th class='w-50px'><?php echo $lang->task->consumedAB;?></th>
|
||||
<th class='w-50px'><?php echo $lang->task->leftAB;?></th>
|
||||
<th class='w-50px'><?php echo $lang->task->progress;?></th>
|
||||
<th class='w-60px'><?php echo $lang->task->progress;?></th>
|
||||
<th class='w-50px'><?php echo $lang->typeAB;?></th>
|
||||
<th class='w-60px'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
</ul>
|
||||
<div class='actions'>
|
||||
<div class='btn-group'>
|
||||
<?php
|
||||
<?php
|
||||
common::printIcon('story', 'export', "productID=$productID&orderBy=id_desc", '', 'button', '', '', 'export');
|
||||
|
||||
$this->lang->story->create = $this->lang->project->createStory;
|
||||
@@ -52,7 +52,15 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<div class='btn-group' id='createActionMenu'>";
|
||||
common::printIcon('project', 'linkStory', "project=$project->id", '', 'button', 'link', '', 'link-story-btn');
|
||||
echo "<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'>";
|
||||
echo "<span class='caret'></span>";
|
||||
echo '</button>';
|
||||
echo "<ul class='dropdown-menu pull-right'>";
|
||||
echo "<li>" . html::a('###', $lang->project->linkStoryByPlan, '', 'data-toggle="linkStoryByPlan"') . "</li>";
|
||||
echo '</ul>';
|
||||
echo '</div>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
@@ -109,7 +117,7 @@
|
||||
<tr class='text-center' id="story<?php echo $story->id;?>" data-id='<?php echo $story->id;?>' data-order='<?php echo $story->order ?>' data-estimate='<?php echo $story->estimate?>' data-cases='<?php echo zget($storyCases, $story->id, 0)?>'>
|
||||
<td class='cell-id'>
|
||||
<?php if($canBatchEdit or $canBatchClose):?>
|
||||
<input type='checkbox' name='storyIDList[<?php echo $story->id;?>]' value='<?php echo $story->id;?>' />
|
||||
<input type='checkbox' name='storyIDList[<?php echo $story->id;?>]' value='<?php echo $story->id;?>' />
|
||||
<?php endif;?>
|
||||
<?php echo html::a($storyLink, sprintf('%03d', $story->id));?>
|
||||
</td>
|
||||
@@ -233,6 +241,23 @@
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="linkStoryByPlan">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title"><i class="icon-file-text"></i> <?php echo $lang->project->linkStoryByPlan;?></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class='input-group'>
|
||||
<?php echo html::select('plan', $allPlans, '', "class='form-control chosen' id='plan'");?>
|
||||
<span class='input-group-btn'><?php echo html::commonButton($lang->project->linkStory, "id='toTaskButton'");?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php js::set('checkedSummary', $lang->product->checkedSummary);?>
|
||||
<?php js::set('projectID', $project->id);?>
|
||||
<?php js::set('orderBy', $orderBy)?>
|
||||
|
||||
@@ -16,11 +16,11 @@ $lang->release->linkStory = "Link Story";
|
||||
$lang->release->linkBug = "Link Bug";
|
||||
$lang->release->delete = "Delete";
|
||||
$lang->release->deleted = 'Deleted';
|
||||
$lang->release->view = "Info";
|
||||
$lang->release->browse = "Releases";
|
||||
$lang->release->view = "Overview";
|
||||
$lang->release->browse = "Browse";
|
||||
$lang->release->changeStatus = "Change Status";
|
||||
$lang->release->batchUnlink = "Batch Unlink";
|
||||
$lang->release->batchUnlinkStory = "Batch Unlink";
|
||||
$lang->release->batchUnlinkStory = "Batch Unlink Story";
|
||||
$lang->release->batchUnlinkBug = "Batch Unlink";
|
||||
|
||||
$lang->release->confirmDelete = "Do you want to delete this Release?";
|
||||
|
||||
+13
-13
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
$lang->report->common = 'Report';
|
||||
$lang->report->index = 'Home';
|
||||
$lang->report->list = 'List';
|
||||
$lang->report->list = 'Report List';
|
||||
$lang->report->item = 'Item';
|
||||
$lang->report->value = 'Value';
|
||||
$lang->report->percent = '%';
|
||||
@@ -42,9 +42,9 @@ $lang->report->bugCreate = 'Bug Submission Report';
|
||||
$lang->report->bugAssign = 'Bug Assignment Report';
|
||||
$lang->report->workload = 'Workload';
|
||||
$lang->report->workloadAB = 'Workload';
|
||||
$lang->report->bugOpenedDate = 'Bug Opened From';
|
||||
$lang->report->bugOpenedDate = 'Bug Created From';
|
||||
$lang->report->taskAssignedDate = 'From';
|
||||
$lang->report->beginAndEnd = 'Date';
|
||||
$lang->report->beginAndEnd = ' From';
|
||||
$lang->report->dept = 'Dept';
|
||||
$lang->report->deviationChart = $lang->projectCommon . ' Deviation Chart';
|
||||
|
||||
@@ -57,12 +57,12 @@ $lang->reportList->staff->lists[10] = 'Workload|report|workload';
|
||||
$lang->report->id = 'ID';
|
||||
$lang->report->project = $lang->projectCommon;
|
||||
$lang->report->product = $lang->productCommon;
|
||||
$lang->report->user = 'Username';
|
||||
$lang->report->user = 'Name';
|
||||
$lang->report->bugTotal = 'Bug';
|
||||
$lang->report->task = 'Task';
|
||||
$lang->report->estimate = 'Hour';
|
||||
$lang->report->consumed = 'Consumed';
|
||||
$lang->report->remain = 'Remained';
|
||||
$lang->report->estimate = 'Est.(h)';
|
||||
$lang->report->consumed = 'Cost';
|
||||
$lang->report->remain = 'Left';
|
||||
$lang->report->deviation = 'Deviation';
|
||||
$lang->report->deviationRate = 'Deviation Rate';
|
||||
$lang->report->total = 'Total';
|
||||
@@ -82,21 +82,21 @@ $lang->report->typeList['line'] = 'Line';
|
||||
|
||||
$lang->report->conditions = 'Filter by:';
|
||||
$lang->report->closedProduct = 'Closed ' . $lang->productCommon;
|
||||
$lang->report->overduePlan = 'Overdue Plan';
|
||||
$lang->report->overduePlan = 'Expired Plan';
|
||||
|
||||
/* daily reminder. */
|
||||
$lang->report->idAB = 'ID';
|
||||
$lang->report->bugTitle = 'Bug Title';
|
||||
$lang->report->taskName = 'Task Name';
|
||||
$lang->report->todoName = 'To-Do Name';
|
||||
$lang->report->todoName = 'Todo Name';
|
||||
$lang->report->testTaskName = 'Test Task Name';
|
||||
$lang->report->deadline = 'Deadline';
|
||||
|
||||
$lang->report->mailTitle = new stdclass();
|
||||
$lang->report->mailTitle->begin = 'Notice: You have';
|
||||
$lang->report->mailTitle->bug = " Bug(%s),";
|
||||
$lang->report->mailTitle->task = " Task(%s),";
|
||||
$lang->report->mailTitle->todo = " To-Do(%s),";
|
||||
$lang->report->mailTitle->testTask = " Test Task(%s),";
|
||||
$lang->report->mailTitle->bug = " Bug (%s),";
|
||||
$lang->report->mailTitle->task = " Task (%s),";
|
||||
$lang->report->mailTitle->todo = " Todo (%s),";
|
||||
$lang->report->mailTitle->testTask = " Test Task (%s),";
|
||||
|
||||
$lang->report->proVersion = '<a href="http://api.zentao.pm/goto.php?item=proversion&from=reportpage" target="_blank">Try ZenTao Pro for more!</a>';
|
||||
|
||||
@@ -13,13 +13,13 @@ $lang->search->common = 'Search';
|
||||
$lang->search->reset = 'Reset';
|
||||
$lang->search->saveQuery = 'Save';
|
||||
$lang->search->myQuery = 'My Queries';
|
||||
$lang->search->group1 = '1';
|
||||
$lang->search->group2 = '2';
|
||||
$lang->search->group1 = 'Group 1';
|
||||
$lang->search->group2 = 'Group 2';
|
||||
$lang->search->buildForm = 'Search Form';
|
||||
$lang->search->buildQuery = 'Execute Query';
|
||||
$lang->search->saveQuery = 'Save';
|
||||
$lang->search->deleteQuery = 'Delete';
|
||||
$lang->search->setQueryTitle = 'Please enter the title( Save it before searching.):';
|
||||
$lang->search->saveQuery = 'Save Query';
|
||||
$lang->search->deleteQuery = 'Delete Query';
|
||||
$lang->search->setQueryTitle = 'Enter the query title. Save it After searching.';
|
||||
$lang->search->select = 'Stories/Tasks Filter';
|
||||
$lang->search->me = 'Me';
|
||||
$lang->search->noQuery = 'No query saved!';
|
||||
|
||||
@@ -91,12 +91,12 @@ $config->story->datatable->fieldList['sourceNote']['required'] = 'no';
|
||||
|
||||
$config->story->datatable->fieldList['status']['title'] = 'statusAB';
|
||||
$config->story->datatable->fieldList['status']['fixed'] = 'no';
|
||||
$config->story->datatable->fieldList['status']['width'] = '50';
|
||||
$config->story->datatable->fieldList['status']['width'] = '60';
|
||||
$config->story->datatable->fieldList['status']['required'] = 'no';
|
||||
|
||||
$config->story->datatable->fieldList['estimate']['title'] = 'estimateAB';
|
||||
$config->story->datatable->fieldList['estimate']['fixed'] = 'no';
|
||||
$config->story->datatable->fieldList['estimate']['width'] = '50';
|
||||
$config->story->datatable->fieldList['estimate']['width'] = '55';
|
||||
$config->story->datatable->fieldList['estimate']['required'] = 'no';
|
||||
|
||||
$config->story->datatable->fieldList['stage']['title'] = 'stageAB';
|
||||
|
||||
+30
-30
@@ -9,7 +9,7 @@
|
||||
* @version $Id: en.php 5141 2013-07-15 05:57:15Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->story->create = "Story";
|
||||
$lang->story->create = "Create Story";
|
||||
$lang->story->batchCreate = "Batch Create";
|
||||
$lang->story->change = "Change";
|
||||
$lang->story->changed = 'Change';
|
||||
@@ -35,8 +35,8 @@ $lang->story->caseCountAB = 'C';
|
||||
$lang->story->linkStory = 'Link';
|
||||
$lang->story->unlinkStory = 'UnLinked';
|
||||
$lang->story->export = "Export Data";
|
||||
$lang->story->zeroCase = "Zero Case";
|
||||
$lang->story->zeroTask = "Zero Task";
|
||||
$lang->story->zeroCase = "Stories without cases";
|
||||
$lang->story->zeroTask = "Only Show Stories without tasks";
|
||||
$lang->story->reportChart = "Report";
|
||||
$lang->story->copyTitle = "Copy Title";
|
||||
$lang->story->batchChangePlan = "Batch Change Plans";
|
||||
@@ -58,25 +58,25 @@ $lang->story->title = 'Title';
|
||||
$lang->story->spec = 'Description';
|
||||
$lang->story->verify = 'Acceptance';
|
||||
$lang->story->pri = 'Priority';
|
||||
$lang->story->estimate = 'Hour';
|
||||
$lang->story->estimateAB = 'Hour';
|
||||
$lang->story->estimate = 'Est.(h)';
|
||||
$lang->story->estimateAB = 'Est.(h)';
|
||||
$lang->story->hour = 'Hour';
|
||||
$lang->story->status = 'Status';
|
||||
$lang->story->stage = 'Stage';
|
||||
$lang->story->stageAB = 'Stage';
|
||||
$lang->story->mailto = 'Mailto';
|
||||
$lang->story->openedBy = 'Open By';
|
||||
$lang->story->openedDate = 'Open on';
|
||||
$lang->story->openedBy = 'Creator';
|
||||
$lang->story->openedDate = 'Create on';
|
||||
$lang->story->assignedTo = 'Assignee';
|
||||
$lang->story->assignedDate = 'Assigned On';
|
||||
$lang->story->lastEditedBy = 'Last Edited By';
|
||||
$lang->story->lastEditedDate = 'Last Edited On';
|
||||
$lang->story->closedBy = 'Closed By';
|
||||
$lang->story->closedDate = 'Closed On';
|
||||
$lang->story->closedReason = 'Reason';
|
||||
$lang->story->assignedDate = 'Assigned on';
|
||||
$lang->story->lastEditedBy = 'Last Edited';
|
||||
$lang->story->lastEditedDate = 'Edited on';
|
||||
$lang->story->closedBy = 'Closed by';
|
||||
$lang->story->closedDate = 'Closed on';
|
||||
$lang->story->closedReason = 'Close Reason';
|
||||
$lang->story->rejectedReason = 'Reject Reason';
|
||||
$lang->story->reviewedBy = 'Reviewer';
|
||||
$lang->story->reviewedDate = 'Review on';
|
||||
$lang->story->reviewedDate = 'Reviewed on';
|
||||
$lang->story->version = 'Version';
|
||||
$lang->story->plan = 'Plan';
|
||||
$lang->story->planAB = 'Plan';
|
||||
@@ -119,11 +119,11 @@ $lang->story->stageList['closed'] = 'Closed';
|
||||
$lang->story->reasonList[''] = '';
|
||||
$lang->story->reasonList['done'] = 'Done';
|
||||
$lang->story->reasonList['subdivided'] = 'Decomposed';
|
||||
$lang->story->reasonList['duplicate'] = 'Duplicate';
|
||||
$lang->story->reasonList['duplicate'] = 'Duplicated';
|
||||
$lang->story->reasonList['postponed'] = 'Postponed';
|
||||
$lang->story->reasonList['willnotdo'] = "Ignore";
|
||||
$lang->story->reasonList['cancel'] = 'Cancelled';
|
||||
$lang->story->reasonList['bydesign'] = 'Default Design';
|
||||
$lang->story->reasonList['bydesign'] = 'By Design';
|
||||
//$lang->story->reasonList['isbug'] = 'Bug!';
|
||||
|
||||
$lang->story->reviewResultList[''] = '';
|
||||
@@ -161,7 +161,7 @@ $lang->story->legendLifeTime = 'Story Life ';
|
||||
$lang->story->legendRelated = 'Related Info';
|
||||
$lang->story->legendMailto = 'Mail To';
|
||||
$lang->story->legendAttatch = 'Files';
|
||||
$lang->story->legendProjectAndTask = $lang->projectCommon . 'Task';
|
||||
$lang->story->legendProjectAndTask = $lang->projectCommon . ' Task';
|
||||
$lang->story->legendBugs = 'Linked Bug';
|
||||
$lang->story->legendFromBug = 'From Bug';
|
||||
$lang->story->legendCases = 'Linked Case';
|
||||
@@ -214,22 +214,22 @@ $lang->story->action->unlinkchildstory = array('main' => '$date, unlinked by
|
||||
/* 统计报表。*/
|
||||
$lang->story->report = new stdclass();
|
||||
$lang->story->report->common = 'Report';
|
||||
$lang->story->report->select = 'Select the type of Story Report';
|
||||
$lang->story->report->select = 'Group Stories by';
|
||||
$lang->story->report->create = 'Generate';
|
||||
$lang->story->report->value = 'Story Count';
|
||||
|
||||
$lang->story->report->charts['storysPerProduct'] = 'per ' . $lang->productCommon;
|
||||
$lang->story->report->charts['storysPerModule'] = 'per Module';
|
||||
$lang->story->report->charts['storysPerSource'] = 'per Source';
|
||||
$lang->story->report->charts['storysPerPlan'] = 'per Plan';
|
||||
$lang->story->report->charts['storysPerStatus'] = 'per Status';
|
||||
$lang->story->report->charts['storysPerStage'] = 'per Stage';
|
||||
$lang->story->report->charts['storysPerPri'] = 'per Priority';
|
||||
$lang->story->report->charts['storysPerEstimate'] = 'per Hour';
|
||||
$lang->story->report->charts['storysPerOpenedBy'] = 'per CreatedBy';
|
||||
$lang->story->report->charts['storysPerAssignedTo'] = 'per Assignee';
|
||||
$lang->story->report->charts['storysPerClosedReason'] = 'per Closed Reason';
|
||||
$lang->story->report->charts['storysPerChange'] = 'per Change';
|
||||
$lang->story->report->charts['storysPerProduct'] = 'by ' . $lang->productCommon;
|
||||
$lang->story->report->charts['storysPerModule'] = 'by Module';
|
||||
$lang->story->report->charts['storysPerSource'] = 'by Source';
|
||||
$lang->story->report->charts['storysPerPlan'] = 'by Plan';
|
||||
$lang->story->report->charts['storysPerStatus'] = 'by Status';
|
||||
$lang->story->report->charts['storysPerStage'] = 'by Stage';
|
||||
$lang->story->report->charts['storysPerPri'] = 'by Priority';
|
||||
$lang->story->report->charts['storysPerEstimate'] = 'by Hour';
|
||||
$lang->story->report->charts['storysPerOpenedBy'] = 'by CreatedBy';
|
||||
$lang->story->report->charts['storysPerAssignedTo'] = 'by Assignee';
|
||||
$lang->story->report->charts['storysPerClosedReason'] = 'by Closed Reason';
|
||||
$lang->story->report->charts['storysPerChange'] = 'by Change times';
|
||||
|
||||
$lang->story->report->options = new stdclass();
|
||||
$lang->story->report->options->graph = new stdclass();
|
||||
|
||||
@@ -84,7 +84,7 @@ $config->task->datatable->fieldList['status']['required'] = 'no';
|
||||
|
||||
$config->task->datatable->fieldList['estimate']['title'] = 'estimateAB';
|
||||
$config->task->datatable->fieldList['estimate']['fixed'] = 'no';
|
||||
$config->task->datatable->fieldList['estimate']['width'] = '40';
|
||||
$config->task->datatable->fieldList['estimate']['width'] = '57';
|
||||
$config->task->datatable->fieldList['estimate']['required'] = 'no';
|
||||
|
||||
$config->task->datatable->fieldList['consumed']['title'] = 'consumedAB';
|
||||
|
||||
+50
-50
@@ -10,17 +10,17 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->task->index = "Index";
|
||||
$lang->task->create = "Task";
|
||||
$lang->task->create = "Create Task";
|
||||
$lang->task->batchCreate = "Batch Create Task";
|
||||
$lang->task->batchEdit = "Batch Edit";
|
||||
$lang->task->batchChangeModule = "Batch Change Module";
|
||||
$lang->task->batchClose = "Batch Close";
|
||||
$lang->task->batchCancel = "Batch Cancel";
|
||||
$lang->task->edit = "Update";
|
||||
$lang->task->edit = "Edit";
|
||||
$lang->task->delete = "Delete";
|
||||
$lang->task->deleted = "Deleted";
|
||||
$lang->task->delayed = 'Delayed';
|
||||
$lang->task->view = "Info";
|
||||
$lang->task->view = "Overview";
|
||||
$lang->task->logEfforts = "Hour";
|
||||
$lang->task->record = "Est.";
|
||||
$lang->task->start = "Start";
|
||||
@@ -36,7 +36,7 @@ $lang->task->fromBug = 'From Bug';
|
||||
$lang->task->case = 'Related Case';
|
||||
$lang->task->confirmStoryChange = "Confirm Story Change";
|
||||
$lang->task->progress = 'Progress';
|
||||
$lang->task->progressTips = 'Consumed/(Consumed+Remained)';
|
||||
$lang->task->progressTips = 'Cost/(Cost+Left)';
|
||||
$lang->task->copy = 'Duplicate a Task';
|
||||
|
||||
$lang->task->common = 'Task';
|
||||
@@ -47,25 +47,25 @@ $lang->task->moduleAB = 'Module';
|
||||
$lang->task->story = 'Story';
|
||||
$lang->task->storyAB = 'Story';
|
||||
$lang->task->storySpec = 'Story Description';
|
||||
$lang->task->storyVerify = 'Acceptance';
|
||||
$lang->task->storyVerify = 'Acceptance Criteria';
|
||||
$lang->task->name = 'Name';
|
||||
$lang->task->type = 'Type';
|
||||
$lang->task->pri = 'Priority';
|
||||
$lang->task->mailto = 'Mailto';
|
||||
$lang->task->estimate = 'Hour';
|
||||
$lang->task->estimateAB = 'Hour';
|
||||
$lang->task->left = 'Remained';
|
||||
$lang->task->leftAB = 'Remained';
|
||||
$lang->task->consumed = 'Consumed';
|
||||
$lang->task->consumedAB = 'Consume';
|
||||
$lang->task->mailto = 'Mail to';
|
||||
$lang->task->estimate = 'Est.(h)';
|
||||
$lang->task->estimateAB = 'Est.(h)';
|
||||
$lang->task->left = 'Left';
|
||||
$lang->task->leftAB = 'Left';
|
||||
$lang->task->consumed = 'Cost';
|
||||
$lang->task->consumedAB = 'Cost';
|
||||
$lang->task->hour = 'Hour';
|
||||
$lang->task->consumedThisTime = 'Hour';
|
||||
$lang->task->leftThisTime = 'Remained';
|
||||
$lang->task->leftThisTime = 'Left';
|
||||
$lang->task->datePlan = 'Plan';
|
||||
$lang->task->estStarted = 'Estimate Start';
|
||||
$lang->task->realStarted = 'Actual Start';
|
||||
$lang->task->date = 'Date';
|
||||
$lang->task->deadline = 'Finish Date';
|
||||
$lang->task->deadline = 'Deadline';
|
||||
$lang->task->deadlineAB = 'Deadline';
|
||||
$lang->task->status = 'Status';
|
||||
$lang->task->desc = 'Description';
|
||||
@@ -75,33 +75,33 @@ $lang->task->batchAssignTo = 'Batch Assign';
|
||||
$lang->task->assignedTo = 'Assignee';
|
||||
$lang->task->assignedToAB = 'Assignee';
|
||||
$lang->task->assignedDate = 'Assign on';
|
||||
$lang->task->openedBy = 'Created By';
|
||||
$lang->task->openedBy = 'Created by';
|
||||
$lang->task->openedDate = 'Created on';
|
||||
$lang->task->openedDateAB = 'Add';
|
||||
$lang->task->finishedBy = 'Finished By';
|
||||
$lang->task->finishedByAB = 'Finish';
|
||||
$lang->task->finishedBy = 'Finished';
|
||||
$lang->task->finishedByAB = 'Finished';
|
||||
$lang->task->finishedDate = 'Finished on';
|
||||
$lang->task->finishedDateAB = 'Date';
|
||||
$lang->task->canceledBy = 'Cancelled By';
|
||||
$lang->task->canceledBy = 'Cancelled by';
|
||||
$lang->task->canceledDate = 'Cancelled on';
|
||||
$lang->task->closedBy = 'Closed By';
|
||||
$lang->task->closedBy = 'Closed by';
|
||||
$lang->task->closedDate = 'Close Date';
|
||||
$lang->task->closedReason = 'Cancel Reason';
|
||||
$lang->task->lastEditedBy = 'Last Edited By';
|
||||
$lang->task->lastEditedDate = 'Last Edited on';
|
||||
$lang->task->lastEditedBy = 'Edited by';
|
||||
$lang->task->lastEditedDate = 'Edited on';
|
||||
$lang->task->lastEdited = 'Last Edited';
|
||||
$lang->task->recordEstimate = 'Hour';
|
||||
$lang->task->editEstimate = 'Edit';
|
||||
$lang->task->deleteEstimate = 'Delete';
|
||||
$lang->task->recordEstimate = 'Make Progress';
|
||||
$lang->task->editEstimate = 'Edit Est.';
|
||||
$lang->task->deleteEstimate = 'Delete Est.';
|
||||
$lang->task->colorTag = 'Color Tag';
|
||||
$lang->task->files = 'Files';
|
||||
$lang->task->hasConsumed = 'Consumed';
|
||||
$lang->task->hasConsumed = 'Cost';
|
||||
$lang->task->multiple = 'Multiple Tasks';
|
||||
$lang->task->multipleAB = 'M';
|
||||
$lang->task->team = 'Team';
|
||||
$lang->task->multipleAB = ' Multiple';
|
||||
$lang->task->team = 'Select';
|
||||
$lang->task->transfer = 'Transfer';
|
||||
$lang->task->transferTo = 'Transfer To';
|
||||
$lang->task->children = 'Child';
|
||||
$lang->task->children = 'Child Task';
|
||||
$lang->task->childrenAB = 'Child';
|
||||
$lang->task->parent = 'Parent Task';
|
||||
$lang->task->parentAB = 'Parent Task';
|
||||
@@ -156,14 +156,14 @@ $lang->task->legendDesc = 'Task Description';
|
||||
|
||||
$lang->task->confirmDelete = "Do you want to delete this Task?";
|
||||
$lang->task->confirmDeleteEstimate = "Do you want to delete it?";
|
||||
$lang->task->copyStoryTitle = "Same Story";
|
||||
$lang->task->copyStoryTitle = "Copy Story";
|
||||
$lang->task->afterSubmit = "After Created,";
|
||||
$lang->task->successSaved = "Created!";
|
||||
$lang->task->delayWarning = " <strong class='delayed f-14px'> Delay %s days </strong>";
|
||||
$lang->task->remindBug = "This Task is converted from a Bug. Do you want to update te Bug:%s?";
|
||||
$lang->task->confirmChangeProject = "If you change {$lang->projectCommon}, the related Module, Story and Assignor will be changed. Do you want to do it?";
|
||||
$lang->task->confirmFinish = '"Remianed Hour" is 0. Do you want to change the Status to "Done"?';
|
||||
$lang->task->confirmRecord = '"Remained Hour" is 0. Do you want to set Task as "Done"?';
|
||||
$lang->task->confirmFinish = '"Left Hour" is 0. Do you want to change the Status to "Done"?';
|
||||
$lang->task->confirmRecord = '"Left Hour" is 0. Do you want to set Task as "Done"?';
|
||||
$lang->task->noticeLinkStory = "No story has been linked. You can %s for this project, then %s.";
|
||||
$lang->task->noticeSaveRecord = 'Your Hour is not saved. Please save it first.';
|
||||
$lang->task->commentActions = '%s. %s, commented by <strong>%s</strong>.';
|
||||
@@ -173,7 +173,7 @@ $lang->task->error->consumedNumber = '"Consumed" must be numbers.';
|
||||
$lang->task->error->estimateNumber = '"Hour" must be numbers.';
|
||||
$lang->task->error->consumedSmall = '"Consumed" must larger than before.';
|
||||
$lang->task->error->consumedThisTime = 'Please enter "Hour"';
|
||||
$lang->task->error->left = 'Please enter "Remained Hour"';
|
||||
$lang->task->error->left = 'Please enter "Left Hour"';
|
||||
$lang->task->error->work = '"Remark" must be less than %d characteres.';
|
||||
$lang->task->error->skipClose = 'Task: %s is not “Done” or “Cancelled”. Do you want to close it?';
|
||||
$lang->task->error->consumed = 'Task: %s Hour must be more than 0. Ignore changes to this Task.';
|
||||
@@ -181,23 +181,23 @@ $lang->task->error->consumed = 'Task: %s Hour must be more than 0. Ignor
|
||||
/* Report. */
|
||||
$lang->task->report = new stdclass();
|
||||
$lang->task->report->common = 'Report';
|
||||
$lang->task->report->select = 'Select the type of Task Report';
|
||||
$lang->task->report->select = 'Group Tasks by';
|
||||
$lang->task->report->create = 'Create';
|
||||
$lang->task->report->value = 'Task Count';
|
||||
|
||||
$lang->task->report->charts['tasksPerProject'] = 'per ' . $lang->projectCommon;
|
||||
$lang->task->report->charts['tasksPerModule'] = 'per Module';
|
||||
$lang->task->report->charts['tasksPerAssignedTo'] = 'per Assignee';
|
||||
$lang->task->report->charts['tasksPerType'] = 'per Category';
|
||||
$lang->task->report->charts['tasksPerPri'] = 'per Priority';
|
||||
$lang->task->report->charts['tasksPerStatus'] = 'per Status';
|
||||
$lang->task->report->charts['tasksPerDeadline'] = 'per Deadline';
|
||||
$lang->task->report->charts['tasksPerEstimate'] = 'per Hour';
|
||||
$lang->task->report->charts['tasksPerLeft'] = 'per Remained Hour';
|
||||
$lang->task->report->charts['tasksPerConsumed'] = 'per Consumed Hour';
|
||||
$lang->task->report->charts['tasksPerFinishedBy'] = 'per FinishedBy';
|
||||
$lang->task->report->charts['tasksPerClosedReason'] = 'per Close Reason';
|
||||
$lang->task->report->charts['finishedTasksPerDay'] = 'per Finished/Day';
|
||||
$lang->task->report->charts['tasksPerProject'] = 'by ' . $lang->projectCommon;
|
||||
$lang->task->report->charts['tasksPerModule'] = 'by Module';
|
||||
$lang->task->report->charts['tasksPerAssignedTo'] = 'by Assignee';
|
||||
$lang->task->report->charts['tasksPerType'] = 'by Category';
|
||||
$lang->task->report->charts['tasksPerPri'] = 'by Priority';
|
||||
$lang->task->report->charts['tasksPerStatus'] = 'by Status';
|
||||
$lang->task->report->charts['tasksPerDeadline'] = 'by Deadline';
|
||||
$lang->task->report->charts['tasksPerEstimate'] = 'by Hour';
|
||||
$lang->task->report->charts['tasksPerLeft'] = 'by Left Hour';
|
||||
$lang->task->report->charts['tasksPerConsumed'] = 'by Cost Hour';
|
||||
$lang->task->report->charts['tasksPerFinishedBy'] = 'by FinishedBy';
|
||||
$lang->task->report->charts['tasksPerClosedReason'] = 'by Close Reason';
|
||||
$lang->task->report->charts['finishedTasksPerDay'] = 'by Finished/Day';
|
||||
|
||||
$lang->task->report->options = new stdclass();
|
||||
$lang->task->report->options->graph = new stdclass();
|
||||
@@ -227,8 +227,8 @@ $lang->task->report->tasksPerPri->item = 'Priority';
|
||||
$lang->task->report->tasksPerStatus->item = 'Status';
|
||||
$lang->task->report->tasksPerDeadline->item = 'Date';
|
||||
$lang->task->report->tasksPerEstimate->item = 'Hour';
|
||||
$lang->task->report->tasksPerLeft->item = 'Remain';
|
||||
$lang->task->report->tasksPerConsumed->item = 'Consume';
|
||||
$lang->task->report->tasksPerLeft->item = 'Left';
|
||||
$lang->task->report->tasksPerConsumed->item = 'Cost';
|
||||
$lang->task->report->tasksPerFinishedBy->item = 'User';
|
||||
$lang->task->report->tasksPerClosedReason->item = 'Reason';
|
||||
$lang->task->report->finishedTasksPerDay->item = 'Date';
|
||||
@@ -255,8 +255,8 @@ $lang->task->report->tasksPerPri->graph->xAxisName = 'Priority';
|
||||
$lang->task->report->tasksPerStatus->graph->xAxisName = 'Status';
|
||||
$lang->task->report->tasksPerDeadline->graph->xAxisName = 'Date';
|
||||
$lang->task->report->tasksPerEstimate->graph->xAxisName = 'Hour';
|
||||
$lang->task->report->tasksPerLeft->graph->xAxisName = 'Remained';
|
||||
$lang->task->report->tasksPerConsumed->graph->xAxisName = 'Consumed';
|
||||
$lang->task->report->tasksPerLeft->graph->xAxisName = 'Left';
|
||||
$lang->task->report->tasksPerConsumed->graph->xAxisName = 'Cost';
|
||||
$lang->task->report->tasksPerFinishedBy->graph->xAxisName = 'User';
|
||||
$lang->task->report->tasksPerClosedReason->graph->xAxisName = 'Close Reason';
|
||||
|
||||
|
||||
+39
-36
@@ -22,28 +22,31 @@ $lang->testcase->pri = 'Priority';
|
||||
$lang->testcase->type = 'Type';
|
||||
$lang->testcase->status = 'Status';
|
||||
$lang->testcase->steps = 'Steps';
|
||||
$lang->testcase->openedBy = 'Open By';
|
||||
$lang->testcase->openedDate = 'Open on';
|
||||
$lang->testcase->lastEditedBy = 'Last Edited by';
|
||||
$lang->testcase->openedBy = 'Creator';
|
||||
$lang->testcase->openedDate = 'Create on';
|
||||
$lang->testcase->lastEditedBy = 'Edited by';
|
||||
$lang->testcase->result = 'Result';
|
||||
$lang->testcase->real = 'Real';
|
||||
$lang->testcase->real = 'Details';
|
||||
$lang->testcase->keywords = 'Keywords';
|
||||
$lang->testcase->files = 'Files';
|
||||
$lang->testcase->linkCase = 'Linked Cases';
|
||||
$lang->testcase->linkCases = 'Linked Cases';
|
||||
$lang->testcase->unlinkCase = 'Unlinked';
|
||||
$lang->testcase->linkCases = 'Link Cases';
|
||||
$lang->testcase->unlinkCase = 'Unlink Cases';
|
||||
$lang->testcase->stage = 'Stage';
|
||||
$lang->testcase->reviewedBy = 'Reviewed By';
|
||||
$lang->testcase->reviewedDate = 'Reviewed Date';
|
||||
$lang->testcase->reviewedDate = 'Reviewed on';
|
||||
$lang->testcase->reviewResult = 'Review Result';
|
||||
$lang->testcase->reviewedByAB = 'By';
|
||||
$lang->testcase->reviewedDateAB = 'Date';
|
||||
$lang->testcase->reviewResultAB = 'Result';
|
||||
$lang->testcase->forceNotReview = 'No Review';
|
||||
$lang->testcase->lastEditedByAB = 'Last Edited By';
|
||||
$lang->testcase->lastEditedDateAB = 'Last Edited on';
|
||||
$lang->testcase->lastEditedDate = 'Last Edited on';
|
||||
$lang->testcase->lastEditedByAB = 'Edited By';
|
||||
$lang->testcase->lastEditedDateAB = 'Edited on';
|
||||
$lang->testcase->lastEditedDate = 'Edited on';
|
||||
$lang->testcase->version = 'Case Version';
|
||||
$lang->testcase->lastRunner = 'Last Run By';
|
||||
$lang->testcase->lastRunDate = 'Run Date';
|
||||
$lang->testcase->assignedTo = 'Assigned To';
|
||||
$lang->testcase->lastRunner = 'LastRun';
|
||||
$lang->testcase->lastRunDate = 'Time';
|
||||
$lang->testcase->assignedTo = 'To';
|
||||
$lang->testcase->colorTag = 'Color Tag';
|
||||
$lang->testcase->lastRunResult = 'Result';
|
||||
$lang->testcase->desc = 'Step';
|
||||
@@ -69,10 +72,10 @@ $lang->testcase->stepVersion = 'Version';
|
||||
|
||||
$lang->testcase->common = 'Case';
|
||||
$lang->testcase->index = "Home";
|
||||
$lang->testcase->create = "Case";
|
||||
$lang->testcase->create = "Create Case";
|
||||
$lang->testcase->batchCreate = "Batch Create Case";
|
||||
$lang->testcase->delete = "Delete";
|
||||
$lang->testcase->view = "Info";
|
||||
$lang->testcase->view = "Overview";
|
||||
$lang->testcase->review = "Review";
|
||||
$lang->testcase->batchReview = "Batch Review";
|
||||
$lang->testcase->edit = "Edit";
|
||||
@@ -84,7 +87,7 @@ $lang->testcase->batchDelete = "Batch Delete ";
|
||||
$lang->testcase->batchConfirmStoryChange = "Batch Confirm Story Change";
|
||||
$lang->testcase->batchCaseTypeChange = "Batch Change type";
|
||||
$lang->testcase->browse = "Cases";
|
||||
$lang->testcase->groupCase = "View By";
|
||||
$lang->testcase->groupCase = "View By Group";
|
||||
$lang->testcase->import = "Import";
|
||||
$lang->testcase->importFile = "Import CSV";
|
||||
$lang->testcase->importFromLib = "Import From Library";
|
||||
@@ -102,23 +105,23 @@ $lang->testcase->stepChild = 'Child';
|
||||
|
||||
$lang->testcase->new = 'New';
|
||||
|
||||
$lang->testcase->num = 'Cases:';
|
||||
$lang->testcase->num = 'Cases:';
|
||||
|
||||
$lang->testcase->deleteStep = 'Delete';
|
||||
$lang->testcase->insertBefore = 'Inserted Before';
|
||||
$lang->testcase->insertAfter = 'Inserted After';
|
||||
|
||||
$lang->testcase->assignToMe = 'Assigned to Me';
|
||||
$lang->testcase->openedByMe = 'Created by Me';
|
||||
$lang->testcase->allCases = 'All';
|
||||
$lang->testcase->needConfirm = 'Story Change';
|
||||
$lang->testcase->bySearch = 'Search';
|
||||
$lang->testcase->assignToMe = 'AssignedToMe';
|
||||
$lang->testcase->openedByMe = 'CreatedByMe';
|
||||
$lang->testcase->allCases = 'All';
|
||||
$lang->testcase->needConfirm = 'StoryChanged';
|
||||
$lang->testcase->bySearch = 'Search';
|
||||
|
||||
$lang->testcase->lblStory = 'Story';
|
||||
$lang->testcase->lblLastEdited = 'Last Edit';
|
||||
$lang->testcase->lblTypeValue = 'Type List';
|
||||
$lang->testcase->lblStageValue = 'Stage List';
|
||||
$lang->testcase->lblStatusValue = 'Status List';
|
||||
$lang->testcase->lblStory = 'Story';
|
||||
$lang->testcase->lblLastEdited = 'Last Edit';
|
||||
$lang->testcase->lblTypeValue = 'Type List';
|
||||
$lang->testcase->lblStageValue = 'Stage List';
|
||||
$lang->testcase->lblStatusValue = 'Status List';
|
||||
|
||||
$lang->testcase->legendBasicInfo = 'Basic Info';
|
||||
$lang->testcase->legendAttatch = 'File';
|
||||
@@ -141,7 +144,7 @@ $lang->testcase->priList[4] = 4;
|
||||
|
||||
/* Define the types. */
|
||||
$lang->testcase->typeList[''] = '';
|
||||
$lang->testcase->typeList['feature'] = 'Feature';
|
||||
$lang->testcase->typeList['feature'] = 'Function';
|
||||
$lang->testcase->typeList['performance'] = 'Performance';
|
||||
$lang->testcase->typeList['config'] = 'Config';
|
||||
$lang->testcase->typeList['install'] = 'Install';
|
||||
@@ -149,13 +152,13 @@ $lang->testcase->typeList['security'] = 'Security';
|
||||
$lang->testcase->typeList['interface'] = 'Interface';
|
||||
$lang->testcase->typeList['other'] = 'Other';
|
||||
|
||||
$lang->testcase->stageList[''] = '';
|
||||
$lang->testcase->stageList['unittest'] = 'Unit Test';
|
||||
$lang->testcase->stageList['feature'] = 'Feature Test';
|
||||
$lang->testcase->stageList['intergrate'] = 'Integration Test';
|
||||
$lang->testcase->stageList['system'] = 'System Test';
|
||||
$lang->testcase->stageList['smoke'] = 'Smoking Test';
|
||||
$lang->testcase->stageList['bvt'] = 'BVT Test';
|
||||
$lang->testcase->stageList[''] = '';
|
||||
$lang->testcase->stageList['unittest'] = 'Unit Test';
|
||||
$lang->testcase->stageList['feature'] = 'Function Test';
|
||||
$lang->testcase->stageList['intergrate'] = 'Integration Test';
|
||||
$lang->testcase->stageList['system'] = 'System Test';
|
||||
$lang->testcase->stageList['smoke'] = 'Smoking Test';
|
||||
$lang->testcase->stageList['bvt'] = 'BVT Test';
|
||||
|
||||
$lang->testcase->reviewResultList[''] = '';
|
||||
$lang->testcase->reviewResultList['pass'] = 'Pass';
|
||||
@@ -165,7 +168,7 @@ $lang->testcase->groups[''] = 'Group ';
|
||||
$lang->testcase->groups['story'] = 'Story Group';
|
||||
|
||||
$lang->testcase->statusList[''] = '';
|
||||
$lang->testcase->statusList['wait'] = 'Wait';
|
||||
$lang->testcase->statusList['wait'] = 'toReview';
|
||||
$lang->testcase->statusList['normal'] = 'Normal';
|
||||
$lang->testcase->statusList['blocked'] = 'Blocked';
|
||||
$lang->testcase->statusList['investigate'] = 'Investigating';
|
||||
|
||||
@@ -36,6 +36,9 @@ $lang->testcase->stage = '适用阶段';
|
||||
$lang->testcase->reviewedBy = '由谁评审';
|
||||
$lang->testcase->reviewedDate = '评审时间';
|
||||
$lang->testcase->reviewResult = '评审结果';
|
||||
$lang->testcase->reviewedByAB = '评审人';
|
||||
$lang->testcase->reviewedDateAB = '日期';
|
||||
$lang->testcase->reviewResultAB = '结果';
|
||||
$lang->testcase->forceNotReview = '不需要评审';
|
||||
$lang->testcase->lastEditedByAB = '修改者';
|
||||
$lang->testcase->lastEditedDateAB = '修改日期';
|
||||
@@ -108,23 +111,23 @@ $lang->testcase->deleteStep = '删除';
|
||||
$lang->testcase->insertBefore = '之前添加';
|
||||
$lang->testcase->insertAfter = '之后添加';
|
||||
|
||||
$lang->testcase->assignToMe = '给我的用例';
|
||||
$lang->testcase->openedByMe = '我建的用例';
|
||||
$lang->testcase->allCases = '所有';
|
||||
$lang->testcase->needConfirm = '需求变动';
|
||||
$lang->testcase->bySearch = '搜索';
|
||||
$lang->testcase->assignToMe = '给我的用例';
|
||||
$lang->testcase->openedByMe = '我建的用例';
|
||||
$lang->testcase->allCases = '所有';
|
||||
$lang->testcase->needConfirm = '需求变动';
|
||||
$lang->testcase->bySearch = '搜索';
|
||||
|
||||
$lang->testcase->lblStory = '相关需求';
|
||||
$lang->testcase->lblLastEdited = '最后编辑';
|
||||
$lang->testcase->lblTypeValue = '类型可选值列表';
|
||||
$lang->testcase->lblStageValue = '阶段可选值列表';
|
||||
$lang->testcase->lblStatusValue = '状态可选值列表';
|
||||
$lang->testcase->lblStory = '相关需求';
|
||||
$lang->testcase->lblLastEdited = '最后编辑';
|
||||
$lang->testcase->lblTypeValue = '类型可选值列表';
|
||||
$lang->testcase->lblStageValue = '阶段可选值列表';
|
||||
$lang->testcase->lblStatusValue = '状态可选值列表';
|
||||
|
||||
$lang->testcase->legendBasicInfo = '基本信息';
|
||||
$lang->testcase->legendAttatch = '附件';
|
||||
$lang->testcase->legendLinkBugs = '相关Bug';
|
||||
$lang->testcase->legendOpenAndEdit = '创建编辑';
|
||||
$lang->testcase->legendComment = '备注';
|
||||
$lang->testcase->legendBasicInfo = '基本信息';
|
||||
$lang->testcase->legendAttatch = '附件';
|
||||
$lang->testcase->legendLinkBugs = '相关Bug';
|
||||
$lang->testcase->legendOpenAndEdit = '创建编辑';
|
||||
$lang->testcase->legendComment = '备注';
|
||||
|
||||
$lang->testcase->confirmDelete = '您确认要删除该测试用例吗?';
|
||||
$lang->testcase->confirmBatchDelete = '您确认要批量删除这些测试用例吗?';
|
||||
|
||||
@@ -36,6 +36,9 @@ $lang->testcase->stage = '適用階段';
|
||||
$lang->testcase->reviewedBy = '由誰評審';
|
||||
$lang->testcase->reviewedDate = '評審時間';
|
||||
$lang->testcase->reviewResult = '評審結果';
|
||||
$lang->testcase->reviewedByAB = '評審者';
|
||||
$lang->testcase->reviewedDateAB = '時間';
|
||||
$lang->testcase->reviewResultAB = '結果';
|
||||
$lang->testcase->forceNotReview = '不需要評審';
|
||||
$lang->testcase->lastEditedByAB = '修改者';
|
||||
$lang->testcase->lastEditedDateAB = '修改日期';
|
||||
|
||||
@@ -24,15 +24,15 @@
|
||||
<form method='post' target='hiddenwin' class='form-condensed'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-80px'><?php echo $lang->testcase->reviewedDate;?></th>
|
||||
<th class='w-80px'><?php echo $lang->testcase->reviewedDateAB;?></th>
|
||||
<td class='w-p25-f'><?php echo html::input('reviewedDate', helper::today(), "class='form-control form-date'");?></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->reviewResult;?></th>
|
||||
<th><?php echo $lang->testcase->reviewResultAB;?></th>
|
||||
<td><?php echo html::select('result', $lang->testcase->reviewResultList, '', 'class=form-control');?></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->reviewedBy;?></th>
|
||||
<th><?php echo $lang->testcase->reviewedByAB;?></th>
|
||||
<td colspan='2'><?php echo html::select('reviewedBy[]', $users, $app->user->account, "class='form-control chosen' multiple");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
<?php
|
||||
$lang->testreport->common = 'Test Report';
|
||||
$lang->testreport->browse = 'Reports';
|
||||
$lang->testreport->create = 'Create';
|
||||
$lang->testreport->edit = 'Edit';
|
||||
$lang->testreport->browse = 'Browser Reports';
|
||||
$lang->testreport->create = 'Create Report';
|
||||
$lang->testreport->edit = 'Edit Report';
|
||||
$lang->testreport->delete = 'Delete';
|
||||
$lang->testreport->export = 'Export';
|
||||
$lang->testreport->view = 'View';
|
||||
$lang->testreport->view = 'Report Details';
|
||||
$lang->testreport->recreate = 'Re-Create';
|
||||
|
||||
$lang->testreport->title = 'Title';
|
||||
$lang->testreport->bugTitle = 'Bug Title';
|
||||
$lang->testreport->storyTitle = 'Story Title';
|
||||
$lang->testreport->project = 'Project';
|
||||
$lang->testreport->testtask = 'Test Build';
|
||||
$lang->testreport->tasks = $lang->testreport->testtask;
|
||||
$lang->testreport->startEnd = 'Start and end';
|
||||
$lang->testreport->startEnd = 'Start&End';
|
||||
$lang->testreport->owner = 'Owner';
|
||||
$lang->testreport->members = 'Members';
|
||||
$lang->testreport->begin = 'Begin';
|
||||
@@ -20,12 +22,12 @@ $lang->testreport->end = 'End';
|
||||
$lang->testreport->stories = 'Stories of Test';
|
||||
$lang->testreport->bugs = 'Bugs';
|
||||
$lang->testreport->builds = 'Build Info';
|
||||
$lang->testreport->goal = 'Product Goal';
|
||||
$lang->testreport->goal = 'Project Goal';
|
||||
$lang->testreport->cases = 'Cases';
|
||||
$lang->testreport->bugInfo = 'Bug Distribution';
|
||||
$lang->testreport->report = 'Report';
|
||||
$lang->testreport->report = 'Summary';
|
||||
$lang->testreport->legacyBugs = 'Legacy Bugs';
|
||||
$lang->testreport->createdDate = 'Created Date';
|
||||
$lang->testreport->createdDate = 'Date';
|
||||
$lang->testreport->objectID = 'Object';
|
||||
$lang->testreport->profile = 'Profile';
|
||||
$lang->testreport->value = 'Value';
|
||||
@@ -33,9 +35,9 @@ $lang->testreport->none = 'None';
|
||||
$lang->testreport->all = 'All Report';
|
||||
|
||||
$lang->testreport->legendBasic = 'Basic Info';
|
||||
$lang->testreport->legendStoryAndBug = 'Stories and Bug of Test';
|
||||
$lang->testreport->legendStoryAndBug = 'Stories and Bugs of Test';
|
||||
$lang->testreport->legendBuild = 'Build Info';
|
||||
$lang->testreport->legendCase = 'Information for executing cases';
|
||||
$lang->testreport->legendCase = 'Case executed';
|
||||
$lang->testreport->legendLegacyBugs = 'Legacy Bugs';
|
||||
$lang->testreport->legendReport = 'Report';
|
||||
$lang->testreport->legendComment = 'Sum up';
|
||||
@@ -52,20 +54,20 @@ $lang->testreport->legacyBugs = 'Legacy Bugs';
|
||||
$lang->testreport->bugConfirmedRate = 'Confirmed Bug Rate (Solution is fixed or postponed / status is resolved or closed)';
|
||||
$lang->testreport->bugCreateByCaseRate = 'Bug Created in Case Rate (Bugs created in cases / Newly added bugs)';
|
||||
|
||||
$lang->testreport->caseSummary = ' <strong>%s</strong> cases in total, <strong>%s</strong> cases performed, <strong>%s</strong> results generated, <strong>%s</strong> cases failed.';
|
||||
$lang->testreport->caseSummary = ' <strong>%s</strong> cases in Total : <strong>%s</strong> performed, <strong>%s</strong> results, <strong>%s</strong> failed.';
|
||||
$lang->testreport->buildSummary = 'Tested <strong>%s</strong> build.';
|
||||
$lang->testreport->confirmDelete = 'Do you want tot delete this report?';
|
||||
$lang->testreport->moreNotice = 'More features can be extended with reference to the ZenTao extension mechanism, or you can contact us for customization.';
|
||||
$lang->testreport->exportNotice = "Export By <a href='http://www.zentao.net' target='_blank' style='color:grey'>ZenTaoPMS</a>";
|
||||
$lang->testreport->noReport = "The report has not yet been generated. Please check it later.";
|
||||
$lang->testreport->foundBugTip = "OpenBuild in builds and create time in test time within the range of Bug number.";
|
||||
$lang->testreport->legacyBugTip = "The Bug state is activated, or the settling time of Bug is at the end of the test.";
|
||||
$lang->testreport->fromCaseBugTip = "Bug created after failure of use case in test time range.";
|
||||
$lang->testreport->foundBugTip = "Bugs created in this build and created in the test period.";
|
||||
$lang->testreport->legacyBugTip = "Active Bugs, or the resolved beyond the test period.";
|
||||
$lang->testreport->fromCaseBugTip = "Bugs created after case-failure in the test period.";
|
||||
$lang->testreport->errorTrunk = "The trunk version cannot create a test report. Please modify the associated version!";
|
||||
|
||||
$lang->testreport->bugSummary = <<<EOD
|
||||
<strong>%s</strong> Bug(s) generated in total <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->foundBugTip}'><i class='icon-info-sign'></i></a>,
|
||||
<strong>%s</strong> Bug(s) remained unresolve <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->legacyBugTip}'><i class='icon-info-sign'></i></a>,
|
||||
<strong>%s</strong> Bug(s) failure of case <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->fromCaseBugTip}'><i class='icon-info-sign></i></a>.
|
||||
Confirmed bug rate(bug resolution is resolved or delayedg status is resolved or closed): <strong>%s</strong>,Bug created in caserate(Bugs created in cases / Newly generated bugs): <strong>%s</strong>'
|
||||
<strong>%s</strong> Bug(s) failure of case <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->fromCaseBugTip}'><i class='icon-info-sign'></i></a>.
|
||||
Bug Effective Rate <a data-toggle='tooltip' class='text-warning' title='resolution is resolved or delayedg / status is resolved or closed'><i class='icon-info-sign'></i></a>: <strong>%s</strong>,Bugs created from case Rate<a data-toggle='tooltip' class='text-warning' title='Bugs created from cases / bugs'><i class='icon-info-sign'></i></a>: <strong>%s</strong>
|
||||
EOD;
|
||||
|
||||
@@ -9,6 +9,8 @@ $lang->testreport->view = '报告详情';
|
||||
$lang->testreport->recreate = '重新生成报告';
|
||||
|
||||
$lang->testreport->title = '标题';
|
||||
$lang->testreport->bugTitle = 'Bug 标题';
|
||||
$lang->testreport->storyTitle = '需求标题';
|
||||
$lang->testreport->project = '所属项目';
|
||||
$lang->testreport->testtask = '测试版本';
|
||||
$lang->testreport->tasks = $lang->testreport->testtask;
|
||||
|
||||
@@ -9,6 +9,8 @@ $lang->testreport->view = '報告詳情';
|
||||
$lang->testreport->recreate = '重新生成報告';
|
||||
|
||||
$lang->testreport->title = '標題';
|
||||
$lang->testreport->bugTitle = 'Bug 標題';
|
||||
$lang->testreport->storyTitle = '需求標題';
|
||||
$lang->testreport->project = '所屬項目';
|
||||
$lang->testreport->testtask = '測試版本';
|
||||
$lang->testreport->tasks = $lang->testreport->testtask;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<tr>
|
||||
<th class='w-id'> <?php echo $lang->idAB;?></th>
|
||||
<th class='w-pri'> <?php echo $lang->priAB;?></th>
|
||||
<th> <?php echo $lang->bug->title;?></th>
|
||||
<th> <?php echo $lang->testreport->bugTitle;?></th>
|
||||
<th class='w-user'> <?php echo $lang->openedByAB;?></th>
|
||||
<th class='w-user'><?php echo $lang->bug->resolvedBy;?></th>
|
||||
<th class='w-130px'><?php echo $lang->bug->resolvedDate;?></th>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<tr>
|
||||
<th class='w-id'> <?php echo $lang->idAB;?></th>
|
||||
<th class='w-pri'> <?php echo $lang->priAB;?></th>
|
||||
<th> <?php echo $lang->story->title;?></th>
|
||||
<th> <?php echo $lang->testreport->storyTitle;?></th>
|
||||
<th class='w-user'><?php echo $lang->openedByAB;?></th>
|
||||
<th class='w-80px'><?php echo $lang->assignedToAB;?></th>
|
||||
<th class='w-hour'><?php echo $lang->story->estimateAB;?></th>
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
* @version $Id: zh-cn.php 4490 2013-02-27 03:27:05Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->testsuite->index = "Index";
|
||||
$lang->testsuite->create = "Create";
|
||||
$lang->testsuite->index = "Home";
|
||||
$lang->testsuite->create = "Create Suite";
|
||||
$lang->testsuite->delete = "Delete";
|
||||
$lang->testsuite->view = "Info";
|
||||
$lang->testsuite->view = "Overview";
|
||||
$lang->testsuite->edit = "Edit";
|
||||
$lang->testsuite->browse = "Suite List";
|
||||
$lang->testsuite->linkCase = "Link Cases";
|
||||
@@ -29,9 +29,9 @@ $lang->testsuite->common = 'Test Suite';
|
||||
$lang->testsuite->product = $lang->productCommon;
|
||||
$lang->testsuite->name = 'Name';
|
||||
$lang->testsuite->desc = 'Description';
|
||||
$lang->testsuite->author = 'Author';
|
||||
$lang->testsuite->addedBy = 'Added By';
|
||||
$lang->testsuite->addedDate = 'Added Date';
|
||||
$lang->testsuite->author = 'Access Control';
|
||||
$lang->testsuite->addedBy = 'Creator';
|
||||
$lang->testsuite->addedDate = 'Date';
|
||||
|
||||
$lang->testsuite->legendDesc = 'Description';
|
||||
$lang->testsuite->legendBasicInfo = 'Base Info';
|
||||
@@ -49,11 +49,11 @@ $lang->testsuite->lblUnlinkCase = 'Unlink Case';
|
||||
$lang->testsuite->authorList['private'] = 'Private';
|
||||
$lang->testsuite->authorList['public'] = 'Public';
|
||||
|
||||
$lang->caselib->common = 'Test Library';
|
||||
$lang->caselib->common = 'Case Library';
|
||||
$lang->caselib->all = 'All';
|
||||
|
||||
$lang->testsuite->createLib = 'Create';
|
||||
$lang->testsuite->createLib = 'Create Library';
|
||||
$lang->testsuite->editLib = 'Edit';
|
||||
$lang->testsuite->library = 'Browse case';
|
||||
$lang->testsuite->createCase = 'Create case';
|
||||
$lang->testsuite->libView = 'View';
|
||||
$lang->testsuite->library = 'Browse cases in Library';
|
||||
$lang->testsuite->createCase = 'Create Case';
|
||||
$lang->testsuite->libView = 'Overview';
|
||||
|
||||
+17
-17
@@ -9,11 +9,11 @@
|
||||
* @version $Id: en.php 4490 2013-02-27 03:27:05Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->testtask->index = "Index";
|
||||
$lang->testtask->create = "Submit";
|
||||
$lang->testtask->index = "Home";
|
||||
$lang->testtask->create = "Submit for Test";
|
||||
$lang->testtask->reportChart = 'Report';
|
||||
$lang->testtask->delete = "Delete";
|
||||
$lang->testtask->view = "Info";
|
||||
$lang->testtask->view = "Overview";
|
||||
$lang->testtask->edit = "Edit";
|
||||
$lang->testtask->browse = "Test Tasks";
|
||||
$lang->testtask->linkCase = "Link Cases";
|
||||
@@ -27,17 +27,17 @@ $lang->testtask->results = "Result";
|
||||
$lang->testtask->createBug = "Bug(+)";
|
||||
$lang->testtask->assign = 'Assign';
|
||||
$lang->testtask->cases = 'Cases';
|
||||
$lang->testtask->groupCase = "View By";
|
||||
$lang->testtask->groupCase = "View By Group";
|
||||
$lang->testtask->pre = 'Previous';
|
||||
$lang->testtask->next = 'Next';
|
||||
$lang->testtask->start = "Start";
|
||||
$lang->testtask->close = "Close";
|
||||
$lang->testtask->wait = "Build to be Tested";
|
||||
$lang->testtask->wait = "Wait";
|
||||
$lang->testtask->block = "Block";
|
||||
$lang->testtask->activate = "Activation";
|
||||
$lang->testtask->testing = "Testing Build";
|
||||
$lang->testtask->blocked = "Blocked Build";
|
||||
$lang->testtask->done = "Tested Build";
|
||||
$lang->testtask->activate = "Activate";
|
||||
$lang->testtask->testing = "Testing";
|
||||
$lang->testtask->blocked = "Blocked";
|
||||
$lang->testtask->done = "Tested";
|
||||
$lang->testtask->totalStatus = "All";
|
||||
$lang->testtask->all = "All " . $lang->productCommon;
|
||||
|
||||
@@ -54,10 +54,10 @@ $lang->testtask->end = 'End';
|
||||
$lang->testtask->desc = 'Description';
|
||||
$lang->testtask->mailto = 'Mailto';
|
||||
$lang->testtask->status = 'Status';
|
||||
$lang->testtask->assignedTo = 'Assign';
|
||||
$lang->testtask->assignedTo = 'Assigned';
|
||||
$lang->testtask->linkVersion = 'Version';
|
||||
$lang->testtask->lastRunAccount = "Run";
|
||||
$lang->testtask->lastRunTime = 'Time';
|
||||
$lang->testtask->lastRunAccount = 'Runner';
|
||||
$lang->testtask->lastRunTime = 'Last Run';
|
||||
$lang->testtask->lastRunResult = 'Result';
|
||||
$lang->testtask->reportField = 'Report';
|
||||
$lang->testtask->files = 'Upload';
|
||||
@@ -88,10 +88,10 @@ $lang->testtask->priList[2] = '2';
|
||||
$lang->testtask->priList[4] = '4';
|
||||
|
||||
$lang->testtask->unlinkedCases = 'Unlinked Cases';
|
||||
$lang->testtask->linkByBuild = 'Copy by build';
|
||||
$lang->testtask->linkByStory = 'Linked by Story';
|
||||
$lang->testtask->linkByBuild = 'Copy from build';
|
||||
$lang->testtask->linkByStory = 'Link by Story';
|
||||
$lang->testtask->linkByBug = 'Linked by Bug';
|
||||
$lang->testtask->linkBySuite = 'Linked by Suite';
|
||||
$lang->testtask->linkBySuite = 'Link by Suite';
|
||||
$lang->testtask->passAll = 'All Pass';
|
||||
$lang->testtask->pass = 'Pass';
|
||||
$lang->testtask->fail = 'Failed';
|
||||
@@ -102,8 +102,8 @@ $lang->testtask->confirmDelete = 'Do you want to delete this test build?';
|
||||
$lang->testtask->confirmUnlinkCase = 'Do you want to unlink this Case?';
|
||||
$lang->testtask->noticeNoOther = 'There are no other test task for this product';
|
||||
|
||||
$lang->testtask->assignedToMe = 'Assigned to Me';
|
||||
$lang->testtask->allCases = 'All Cases';
|
||||
$lang->testtask->assignedToMe = 'My';
|
||||
$lang->testtask->allCases = 'AllCases';
|
||||
|
||||
$lang->testtask->lblCases = 'Cases';
|
||||
$lang->testtask->lblUnlinkCase = 'Unlink Case';
|
||||
|
||||
+16
-16
@@ -9,13 +9,13 @@
|
||||
* @version $Id: en.php 4676 2013-04-26 06:08:23Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->todo->common = 'To-Do';
|
||||
$lang->todo->common = 'Todo';
|
||||
$lang->todo->index = "Home";
|
||||
$lang->todo->create = "Create";
|
||||
$lang->todo->create = "Create Todo";
|
||||
$lang->todo->batchCreate = "Batch Create";
|
||||
$lang->todo->edit = "Edit";
|
||||
$lang->todo->batchEdit = "Batch Edit";
|
||||
$lang->todo->view = "Info";
|
||||
$lang->todo->view = "Overview";
|
||||
$lang->todo->finish = "Finish";
|
||||
$lang->todo->batchFinish = "Batch Finish";
|
||||
$lang->todo->export = "Export";
|
||||
@@ -55,9 +55,9 @@ $lang->todo->every = 'Every';
|
||||
$lang->todo->beforeDays = "%s<span class='input-group-addon'>early in advance to be done</span>";
|
||||
$lang->todo->dayNames = array(1 => 'Monday', 2 => 'Tuesday', 3 => 'Wednesday', 4 => 'Thursday', 5 => 'Friday', 6 => 'Saturday', 0 => 'Sunday');
|
||||
|
||||
$lang->todo->confirmBug = 'This To-Do is related to Bug #%s. Do you want to edit it?';
|
||||
$lang->todo->confirmTask = 'This To-Do is related to Task #%s,Do you want to edit it?';
|
||||
$lang->todo->confirmStory = 'This To-Do is related to Story #%s,Do you want to edit it?';
|
||||
$lang->todo->confirmBug = 'This Todo is related to Bug #%s. Do you want to edit it?';
|
||||
$lang->todo->confirmTask = 'This Todo is related to Task #%s,Do you want to edit it?';
|
||||
$lang->todo->confirmStory = 'This Todo is related to Story #%s,Do you want to edit it?';
|
||||
|
||||
$lang->todo->statusList['wait'] = 'Wait';
|
||||
$lang->todo->statusList['doing'] = 'Doing';
|
||||
@@ -81,22 +81,22 @@ global $config;
|
||||
if($config->global->flow == 'onlyTest' or $config->global->flow == 'onlyStory') unset($lang->todo->typeList['task']);
|
||||
if($config->global->flow == 'onlyTask' or $config->global->flow == 'onlyStory') unset($lang->todo->typeList['bug']);
|
||||
|
||||
$lang->todo->confirmDelete = "Are you sure to delete this To-Do?";
|
||||
$lang->todo->thisIsPrivate = 'This is a private To-Do:)';
|
||||
$lang->todo->confirmDelete = "Are you sure to delete this Todo?";
|
||||
$lang->todo->thisIsPrivate = 'This is a private Todo';
|
||||
$lang->todo->lblDisableDate = 'Set later.';
|
||||
$lang->todo->lblBeforeDays = "%s early in advance to be done";
|
||||
$lang->todo->noTodo = 'No this type of to-dos.';
|
||||
$lang->todo->noTodo = 'No this type of Todo.';
|
||||
|
||||
$lang->todo->periods['today'] = 'Today';
|
||||
$lang->todo->periods['yesterday'] = 'Yesterday';
|
||||
$lang->todo->periods['thisWeek'] = 'This Week';
|
||||
$lang->todo->periods['lastWeek'] = 'Last Week';
|
||||
$lang->todo->periods['thisMonth'] = 'This Month';
|
||||
$lang->todo->periods['lastmonth'] = 'Last Month';
|
||||
$lang->todo->periods['thisSeason'] = 'This Season';
|
||||
$lang->todo->periods['thisYear'] = 'This Year';
|
||||
$lang->todo->periods['thisWeek'] = 'ThisWeek';
|
||||
$lang->todo->periods['lastWeek'] = 'LastWeek';
|
||||
$lang->todo->periods['thisMonth'] = 'ThisMonth';
|
||||
$lang->todo->periods['lastmonth'] = 'LastMonth';
|
||||
$lang->todo->periods['thisSeason'] = 'ThisSeason';
|
||||
$lang->todo->periods['thisYear'] = 'ThisYear';
|
||||
$lang->todo->periods['future'] = 'Pending';
|
||||
$lang->todo->periods['before'] = 'Undone';
|
||||
$lang->todo->periods['before'] = 'Unfinished';
|
||||
$lang->todo->periods['all'] = 'All';
|
||||
$lang->todo->periods['cycle'] = 'Cycle';
|
||||
|
||||
|
||||
@@ -13,21 +13,21 @@ $lang->tree = new stdclass();
|
||||
$lang->tree->common = 'Module';
|
||||
$lang->tree->edit = 'Edit';
|
||||
$lang->tree->delete = 'Delete';
|
||||
$lang->tree->browse = 'General Module';
|
||||
$lang->tree->browseTask = 'Task Module';
|
||||
$lang->tree->manage = 'Manage Module';
|
||||
$lang->tree->browse = 'Manage General Module';
|
||||
$lang->tree->browseTask = 'Manage Task Module';
|
||||
$lang->tree->manage = 'Manage module';
|
||||
$lang->tree->fix = 'Fix';
|
||||
$lang->tree->manageProduct = "Manage {$lang->productCommon}";
|
||||
$lang->tree->manageProject = "Manage {$lang->projectCommon}";
|
||||
$lang->tree->manageLine = 'Manage Product Line';
|
||||
$lang->tree->manageLine = 'Manage product line';
|
||||
$lang->tree->manageBug = 'Manage Bug';
|
||||
$lang->tree->manageCase = 'Manage Case';
|
||||
$lang->tree->manageCaseLib = 'Manage Library';
|
||||
$lang->tree->manageCustomDoc = 'Manage DocLib';
|
||||
$lang->tree->updateOrder = 'Update Order';
|
||||
$lang->tree->updateOrder = 'Sort';
|
||||
$lang->tree->manageChild = 'Manage Child Module';
|
||||
$lang->tree->manageStoryChild = 'Manage Child Story';
|
||||
$lang->tree->manageLineChild = 'Manage Product Line';
|
||||
$lang->tree->manageStoryChild = 'Manage Child Module';
|
||||
$lang->tree->manageLineChild = 'Manage product line';
|
||||
$lang->tree->manageBugChild = 'Manage Child Bug';
|
||||
$lang->tree->manageCaseChild = 'Manage Child Case';
|
||||
$lang->tree->manageCaselibChild = 'Manage Child Library';
|
||||
|
||||
+13
-13
@@ -20,13 +20,13 @@ $lang->user->role = 'Role';
|
||||
$lang->user->group = 'Group';
|
||||
$lang->user->realname = 'Name';
|
||||
$lang->user->nickname = 'Nickname';
|
||||
$lang->user->commiter = 'Commiter';
|
||||
$lang->user->commiter = 'SCM Account';
|
||||
$lang->user->birthyear = 'Birth Year';
|
||||
$lang->user->gender = 'Gender';
|
||||
$lang->user->email = 'Email';
|
||||
$lang->user->basicInfo = 'Basic Info';
|
||||
$lang->user->accountInfo = 'Account';
|
||||
$lang->user->verify = 'Acceptance';
|
||||
$lang->user->verify = 'Safety Verification';
|
||||
$lang->user->contactInfo = 'Contact';
|
||||
$lang->user->skype = 'Skype';
|
||||
$lang->user->qq = 'QQ';
|
||||
@@ -48,8 +48,8 @@ $lang->user->verifyPassword = 'Enter your password';
|
||||
$lang->user->resetPassword = 'Forgot Password?';
|
||||
|
||||
$lang->user->index = "Home";
|
||||
$lang->user->view = "Info";
|
||||
$lang->user->create = "Add";
|
||||
$lang->user->view = "Overview";
|
||||
$lang->user->create = "Add User";
|
||||
$lang->user->batchCreate = "Batch Add User";
|
||||
$lang->user->edit = "Edit";
|
||||
$lang->user->batchEdit = "Batch Edit";
|
||||
@@ -75,7 +75,7 @@ $lang->user->bug = 'Bug';
|
||||
$lang->user->test = 'Test';
|
||||
$lang->user->testTask = 'Test Task';
|
||||
$lang->user->testCase = 'Test Case';
|
||||
$lang->user->todo = 'To-Do';
|
||||
$lang->user->todo = 'Todo';
|
||||
$lang->user->story = 'Story';
|
||||
$lang->user->dynamic = 'Dynamic';
|
||||
|
||||
@@ -102,9 +102,9 @@ $lang->user->roleList['dev'] = 'Developer';
|
||||
$lang->user->roleList['qa'] = 'Tester';
|
||||
$lang->user->roleList['pm'] = 'Project Manager';
|
||||
$lang->user->roleList['po'] = 'Product Owner';
|
||||
$lang->user->roleList['td'] = 'Technical Director';
|
||||
$lang->user->roleList['pd'] = 'Product Director';
|
||||
$lang->user->roleList['qd'] = 'QA Director';
|
||||
$lang->user->roleList['td'] = 'Technical Manager';
|
||||
$lang->user->roleList['pd'] = 'Product Manager';
|
||||
$lang->user->roleList['qd'] = 'QA Manager';
|
||||
$lang->user->roleList['top'] = 'Senior Manager';
|
||||
$lang->user->roleList['others'] = 'Other';
|
||||
|
||||
@@ -128,15 +128,15 @@ $lang->user->tpl->content = 'Content';
|
||||
$lang->user->tpl->public = 'Public';
|
||||
|
||||
$lang->user->placeholder = new stdclass();
|
||||
$lang->user->placeholder->account = 'letters, underline, and numbers,at lease three characters';
|
||||
$lang->user->placeholder->account = 'Letters, Underline and Numbers, at least 3 characters';
|
||||
$lang->user->placeholder->password1 = 'six characters at lease ';
|
||||
$lang->user->placeholder->role = "Role affects content and user order.";
|
||||
$lang->user->placeholder->group = "Group decides user privilege.";
|
||||
$lang->user->placeholder->commiter = 'Subversion Account';
|
||||
$lang->user->placeholder->commiter = 'Svn or Git like';
|
||||
$lang->user->placeholder->verify = 'Password is required.';
|
||||
|
||||
$lang->user->placeholder->passwordStrength[1] = 'letters and numbers, at lease six characters';
|
||||
$lang->user->placeholder->passwordStrength[2] = 'letters, numbers and special characters, at lease 10 characters';
|
||||
$lang->user->placeholder->passwordStrength[1] = 'Letters and Numbers, at least 6 characters';
|
||||
$lang->user->placeholder->passwordStrength[2] = 'Letters, Numbers and special characters, at lease 10 characters';
|
||||
|
||||
$lang->user->error = new stdclass();
|
||||
$lang->user->error->account = "ID %s,must be contain letters, underline, and numbers,at lease three characters";
|
||||
@@ -157,7 +157,7 @@ $lang->user->contacts->userList = 'User List';
|
||||
|
||||
$lang->user->contacts->manage = 'Manage';
|
||||
$lang->user->contacts->contactsList = 'Contacts';
|
||||
$lang->user->contacts->selectedUsers = 'User';
|
||||
$lang->user->contacts->selectedUsers = 'Select User';
|
||||
$lang->user->contacts->selectList = 'List';
|
||||
$lang->user->contacts->createList = 'Create a List';
|
||||
$lang->user->contacts->noListYet = 'No contact list exists. Please create a list first.';
|
||||
|
||||
Reference in New Issue
Block a user