diff --git a/module/execution/css/kanban.css b/module/execution/css/kanban.css
index e167b91aba..31b965666b 100644
--- a/module/execution/css/kanban.css
+++ b/module/execution/css/kanban.css
@@ -121,3 +121,4 @@
#kanban .kanban-affixed .kanban-header-col .title.action-dbc {pointer-events: none;}
#kanban .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .text {color: #fff;}
#kanban .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .caret {display: none;}
+.kanban-card a[disabled] {color: #313c52;}
diff --git a/module/execution/css/taskkanban.css b/module/execution/css/taskkanban.css
index c9adfef160..6d02e68754 100644
--- a/module/execution/css/taskkanban.css
+++ b/module/execution/css/taskkanban.css
@@ -73,3 +73,4 @@
#kanbans .kanban-affixed .kanban-header-col .title.action-dbc {pointer-events: none;}
#kanbans .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .text {color: #fff;}
#kanbans .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .caret {display: none;}
+.kanban-card a[disabled] {color: #313c52;}
diff --git a/module/execution/view/testcase.html.php b/module/execution/view/testcase.html.php
index 5dd81e5f50..825b61153f 100644
--- a/module/execution/view/testcase.html.php
+++ b/module/execution/view/testcase.html.php
@@ -13,7 +13,7 @@
- {$lang->execution->featureBar['all']['all']}", '', "class='btn btn-link btn-active-text'");?>
+ {$lang->execution->featureBar['all']['all']} {$pager->recTotal}", '', "class='btn btn-link btn-active-text'");?>
id", '', '', '', true), "
" . $lang->testcase->create, '', "class='btn btn-primary' data-app='{$this->app->tab}'");?>
diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js
index 6f8d39a5b8..6d4b921759 100644
--- a/module/kanban/js/view.js
+++ b/module/kanban/js/view.js
@@ -1446,6 +1446,7 @@ $(function()
{
initKanban($(this));
});
+ initRegionTabs();
if(navigator.userAgent.toLowerCase().indexOf("qqbrowser") > -1) $('.region .kanban-header-col > .actions').css('top', '30%');
diff --git a/module/my/view/project.html.php b/module/my/view/project.html.php
index b1eafc7518..2fc86b3206 100644
--- a/module/my/view/project.html.php
+++ b/module/my/view/project.html.php
@@ -36,13 +36,13 @@
| idAB);?> |
project->name);?> |
+ project->PM);?> |
project->status);?> |
+ project->budget);?> |
project->begin);?> |
project->end);?> |
- project->budget);?> |
- project->PM);?> |
actions;?> |
@@ -53,13 +53,6 @@
createLink('project', 'index', "projectID=$project->id", '', '', $project->id), $project->name, '', "data-group='project' title='{$project->name} ({$this->lang->project->{$project->model}})'");?>
|
-
-
project->statusList, $project->status, '');?> |
-
-
begin;?> |
-
end == LONG_TIME ? $this->lang->project->longTime : $project->end;?> |
- app->getClientLang(), array('zh-cn','zh-tw')) ? round((float)$project->budget / 10000, 2) . $this->lang->project->tenThousand : round((float)$project->budget, 2);?>
-
budget != 0 ? zget($lang->project->currencySymbol, $project->budgetUnit) . ' ' . $projectBudget : $lang->project->future;?> |
PM)):?>
PM);?>
@@ -68,6 +61,13 @@
createLink('user', 'profile', "userID=$userID", '', true), $userName, '', "title='{$userName}' data-toggle='modal' data-type='iframe' data-width='600'");?>
|
+
+
project->statusList, $project->status, '');?> |
+
+ app->getClientLang(), array('zh-cn','zh-tw')) ? round((float)$project->budget / 10000, 2) . $this->lang->project->tenThousand : round((float)$project->budget, 2);?>
+
budget != 0 ? zget($lang->project->currencySymbol, $project->budgetUnit) . ' ' . $projectBudget : $lang->project->future;?> |
+
begin;?> |
+
end == LONG_TIME ? $this->lang->project->longTime : $project->end;?> |
status == 'wait' || $project->status == 'suspended') common::printIcon('project', 'start', "projectID=$project->id", $project, 'list', 'play', '', 'iframe', true);?>
status == 'doing') common::printIcon('project', 'close', "projectID=$project->id", $project, 'list', 'off', '', 'iframe', true);?>
diff --git a/module/product/config.php b/module/product/config.php
index c42c6ce6bd..ac10fd7bfa 100644
--- a/module/product/config.php
+++ b/module/product/config.php
@@ -11,7 +11,7 @@ $config->product->custom->batchEditFields = 'line,PO,QD,RD';
if($config->systemMode == 'new') $config->product->custom->batchEditFields .= ',program';
$config->product->list = new stdclass();
-$config->product->list->exportFields = 'id,program,line,name,activeRequirements,changedRequirements,draftRequirements,closedRequirements,requireCompleteRate,activeStories,changedStories,draftStories,closedStories,storyCompleteRate,plans,releases,bugs,unResolvedBugs,assignToNullBugs,closedBugs,bugFixedRate';
+$config->product->list->exportFields = 'id,program,line,name,manager,draftStories,activeStories,changedStories,reviewingStories,closedStories,storyCompleteRate,bugs,unResolvedBugs,assignToNullBugs,bugFixedRate,plans,releases';
$config->product->showBranchMethod = 'browse,project';
diff --git a/module/product/control.php b/module/product/control.php
index 2bd4c6fb33..66833d346f 100644
--- a/module/product/control.php
+++ b/module/product/control.php
@@ -1440,7 +1440,6 @@ class product extends control
$productConfig = $this->config->product;
/* Create field lists. */
- if(!$this->config->URAndSR) $productConfig->list->exportFields = str_replace('activeRequirements,changedRequirements,draftRequirements,closedRequirements,requireCompleteRate,', '', $productConfig->list->exportFields);
$fields = $this->post->exportFields ? $this->post->exportFields : explode(',', $productConfig->list->exportFields);
foreach($fields as $key => $fieldName)
{
@@ -1451,28 +1450,21 @@ class product extends control
$lastProgram = $lastLine = '';
$lines = $this->product->getLinePairs();
+ $users = $this->user->getPairs('noletter');
$productStats = $this->product->getStats('program_desc,line_desc,' . $orderBy, null, $status);
foreach($productStats as $i => $product)
{
- $product->line = zget($lines, $product->line, '');
- if($this->config->URAndSR)
- {
- $product->activeRequirements = (int) $product->requirements['active'];
- $product->changedRequirements = (int) $product->requirements['changing'];
- $product->draftRequirements = (int) $product->requirements['draft'];
- $product->closedRequirements = (int) $product->requirements['closed'];
- $product->totalRequirements = $product->activeRequirements + $product->changedRequirements + $product->draftRequirements + $product->closedRequirements;
- $product->requireCompleteRate = ($product->totalRequirements == 0 ? 0 : round($product->closedRequirements / $product->totalRequirements, 3) * 100) . '%';
- }
+ $product->line = zget($lines, $product->line, '');
+ $product->manager = zget($users, $product->PO, '');
+ $product->draftStories = (int)$product->stories['draft'];
$product->activeStories = (int)$product->stories['active'];
$product->changedStories = (int)$product->stories['changing'];
- $product->draftStories = (int)$product->stories['draft'];
+ $product->reviewingStories = (int)$product->stories['reviewing'];
$product->closedStories = (int)$product->stories['closed'];
- $product->totalStories = $product->activeStories + $product->changedStories + $product->draftStories + $product->closedStories;
+ $product->totalStories = $product->activeStories + $product->changedStories + $product->draftStories + $product->closedStories + $product->reviewingStories;
$product->storyCompleteRate = ($product->totalStories == 0 ? 0 : round($product->closedStories / $product->totalStories, 3) * 100) . '%';
$product->unResolvedBugs = (int)$product->unResolved;
$product->assignToNullBugs = (int)$product->assignToNull;
- $product->closedBugs = (int)$product->closedBugs;
$product->bugFixedRate = (($product->unResolved + $product->fixedBugs) == 0 ? 0 : round($product->fixedBugs / ($product->unResolved + $product->fixedBugs), 3) * 100) . '%';
$product->program = $product->programName;
diff --git a/module/product/lang/de.php b/module/product/lang/de.php
index 913c2c6eda..0b6f2d3c81 100644
--- a/module/product/lang/de.php
+++ b/module/product/lang/de.php
@@ -72,6 +72,8 @@ $lang->product->changedStories = 'Geänderte [S]';
$lang->product->changedStoriesTitle = 'Changed Stories';
$lang->product->draftStories = 'Entwurf [S]';
$lang->product->draftStoriesTitle = 'Draft Stories';
+$lang->product->reviewingStories = "Reviewing [S]";
+$lang->product->reviewingStoriesTitle = "Reviewing Stories";
$lang->product->closedStories = 'Geschlossene [S]';
$lang->product->closedStoriesTitle = 'Closed Stories';
$lang->product->storyCompleteRate = "{$lang->SRCommon} Completion rate";
diff --git a/module/product/lang/en.php b/module/product/lang/en.php
index bf6a91a961..6fbdd044da 100644
--- a/module/product/lang/en.php
+++ b/module/product/lang/en.php
@@ -72,6 +72,8 @@ $lang->product->changedStories = 'Changed [S]';
$lang->product->changedStoriesTitle = 'Changed Stories';
$lang->product->draftStories = 'Draft [S]';
$lang->product->draftStoriesTitle = 'Draft Stories';
+$lang->product->reviewingStories = "Reviewing [S]";
+$lang->product->reviewingStoriesTitle = "Reviewing Stories";
$lang->product->closedStories = 'Closed [S]';
$lang->product->closedStoriesTitle = 'Closed Stories';
$lang->product->storyCompleteRate = "{$lang->SRCommon} Completion rate";
diff --git a/module/product/lang/fr.php b/module/product/lang/fr.php
index 6154559fac..bd7f8e0ce0 100644
--- a/module/product/lang/fr.php
+++ b/module/product/lang/fr.php
@@ -72,6 +72,8 @@ $lang->product->changedStories = 'Changées [S]';
$lang->product->changedStoriesTitle = 'Stories Modifiées';
$lang->product->draftStories = 'Brouillon [S]';
$lang->product->draftStoriesTitle = 'Stories en Analyse';
+$lang->product->reviewingStories = "Reviewing [S]";
+$lang->product->reviewingStoriesTitle = "Reviewing Stories";
$lang->product->closedStories = 'Fermées [S]';
$lang->product->closedStoriesTitle = 'Stories Fermées';
$lang->product->storyCompleteRate = "{$lang->SRCommon} Completion rate";
diff --git a/module/product/lang/zh-cn.php b/module/product/lang/zh-cn.php
index 6d33a54d1f..46dad4abdc 100644
--- a/module/product/lang/zh-cn.php
+++ b/module/product/lang/zh-cn.php
@@ -72,6 +72,8 @@ $lang->product->changedStories = "已变更{$lang->SRCommon}";
$lang->product->changedStoriesTitle = "已变更{$lang->SRCommon}";
$lang->product->draftStories = "草稿{$lang->SRCommon}";
$lang->product->draftStoriesTitle = "草稿{$lang->SRCommon}";
+$lang->product->reviewingStories = "评审中{$lang->SRCommon}";
+$lang->product->reviewingStoriesTitle = "评审中{$lang->SRCommon}";
$lang->product->closedStories = "已关闭{$lang->SRCommon}";
$lang->product->closedStoriesTitle = "已关闭{$lang->SRCommon}";
$lang->product->storyCompleteRate = "{$lang->SRCommon}完成率";
diff --git a/module/productplan/model.php b/module/productplan/model.php
index d07ec90341..f2481a291c 100644
--- a/module/productplan/model.php
+++ b/module/productplan/model.php
@@ -1184,7 +1184,7 @@ class productplanModel extends model
$menu .= "";
}
- if(($canStart or $canFinish or $canClose or $canCreateExec) and ($canLinkStory or $canLinkBug or $canEdit or $canCreateChild or $canDelete))
+ if($type == 'browse' and ($canStart or $canFinish or $canClose or $canCreateExec) and ($canLinkStory or $canLinkBug or $canEdit or $canCreateChild or $canDelete))
{
$menu .= "";
}
@@ -1212,7 +1212,7 @@ class productplanModel extends model
$menu .= $this->buildMenu('productplan', 'create', "product={$plan->product}&branch={$plan->branch}&parent={$plan->id}", $plan, $type, 'split', '', '', '', '', $this->lang->productplan->children);
- if(($canLinkStory or $canLinkBug or $canEdit or $canCreateChild) and $canDelete)
+ if($type == 'browse' and ($canLinkStory or $canLinkBug or $canEdit or $canCreateChild) and $canDelete)
{
$menu .= "";
}
diff --git a/module/program/view/product.html.php b/module/program/view/product.html.php
index 400629ea9b..1ee1d0ae63 100644
--- a/module/program/view/product.html.php
+++ b/module/program/view/product.html.php
@@ -52,7 +52,7 @@
| product->name);?> |
product->manager);?> |
-
story->story;?> |
+
story->story;?> |
bug->common;?> |
product->plan;?> |
product->release;?> |
@@ -62,6 +62,7 @@
story->draft;?> |
story->activate;?> |
story->change;?> |
+
story->review;?> |
story->completeRate;?> |
bug->activate;?> |
bug->fixedRate;?> |
@@ -69,10 +70,7 @@
- stories['active'] + $product->stories['closed'] + $product->stories['draft'] + $product->stories['changing'];
- $totalRequirements = $product->requirements['active'] + $product->requirements['closed'] + $product->requirements['draft'] + $product->requirements['changing'];
- ?>
+ stories['active'] + $product->stories['closed'] + $product->stories['draft'] + $product->stories['changing'] + $product->stories['reviewing'];?>
|
@@ -96,6 +94,7 @@
| stories['draft'];?> |
stories['active'];?> |
stories['changing'];?> |
+ stories['reviewing'];?> |
stories['closed'] / $totalStories, 3) * 100;?>% |
unResolved;?> |
unResolved + $product->fixedBugs) == 0 ? 0 : round($product->fixedBugs / ($product->unResolved + $product->fixedBugs), 3) * 100;?>% |
diff --git a/module/project/control.php b/module/project/control.php
index 509c7f9ced..63dbbcca00 100644
--- a/module/project/control.php
+++ b/module/project/control.php
@@ -63,7 +63,7 @@ class project extends control
$project->PM = zget($users, $project->PM);
$project->status = $this->processStatus('project', $project);
$project->model = zget($projectLang->modelList, $project->model);
- $project->budget = $project->budget . zget($projectLang->unitList, $project->budgetUnit);
+ $project->budget = $project->budget != 0 ? $project->budget . zget($projectLang->unitList, $project->budgetUnit) : $this->lang->project->future;
$project->parent = $project->parentName;
$linkedProducts = $this->product->getProducts($project->id, 'all', '', false);