diff --git a/module/program/config.php b/module/program/config.php
index f330bc631c..f31c85bb61 100644
--- a/module/program/config.php
+++ b/module/program/config.php
@@ -177,17 +177,17 @@ $config->program->productView->dtable->fieldList['executionCount']['width'] =
$config->program->productView->dtable->fieldList['executionCount']['type'] = 'format';
$config->program->productView->dtable->fieldList['executionCount']['sortType'] = true;
-$config->program->productView->dtable->fieldList['testCaseCoverRate']['name'] = 'testCaseCoverRate';
-$config->program->productView->dtable->fieldList['testCaseCoverRate']['title'] = $lang->program->testCaseCoverRate;
-$config->program->productView->dtable->fieldList['testCaseCoverRate']['minWidth'] = 100;
-$config->program->productView->dtable->fieldList['testCaseCoverRate']['type'] = 'circleProgress';
-$config->program->productView->dtable->fieldList['testCaseCoverRate']['sortType'] = true;
+$config->program->productView->dtable->fieldList['testCaseCoverage']['name'] = 'testCaseCoverage';
+$config->program->productView->dtable->fieldList['testCaseCoverage']['title'] = $lang->program->testCaseCoverage;
+$config->program->productView->dtable->fieldList['testCaseCoverage']['minWidth'] = 100;
+$config->program->productView->dtable->fieldList['testCaseCoverage']['type'] = 'circleProgress';
+$config->program->productView->dtable->fieldList['testCaseCoverage']['sortType'] = true;
-$config->program->productView->dtable->fieldList['bugActivedCount']['name'] = 'unResolvedBugs';
-$config->program->productView->dtable->fieldList['bugActivedCount']['title'] = $lang->program->bugActivedCount;
-$config->program->productView->dtable->fieldList['bugActivedCount']['minWidth'] = 60;
-$config->program->productView->dtable->fieldList['bugActivedCount']['type'] = 'format';
-$config->program->productView->dtable->fieldList['bugActivedCount']['sortType'] = true;
+$config->program->productView->dtable->fieldList['bugActivatedCount']['name'] = 'unResolvedBugs';
+$config->program->productView->dtable->fieldList['bugActivatedCount']['title'] = $lang->program->bugActivatedCount;
+$config->program->productView->dtable->fieldList['bugActivatedCount']['minWidth'] = 60;
+$config->program->productView->dtable->fieldList['bugActivatedCount']['type'] = 'format';
+$config->program->productView->dtable->fieldList['bugActivatedCount']['sortType'] = true;
$config->program->productView->dtable->fieldList['fixedRate']['name'] = 'fixedRate';
$config->program->productView->dtable->fieldList['fixedRate']['title'] = $lang->program->fixedRate;
diff --git a/module/program/js/projectview.ui.js b/module/program/js/projectview.ui.js
index 10d6123ccc..c3a66c0b8c 100644
--- a/module/program/js/projectview.ui.js
+++ b/module/program/js/projectview.ui.js
@@ -22,7 +22,7 @@ window.renderCell = function(result, {col, row})
if(col.name === 'invested')
{
- result[0] = {html: '
' + row.data.invested + ' ' + langWorkerDay + '
', className:'flex items-end w-full items-end', style:{flexDirection:"column"}};
+ result[0] = {html: '' + row.data.invested + ' ' + langManDay + '
', className:'flex items-end w-full items-end', style:{flexDirection:"column"}};
return result;
}
diff --git a/module/program/lang/de.php b/module/program/lang/de.php
index 1435b00536..dcba1941ed 100644
--- a/module/program/lang/de.php
+++ b/module/program/lang/de.php
@@ -9,6 +9,7 @@ $lang->program->status = 'Status';
$lang->program->PM = 'Manager';
$lang->program->budget = 'Budget';
$lang->program->budgetUnit = 'Budget Unit';
+$lang->program->invested = 'Invested';
$lang->program->begin = 'Begin';
$lang->program->end = 'End';
$lang->program->realBegin = 'Actual Begin';
@@ -83,6 +84,7 @@ $lang->program->confirmChangePRJUint = 'Synchronize the budget unit of the su
$lang->program->exRateNotNegative = 'The『exchange rate』should not be negative.';
$lang->program->changePRJUnit = 'Update the budget unit of the project';
$lang->program->showNotCurrentProjects = 'Display project information of non current program';
+$lang->program->other = 'Others';
$lang->program->progress = 'Progress';
$lang->program->progressAB = 'Progress';
@@ -120,6 +122,18 @@ $lang->program->beyondParentBudget = 'The remaining budget of the owned program
$lang->program->checkedProjects = 'Seleted %s items';
$lang->program->budgetOverrun = "The program's budget exceeds the remaining budget of the parent program:";
+/* ToolBar. */
+$lang->program->createProduct = 'Create Product';
+$lang->program->createProject = 'Create Project';
+
+/* DTable columns of product view page. */
+$lang->program->unclosedReqCount = 'Unclosed';
+$lang->program->closedReqRate = 'Closed Rate';
+$lang->program->testCaseCoverage = 'Coverage';
+$lang->program->bugActivatedCount = 'Activated';
+$lang->program->fixedRate = 'Fixed';
+$lang->program->feedback = 'Feedback';
+
$lang->program->tip = new stdclass();
$lang->program->tip->closed = 'The program has been closed. Re-close is not available.';
$lang->program->tip->notSuspend = 'The program has been closed. Suspend is not available.';
@@ -159,6 +173,16 @@ $lang->program->featureBar['browse']['doing'] = 'Doing';
$lang->program->featureBar['browse']['suspended'] = 'Suspended';
$lang->program->featureBar['browse']['closed'] = 'Closed';
+$lang->program->featureBar['productview']['all'] = 'All';
+$lang->program->featureBar['productview']['unclosed'] = 'Unclosed';
+$lang->program->featureBar['productview']['end'] = 'End';
+
+$lang->program->featureBar['projectview']['all'] = 'All';
+$lang->program->featureBar['projectview']['unclosed'] = 'Unclosed';
+$lang->program->featureBar['projectview']['wait'] = 'Waiting';
+$lang->program->featureBar['projectview']['doing'] = 'Doing';
+$lang->program->featureBar['projectview']['more'] = 'More';
+
$lang->program->kanban = new stdclass();
$lang->program->kanban->common = 'Program Kanban';
$lang->program->kanban->typeList['my'] = 'My Programs';
@@ -173,4 +197,7 @@ $lang->program->kanban->normalReleases = 'Normal Releases';
$lang->program->kanban->laneColorList = array('#32C5FF', '#006AF1', '#9D28B2', '#FF8F26', '#FFC20E', '#00A78E', '#7FBB00', '#424BAC', '#C0E9FF', '#EC2761');
-$lang->program->defaultProgram = 'Default program';
+$lang->program->defaultProgram = 'Default Program';
+$lang->program->projectView = 'Project View';
+$lang->program->productView = 'Product View';
+$lang->program->manDay = 'Man Day';
diff --git a/module/program/lang/en.php b/module/program/lang/en.php
index 80519246d8..49595d5e40 100644
--- a/module/program/lang/en.php
+++ b/module/program/lang/en.php
@@ -9,6 +9,7 @@ $lang->program->status = 'Status';
$lang->program->PM = 'Manager';
$lang->program->budget = 'Budget';
$lang->program->budgetUnit = 'Budget Unit';
+$lang->program->invested = 'Invested';
$lang->program->begin = 'Begin';
$lang->program->end = 'End';
$lang->program->realBegin = 'Actual Begin';
@@ -83,6 +84,7 @@ $lang->program->confirmChangePRJUint = 'Synchronize the budget unit of the su
$lang->program->exRateNotNegative = 'The『exchange rate』should not be negative.';
$lang->program->changePRJUnit = 'Update the budget unit of the project';
$lang->program->showNotCurrentProjects = 'Display project information of non current program';
+$lang->program->other = 'Others';
$lang->program->progress = 'Progress';
$lang->program->progressAB = 'Progress';
@@ -120,6 +122,18 @@ $lang->program->beyondParentBudget = 'The remaining budget of the owned program
$lang->program->checkedProjects = 'Seleted %s items';
$lang->program->budgetOverrun = "The program's budget exceeds the remaining budget of the parent program:";
+/* ToolBar. */
+$lang->program->createProduct = 'Create Product';
+$lang->program->createProject = 'Create Project';
+
+/* DTable columns of product view page. */
+$lang->program->unclosedReqCount = 'Unclosed';
+$lang->program->closedReqRate = 'Closed Rate';
+$lang->program->testCaseCoverage = 'Coverage';
+$lang->program->bugActivatedCount = 'Activated';
+$lang->program->fixedRate = 'Fixed';
+$lang->program->feedback = 'Feedback';
+
$lang->program->tip = new stdclass();
$lang->program->tip->closed = 'The program has been closed. Re-close is not available.';
$lang->program->tip->notSuspend = 'The program has been closed. Suspend is not available.';
@@ -159,6 +173,16 @@ $lang->program->featureBar['browse']['doing'] = 'Doing';
$lang->program->featureBar['browse']['suspended'] = 'Suspended';
$lang->program->featureBar['browse']['closed'] = 'Closed';
+$lang->program->featureBar['productview']['all'] = 'All';
+$lang->program->featureBar['productview']['unclosed'] = 'Unclosed';
+$lang->program->featureBar['productview']['end'] = 'End';
+
+$lang->program->featureBar['projectview']['all'] = 'All';
+$lang->program->featureBar['projectview']['unclosed'] = 'Unclosed';
+$lang->program->featureBar['projectview']['wait'] = 'Waiting';
+$lang->program->featureBar['projectview']['doing'] = 'Doing';
+$lang->program->featureBar['projectview']['more'] = 'More';
+
$lang->program->kanban = new stdclass();
$lang->program->kanban->common = 'Program Kanban';
$lang->program->kanban->typeList['my'] = 'My Programs';
@@ -173,4 +197,7 @@ $lang->program->kanban->normalReleases = 'Normal Releases';
$lang->program->kanban->laneColorList = array('#32C5FF', '#006AF1', '#9D28B2', '#FF8F26', '#FFC20E', '#00A78E', '#7FBB00', '#424BAC', '#C0E9FF', '#EC2761');
-$lang->program->defaultProgram = 'Default program';
+$lang->program->defaultProgram = 'Default Program';
+$lang->program->projectView = 'Project View';
+$lang->program->productView = 'Product View';
+$lang->program->manDay = 'Man Day';
diff --git a/module/program/lang/fr.php b/module/program/lang/fr.php
index 188d4a80c9..8363025a3a 100644
--- a/module/program/lang/fr.php
+++ b/module/program/lang/fr.php
@@ -9,6 +9,7 @@ $lang->program->status = 'Status';
$lang->program->PM = 'Manager';
$lang->program->budget = 'Budget';
$lang->program->budgetUnit = 'Budget Unit';
+$lang->program->invested = 'Invested';
$lang->program->begin = 'Begin';
$lang->program->end = 'End';
$lang->program->realBegin = 'Actual Begin';
@@ -83,6 +84,7 @@ $lang->program->confirmChangePRJUint = 'Synchronize the budget unit of the su
$lang->program->exRateNotNegative = 'The『exchange rate』should not be negative.';
$lang->program->changePRJUnit = 'Update the budget unit of the project';
$lang->program->showNotCurrentProjects = 'Display project information of non current program';
+$lang->program->other = 'Others';
$lang->program->progress = 'Progress';
$lang->program->progressAB = 'Progress';
@@ -120,6 +122,18 @@ $lang->program->beyondParentBudget = 'The remaining budget of the owned program
$lang->program->checkedProjects = "Pour s électionner l'élément% s";
$lang->program->budgetOverrun = "Le budget du programme a dépassé le budget restant du programme parent:";
+/* ToolBar. */
+$lang->program->createProduct = 'Create Product';
+$lang->program->createProject = 'Create Project';
+
+/* DTable columns of product view page. */
+$lang->program->unclosedReqCount = 'Unclosed';
+$lang->program->closedReqRate = 'Closed Rate';
+$lang->program->testCaseCoverage = 'Coverage';
+$lang->program->bugActivatedCount = 'Activated';
+$lang->program->fixedRate = 'Fixed';
+$lang->program->feedback = 'Feedback';
+
$lang->program->tip = new stdclass();
$lang->program->tip->closed = 'The program has been closed. Re-close is not available.';
$lang->program->tip->notSuspend = 'The program has been closed. Suspend is not available.';
@@ -159,6 +173,16 @@ $lang->program->featureBar['browse']['doing'] = 'En Cours';
$lang->program->featureBar['browse']['suspended'] = 'Suspendues';
$lang->program->featureBar['browse']['closed'] = 'Fermées';
+$lang->program->featureBar['productview']['all'] = 'All';
+$lang->program->featureBar['productview']['unclosed'] = 'Unclosed';
+$lang->program->featureBar['productview']['end'] = 'End';
+
+$lang->program->featureBar['projectview']['all'] = 'All';
+$lang->program->featureBar['projectview']['unclosed'] = 'Unclosed';
+$lang->program->featureBar['projectview']['wait'] = 'Waiting';
+$lang->program->featureBar['projectview']['doing'] = 'Doing';
+$lang->program->featureBar['projectview']['more'] = 'More';
+
$lang->program->kanban = new stdclass();
$lang->program->kanban->common = 'Program Kanban';
$lang->program->kanban->typeList['my'] = 'My Programs';
@@ -173,4 +197,7 @@ $lang->program->kanban->normalReleases = 'Normal Releases';
$lang->program->kanban->laneColorList = array('#32C5FF', '#006AF1', '#9D28B2', '#FF8F26', '#FFC20E', '#00A78E', '#7FBB00', '#424BAC', '#C0E9FF', '#EC2761');
-$lang->program->defaultProgram = 'Default program';
+$lang->program->defaultProgram = 'Default Program';
+$lang->program->projectView = 'Project View';
+$lang->program->productView = 'Product View';
+$lang->program->manDay = 'Man Day';
diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php
index f7a03a96f7..5e64f81dd9 100644
--- a/module/program/lang/zh-cn.php
+++ b/module/program/lang/zh-cn.php
@@ -127,12 +127,12 @@ $lang->program->createProduct = '添加产品';
$lang->program->createProject = '添加项目';
/* DTable columns of product view page. */
-$lang->program->unclosedReqCount = '需求未关闭';
-$lang->program->closedReqRate = '需求完成率';
-$lang->program->testCaseCoverRate= '用例覆盖率';
-$lang->program->bugActivedCount = 'Bug激活';
-$lang->program->fixedRate = '修复率';
-$lang->program->feedback = '反馈';
+$lang->program->unclosedReqCount = '需求未关闭';
+$lang->program->closedReqRate = '需求完成率';
+$lang->program->testCaseCoverage = '用例覆盖率';
+$lang->program->bugActivatedCount = 'Bug激活';
+$lang->program->fixedRate = '修复率';
+$lang->program->feedback = '反馈';
$lang->program->tip = new stdclass();
$lang->program->tip->closed = '该项目集已是关闭状态,无须关闭。';
@@ -198,7 +198,6 @@ $lang->program->kanban->normalReleases = '正常的发布';
$lang->program->kanban->laneColorList = array('#32C5FF', '#006AF1', '#9D28B2', '#FF8F26', '#FFC20E', '#00A78E', '#7FBB00', '#424BAC', '#C0E9FF', '#EC2761');
$lang->program->defaultProgram = '默认项目集';
-
-$lang->program->projectView = '项目视角';
-$lang->program->productView = '产品视角';
-$lang->program->workerDay = '人天';
+$lang->program->projectView = '项目视角';
+$lang->program->productView = '产品视角';
+$lang->program->manDay = '人天';
diff --git a/module/program/ui/productview.html.php b/module/program/ui/productview.html.php
index 9e059bf299..02a8087828 100644
--- a/module/program/ui/productview.html.php
+++ b/module/program/ui/productview.html.php
@@ -44,26 +44,26 @@ foreach($productStructure as $programID => $program)
$totalStories = $program['finishClosedStories'] + $program['unclosedStories'];
- $item->name = $program['programName'];
- $item->id = 'program-' . $programID;
- $item->type = 'program';
- $item->level = 1;
- $item->asParent = true;
- $item->feedback = rand(0, 100);
- $item->programName = $program['programName'];
- $item->draftStories = $program['draftStories'];
- $item->activeStories = $program['activeStories'];
- $item->changingStories = $program['changingStories'];
- $item->reviewingStories = $program['reviewingStories'];
- $item->closedReqRate = ($totalStories == 0 ? 0 : round($program['finishClosedStories'] / $totalStories, 3) * 100);
- $item->unResolvedBugs = $program['unResolvedBugs'];
- $item->fixedRate = (($program['unResolvedBugs'] + $program['fixedBugs']) == 0 ? 0 : round($program['fixedBugs'] / ($program['unResolvedBugs'] + $program['fixedBugs']), 3) * 100);
- $item->plans = $program['plans'];
- $item->releaseCount = $program['releases'];
- $item->releaseCountOld = rand(0, 10);
- $item->testCaseCoverRate = rand(0, 100);
- $item->unclosedReqCount = rand(0, 100);
- $item->executionCount = rand(0, 100);
+ $item->name = $program['programName'];
+ $item->id = 'program-' . $programID;
+ $item->type = 'program';
+ $item->level = 1;
+ $item->asParent = true;
+ $item->feedback = rand(0, 100);
+ $item->programName = $program['programName'];
+ $item->draftStories = $program['draftStories'];
+ $item->activeStories = $program['activeStories'];
+ $item->changingStories = $program['changingStories'];
+ $item->reviewingStories = $program['reviewingStories'];
+ $item->closedReqRate = ($totalStories == 0 ? 0 : round($program['finishClosedStories'] / $totalStories, 3) * 100);
+ $item->unResolvedBugs = $program['unResolvedBugs'];
+ $item->fixedRate = (($program['unResolvedBugs'] + $program['fixedBugs']) == 0 ? 0 : round($program['fixedBugs'] / ($program['unResolvedBugs'] + $program['fixedBugs']), 3) * 100);
+ $item->plans = $program['plans'];
+ $item->releaseCount = $program['releases'];
+ $item->releaseCountOld = rand(0, 10);
+ $item->testCaseCoverage = rand(0, 100);
+ $item->unclosedReqCount = rand(0, 100);
+ $item->executionCount = rand(0, 100);
/* TODO attach extend fields. */
$data[] = $item;
@@ -78,26 +78,26 @@ foreach($productStructure as $programID => $program)
$linesCount++;
$item = new stdClass();
- $item->name = $line['lineName'];
- $item->id = 'productLine-' . $lineID;
- $item->type = 'productLine';
- $item->asParent = true;
- $item->feedback = rand(0, 100);
- $item->parent = 'program-' . $programID;
- $item->programName = $line['lineName'];
- $item->draftStories = $line['draftStories'];
- $item->activeStories = $line['activeStories'];
- $item->changingStories = $line['changingStories'];
- $item->reviewingStories = $line['reviewingStories'];
- $item->closedReqRate = ($totalStories == 0 ? 0 : round((isset($line['finishClosedStories']) ? $line['finishClosedStories'] : 0) / $totalStories, 3) * 100);
- $item->unResolvedBugs = $line['unResolvedBugs'];
- $item->fixedRate = ((isset($line['fixedBugs']) and ($line['unResolvedBugs'] + $line['fixedBugs'] != 0)) ? round($line['fixedBugs'] / ($line['unResolvedBugs'] + $line['fixedBugs']), 3) * 100 : 0);
- $item->plans = $line['plans'];
- $item->releaseCount = isset($line['releases']) ? $line['releases'] : 0;
- $item->releaseCountOld = rand(0, 10);
- $item->testCaseCoverRate = rand(0, 100);
- $item->unclosedReqCount = rand(0, 100);
- $item->executionCount = rand(0, 100);
+ $item->name = $line['lineName'];
+ $item->id = 'productLine-' . $lineID;
+ $item->type = 'productLine';
+ $item->asParent = true;
+ $item->feedback = rand(0, 100);
+ $item->parent = 'program-' . $programID;
+ $item->programName = $line['lineName'];
+ $item->draftStories = $line['draftStories'];
+ $item->activeStories = $line['activeStories'];
+ $item->changingStories = $line['changingStories'];
+ $item->reviewingStories = $line['reviewingStories'];
+ $item->closedReqRate = ($totalStories == 0 ? 0 : round((isset($line['finishClosedStories']) ? $line['finishClosedStories'] : 0) / $totalStories, 3) * 100);
+ $item->unResolvedBugs = $line['unResolvedBugs'];
+ $item->fixedRate = ((isset($line['fixedBugs']) and ($line['unResolvedBugs'] + $line['fixedBugs'] != 0)) ? round($line['fixedBugs'] / ($line['unResolvedBugs'] + $line['fixedBugs']), 3) * 100 : 0);
+ $item->plans = $line['plans'];
+ $item->releaseCount = isset($line['releases']) ? $line['releases'] : 0;
+ $item->releaseCountOld = rand(0, 10);
+ $item->testCaseCoverage = rand(0, 100);
+ $item->unclosedReqCount = rand(0, 100);
+ $item->executionCount = rand(0, 100);
/* TODO attach extend fields. */
$data[] = $item;
@@ -120,25 +120,25 @@ foreach($productStructure as $programID => $program)
}
$totalStories = $product->stories['finishClosed'] + $product->stories['unclosed'];
- $item->name = $product->name; /* TODO replace with */
- $item->id = $product->id;
- $item->type = 'product';
- $item->programName = $product->name; /* TODO replace with */
- $item->feedback = rand(0, 100);
- $item->draftStories = $product->stories['draft'];
- $item->activeStories = $product->stories['active'];
- $item->changingStories = $product->stories['changing'];
- $item->reviewingStories = $product->stories['reviewing'];
- $item->closedReqRate = ($totalStories == 0 ? 0 : round($product->stories['finishClosed'] / $totalStories, 3) * 100);
- $item->unResolvedBugs = $product->unResolved;
- $item->fixedRate = (($product->unResolved + $product->fixedBugs) == 0 ? 0 : round($product->fixedBugs / ($product->unResolved + $product->fixedBugs), 3) * 100);
- $item->plans = $product->plans;
- $item->parent = $product->line ? "productLine-$lineID" : ($product->program ? "program-$product->program" : '');
- $item->releaseCount = $product->releases;
- $item->releaseCountOld = rand(0, 10);
- $item->testCaseCoverRate = rand(0, 100);
- $item->unclosedReqCount = rand(0, 100);
- $item->executionCount = rand(0, 100);
+ $item->name = $product->name; /* TODO replace with */
+ $item->id = $product->id;
+ $item->type = 'product';
+ $item->programName = $product->name; /* TODO replace with */
+ $item->feedback = rand(0, 100);
+ $item->draftStories = $product->stories['draft'];
+ $item->activeStories = $product->stories['active'];
+ $item->changingStories = $product->stories['changing'];
+ $item->reviewingStories = $product->stories['reviewing'];
+ $item->closedReqRate = ($totalStories == 0 ? 0 : round($product->stories['finishClosed'] / $totalStories, 3) * 100);
+ $item->unResolvedBugs = $product->unResolved;
+ $item->fixedRate = (($product->unResolved + $product->fixedBugs) == 0 ? 0 : round($product->fixedBugs / ($product->unResolved + $product->fixedBugs), 3) * 100);
+ $item->plans = $product->plans;
+ $item->parent = $product->line ? "productLine-$lineID" : ($product->program ? "program-$product->program" : '');
+ $item->releaseCount = $product->releases;
+ $item->releaseCountOld = rand(0, 10);
+ $item->testCaseCoverage = rand(0, 100);
+ $item->unclosedReqCount = rand(0, 100);
+ $item->executionCount = rand(0, 100);
/* TODO attach extend fields. */
$data[] = $item;
diff --git a/module/program/ui/projectview.html.php b/module/program/ui/projectview.html.php
index 9574600475..414cac2547 100644
--- a/module/program/ui/projectview.html.php
+++ b/module/program/ui/projectview.html.php
@@ -47,7 +47,7 @@ foreach($programs as $program)
$data[] = $program;
}
-jsVar('langWorkerDay', $lang->program->workerDay);
+jsVar('langManDay', $lang->program->manDay);
jsVar('langPostponed', $lang->project->statusList['delay']);
jsVar('summeryTpl', $summary);