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);