diff --git a/module/action/model.php b/module/action/model.php
index 8062c46551..985dbe7e4a 100755
--- a/module/action/model.php
+++ b/module/action/model.php
@@ -668,7 +668,7 @@ class actionModel extends model
if(is_numeric($projectID))
{
$project = $this->loadModel('program')->getPRJByID($projectID);
- if($project->type == 'project')
+ if(!empty($project) && $project->type == 'project')
{
$executions = $this->loadModel('project')->getExecutionPairs($projectID);
$products = $this->loadModel('product')->getProductPairsByProject($projectID);
diff --git a/module/common/lang/de.php b/module/common/lang/de.php
index e2630d2fb2..f6cda578b1 100644
--- a/module/common/lang/de.php
+++ b/module/common/lang/de.php
@@ -144,13 +144,15 @@ $lang->mainNav->my = ' My|my|index|';
$lang->mainNav->program = ' Program|program|pgmbrowse|';
$lang->mainNav->product = ' Product|product|index|';
$lang->mainNav->project = ' Project|program|prjbrowse|';
+$lang->mainNav->qa = ' Test|qa|index|';
$lang->mainNav->repo = ' Code|repo|browse|';
$lang->mainNav->doc = ' Doc|doc|index|';
+$lang->mainNav->report = " Statistic|report|productsummary|";
$lang->mainNav->system = ' System|custom|estimate|';
$lang->mainNav->admin = ' Admin|admin|index|';
$lang->reporting = new stdclass();
-$lang->dividerMenu = ',project,doc,admin,';
+$lang->dividerMenu = ',qa,report,admin,';
/* Program set menu. */
$lang->program = new stdclass();
@@ -509,7 +511,7 @@ $lang->report->menu = new stdclass();
$lang->report->menu->annual = array('link' => 'Annual Summary|report|annualData|year=&dept=&userID=' . (isset($_SESSION['user']) ? zget($_SESSION['user'], 'id', 0) : 0), 'target' => '_blank');
$lang->report->menu->product = array('link' => $lang->productCommon . '|report|productsummary');
-$lang->report->menu->prj = array('link' => $lang->executionCommon . '|report|projectdeviation');
+$lang->report->menu->project = array('link' => $lang->executionCommon . '|report|projectdeviation');
$lang->report->menu->test = array('link' => 'Test|report|bugcreate', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => 'Unternehmen|report|workload');
@@ -1023,6 +1025,6 @@ $lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PR
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
diff --git a/module/common/lang/en.php b/module/common/lang/en.php
index 6d13a2e0df..b5cbac8e3b 100644
--- a/module/common/lang/en.php
+++ b/module/common/lang/en.php
@@ -144,13 +144,15 @@ $lang->mainNav->my = ' My|my|index|';
$lang->mainNav->program = ' Program|program|pgmbrowse|';
$lang->mainNav->product = ' Product|product|index|';
$lang->mainNav->project = ' Project|program|prjbrowse|';
+$lang->mainNav->qa = ' Test|qa|index|';
$lang->mainNav->repo = ' Code|repo|browse|';
$lang->mainNav->doc = ' Doc|doc|index|';
+$lang->mainNav->report = " Statistic|report|productsummary|";
$lang->mainNav->system = ' System|custom|estimate|';
$lang->mainNav->admin = ' Admin|admin|index|';
$lang->reporting = new stdclass();
-$lang->dividerMenu = ',project,doc,admin,';
+$lang->dividerMenu = ',qa,report,admin,';
/* Program set menu. */
$lang->program = new stdclass();
@@ -509,7 +511,7 @@ $lang->report->menu = new stdclass();
$lang->report->menu->annual = array('link' => 'Annual Summary|report|annualData|year=&dept=&userID=' . (isset($_SESSION['user']) ? zget($_SESSION['user'], 'id', 0) : 0), 'target' => '_blank');
$lang->report->menu->product = array('link' => $lang->productCommon . '|report|productsummary');
-$lang->report->menu->prj = array('link' => $lang->executionCommon . '|report|projectdeviation');
+$lang->report->menu->project = array('link' => $lang->executionCommon . '|report|projectdeviation');
$lang->report->menu->test = array('link' => 'Request|report|bugcreate', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => 'Company|report|workload');
@@ -1023,6 +1025,6 @@ $lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PR
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php
index 66b4482308..8eb8677317 100644
--- a/module/common/lang/fr.php
+++ b/module/common/lang/fr.php
@@ -144,13 +144,15 @@ $lang->mainNav->my = ' My|my|index|';
$lang->mainNav->program = ' Program|program|pgmbrowse|';
$lang->mainNav->product = ' Product|product|index|';
$lang->mainNav->project = ' Project|program|prjbrowse|';
+$lang->mainNav->qa = ' Test|qa|index|';
$lang->mainNav->repo = ' Code|repo|browse|';
+$lang->mainNav->report = " Statistic|report|productsummary|";
$lang->mainNav->doc = ' Doc|doc|index|';
$lang->mainNav->system = ' System|custom|estimate|';
$lang->mainNav->admin = ' Admin|admin|index|';
$lang->reporting = new stdclass();
-$lang->dividerMenu = ',project,doc,admin,';
+$lang->dividerMenu = ',qa,report,admin,';
/* Program set menu. */
$lang->program = new stdclass();
@@ -509,7 +511,7 @@ $lang->report->menu = new stdclass();
$lang->report->menu->annual = array('link' => 'Annual Summary|report|annualData|year=&dept=&userID=' . (isset($_SESSION['user']) ? zget($_SESSION['user'], 'id', 0) : 0), 'target' => '_blank');
$lang->report->menu->product = array('link' => $lang->productCommon . '|report|productsummary');
-$lang->report->menu->prj = array('link' => $lang->executionCommon . '|report|projectdeviation');
+$lang->report->menu->project = array('link' => $lang->executionCommon . '|report|projectdeviation');
$lang->report->menu->test = array('link' => 'Recette|report|bugcreate', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => 'Entreprise|report|workload');
@@ -1023,6 +1025,6 @@ $lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PR
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
diff --git a/module/common/lang/menuOrder.php b/module/common/lang/menuOrder.php
index 077e65b72b..47eaf86b71 100644
--- a/module/common/lang/menuOrder.php
+++ b/module/common/lang/menuOrder.php
@@ -3,8 +3,10 @@ $lang->mainNav->menuOrder[5] = 'my';
$lang->mainNav->menuOrder[10] = 'program';
$lang->mainNav->menuOrder[15] = 'product';
$lang->mainNav->menuOrder[20] = 'project';
+$lang->mainNav->menuOrder[23] = 'qa';
$lang->mainNav->menuOrder[25] = 'repo';
$lang->mainNav->menuOrder[30] = 'doc';
+$lang->mainNav->menuOrder[35] = 'report';
$lang->mainNav->menuOrder[60] = 'system';
$lang->mainNav->menuOrder[70] = 'admin';
@@ -125,7 +127,7 @@ $lang->doc->menuOrder[30] = 'create';
/* report menu order. */
$lang->report->menuOrder[5] = 'annual';
$lang->report->menuOrder[10] = 'product';
-$lang->report->menuOrder[15] = 'prj';
+$lang->report->menuOrder[15] = 'project';
$lang->report->menuOrder[20] = 'test';
$lang->report->menuOrder[25] = 'staff';
diff --git a/module/common/lang/vi.php b/module/common/lang/vi.php
index 28a7fdebab..315e1a40de 100644
--- a/module/common/lang/vi.php
+++ b/module/common/lang/vi.php
@@ -144,13 +144,15 @@ $lang->mainNav->my = ' My|my|index|';
$lang->mainNav->program = ' Program|program|pgmbrowse|';
$lang->mainNav->product = ' Product|product|index|';
$lang->mainNav->project = ' Project|program|prjbrowse|';
+$lang->mainNav->qa = ' Test|qa|index|';
$lang->mainNav->repo = ' Code|repo|browse|';
$lang->mainNav->doc = ' Doc|doc|index|';
+$lang->mainNav->report = " Statistic|report|productsummary|";
$lang->mainNav->system = ' System|custom|estimate|';
$lang->mainNav->admin = ' Admin|admin|index|';
$lang->reporting = new stdclass();
-$lang->dividerMenu = ',project,doc,admin,';
+$lang->dividerMenu = ',qa,report,admin,';
/* Program set menu. */
$lang->program = new stdclass();
@@ -509,7 +511,7 @@ $lang->report->menu = new stdclass();
$lang->report->menu->annual = array('link' => 'Tóm tắt năm|report|annualData|year=&dept=&userID=' . (isset($_SESSION['user']) ? zget($_SESSION['user'], 'id', 0) : 0), 'target' => '_blank');
$lang->report->menu->product = array('link' => $lang->productCommon . '|report|productsummary');
-$lang->report->menu->prj = array('link' => $lang->executionCommon . '|report|projectdeviation');
+$lang->report->menu->project = array('link' => $lang->executionCommon . '|report|projectdeviation');
$lang->report->menu->test = array('link' => 'Yêu cầu|report|bugcreate', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => 'Doanh nghiệp|report|workload');
@@ -1023,6 +1025,6 @@ $lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PR
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php
index bf609df41b..41e53f1280 100644
--- a/module/common/lang/zh-cn.php
+++ b/module/common/lang/zh-cn.php
@@ -144,13 +144,14 @@ $lang->mainNav->my = ' 地盘|my|index|';
$lang->mainNav->program = " 项目集|$programModule|$programMethod|";
$lang->mainNav->product = " 产品|$productModule|$productMethod|";
$lang->mainNav->project = " 项目|$projectModule|$projectMethod|";
+$lang->mainNav->qa = ' 测试|qa|index|';
$lang->mainNav->repo = ' 代码|repo|browse|';
$lang->mainNav->doc = ' 文档|doc|index|';
+$lang->mainNav->report = " 统计|report|productSummary|";
$lang->mainNav->system = ' 组织|subject|browse|';
$lang->mainNav->admin = ' 后台|admin|index|';
-$lang->reporting = new stdclass();
-$lang->dividerMenu = ',project,doc,admin,';
+$lang->dividerMenu = ',qa,report,admin,';
/* Program set menu. */
$lang->program = new stdclass();
@@ -509,7 +510,7 @@ $lang->report->menu = new stdclass();
$lang->report->menu->annual = array('link' => '年度总结|report|annualData|year=&dept=&userID=' . (isset($_SESSION['user']) ? zget($_SESSION['user'], 'id', 0) : 0), 'target' => '_blank');
$lang->report->menu->product = array('link' => $lang->productCommon . '|report|productsummary');
-$lang->report->menu->prj = array('link' => $lang->executionCommon . '|report|projectdeviation');
+$lang->report->menu->project = array('link' => $lang->executionCommon . '|report|projectdeviation');
$lang->report->menu->test = array('link' => '测试|report|bugcreate', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => '组织|report|workload');
@@ -608,7 +609,6 @@ $lang->menugroup->testtask = 'qa';
$lang->menugroup->testsuite = 'qa';
$lang->menugroup->caselib = 'qa';
$lang->menugroup->testreport = 'qa';
-$lang->menugroup->report = 'reporting';
$lang->menugroup->people = 'admin';
$lang->menugroup->dept = 'company';
$lang->menugroup->todo = 'my';
@@ -1023,6 +1023,6 @@ $lang->design->menu->ads = array('link' => '接口设计|design|browse|prod
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php
index d3d7207dd1..3400801354 100644
--- a/module/common/lang/zh-tw.php
+++ b/module/common/lang/zh-tw.php
@@ -144,13 +144,15 @@ $lang->mainNav->my = ' 地盤|my|index|';
$lang->mainNav->program = " 項目集|$programModule|$programMethod|";
$lang->mainNav->product = " 產品|$productModule|$productMethod|";
$lang->mainNav->project = " 項目|$projectModule|$projectMethod|";
+$lang->mainNav->qa = ' 测试|qa|index|';
$lang->mainNav->repo = ' 代碼|repo|browse|';
$lang->mainNav->doc = ' 文檔|doc|index|';
+$lang->mainNav->report = " 统计|report|productSummary|";
$lang->mainNav->system = ' 組織|subject|browse|';
$lang->mainNav->admin = ' 後台|admin|index|';
$lang->reporting = new stdclass();
-$lang->dividerMenu = ',project,doc,admin,';
+$lang->dividerMenu = ',qa,report,admin,';
/* Program set menu. */
$lang->program = new stdclass();
@@ -509,7 +511,7 @@ $lang->report->menu = new stdclass();
$lang->report->menu->annual = array('link' => '年度總結|report|annualData|year=&dept=&userID=' . (isset($_SESSION['user']) ? zget($_SESSION['user'], 'id', 0) : 0), 'target' => '_blank');
$lang->report->menu->product = array('link' => $lang->productCommon . '|report|productsummary');
-$lang->report->menu->prj = array('link' => $lang->executionCommon . '|report|projectdeviation');
+$lang->report->menu->project = array('link' => $lang->executionCommon . '|report|projectdeviation');
$lang->report->menu->test = array('link' => '測試|report|bugcreate', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => '組織|report|workload');
@@ -1023,6 +1025,6 @@ $lang->design->menu->ads = array('link' => '介面設計|design|browse|prod
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
diff --git a/module/common/model.php b/module/common/model.php
index 7ad0a304fa..99c94e76a5 100644
--- a/module/common/model.php
+++ b/module/common/model.php
@@ -2306,7 +2306,7 @@ EOD;
$lang->report->menu = $lang->measurement->menu;
}
if($group == 'doclib') return;
- if($group == 'reporting')
+ if($group == 'report')
{
$lang->menu = $lang->report->menu;
$lang->menuOrder = $lang->report->menuOrder;
diff --git a/module/common/view/header.html.php b/module/common/view/header.html.php
index 8be4fb13c0..de01ee312e 100755
--- a/module/common/view/header.html.php
+++ b/module/common/view/header.html.php
@@ -7,9 +7,13 @@ include 'chosen.html.php';
app->loadConfig('sso');?>
sso->redirect)) js::set('ssoRedirect', $config->sso->redirect);?>
-navGroup, $app->rawModule) == 'program');?>
-navGroup, $app->rawModule) == 'product');?>
-navGroup, $app->rawModule) == 'project');?>
+navGroup, $app->rawModule);
+$isProgram = $rawModule == 'program';
+$isProduct = $rawModule == 'product';
+$isProject = $rawModule == 'project';
+$isReport = $rawModule == 'report';
+?>