diff --git a/config/zentaopms.php b/config/zentaopms.php
index 3aa4ab08fb..247f68b965 100644
--- a/config/zentaopms.php
+++ b/config/zentaopms.php
@@ -214,6 +214,7 @@ $config->objectTables['productplan'] = TABLE_PRODUCTPLAN;
$config->objectTables['release'] = TABLE_RELEASE;
$config->objectTables['program'] = TABLE_PROJECT;
$config->objectTables['project'] = TABLE_PROJECT;
+$config->objectTables['execution'] = TABLE_PROJECT;
$config->objectTables['task'] = TABLE_TASK;
$config->objectTables['build'] = TABLE_BUILD;
$config->objectTables['bug'] = TABLE_BUG;
diff --git a/framework/router.class.php b/framework/router.class.php
index d9f6bfb2e9..ef53f43b6e 100755
--- a/framework/router.class.php
+++ b/framework/router.class.php
@@ -207,7 +207,6 @@ class router extends baseRouter
$lang->productURCommon = zget($URList, $storyConcept->storyConcept, $config->URCommonList[$this->clientLang]);
$lang->productSRCommon = zget($SRList, $storyConcept->storyConcept, $config->SRCommonList[$this->clientLang]);
}
-
}
parent::loadLang($moduleName, $appName);
diff --git a/module/action/config.php b/module/action/config.php
index 24343e17ac..f51864c95c 100755
--- a/module/action/config.php
+++ b/module/action/config.php
@@ -5,6 +5,7 @@ $config->action->objectNameFields['productplan'] = 'title';
$config->action->objectNameFields['release'] = 'name';
$config->action->objectNameFields['program'] = 'name';
$config->action->objectNameFields['project'] = 'name';
+$config->action->objectNameFields['execution'] = 'name';
$config->action->objectNameFields['task'] = 'name';
$config->action->objectNameFields['build'] = 'name';
$config->action->objectNameFields['bug'] = 'title';
diff --git a/module/action/lang/de.php b/module/action/lang/de.php
index 35383f66d7..1e56d8aaae 100644
--- a/module/action/lang/de.php
+++ b/module/action/lang/de.php
@@ -65,11 +65,12 @@ $lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
-$lang->action->objectTypes['story'] = 'Story';
-$lang->action->objectTypes['productplan'] = 'Plan';
+$lang->action->objectTypes['story'] = $lang->productSRCommon;
+$lang->action->objectTypes['productplan'] = $lang->planCommon;
$lang->action->objectTypes['release'] = 'Release';
$lang->action->objectTypes['program'] = 'Program';
-$lang->action->objectTypes['project'] = $lang->projectCommon;
+$lang->action->objectTypes['project'] = 'Project';
+$lang->action->objectTypes['execution'] = 'Execution';
$lang->action->objectTypes['task'] = 'Aufgabe';
$lang->action->objectTypes['build'] = 'Build';
$lang->action->objectTypes['bug'] = 'Bug';
@@ -400,8 +401,9 @@ $lang->action->label->product = $lang->productCommon . '|product|view|produc
$lang->action->label->productplan = 'Plan|productplan|view|productID=%s';
$lang->action->label->release = 'Release|release|view|productID=%s';
$lang->action->label->story = 'Story|story|view|storyID=%s';
-$lang->action->label->program = "Program|program|browse|";
-$lang->action->label->project = "{$lang->projectCommon}|project|view|projectID=%s";
+$lang->action->label->program = "Program|program|pgmproduct|programID=%s";
+$lang->action->label->project = "Project|program|index|projectID=%s";
+$lang->action->label->execution = "Execution|project|task|projectID=%s";
$lang->action->label->task = 'Aufgaben|task|view|taskID=%s';
$lang->action->label->build = 'Builds|build|view|buildID=%s';
$lang->action->label->bug = 'Bugs|bug|view|bugID=%s';
diff --git a/module/action/lang/en.php b/module/action/lang/en.php
index 9a361437f2..c739d41f95 100755
--- a/module/action/lang/en.php
+++ b/module/action/lang/en.php
@@ -65,11 +65,12 @@ $lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
-$lang->action->objectTypes['story'] = 'Story';
-$lang->action->objectTypes['productplan'] = 'Plan';
+$lang->action->objectTypes['story'] = $lang->productSRCommon;
+$lang->action->objectTypes['productplan'] = $lang->planCommon;
$lang->action->objectTypes['release'] = 'Release';
$lang->action->objectTypes['program'] = 'Program';
-$lang->action->objectTypes['project'] = $lang->projectCommon;
+$lang->action->objectTypes['project'] = 'Project';
+$lang->action->objectTypes['execution'] = 'Execution';
$lang->action->objectTypes['task'] = 'Task';
$lang->action->objectTypes['build'] = 'Build';
$lang->action->objectTypes['bug'] = 'Bug';
@@ -400,8 +401,9 @@ $lang->action->label->product = $lang->productCommon . '|product|view|produc
$lang->action->label->productplan = 'Plan|productplan|view|productID=%s';
$lang->action->label->release = 'Release|release|view|productID=%s';
$lang->action->label->story = 'Story|story|view|storyID=%s';
-$lang->action->label->program = "Program|program|browse|";
-$lang->action->label->project = "{$lang->projectCommon}|project|view|projectID=%s";
+$lang->action->label->program = "Program|program|pgmproduct|programID=%s";
+$lang->action->label->project = "Project|program|index|projectID=%s";
+$lang->action->label->execution = "Execution|project|task|projectID=%s";
$lang->action->label->task = 'Task|task|view|taskID=%s';
$lang->action->label->build = 'Build|build|view|buildID=%s';
$lang->action->label->bug = 'Bug|bug|view|bugID=%s';
diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php
index 8c3fd680d8..2ac613b49b 100644
--- a/module/action/lang/fr.php
+++ b/module/action/lang/fr.php
@@ -65,11 +65,12 @@ $lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
-$lang->action->objectTypes['story'] = 'Story';
-$lang->action->objectTypes['productplan'] = 'Plan';
+$lang->action->objectTypes['story'] = $lang->productSRCommon;
+$lang->action->objectTypes['productplan'] = $lang->planCommon;
$lang->action->objectTypes['release'] = 'Release';
$lang->action->objectTypes['program'] = 'Program';
-$lang->action->objectTypes['project'] = 'Projet';
+$lang->action->objectTypes['project'] = 'Project';
+$lang->action->objectTypes['execution'] = 'Execution';
$lang->action->objectTypes['task'] = 'Tâche';
$lang->action->objectTypes['build'] = 'Build';
$lang->action->objectTypes['bug'] = 'Bug';
@@ -400,8 +401,9 @@ $lang->action->label->product = $lang->productCommon . '|product|view|produc
$lang->action->label->productplan = 'Plan|productplan|view|productID=%s';
$lang->action->label->release = 'Release|release|view|productID=%s';
$lang->action->label->story = 'Story|story|view|storyID=%s';
-$lang->action->label->program = "Program|program|browse|";
-$lang->action->label->project = "{$lang->projectCommon}|project|view|projectID=%s";
+$lang->action->label->program = "Program|program|pgmproduct|programID=%s";
+$lang->action->label->project = "Project|program|index|projectID=%s";
+$lang->action->label->execution = "Execution|project|task|projectID=%s";
$lang->action->label->task = 'Tâche|task|view|taskID=%s';
$lang->action->label->build = 'Build|build|view|buildID=%s';
$lang->action->label->bug = 'Bug|bug|view|bugID=%s';
diff --git a/module/action/lang/vi.php b/module/action/lang/vi.php
index a059fb71de..3bdf936b3c 100644
--- a/module/action/lang/vi.php
+++ b/module/action/lang/vi.php
@@ -65,11 +65,12 @@ $lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
-$lang->action->objectTypes['story'] = 'Câu chuyện';
-$lang->action->objectTypes['productplan'] = 'Kế hoạch';
+$lang->action->objectTypes['story'] = $lang->productSRCommon;
+$lang->action->objectTypes['productplan'] = $lang->planCommon;
$lang->action->objectTypes['release'] = 'Phát hành';
$lang->action->objectTypes['program'] = 'Program';
-$lang->action->objectTypes['project'] = $lang->projectCommon;
+$lang->action->objectTypes['project'] = 'Project';
+$lang->action->objectTypes['execution'] = 'Execution';
$lang->action->objectTypes['task'] = 'Nhiệm vụ';
$lang->action->objectTypes['build'] = 'Bản dựng';
$lang->action->objectTypes['bug'] = 'Bug';
@@ -400,8 +401,9 @@ $lang->action->label->product = $lang->productCommon . '|product|view|produc
$lang->action->label->productplan = 'Kế hoạch|productplan|view|productID=%s';
$lang->action->label->release = 'Phát hành|release|view|productID=%s';
$lang->action->label->story = 'Câu chuyện|story|view|storyID=%s';
-$lang->action->label->program = "Program|program|browse|";
-$lang->action->label->project = "{$lang->projectCommon}|project|view|projectID=%s";
+$lang->action->label->program = "Program|program|pgmproduct|programID=%s";
+$lang->action->label->project = "Project|program|index|projectID=%s";
+$lang->action->label->execution = "Execution|project|task|projectID=%s";
$lang->action->label->task = 'Nhiệm vụ|task|view|taskID=%s';
$lang->action->label->build = 'Bản dựng|build|view|buildID=%s';
$lang->action->label->bug = 'Bug|bug|view|bugID=%s';
diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php
index decaca738b..5bab4c6cc5 100755
--- a/module/action/lang/zh-cn.php
+++ b/module/action/lang/zh-cn.php
@@ -68,8 +68,9 @@ $lang->action->objectTypes['product'] = $lang->productCommon;
$lang->action->objectTypes['story'] = $lang->productSRCommon;
$lang->action->objectTypes['productplan'] = $lang->planCommon;
$lang->action->objectTypes['release'] = '发布';
-$lang->action->objectTypes['program'] = '项目';
-$lang->action->objectTypes['project'] = $lang->projectCommon;
+$lang->action->objectTypes['program'] = '项目集';
+$lang->action->objectTypes['project'] = '项目';
+$lang->action->objectTypes['execution'] = '执行';
$lang->action->objectTypes['task'] = '任务';
$lang->action->objectTypes['build'] = '版本';
$lang->action->objectTypes['bug'] = 'Bug';
@@ -400,8 +401,9 @@ $lang->action->label->product = $lang->productCommon . '|product|view|produc
$lang->action->label->productplan = "{$lang->planCommon}|productplan|view|productID=%s";
$lang->action->label->release = '发布|release|view|productID=%s';
$lang->action->label->story = "{$lang->productSRCommon}|story|view|storyID=%s";
-$lang->action->label->program = "项目|program|browse|";
-$lang->action->label->project = "{$lang->projectCommon}|project|view|projectID=%s";
+$lang->action->label->program = "项目集|program|pgmproduct|programID=%s";
+$lang->action->label->project = "项目|program|index|projectID=%s";
+$lang->action->label->execution = "执行|project|task|projectID=%s";
$lang->action->label->task = '任务|task|view|taskID=%s';
$lang->action->label->build = '版本|build|view|buildID=%s';
$lang->action->label->bug = 'Bug|bug|view|bugID=%s';
diff --git a/module/action/lang/zh-tw.php b/module/action/lang/zh-tw.php
index 7f82ab31d3..65376adefb 100755
--- a/module/action/lang/zh-tw.php
+++ b/module/action/lang/zh-tw.php
@@ -66,9 +66,11 @@ $lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
$lang->action->objectTypes['product'] = $lang->productCommon;
$lang->action->objectTypes['story'] = $lang->productSRCommon;
-$lang->action->objectTypes['productplan'] = '計劃';
+$lang->action->objectTypes['productplan'] = $lang->planCommon;
$lang->action->objectTypes['release'] = '發佈';
-$lang->action->objectTypes['project'] = $lang->projectCommon;
+$lang->action->objectTypes['program'] = '項目集';
+$lang->action->objectTypes['project'] = '項目';
+$lang->action->objectTypes['execution'] = '執行';
$lang->action->objectTypes['task'] = '任務';
$lang->action->objectTypes['build'] = '版本';
$lang->action->objectTypes['bug'] = 'Bug';
@@ -387,7 +389,9 @@ $lang->action->label->product = $lang->productCommon . '|product|view|produc
$lang->action->label->productplan = '計劃|productplan|view|productID=%s';
$lang->action->label->release = '發佈|release|view|productID=%s';
$lang->action->label->story = "{$lang->productSRCommon}|story|view|storyID=%s";
-$lang->action->label->project = "{$lang->projectCommon}|project|view|projectID=%s";
+$lang->action->label->program = "項目集|program|pgmproduct|programID=%s";
+$lang->action->label->project = "項目|program|index|projectID=%s";
+$lang->action->label->execution = "執行|project|task|projectID=%s";
$lang->action->label->task = '任務|task|view|taskID=%s';
$lang->action->label->build = '版本|build|view|buildID=%s';
$lang->action->label->bug = 'Bug|bug|view|bugID=%s';
diff --git a/module/action/model.php b/module/action/model.php
index 01be196edf..cfc561792c 100755
--- a/module/action/model.php
+++ b/module/action/model.php
@@ -801,12 +801,13 @@ class actionModel extends model
{
if(!isset($this->config->objectTables[$objectType])) continue; // If no defination for this type, omit it.
- $objectIds = array_unique($objectIds);
- $table = $this->config->objectTables[$objectType];
- $field = $this->config->action->objectNameFields[$objectType];
+ $objectIds = array_unique($objectIds);
+ $table = $this->config->objectTables[$objectType];
+ $field = $this->config->action->objectNameFields[$objectType];
if($table != TABLE_TODO)
{
- if(strpos($table, 'task') !== false or strpos($table, 'bug') !== false or strpos($table, 'build') !== false or strpos($table, 'issue') !== false)
+ $needGetPRJType = 'story,build,task,bug,case,testcase,caselib,testtask,testsuite,testreport,doc,issue,release,risk,design';
+ if(strpos($needGetPRJType, $objectType) !== false)
{
$objectInfo = $this->dao->select("id, PRJ, $field AS name")->from($table)->where('id')->in($objectIds)->fetchAll();
foreach($objectInfo as $object)
@@ -815,13 +816,13 @@ class actionModel extends model
$objectPRJ[$object->id] = $object->PRJ;
}
}
- elseif(strpos($table, 'project') !== false)
+ elseif($objectType == 'program' or $objectType == 'project' or $objectType == 'execution')
{
- $objectInfo = $this->dao->select("id, $field AS name")->from($table)->where('id')->in($objectIds)->fetchAll();
+ $objectInfo = $this->dao->select("id, project, $field AS name")->from($table)->where('id')->in($objectIds)->fetchAll();
foreach($objectInfo as $object)
{
$objectName[$object->id] = $object->name;
- $objectPRJ[$object->id] = $object->id;
+ $objectPRJ[$object->id] = $object->project > 0 ? $object->project : $object->id;
}
}
else
diff --git a/module/block/lang/de.php b/module/block/lang/de.php
index f4d97fdb15..ee67b2dc69 100644
--- a/module/block/lang/de.php
+++ b/module/block/lang/de.php
@@ -87,7 +87,7 @@ $lang->block->hidden = 'Verstecken';
$lang->block->dynamicInfo = "%s %s %s %s %s";
$lang->block->productName = $lang->productCommon . ' Name';
-$lang->block->totalStory = 'The Total ' . $lang->productSRCommon;
+$lang->block->totalStory = 'The Total ' . $lang->SRCommon;
$lang->block->totalBug = 'The Total Bug';
$lang->block->totalRelease = 'Release The Number';
diff --git a/module/block/lang/en.php b/module/block/lang/en.php
index e06b9678e0..a654e7bb6b 100644
--- a/module/block/lang/en.php
+++ b/module/block/lang/en.php
@@ -87,7 +87,7 @@ $lang->block->hidden = 'Hide';
$lang->block->dynamicInfo = "%s %s %s %s %s";
$lang->block->productName = $lang->productCommon . ' Name';
-$lang->block->totalStory = 'The Total ' . $lang->productSRCommon;
+$lang->block->totalStory = 'The Total ' . $lang->SRCommon;
$lang->block->totalBug = 'The Total Bug';
$lang->block->totalRelease = 'Release The Number';
diff --git a/module/block/lang/fr.php b/module/block/lang/fr.php
index 1bf956da9a..7c118b7a2e 100644
--- a/module/block/lang/fr.php
+++ b/module/block/lang/fr.php
@@ -87,7 +87,7 @@ $lang->block->hidden = 'Masquer';
$lang->block->dynamicInfo = "%s %s %s %s %s";
$lang->block->productName = $lang->productCommon . ' Name';
-$lang->block->totalStory = 'The Total ' . $lang->productSRCommon;
+$lang->block->totalStory = 'The Total ' . $lang->SRCommon;
$lang->block->totalBug = 'The Total Bug';
$lang->block->totalRelease = 'Release The Number';
diff --git a/module/block/lang/vi.php b/module/block/lang/vi.php
index e131e60c7c..754d7e4ed7 100644
--- a/module/block/lang/vi.php
+++ b/module/block/lang/vi.php
@@ -87,7 +87,7 @@ $lang->block->hidden = 'Ẩn';
$lang->block->dynamicInfo = "%s %s %s %s %s";
$lang->block->productName = $lang->productCommon . ' Name';
-$lang->block->totalStory = 'The Total ' . $lang->productSRCommon;
+$lang->block->totalStory = 'The Total ' . $lang->SRCommon;
$lang->block->totalBug = 'The Total Bug';
$lang->block->totalRelease = 'Release The Number';
diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php
index e541dd3e80..0e91f4cf80 100644
--- a/module/block/lang/zh-cn.php
+++ b/module/block/lang/zh-cn.php
@@ -40,7 +40,7 @@ $lang->block->contribute = '我的贡献';
$lang->block->leftToday = '今天剩余工作总计';
$lang->block->myTask = '我的任务';
-$lang->block->myStory = "我的{$lang->productSRCommon}";
+$lang->block->myStory = "我的{$lang->SRCommon}";
$lang->block->myBug = '我的BUG';
$lang->block->myProject = '未关闭的' . $lang->projectCommon;
$lang->block->myProduct = '未关闭的' . $lang->productCommon;
@@ -88,7 +88,7 @@ $lang->block->hidden = '隐藏';
$lang->block->dynamicInfo = "%s %s %s %s %s";
$lang->block->productName = $lang->productCommon . '名称';
-$lang->block->totalStory = '总' . $lang->productSRCommon;
+$lang->block->totalStory = '总' . $lang->SRCommon;
$lang->block->totalBug = '总Bug';
$lang->block->totalRelease = '发布次数';
@@ -182,7 +182,7 @@ $lang->block->default['product']['3']['grid'] = 8;
$lang->block->default['product']['3']['params']['count'] = 15;
$lang->block->default['product']['3']['params']['type'] = 'noclosed';
-$lang->block->default['product']['4']['title'] = "指派给我的{$lang->productSRCommon}";
+$lang->block->default['product']['4']['title'] = "指派给我的{$lang->SRCommon}";
$lang->block->default['product']['4']['block'] = 'story';
$lang->block->default['product']['4']['grid'] = 4;
@@ -313,7 +313,7 @@ $lang->block->availableBlocks->todo = '我的待办';
$lang->block->availableBlocks->task = '我的任务';
$lang->block->availableBlocks->bug = '我的Bug';
$lang->block->availableBlocks->case = '我的用例';
-$lang->block->availableBlocks->story = "我的{$lang->productSRCommon}";
+$lang->block->availableBlocks->story = "我的{$lang->SRCommon}";
$lang->block->availableBlocks->product = $lang->productCommon . '列表';
$lang->block->availableBlocks->project = $lang->projectCommon . '列表';
$lang->block->availableBlocks->plan = "{$lang->planCommon}列表";
@@ -359,7 +359,7 @@ $lang->block->modules['product']->availableBlocks = new stdclass();
$lang->block->modules['product']->availableBlocks->statistic = $lang->productCommon . '统计';
$lang->block->modules['product']->availableBlocks->overview = $lang->productCommon . '总览';
$lang->block->modules['product']->availableBlocks->list = $lang->productCommon . '列表';
-$lang->block->modules['product']->availableBlocks->story = "{$lang->productSRCommon}列表";
+$lang->block->modules['product']->availableBlocks->story = "{$lang->SRCommon}列表";
$lang->block->modules['product']->availableBlocks->plan = "{$lang->planCommon}列表";
$lang->block->modules['product']->availableBlocks->release = '发布列表';
@@ -531,7 +531,7 @@ $lang->block->gridOptions[4] = '右侧';
$lang->block->flowchart = array();
$lang->block->flowchart['admin'] = array('管理员', '维护公司', '添加用户', '维护权限');
-$lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', "维护{$lang->planCommon}", "维护{$lang->productSRCommon}", '创建发布');
-$lang->block->flowchart['project'] = array($lang->projectCommon . '经理', '创建' . $lang->projectCommon, '维护团队', '关联' . $lang->productCommon, "关联{$lang->productSRCommon}", '分解任务');
+$lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', "维护{$lang->planCommon}", "维护{$lang->SRCommon}", '创建发布');
+$lang->block->flowchart['project'] = array($lang->projectCommon . '经理', '创建' . $lang->projectCommon, '维护团队', '关联' . $lang->productCommon, "关联{$lang->SRCommon}", '分解任务');
$lang->block->flowchart['dev'] = array('研发人员', '领取任务和Bug', '更新状态', '完成任务和Bug');
$lang->block->flowchart['tester'] = array('测试人员', '撰写用例', '执行用例', '提交Bug', '验证Bug', '关闭Bug');
diff --git a/module/block/view/storyblock.html.php b/module/block/view/storyblock.html.php
index 2b6b29c32d..59c1cc13f5 100644
--- a/module/block/view/storyblock.html.php
+++ b/module/block/view/storyblock.html.php
@@ -31,7 +31,7 @@
idAB?> |
priAB?> |
- story->title;?> |
+ SRCommon;?> |
story->estimateAB;?> |
diff --git a/module/branch/control.php b/module/branch/control.php
index 010f76ca0a..c6c408e7a8 100644
--- a/module/branch/control.php
+++ b/module/branch/control.php
@@ -66,6 +66,7 @@ class branch extends control
{
$this->view->link = $this->loadModel('product')->getProductLink($module, $method, $extra, true);
$this->view->productID = $productID;
+ $this->view->projectID = $this->session->PRJ;
$this->view->module = $module;
$this->view->method = $method;
$this->view->extra = $extra;
diff --git a/module/branch/model.php b/module/branch/model.php
index f05ce219db..d0cf8246ec 100644
--- a/module/branch/model.php
+++ b/module/branch/model.php
@@ -205,4 +205,20 @@ class branchModel extends model
->fetch();
return empty($module) && empty($story) && empty($bug) && empty($case) && empty($release) && empty($build) && empty($plan) && empty($project);
}
+
+ /**
+ * Setting parameters for link.
+ *
+ * @param string $module
+ * @param string $link
+ * @param int $projectID
+ * @param int $productID
+ * @access public
+ * @return void
+ */
+ public function setParamsForLink($module, $link, $projectID, $productID, $branch)
+ {
+ $linkHtml = strpos('programplan', $module) !== false ? sprintf($link, $projectID, $productID, $branch) : sprintf($link, $productID, $branch);
+ return $linkHtml;
+ }
}
diff --git a/module/branch/view/ajaxgetdropmenu.html.php b/module/branch/view/ajaxgetdropmenu.html.php
index 553e68d33e..044e941a5c 100644
--- a/module/branch/view/ajaxgetdropmenu.html.php
+++ b/module/branch/view/ajaxgetdropmenu.html.php
@@ -6,7 +6,8 @@
$branch)
{
- echo html::a(sprintf($link, $productID, $branchID), " " . $branch, '', "data-key='{$branchesPinyin[$branch]}'");
+ $linkHtml = $this->branch->setParamsForLink($module, $link, $projectID, $productID, $branchID);
+ echo html::a($linkHtml, " " . $branch, '', "data-key='{$branchesPinyin[$branch]}'");
}
?>
diff --git a/module/common/lang/de.php b/module/common/lang/de.php
index a973393917..445ddaafb0 100644
--- a/module/common/lang/de.php
+++ b/module/common/lang/de.php
@@ -336,7 +336,7 @@ $lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s';
$lang->project->subMenu->qa->build = array('link' => 'Build|project|build|projectID=%s', 'subModule' => 'build');
$lang->project->subMenu->qa->testtask = array('link' => 'Test Aufgabe|project|testtask|projectID=%s', 'subModule' => 'testreport,testtask');
-$lang->project->dividerMenu = ',story,team,product,';
+$lang->project->dividerMenu = ',projectstory,issue,story,team,product,';
$lang->task = new stdclass();
$lang->build = new stdclass();
@@ -853,20 +853,21 @@ $lang->icons['score'] = 'tint';
/* Scrum menu. */
$lang->menu = new stdclass();
$lang->menu->scrum = new stdclass();
-$lang->menu->scrum->program = 'Index|program|index|';
-$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
-$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
-$lang->menu->scrum->doc = 'Doc|doc|index|';
-$lang->menu->scrum->qa = 'QA|qa|index';
-$lang->menu->scrum->stakeholder = 'Stakeholder|stakeholder|browse';
+$lang->menu->scrum->program = 'Index|program|index|';
+$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
+$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
+$lang->menu->scrum->doc = 'Doc|doc|index|';
+$lang->menu->scrum->qa = 'QA|qa|index';
+$lang->menu->scrum->projectrelease = array('link' => 'Release|projectrelease|browse|product={PRODUCT}');
+$lang->menu->scrum->stakeholder = 'Stakeholder|stakeholder|browse';
/* Waterfall menu. */
$lang->menu->waterfall = new stdclass();
-$lang->menu->waterfall->programindex = array('link' => 'Index|program|index|program={PROGRAM}');
-$lang->menu->waterfall->programplan = array('link' => 'Plan|programplan|browse|program={PROGRAM}', 'subModule' => 'programplan');
+$lang->menu->waterfall->programindex = array('link' => 'Index|program|index|program={PROJECT}');
+$lang->menu->waterfall->programplan = array('link' => 'Plan|programplan|browse|program={PROJECT}', 'subModule' => 'programplan');
$lang->menu->waterfall->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,');
-$lang->menu->waterfall->weekly = array('link' => 'Weekly|weekly|index|program={PROGRAM}', 'subModule' => ',milestone,');
-$lang->menu->waterfall->doc = array('link' => 'Doc|doc|index|program={PROGRAM}');
+$lang->menu->waterfall->weekly = array('link' => 'Weekly|weekly|index|program={PROJECT}', 'subModule' => ',milestone,');
+$lang->menu->waterfall->doc = array('link' => 'Doc|doc|index|program={PROJECT}');
$lang->menu->waterfall->product = array('link' => 'Story|product|browse|product={PRODUCT}', 'subModule' => ',story,');
$lang->menu->waterfall->design = 'Design|design|browse|product={PRODUCT}';
$lang->menu->waterfall->ci = 'Code|repo|browse|';
@@ -874,7 +875,7 @@ $lang->menu->waterfall->qa = array('link' => 'QA|bug|browse|product=
$lang->menu->waterfall->projectrelease = array('link' => 'Release|projectrelease|browse|product={PRODUCT}');
$lang->menu->waterfall->issue = 'Issue|issue|browse|';
$lang->menu->waterfall->risk = 'Risk|risk|browse|';
-$lang->menu->waterfall->list = array('link' => 'More|workestimation|index|program={PROGRAM}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
+$lang->menu->waterfall->list = array('link' => 'More|workestimation|index|program={PROJECT}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
$lang->waterfall = new stdclass();
$lang->waterfall->subMenu = new stdclass();
@@ -919,15 +920,15 @@ $lang->durationestimation->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
-$lang->workestimation->menu->index = 'Workload|workestimation|index|program={PROGRAM}';
-$lang->workestimation->menu->duration = array('link' => 'Duration|durationestimation|index|program={PROGRAM}', 'subModule' => 'durationestimation');
+$lang->workestimation->menu->index = 'Workload|workestimation|index|program={PROJECT}';
+$lang->workestimation->menu->duration = array('link' => 'Duration|durationestimation|index|program={PROJECT}', 'subModule' => 'durationestimation');
$lang->workestimation->menu->budget = array('link' => 'Budget|budget|summary|', 'subModule' => 'budget');
$lang->durationestimation->menu = $lang->workestimation->menu;
$lang->budget->menu = $lang->workestimation->menu;
-$lang->programplan->menu->gantt = array('link' => 'Gantt|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=gantt');
-$lang->programplan->menu->lists = array('link' => 'Stage|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=lists', 'alias' => 'create');
+$lang->programplan->menu->gantt = array('link' => 'Gantt|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=gantt');
+$lang->programplan->menu->lists = array('link' => 'Stage|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=lists', 'alias' => 'create');
$lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|productplan|browse|productID={PRODUCT}", 'subModule' => 'productplan');
$lang->waterfallproduct->menu->story = 'Story|product|browse|product={PRODUCT}';
diff --git a/module/common/lang/en.php b/module/common/lang/en.php
index 594bfc90b2..a4b0f905ef 100644
--- a/module/common/lang/en.php
+++ b/module/common/lang/en.php
@@ -336,7 +336,7 @@ $lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s';
$lang->project->subMenu->qa->build = array('link' => 'Build|project|build|projectID=%s', 'subModule' => 'build');
$lang->project->subMenu->qa->testtask = array('link' => 'Request|project|testtask|projectID=%s', 'subModule' => 'testreport,testtask');
-$lang->project->dividerMenu = ',story,team,product,';
+$lang->project->dividerMenu = ',projectstory,issue,story,team,product,';
$lang->task = new stdclass();
$lang->build = new stdclass();
@@ -853,20 +853,21 @@ $lang->icons['score'] = 'tint';
/* Scrum menu. */
$lang->menu = new stdclass();
$lang->menu->scrum = new stdclass();
-$lang->menu->scrum->program = 'Index|program|index|';
-$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
-$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
-$lang->menu->scrum->doc = 'Doc|doc|index|';
-$lang->menu->scrum->qa = 'QA|qa|index';
-$lang->menu->scrum->stakeholder = 'Stakeholder|stakeholder|browse';
+$lang->menu->scrum->program = 'Index|program|index|';
+$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
+$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
+$lang->menu->scrum->doc = 'Doc|doc|index|';
+$lang->menu->scrum->qa = 'QA|qa|index';
+$lang->menu->scrum->projectrelease = array('link' => 'Release|projectrelease|browse|product={PRODUCT}');
+$lang->menu->scrum->stakeholder = 'Stakeholder|stakeholder|browse';
/* Waterfall menu. */
$lang->menu->waterfall = new stdclass();
-$lang->menu->waterfall->programindex = array('link' => 'Index|program|index|program={PROGRAM}');
-$lang->menu->waterfall->programplan = array('link' => 'Plan|programplan|browse|program={PROGRAM}', 'subModule' => 'programplan');
+$lang->menu->waterfall->programindex = array('link' => 'Index|program|index|program={PROJECT}');
+$lang->menu->waterfall->programplan = array('link' => 'Plan|programplan|browse|program={PROJECT}', 'subModule' => 'programplan');
$lang->menu->waterfall->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,');
-$lang->menu->waterfall->weekly = array('link' => 'Weekly|weekly|index|program={PROGRAM}', 'subModule' => ',milestone,');
-$lang->menu->waterfall->doc = array('link' => 'Doc|doc|index|program={PROGRAM}');
+$lang->menu->waterfall->weekly = array('link' => 'Weekly|weekly|index|program={PROJECT}', 'subModule' => ',milestone,');
+$lang->menu->waterfall->doc = array('link' => 'Doc|doc|index|program={PROJECT}');
$lang->menu->waterfall->product = array('link' => 'Story|product|browse|product={PRODUCT}', 'subModule' => ',story,');
$lang->menu->waterfall->design = 'Design|design|browse|product={PRODUCT}';
$lang->menu->waterfall->ci = 'Code|repo|browse|';
@@ -874,7 +875,7 @@ $lang->menu->waterfall->qa = array('link' => 'QA|bug|browse|product=
$lang->menu->waterfall->projectrelease = array('link' => 'Release|projectrelease|browse|product={PRODUCT}');
$lang->menu->waterfall->issue = 'Issue|issue|browse|';
$lang->menu->waterfall->risk = 'Risk|risk|browse|';
-$lang->menu->waterfall->list = array('link' => 'More|workestimation|index|program={PROGRAM}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
+$lang->menu->waterfall->list = array('link' => 'More|workestimation|index|program={PROJECT}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
$lang->waterfall = new stdclass();
$lang->waterfall->subMenu = new stdclass();
@@ -919,15 +920,15 @@ $lang->durationestimation->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
-$lang->workestimation->menu->index = 'Workload|workestimation|index|program={PROGRAM}';
-$lang->workestimation->menu->duration = array('link' => 'Duration|durationestimation|index|program={PROGRAM}', 'subModule' => 'durationestimation');
+$lang->workestimation->menu->index = 'Workload|workestimation|index|program={PROJECT}';
+$lang->workestimation->menu->duration = array('link' => 'Duration|durationestimation|index|program={PROJECT}', 'subModule' => 'durationestimation');
$lang->workestimation->menu->budget = array('link' => 'Budget|budget|summary|', 'subModule' => 'budget');
$lang->durationestimation->menu = $lang->workestimation->menu;
$lang->budget->menu = $lang->workestimation->menu;
-$lang->programplan->menu->gantt = array('link' => 'Gantt|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=gantt');
-$lang->programplan->menu->lists = array('link' => 'Stage|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=lists', 'alias' => 'create');
+$lang->programplan->menu->gantt = array('link' => 'Gantt|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=gantt');
+$lang->programplan->menu->lists = array('link' => 'Stage|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=lists', 'alias' => 'create');
$lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|productplan|browse|productID={PRODUCT}", 'subModule' => 'productplan');
$lang->waterfallproduct->menu->story = 'Story|product|browse|product={PRODUCT}';
diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php
index c9f629d3c0..1224207608 100644
--- a/module/common/lang/fr.php
+++ b/module/common/lang/fr.php
@@ -336,7 +336,7 @@ $lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s';
$lang->project->subMenu->qa->build = array('link' => 'Build|project|build|projectID=%s', 'subModule' => 'build');
$lang->project->subMenu->qa->testtask = array('link' => 'Recette|project|testtask|projectID=%s', 'subModule' => 'testreport,testtask');
-$lang->project->dividerMenu = ',story,team,product,';
+$lang->project->dividerMenu = ',projectstory,issue,story,team,product,';
$lang->task = new stdclass();
$lang->build = new stdclass();
@@ -853,20 +853,21 @@ $lang->icons['score'] = 'tint';
/* Scrum menu. */
$lang->menu = new stdclass();
$lang->menu->scrum = new stdclass();
-$lang->menu->scrum->program = 'Index|program|index|';
-$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
-$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
-$lang->menu->scrum->doc = 'Doc|doc|index|';
-$lang->menu->scrum->qa = 'QA|qa|index';
-$lang->menu->scrum->stakeholder = 'Stakeholder|stakeholder|browse';
+$lang->menu->scrum->program = 'Index|program|index|';
+$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
+$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
+$lang->menu->scrum->doc = 'Doc|doc|index|';
+$lang->menu->scrum->qa = 'QA|qa|index';
+$lang->menu->scrum->projectrelease = array('link' => 'Release|projectrelease|browse|product={PRODUCT}');
+$lang->menu->scrum->stakeholder = 'Stakeholder|stakeholder|browse';
/* Waterfall menu. */
$lang->menu->waterfall = new stdclass();
-$lang->menu->waterfall->programindex = array('link' => 'Index|program|index|program={PROGRAM}');
-$lang->menu->waterfall->programplan = array('link' => 'Plan|programplan|browse|program={PROGRAM}', 'subModule' => 'programplan');
+$lang->menu->waterfall->programindex = array('link' => 'Index|program|index|program={PROJECT}');
+$lang->menu->waterfall->programplan = array('link' => 'Plan|programplan|browse|program={PROJECT}', 'subModule' => 'programplan');
$lang->menu->waterfall->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,');
-$lang->menu->waterfall->weekly = array('link' => 'Weekly|weekly|index|program={PROGRAM}', 'subModule' => ',milestone,');
-$lang->menu->waterfall->doc = array('link' => 'Doc|doc|index|program={PROGRAM}');
+$lang->menu->waterfall->weekly = array('link' => 'Weekly|weekly|index|program={PROJECT}', 'subModule' => ',milestone,');
+$lang->menu->waterfall->doc = array('link' => 'Doc|doc|index|program={PROJECT}');
$lang->menu->waterfall->product = array('link' => 'Story|product|browse|product={PRODUCT}', 'subModule' => ',story,');
$lang->menu->waterfall->design = 'Design|design|browse|product={PRODUCT}';
$lang->menu->waterfall->ci = 'Code|repo|browse|';
@@ -874,7 +875,7 @@ $lang->menu->waterfall->qa = array('link' => 'QA|bug|browse|product=
$lang->menu->waterfall->projectrelease = array('link' => 'Release|projectrelease|browse|product={PRODUCT}');
$lang->menu->waterfall->issue = 'Issue|issue|browse|';
$lang->menu->waterfall->risk = 'Risk|risk|browse|';
-$lang->menu->waterfall->list = array('link' => 'More|workestimation|index|program={PROGRAM}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
+$lang->menu->waterfall->list = array('link' => 'More|workestimation|index|program={PROJECT}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
$lang->waterfall = new stdclass();
$lang->waterfall->subMenu = new stdclass();
@@ -919,15 +920,15 @@ $lang->durationestimation->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
-$lang->workestimation->menu->index = 'Workload|workestimation|index|program={PROGRAM}';
-$lang->workestimation->menu->duration = array('link' => 'Duration|durationestimation|index|program={PROGRAM}', 'subModule' => 'durationestimation');
+$lang->workestimation->menu->index = 'Workload|workestimation|index|program={PROJECT}';
+$lang->workestimation->menu->duration = array('link' => 'Duration|durationestimation|index|program={PROJECT}', 'subModule' => 'durationestimation');
$lang->workestimation->menu->budget = array('link' => 'Budget|budget|summary|', 'subModule' => 'budget');
$lang->durationestimation->menu = $lang->workestimation->menu;
$lang->budget->menu = $lang->workestimation->menu;
-$lang->programplan->menu->gantt = array('link' => 'Gantt|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=gantt');
-$lang->programplan->menu->lists = array('link' => 'Stage|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=lists', 'alias' => 'create');
+$lang->programplan->menu->gantt = array('link' => 'Gantt|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=gantt');
+$lang->programplan->menu->lists = array('link' => 'Stage|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=lists', 'alias' => 'create');
$lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|productplan|browse|productID={PRODUCT}", 'subModule' => 'productplan');
$lang->waterfallproduct->menu->story = 'Story|product|browse|product={PRODUCT}';
diff --git a/module/common/lang/menuOrder.php b/module/common/lang/menuOrder.php
index e45d206d7e..480b576ce5 100644
--- a/module/common/lang/menuOrder.php
+++ b/module/common/lang/menuOrder.php
@@ -1,29 +1,31 @@
waterfall->menuOrder[5] = 'programindex';
-$lang->waterfall->menuOrder[10] = 'programplan';
-$lang->waterfall->menuOrder[15] = 'project';
-$lang->waterfall->menuOrder[20] = 'weekly';
-$lang->waterfall->menuOrder[25] = 'review';
-$lang->waterfall->menuOrder[30] = 'doc';
-$lang->waterfall->menuOrder[35] = 'projectstory';
-$lang->waterfall->menuOrder[40] = 'product';
-$lang->waterfall->menuOrder[45] = 'design';
-$lang->waterfall->menuOrder[50] = 'ci';
-$lang->waterfall->menuOrder[55] = 'qa';
-$lang->waterfall->menuOrder[60] = 'projectrelease';
-$lang->waterfall->menuOrder[65] = 'issue';
-$lang->waterfall->menuOrder[70] = 'risk';
-$lang->waterfall->menuOrder[75] = 'report';
-$lang->waterfall->menuOrder[80] = 'auditplan';
-$lang->waterfall->menuOrder[85] = 'cm';
-$lang->waterfall->menuOrder[90] = 'list';
+$lang->waterfall->menuOrder[5] = 'programindex';
+$lang->waterfall->menuOrder[10] = 'programplan';
+$lang->waterfall->menuOrder[15] = 'project';
+$lang->waterfall->menuOrder[20] = 'weekly';
+$lang->waterfall->menuOrder[25] = 'review';
+$lang->waterfall->menuOrder[30] = 'doc';
+$lang->waterfall->menuOrder[35] = 'projectstory';
+$lang->waterfall->menuOrder[40] = 'product';
+$lang->waterfall->menuOrder[45] = 'design';
+$lang->waterfall->menuOrder[50] = 'ci';
+$lang->waterfall->menuOrder[55] = 'qa';
+$lang->waterfall->menuOrder[60] = 'projectrelease';
+$lang->waterfall->menuOrder[65] = 'issue';
+$lang->waterfall->menuOrder[70] = 'risk';
+$lang->waterfall->menuOrder[75] = 'report';
+$lang->waterfall->menuOrder[80] = 'auditplan';
+$lang->waterfall->menuOrder[85] = 'cm';
+$lang->waterfall->menuOrder[90] = 'list';
-$lang->scrum->menuOrder[5] = 'program';
-$lang->scrum->menuOrder[10] = 'product';
-$lang->scrum->menuOrder[15] = 'project';
-$lang->scrum->menuOrder[20] = 'qa';
-$lang->scrum->menuOrder[25] = 'doc';
+$lang->scrum->menuOrder[5] = 'program';
+$lang->scrum->menuOrder[10] = 'product';
+$lang->scrum->menuOrder[15] = 'project';
+$lang->scrum->menuOrder[20] = 'projectstory';
+$lang->scrum->menuOrder[25] = 'qa';
+$lang->scrum->menuOrder[30] = 'projectrelease';
+$lang->scrum->menuOrder[35] = 'doc';
/* index menu order. */
$lang->index->menuOrder[5] = 'product';
diff --git a/module/common/lang/vi.php b/module/common/lang/vi.php
index 1f101791d6..6b7cb6d2a5 100644
--- a/module/common/lang/vi.php
+++ b/module/common/lang/vi.php
@@ -336,7 +336,7 @@ $lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s';
$lang->project->subMenu->qa->build = array('link' => 'Bản dựng|project|build|projectID=%s', 'subModule' => 'build');
$lang->project->subMenu->qa->testtask = array('link' => 'Yêu cầu|project|testtask|projectID=%s', 'subModule' => 'testreport,testtask');
-$lang->project->dividerMenu = ',story,team,product,';
+$lang->project->dividerMenu = ',projectstory,issue,story,team,product,';
$lang->task = new stdclass();
$lang->build = new stdclass();
@@ -853,20 +853,21 @@ $lang->icons['score'] = 'tint';
/* Scrum menu. */
$lang->menu = new stdclass();
$lang->menu->scrum = new stdclass();
-$lang->menu->scrum->program = 'Index|program|index|';
-$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
-$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
-$lang->menu->scrum->doc = 'Doc|doc|index|';
-$lang->menu->scrum->qa = 'QA|qa|index';
-$lang->menu->scrum->stakeholder = 'Stakeholder|stakeholder|browse';
+$lang->menu->scrum->program = 'Index|program|index|';
+$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
+$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
+$lang->menu->scrum->doc = 'Doc|doc|index|';
+$lang->menu->scrum->qa = 'QA|qa|index';
+$lang->menu->scrum->projectrelease = array('link' => 'Release|projectrelease|browse|product={PRODUCT}');
+$lang->menu->scrum->stakeholder = 'Stakeholder|stakeholder|browse';
/* Waterfall menu. */
$lang->menu->waterfall = new stdclass();
-$lang->menu->waterfall->programindex = array('link' => 'Index|program|index|program={PROGRAM}');
-$lang->menu->waterfall->programplan = array('link' => 'Plan|programplan|browse|program={PROGRAM}', 'subModule' => 'programplan');
+$lang->menu->waterfall->programindex = array('link' => 'Index|program|index|program={PROJECT}');
+$lang->menu->waterfall->programplan = array('link' => 'Plan|programplan|browse|program={PROJECT}', 'subModule' => 'programplan');
$lang->menu->waterfall->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,');
-$lang->menu->waterfall->weekly = array('link' => 'Weekly|weekly|index|program={PROGRAM}', 'subModule' => ',milestone,');
-$lang->menu->waterfall->doc = array('link' => 'Doc|doc|index|program={PROGRAM}');
+$lang->menu->waterfall->weekly = array('link' => 'Weekly|weekly|index|program={PROJECT}', 'subModule' => ',milestone,');
+$lang->menu->waterfall->doc = array('link' => 'Doc|doc|index|program={PROJECT}');
$lang->menu->waterfall->product = array('link' => 'Story|product|browse|product={PRODUCT}', 'subModule' => ',story,');
$lang->menu->waterfall->design = 'Design|design|browse|product={PRODUCT}';
$lang->menu->waterfall->ci = 'Code|repo|browse|';
@@ -874,7 +875,7 @@ $lang->menu->waterfall->qa = array('link' => 'QA|bug|browse|product=
$lang->menu->waterfall->projectrelease = array('link' => 'Release|projectrelease|browse|product={PRODUCT}');
$lang->menu->waterfall->issue = 'Issue|issue|browse|';
$lang->menu->waterfall->risk = 'Risk|risk|browse|';
-$lang->menu->waterfall->list = array('link' => 'More|workestimation|index|program={PROGRAM}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
+$lang->menu->waterfall->list = array('link' => 'More|workestimation|index|program={PROJECT}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
$lang->waterfall = new stdclass();
$lang->waterfall->subMenu = new stdclass();
@@ -919,15 +920,15 @@ $lang->durationestimation->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
-$lang->workestimation->menu->index = 'Workload|workestimation|index|program={PROGRAM}';
-$lang->workestimation->menu->duration = array('link' => 'Duration|durationestimation|index|program={PROGRAM}', 'subModule' => 'durationestimation');
+$lang->workestimation->menu->index = 'Workload|workestimation|index|program={PROJECT}';
+$lang->workestimation->menu->duration = array('link' => 'Duration|durationestimation|index|program={PROJECT}', 'subModule' => 'durationestimation');
$lang->workestimation->menu->budget = array('link' => 'Budget|budget|summary|', 'subModule' => 'budget');
$lang->durationestimation->menu = $lang->workestimation->menu;
$lang->budget->menu = $lang->workestimation->menu;
-$lang->programplan->menu->gantt = array('link' => 'Gantt|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=gantt');
-$lang->programplan->menu->lists = array('link' => 'Stage|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=lists', 'alias' => 'create');
+$lang->programplan->menu->gantt = array('link' => 'Gantt|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=gantt');
+$lang->programplan->menu->lists = array('link' => 'Stage|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=lists', 'alias' => 'create');
$lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|productplan|browse|productID={PRODUCT}", 'subModule' => 'productplan');
$lang->waterfallproduct->menu->story = 'Story|product|browse|product={PRODUCT}';
diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php
index 2d5110d80d..f0336cb3fa 100755
--- a/module/common/lang/zh-cn.php
+++ b/module/common/lang/zh-cn.php
@@ -167,7 +167,7 @@ $lang->product->menu->list = array('link' => $lang->productCommon . '|product|al
$lang->product->viewMenu = new stdclass();
if($config->URAndSR) $lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed¶m=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->story = array('link' => "$lang->productSRCommon|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
-$lang->product->viewMenu->track = array('link' => "跟踪矩阵|story|track|productID=%s");
+if($config->URAndSR) $lang->product->viewMenu->track = array('link' => "跟踪矩阵|story|track|productID=%s");
$lang->product->viewMenu->plan = array('link' => "计划|productplan|browse|productID=%s", 'subModule' => 'productplan');
$lang->product->viewMenu->release = array('link' => '发布|release|browse|productID=%s', 'subModule' => 'release');
$lang->product->viewMenu->roadmap = '路线图|product|roadmap|productID=%s';
@@ -337,7 +337,7 @@ $lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s';
$lang->project->subMenu->qa->build = array('link' => '版本|project|build|projectID=%s', 'subModule' => 'build');
$lang->project->subMenu->qa->testtask = array('link' => '测试单|project|testtask|projectID=%s', 'subModule' => 'testreport,testtask');
-$lang->project->dividerMenu = ',story,team,product,';
+$lang->project->dividerMenu = ',projectstory,issue,story,team,product,';
$lang->task = new stdclass();
$lang->build = new stdclass();
@@ -856,21 +856,29 @@ $lang->icons['score'] = 'tint';
/* Scrum menu. */
$lang->menu = new stdclass();
$lang->menu->scrum = new stdclass();
-$lang->menu->scrum->program = '仪表盘|program|index|';
-//$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
-$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
-$lang->menu->scrum->doc = '文档|doc|index|';
-$lang->menu->scrum->qa = '测试|qa|index';
-$lang->menu->scrum->stakeholder = '干系人|stakeholder|browse';
+$lang->menu->scrum->program = '仪表盘|program|index|';
+//$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
+$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
+$lang->menu->scrum->projectstory = array('link' => '需求|projectstory|requirement', 'subModule' => 'requirement,story,track');
+$lang->menu->scrum->doc = '文档|doc|index|';
+$lang->menu->scrum->qa = '测试|qa|index';
+$lang->menu->scrum->projectrelease = array('link' => '发布|projectrelease|browse|product={PRODUCT}');
+$lang->menu->scrum->stakeholder = '干系人|stakeholder|browse';
+$lang->menu->scrum->list = array('link' => '更多|program|prjedit|project={PROJECT}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
+
+$lang->scrum = new stdclass();
+$lang->scrum->subMenu = new stdclass();
+$lang->scrum->subMenu->list = new stdclass();
+$lang->scrum->subMenu->list->program = '项目|program|edit|';
/* Waterfall menu. */
$lang->menu->waterfall = new stdclass();
-$lang->menu->waterfall->programindex = array('link' => '仪表盘|program|index|program={PROGRAM}');
-$lang->menu->waterfall->programplan = array('link' => '计划|programplan|browse|program={PROGRAM}', 'subModule' => 'programplan');
+$lang->menu->waterfall->programindex = array('link' => '仪表盘|program|index|project={PROJECT}');
+$lang->menu->waterfall->programplan = array('link' => '计划|programplan|browse|project={PROJECT}', 'subModule' => 'programplan');
$lang->menu->waterfall->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,');
-$lang->menu->waterfall->weekly = array('link' => '报告|weekly|index|program={PROGRAM}', 'subModule' => ',milestone,');
-$lang->menu->waterfall->doc = array('link' => '文档|doc|index|program={PROGRAM}');
-$lang->menu->waterfall->projectstory = array('link' => '需求|projectstory|requirement|projectID={PROGRAM}', 'subModule' => 'requirement,story,track');
+$lang->menu->waterfall->weekly = array('link' => '报告|weekly|index|project={PROJECT}', 'subModule' => ',milestone,');
+$lang->menu->waterfall->doc = array('link' => '文档|doc|index|project={PROJECT}');
+$lang->menu->waterfall->projectstory = array('link' => '需求|projectstory|requirement', 'subModule' => 'requirement,story,track');
//$lang->menu->waterfall->product = array('link' => '需求|product|browse|product={PRODUCT}', 'subModule' => ',story,');
$lang->menu->waterfall->design = '设计|design|browse|product={PRODUCT}';
$lang->menu->waterfall->ci = '代码|repo|browse|';
@@ -879,7 +887,7 @@ $lang->menu->waterfall->projectrelease = array('link' => '发布|projectrelease|
//$lang->menu->waterfall->release = array('link' => '发布|release|browse|product={PRODUCT}', 'subModule' => 'release');
$lang->menu->waterfall->issue = '问题|issue|browse|';
$lang->menu->waterfall->risk = '风险|risk|browse|';
-$lang->menu->waterfall->list = array('link' => '更多|workestimation|index|program={PROGRAM}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
+$lang->menu->waterfall->list = array('link' => '更多|workestimation|index|project={PROJECT}', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
$lang->waterfall = new stdclass();
$lang->waterfall->subMenu = new stdclass();
@@ -926,19 +934,19 @@ $lang->projectstory->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => '干系人列表|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => '问题管理|stakeholder|issue|');
-$lang->workestimation->menu->index = '工作量估算|workestimation|index|program={PROGRAM}';
-$lang->workestimation->menu->duration = array('link' => '工期估算|durationestimation|index|program={PROGRAM}', 'subModule' => 'durationestimation');
+$lang->workestimation->menu->index = '工作量估算|workestimation|index|project={PROJECT}';
+$lang->workestimation->menu->duration = array('link' => '工期估算|durationestimation|index|project={PROJECT}', 'subModule' => 'durationestimation');
$lang->workestimation->menu->budget = array('link' => '费用估算|budget|summary|', 'subModule' => 'budget');
$lang->durationestimation->menu = $lang->workestimation->menu;
$lang->budget->menu = $lang->workestimation->menu;
-$lang->programplan->menu->gantt = array('link' => '甘特图|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=gantt');
-$lang->programplan->menu->lists = array('link' => '阶段列表|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=lists', 'alias' => 'create');
+$lang->programplan->menu->gantt = array('link' => '甘特图|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=gantt');
+$lang->programplan->menu->lists = array('link' => '阶段列表|programplan|browse|programID={PROJECT}&productID={PRODUCT}&type=lists', 'alias' => 'create');
-$lang->projectstory->menu->requirement = array('link' => '用户需求|projectstory|requirement|programID={PROGRAM}&productID={PRODUCT}');
-$lang->projectstory->menu->story = array('link' => '软件需求|projectstory|story|programID={PROGRAM}&productID={PRODUCT}');
-$lang->projectstory->menu->track = array('link' => '跟踪矩阵|projectstory|track|programID={PROGRAM}&productID={PRODUCT}');
+$lang->projectstory->menu->requirement = array('link' => '用户需求|projectstory|requirement', 'subModule' => '');
+$lang->projectstory->menu->story = array('link' => '软件需求|projectstory|story', 'subModule' => '');
+$lang->projectstory->menu->track = array('link' => '跟踪矩阵|projectstory|track', 'subModule' => '');
$lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|productplan|browse|productID={PRODUCT}", 'subModule' => 'productplan');
$lang->waterfallproduct->menu->story = '需求|product|browse|product={PRODUCT}';
diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php
index 61f1da25b9..a27920cf28 100644
--- a/module/common/lang/zh-tw.php
+++ b/module/common/lang/zh-tw.php
@@ -853,12 +853,13 @@ $lang->icons['score'] = 'tint';
/* Scrum menu. */
$lang->menu = new stdclass();
$lang->menu->scrum = new stdclass();
-$lang->menu->scrum->program = '儀表盤|program|index|';
-//$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
-$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
-$lang->menu->scrum->doc = '文檔|doc|index|';
-$lang->menu->scrum->qa = '測試|qa|index';
-$lang->menu->scrum->stakeholder = '干係人|stakeholder|browse';
+$lang->menu->scrum->program = '儀表盤|program|index|';
+//$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
+$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
+$lang->menu->scrum->doc = '文檔|doc|index|';
+$lang->menu->scrum->qa = '測試|qa|index';
+$lang->menu->scrum->projectrelease = array('link' => '發布|projectrelease|browse|product={PRODUCT}');
+$lang->menu->scrum->stakeholder = '干係人|stakeholder|browse';
/* Waterfall menu. */
$lang->menu->waterfall = new stdclass();
diff --git a/module/common/model.php b/module/common/model.php
index 201edb3b58..1178cf57d7 100644
--- a/module/common/model.php
+++ b/module/common/model.php
@@ -45,8 +45,19 @@ class commonModel extends model
public function sendHeader()
{
header("Content-Type: text/html; Language={$this->config->charset}");
- if(!$this->loadModel('setting')->getItem('owner=system&module=sso&key=turnon')) header("X-Frame-Options: SAMEORIGIN");
header("Cache-control: private");
+ if($this->loadModel('setting')->getItem('owner=system&module=sso&key=turnon'))
+ {
+ if(isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on')
+ {
+ $session = $this->config->sessionVar . '=' . session_id();
+ header("Set-Cookie: $session; SameSite=None; Secure=true", false);
+ }
+ }
+ else
+ {
+ header("X-Frame-Options: SAMEORIGIN");
+ }
}
/**
@@ -436,32 +447,35 @@ class commonModel extends model
$moduleName = $app->getModuleName();
$methodName = $app->getMethodName();
- foreach($lang->menu->waterfall as $key => $menu)
+ foreach(array('waterfall', 'scrum') as $model)
{
- /* Replace for dropdown submenu. */
- if(isset($lang->waterfall->subMenu->$key))
- {
- $programSubMenu = $lang->waterfall->subMenu->$key;
- $subMenu = common::createSubMenu($programSubMenu, $app->session->PRJ);
-
- if(!empty($subMenu))
+ foreach($lang->menu->$model as $key => $menu)
+ {
+ /* Replace for dropdown submenu. */
+ if(isset($lang->$model->subMenu->$key))
{
- foreach($subMenu as $menuKey => $menu)
- {
- $itemMenu = zget($programSubMenu, $menuKey, '');
- $isActive['method'] = ($moduleName == strtolower($menu->link['module']) and $methodName == strtolower($menu->link['method']));
- $isActive['alias'] = ($moduleName == strtolower($menu->link['module']) and (is_array($itemMenu) and isset($itemMenu['alias']) and strpos($itemMenu['alias'], $methodName) !== false));
- $isActive['subModule'] = (is_array($itemMenu) and isset($itemMenu['subModule']) and strpos($itemMenu['subModule'], $moduleName) !== false);
+ $programSubMenu = $lang->$model->subMenu->$key;
+ $subMenu = common::createSubMenu($programSubMenu, $app->session->PRJ);
- if($isActive['method'] or $isActive['alias'] or $isActive['subModule'])
+ if(!empty($subMenu))
+ {
+ foreach($subMenu as $menuKey => $menu)
{
- $lang->menu->waterfall->{$key}['link'] = $menu->text . "|" . join('|', $menu->link);
- break;
+ $itemMenu = zget($programSubMenu, $menuKey, '');
+ $isActive['method'] = ($moduleName == strtolower($menu->link['module']) and $methodName == strtolower($menu->link['method']));
+ $isActive['alias'] = ($moduleName == strtolower($menu->link['module']) and (is_array($itemMenu) and isset($itemMenu['alias']) and strpos($itemMenu['alias'], $methodName) !== false));
+ $isActive['subModule'] = (is_array($itemMenu) and isset($itemMenu['subModule']) and strpos($itemMenu['subModule'], $moduleName) !== false);
+
+ if($isActive['method'] or $isActive['alias'] or $isActive['subModule'])
+ {
+ $lang->menu->$model->{$key}['link'] = $menu->text . "|" . join('|', $menu->link);
+ break;
+ }
}
+ $lang->menu->$model->{$key}['subMenu'] = $subMenu;
}
- $lang->menu->waterfall->{$key}['subMenu'] = $subMenu;
- }
- }
+ }
+ }
}
}
@@ -598,7 +612,7 @@ class commonModel extends model
self::setMainMenuByGroup($group, $moduleName, $methodName);
/* Print all main menus. */
- $menu = customModel::getMainmenu();
+ $menu = customModel::getMainMenu();
$activeName = 'active';
$lastMenu = end($menu);
if(isset($lang->menugroup->$moduleName)) $mainMenu = $lang->menugroup->$moduleName;
@@ -2301,9 +2315,9 @@ EOD;
{
$link = is_array($setting) ? $setting['link'] : $setting;
- if(strpos($link, "{PRODUCT}") !== false) $link = str_replace('{PRODUCT}', $app->session->product, $link);
- if(strpos($link, "{PROJECT}") !== false) $link = str_replace('{PROJECT}', $app->session->project, $link);
- if(strpos($link, "{PROGRAM}") !== false) $link = str_replace('{PROGRAM}', $app->session->PRJ, $link);
+ if(strpos($link, "{PRODUCT}") !== false) $link = str_replace('{PRODUCT}', $app->session->product, $link);
+ if(strpos($link, "{EXECUTION}") !== false) $link = str_replace('{EXECUTION}', $app->session->project, $link);
+ if(strpos($link, "{PROJECT}") !== false) $link = str_replace('{PROJECT}', $app->session->PRJ, $link);
if(is_array($setting))
{
@@ -2334,10 +2348,14 @@ EOD;
$program = $dbh->query("SELECT * FROM " . TABLE_PROGRAM . " WHERE `id` = '{$app->session->PRJ}'")->fetch();
if(empty($program)) return;
+ self::initProgramSubmenu();
if($program->model == 'scrum')
{
$lang->menuOrder = $lang->scrum->menuOrder;
- return $lang->menu->scrum;
+
+ /* The scrum project temporarily hides the trace matrix. */
+ unset($lang->projectstory->menu->track);
+ return self::processMenuVars($lang->menu->scrum);
}
if($program->model == 'waterfall')
@@ -2346,7 +2364,6 @@ EOD;
$lang->menugroup->release = '';
$lang->menuOrder = $lang->waterfall->menuOrder;
$lang->program->dividerMenu = ',product,issue,';
- self::initProgramSubmenu();
return self::processMenuVars($lang->menu->waterfall);
}
}
@@ -2369,6 +2386,12 @@ EOD;
$lang->navGroup->product = 'project';
$lang->$moduleName->menu = self::processMenuVars($lang->$moduleName->menu);
}
+ if($program->model == 'scrum')
+ {
+ unset($lang->stakeholder->menu->issue);
+ unset($lang->stakeholder->menu->plan);
+ unset($lang->stakeholder->menu->expectation);
+ }
}
/**
diff --git a/module/custom/js/configurescrum.js b/module/custom/js/configurescrum.js
index 972fb87827..44b7b87da4 100644
--- a/module/custom/js/configurescrum.js
+++ b/module/custom/js/configurescrum.js
@@ -10,7 +10,6 @@ $(function()
else
{
$('#URSRName').removeClass('hidden');
- $('#customURSR').removeClass('hidden');
}
});
diff --git a/module/custom/js/configurewaterfall.js b/module/custom/js/configurewaterfall.js
index 13af9a1e0f..49f633ae10 100644
--- a/module/custom/js/configurewaterfall.js
+++ b/module/custom/js/configurewaterfall.js
@@ -10,7 +10,6 @@ $(function()
else
{
$('#URSRName').removeClass('hidden');
- $('#customURSR').removeClass('hidden');
}
});
diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php
index 6d85d247af..2f4dc584ba 100644
--- a/module/group/lang/resource.php
+++ b/module/group/lang/resource.php
@@ -15,63 +15,64 @@ $lang->moduleOrder[0] = 'index';
$lang->moduleOrder[5] = 'my';
$lang->moduleOrder[10] = 'todo';
-$lang->moduleOrder[11] = 'program';
-$lang->moduleOrder[12] = 'personnel';
-$lang->moduleOrder[15] = 'product';
-$lang->moduleOrder[20] = 'story';
-$lang->moduleOrder[25] = 'productplan';
-$lang->moduleOrder[30] = 'release';
+$lang->moduleOrder[15] = 'program';
+$lang->moduleOrder[20] = 'personnel';
+$lang->moduleOrder[25] = 'product';
+$lang->moduleOrder[30] = 'story';
+$lang->moduleOrder[35] = 'productplan';
+$lang->moduleOrder[40] = 'release';
+$lang->moduleOrder[45] = 'projectstory';
-$lang->moduleOrder[35] = 'project';
-$lang->moduleOrder[40] = 'task';
-$lang->moduleOrder[45] = 'build';
+$lang->moduleOrder[50] = 'project';
+$lang->moduleOrder[55] = 'task';
+$lang->moduleOrder[60] = 'build';
-$lang->moduleOrder[50] = 'qa';
-$lang->moduleOrder[55] = 'bug';
-$lang->moduleOrder[60] = 'testcase';
-$lang->moduleOrder[65] = 'testtask';
-$lang->moduleOrder[70] = 'testsuite';
-$lang->moduleOrder[75] = 'testreport';
-$lang->moduleOrder[80] = 'caselib';
+$lang->moduleOrder[65] = 'qa';
+$lang->moduleOrder[70] = 'bug';
+$lang->moduleOrder[75] = 'testcase';
+$lang->moduleOrder[80] = 'testtask';
+$lang->moduleOrder[85] = 'testsuite';
+$lang->moduleOrder[90] = 'testreport';
+$lang->moduleOrder[95] = 'caselib';
-$lang->moduleOrder[85] = 'doc';
-$lang->moduleOrder[90] = 'report';
+$lang->moduleOrder[100] = 'doc';
+$lang->moduleOrder[105] = 'report';
-$lang->moduleOrder[95] = 'company';
-$lang->moduleOrder[100] = 'dept';
-$lang->moduleOrder[105] = 'group';
-$lang->moduleOrder[110] = 'user';
+$lang->moduleOrder[110] = 'company';
+$lang->moduleOrder[115] = 'dept';
+$lang->moduleOrder[120] = 'group';
+$lang->moduleOrder[125] = 'user';
-$lang->moduleOrder[115] = 'admin';
-$lang->moduleOrder[120] = 'extension';
-$lang->moduleOrder[125] = 'custom';
-$lang->moduleOrder[140] = 'action';
+$lang->moduleOrder[130] = 'admin';
+$lang->moduleOrder[135] = 'extension';
+$lang->moduleOrder[140] = 'custom';
+$lang->moduleOrder[145] = 'action';
-$lang->moduleOrder[145] = 'mail';
-$lang->moduleOrder[150] = 'svn';
-$lang->moduleOrder[155] = 'git';
-$lang->moduleOrder[160] = 'search';
-$lang->moduleOrder[165] = 'tree';
-$lang->moduleOrder[170] = 'api';
-$lang->moduleOrder[175] = 'file';
-$lang->moduleOrder[180] = 'misc';
-$lang->moduleOrder[185] = 'backup';
-$lang->moduleOrder[190] = 'cron';
-$lang->moduleOrder[195] = 'dev';
-$lang->moduleOrder[200] = 'message';
+$lang->moduleOrder[150] = 'mail';
+$lang->moduleOrder[155] = 'svn';
+$lang->moduleOrder[160] = 'git';
+$lang->moduleOrder[165] = 'search';
+$lang->moduleOrder[170] = 'tree';
+$lang->moduleOrder[175] = 'api';
+$lang->moduleOrder[180] = 'file';
+$lang->moduleOrder[185] = 'misc';
+$lang->moduleOrder[190] = 'backup';
+$lang->moduleOrder[195] = 'cron';
+$lang->moduleOrder[200] = 'dev';
+$lang->moduleOrder[205] = 'message';
-$lang->moduleOrder[205] = 'design';
-$lang->moduleOrder[210] = 'programplan';
-$lang->moduleOrder[215] = 'issue';
-$lang->moduleOrder[220] = 'risk';
-$lang->moduleOrder[225] = 'stage';
+$lang->moduleOrder[210] = 'design';
+$lang->moduleOrder[215] = 'programplan';
+$lang->moduleOrder[220] = 'issue';
+$lang->moduleOrder[225] = 'risk';
+$lang->moduleOrder[230] = 'stage';
-$lang->moduleOrder[230] = 'budget';
-$lang->moduleOrder[235] = 'workestimation';
-$lang->moduleOrder[240] = 'durationestimation';
+$lang->moduleOrder[235] = 'budget';
+$lang->moduleOrder[240] = 'workestimation';
+$lang->moduleOrder[245] = 'durationestimation';
-$lang->moduleOrder[245] = 'subject';
-$lang->moduleOrder[250] = 'holiday';
+$lang->moduleOrder[250] = 'subject';
+$lang->moduleOrder[255] = 'holiday';
$lang->resource = new stdclass();
@@ -480,6 +481,16 @@ $lang->productplan->methodOrder[50] = 'unlinkBug';
$lang->productplan->methodOrder[55] = 'batchUnlinkBug';
$lang->productplan->methodOrder[60] = 'batchEdit';
+/* Project Story. */
+$lang->resource->projectstory = new stdclass();
+$lang->resource->projectstory->requirement = 'requirement';
+$lang->resource->projectstory->story = 'story';
+$lang->resource->projectstory->track = 'track';
+
+$lang->productplan->methodOrder[5] = 'requirement';
+$lang->productplan->methodOrder[10] = 'story';
+$lang->productplan->methodOrder[15] = 'track';
+
/* Release. */
$lang->resource->release = new stdclass();
$lang->resource->release->browse = 'browse';
diff --git a/module/product/control.php b/module/product/control.php
index 17a48cf29f..dbe46a06ba 100644
--- a/module/product/control.php
+++ b/module/product/control.php
@@ -104,9 +104,6 @@ class product extends control
*/
public function browse($productID = 0, $branch = '', $browseType = '', $param = 0, $storyType = 'story', $orderBy = '', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
- $this->lang->product->menu = $this->lang->product->viewMenu;
- $this->lang->product->switcherMenu = $this->product->getSwitcher($productID, "storyType=$storyType", $branch);
-
/* Lower browse type. */
$browseType = strtolower($browseType);
@@ -141,8 +138,13 @@ class product extends control
$moduleID = ($browseType == 'bymodule') ? (int)$param : (($browseType == 'bysearch' or $browseType == 'bybranch') ? 0 : ($this->cookie->storyModule ? $this->cookie->storyModule : 0));
$queryID = ($browseType == 'bysearch') ? (int)$param : 0;
- /* Set menu. */
- $this->product->setMenu($this->products, $productID, $branch);
+ /* Set menu. The projectstory module does not execute. */
+ if($this->app->rawModule == 'product')
+ {
+ $this->lang->product->menu = $this->lang->product->viewMenu;
+ $this->lang->product->switcherMenu = $this->product->getSwitcher($productID, "storyType=$storyType", $branch);
+ $this->product->setMenu($this->products, $productID, $branch);
+ }
/* Set moduleTree. */
$createModuleLink = $storyType == 'story' ? 'createStoryLink' : 'createRequirementLink';
@@ -150,11 +152,11 @@ class product extends control
{
setcookie('treeBranch', (int)$branch, 0, $this->config->webRoot, '', false, false);
$browseType = 'unclosed';
- $moduleTree = $this->tree->getTreeMenu($productID, $viewType = 'story', $startModuleID = 0, array('treeModel', $createModuleLink), '', $branch, "¶m=$param&storyType=$storyType");
+ $moduleTree = $this->tree->getTreeMenu($productID, 'story', $startModuleID = 0, array('treeModel', $createModuleLink), '', $branch, "¶m=$param&storyType=$storyType");
}
else
{
- $moduleTree = $this->tree->getTreeMenu($productID, $viewType = 'story', $startModuleID = 0, array('treeModel', $createModuleLink), '', (int)$this->cookie->treeBranch, "¶m=$param&storyType=$storyType");
+ $moduleTree = $this->tree->getTreeMenu($productID, 'story', $startModuleID = 0, array('treeModel', $createModuleLink), '', (int)$this->cookie->treeBranch, "¶m=$param&storyType=$storyType");
}
if($browseType != 'bymodule' and $browseType != 'bybranch') $this->session->set('storyBrowseType', $browseType);
@@ -173,11 +175,6 @@ class product extends control
/* Get stories. */
$stories = $this->product->getStories($productID, $branch, $browseType, $queryID, $moduleID, $storyType, $sort, $pager);
- if(empty($stories) and $pageID > 1)
- {
- $pager = pager::init(0, $recPerPage, 1);
- $stories = $this->product->getStories($productID, $branch, $browseType, $queryID, $moduleID, $storyType, $sort, $pager);
- }
/* Process the sql, get the conditon partion, save it to session. */
$this->loadModel('common')->saveQueryCondition($this->dao->get(), 'story', $browseType != 'bysearch');
@@ -204,7 +201,9 @@ class product extends control
}
/* Build search form. */
- $actionURL = $this->createLink('product', 'browse', "productID=$productID&branch=$branch&browseType=bySearch&queryID=myQueryID&storyType=$storyType");
+ $rawModule = $this->app->rawModule;
+ $rawMethod = $this->app->rawMethod;
+ $actionURL = $this->createLink($rawModule, $rawMethod, "productID=$productID&branch=$branch&browseType=bySearch&queryID=myQueryID&storyType=$storyType");
$this->config->product->search['onMenuBar'] = 'yes';
$this->product->buildSearchForm($productID, $this->products, $queryID, $actionURL);
@@ -216,7 +215,6 @@ class product extends control
$this->view->position[] = $this->products[$productID];
$this->view->position[] = $this->lang->product->browse;
$this->view->productID = $productID;
- $this->view->program = $this->loadModel('project')->getById($this->session->PRJ);
$this->view->product = $this->product->getById($productID);
$this->view->productName = $this->products[$productID];
$this->view->moduleID = $moduleID;
@@ -229,7 +227,7 @@ class product extends control
$this->view->users = $this->user->getPairs('noletter|pofirst|nodeleted');
$this->view->orderBy = $orderBy;
$this->view->browseType = $browseType;
- $this->view->modules = $this->tree->getOptionMenu($productID, $viewType = 'story', 0, $branch);
+ $this->view->modules = $this->tree->getOptionMenu($productID, 'story', 0, $branch);
$this->view->moduleID = $moduleID;
$this->view->moduleName = $moduleID ? $this->tree->getById($moduleID)->name : $this->lang->tree->all;
$this->view->branch = $branch;
diff --git a/module/product/js/browse.js b/module/product/js/browse.js
index d047519aaa..ead50a65f3 100644
--- a/module/product/js/browse.js
+++ b/module/product/js/browse.js
@@ -1,7 +1,11 @@
$(function()
{
- $('#navbar .nav li').removeClass('active');
- $("#navbar .nav li[data-id=" + storyType + ']').addClass('active');
+ if(typeof(rawModule) == 'undefined') rawModule = 'product';
+ if(rawModule != 'projectstory')
+ {
+ $('#navbar .nav li').removeClass('active');
+ $("#navbar .nav li[data-id=" + storyType + ']').addClass('active');
+ }
if($('#storyList thead th.c-title').width() < 150) $('#storyList thead th.c-title').width(150);
$('#storyList td.has-child .story-toggle').each(function()
diff --git a/module/product/model.php b/module/product/model.php
index 97bcb954fe..13b3189d02 100644
--- a/module/product/model.php
+++ b/module/product/model.php
@@ -1235,10 +1235,6 @@ class productModel extends model
$extra = $extra ? $extra : 'gantt';
$link = helper::createLink($module, 'browse', "projectID=%s&productID=%s&type=$extra" . ($branch ? "&branch=%s" : ''));
}
- elseif($module == 'projectstory')
- {
- $link = helper::createLink($module, $method, "projectID=%s&productID=%s" . ($branch ? "&branch=%s" : ''));
- }
else
{
$link = helper::createLink($module, $method, "productID=%s" . ($branch ? "&branch=%s" : ''));
@@ -1281,7 +1277,7 @@ class productModel extends model
*/
public function setParamsForLink($module, $link, $projectID, $productID)
{
- $linkHtml = strpos('programplan,projectstory', $module) !== false ? sprintf($link, $projectID, $productID) : sprintf($link, $productID);
+ $linkHtml = strpos('programplan', $module) !== false ? sprintf($link, $projectID, $productID) : sprintf($link, $productID);
return $linkHtml;
}
diff --git a/module/product/view/browse.html.php b/module/product/view/browse.html.php
index 578bcf0a9a..496cd02e60 100644
--- a/module/product/view/browse.html.php
+++ b/module/product/view/browse.html.php
@@ -15,6 +15,7 @@
+app->rawModule);?>
product->browse->unfoldStories) ? json_decode($config->product->browse->unfoldStories, true) : array();
$unfoldStories = zget($unfoldStories, $productID, array());
@@ -31,7 +32,7 @@ $lang->story->create = $storyType == 'story' ? $lang->story->createStory : $lang
echo $moduleName;
if($moduleID)
{
- $removeLink = $browseType == 'bymodule' ? $this->createLink('product', 'browse', "productID=$productID&branch=$branch&browseType=$browseType¶m=0&storyType=$storyType&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("storyModule")';
+ $removeLink = $browseType == 'bymodule' ? $this->createLink($this->app->rawModule, $this->app->rawMethod, "productID=$productID&branch=$branch&browseType=$browseType¶m=0&storyType=$storyType&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("storyModule")';
echo html::a($removeLink, "", '', "class='text-muted'");
}
?>
@@ -62,20 +63,20 @@ $lang->story->create = $storyType == 'story' ? $lang->story->createStory : $lang
foreach($lang->product->moreSelects as $key => $value)
{
$active = $key == $storyBrowseType ? 'btn-active-text' : '';
- echo '' . html::a($this->createLink('product', 'browse', "productID=$productID&branch=$branch&browseType=$key¶m=0&storyType=$storyType"), "{$value}", '', "class='btn btn-link $active'") . '';
+ echo '' . html::a($this->createLink($this->app->rawModule, $this->app->rawMethod, "productID=$productID&branch=$branch&browseType=$key¶m=0&storyType=$storyType"), "{$value}", '', "class='btn btn-link $active'") . '';
}
echo '';
}
}
elseif($menuItem->name == 'QUERY')
{
- $searchBrowseLink = $this->createLink('product', 'browse', "productID=$productID&branch=$branch&browseType=$menuBrowseType¶m=%s&storyType=$storyType");
+ $searchBrowseLink = $this->createLink($this->app->rawModule, $this->app->rawMethod, "productID=$productID&branch=$branch&browseType=$menuBrowseType¶m=%s&storyType=$storyType");
$isBySearch = $this->session->storyBrowseType == 'bysearch';
include '../../common/view/querymenu.html.php';
}
else
{
- echo html::a($this->createLink('product', 'browse', "productID=$productID&branch=$branch&browseType=$menuBrowseType¶m=0&storyType=$storyType"), "$menuItem->text" . ($menuItem->name == $this->session->storyBrowseType ? ' ' . $pager->recTotal . '' : ''), '', "id='{$menuItem->name}Tab' class='btn btn-link" . ($this->session->storyBrowseType == $menuItem->name ? ' btn-active-text' : '') . "'");
+ echo html::a($this->createLink($this->app->rawModule, $this->app->rawMethod, "productID=$productID&branch=$branch&browseType=$menuBrowseType¶m=0&storyType=$storyType"), "$menuItem->text" . ($menuItem->name == $this->session->storyBrowseType ? ' ' . $pager->recTotal . '' : ''), '', "id='{$menuItem->name}Tab' class='btn btn-link" . ($this->session->storyBrowseType == $menuItem->name ? ' btn-active-text' : '') . "'");
}
}
?>
diff --git a/module/product/view/create.html.php b/module/product/view/create.html.php
index 19df3f53bb..06393df12a 100644
--- a/module/product/view/create.html.php
+++ b/module/product/view/create.html.php
@@ -55,11 +55,13 @@
|
+ URAndSR):?>
| product->storyConcept;?> |
custom->URSRList, zget($config->custom, 'URSRName', 1), "class='form-control chosen'");?> |
|
+
| product->status;?> |
|
diff --git a/module/program/control.php b/module/program/control.php
index cba9ea6364..feb3eaaaf4 100644
--- a/module/program/control.php
+++ b/module/program/control.php
@@ -14,7 +14,6 @@ class program extends control
{
parent::__construct($moduleName, $methodName);
$this->loadModel('project');
- $this->loadModel('programplan');
$this->loadModel('group');
}
@@ -685,11 +684,10 @@ class program extends control
* @param int $programID
* @param string $from PRJ|PGM
* @param int $copyProjectID
- * @param int $projectID
* @access public
* @return void
*/
- public function PRJCreate($model = 'waterfall', $programID = 0, $from = 'PRJ', $copyProjectID = '', $projectID = 0)
+ public function PRJCreate($model = 'waterfall', $programID = 0, $from = 'PRJ', $copyProjectID = '')
{
$this->app->loadLang('custom');
if($from == 'PRJ')
@@ -702,17 +700,6 @@ class program extends control
$this->lang->program->switcherMenu = $this->program->getPGMCommonAction();
}
- if($projectID)
- {
- $this->view->title = $this->lang->program->tips;
- $this->view->tips = $this->fetch('program', 'tips', "model=$model&programID=$programID&from=$from&projectID=$projectID");
- $this->view->programID = $programID;
- $this->view->from = $from;
- $this->view->projectID = $projectID;
- $this->display();
- exit;
- }
-
if($_POST)
{
$projectID = $this->program->PRJCreate();
@@ -720,7 +707,16 @@ class program extends control
$this->loadModel('action')->create('project', $projectID, 'opened');
- $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->createLink('program', 'PRJCreate', "model=$model&programID=$programID&from=$from©ProjectID=&projectID=$projectID", '', '',$projectID)));
+ if($from == 'PGM')
+ {
+ $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('PGMBrowse')));
+ }
+ else
+ {
+ if($model == 'waterfall') $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->createLink('programplan', 'create', "projectID=$projectID", '', '', $projectID)));
+
+ $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->createLink('project', 'create', '', '', '', $projectID)));
+ }
}
$name = '';
@@ -1143,7 +1139,8 @@ class program extends control
if($this->post->comment != '' or !empty($changes))
{
- $actionID = $this->action->create('program', $projectID, 'Started', $this->post->comment);
+ $objectType = $project->type == 'program' ? 'program' : 'project';
+ $actionID = $this->action->create($objectType, $projectID, 'Started', $this->post->comment);
$this->action->logHistory($actionID, $changes);
}
$this->executeHooks($projectID);
@@ -1178,7 +1175,8 @@ class program extends control
if($this->post->comment != '' or !empty($changes))
{
- $actionID = $this->action->create('program', $projectID, 'Suspended', $this->post->comment);
+ $objectType = $project->type == 'program' ? 'program' : 'project';
+ $actionID = $this->action->create($objectType, $projectID, 'Suspended', $this->post->comment);
$this->action->logHistory($actionID, $changes);
}
$this->executeHooks($projectID);
@@ -1214,7 +1212,7 @@ class program extends control
if($this->post->comment != '' or !empty($changes))
{
- $actionID = $this->action->create('program', $projectID, 'Closed', $this->post->comment);
+ $actionID = $this->action->create('project', $projectID, 'Closed', $this->post->comment);
$this->action->logHistory($actionID, $changes);
}
$this->executeHooks($projectID);
@@ -1250,7 +1248,7 @@ class program extends control
if($this->post->comment != '' or !empty($changes))
{
- $actionID = $this->action->create('program', $projectID, 'Activated', $this->post->comment);
+ $actionID = $this->action->create('project', $projectID, 'Activated', $this->post->comment);
$this->action->logHistory($actionID, $changes);
}
$this->executeHooks($projectID);
@@ -1442,25 +1440,4 @@ class program extends control
echo $this->fetch('program', 'PGMProduct', "programID=$programID");
}
-
- /**
- * When create a project, help the user.
- *
- * @param string $model
- * @param int $programID
- * @param string $from PRJ|PGM
- * @param int $projectID
- * @access public
- * @return void
- */
- public function tips($model = 'waterfall', $programID = 0, $from = 'PRJ', $projectID)
- {
- $this->view->model = $model;
- $this->view->programID = $programID;
- $this->view->from = $from;
- $this->view->projectID = $projectID;
- $this->view->project = $this->project->getById($projectID);
-
- $this->display('program', 'tips');
- }
}
diff --git a/module/program/css/prjcreate.css b/module/program/css/prjcreate.css
index 8ae721ff62..6400101703 100644
--- a/module/program/css/prjcreate.css
+++ b/module/program/css/prjcreate.css
@@ -8,4 +8,3 @@
#copyProjectModal a.active:after {position: absolute; content: '\e92f'; font-family: ZentaoIcon; font-size: 20px; right: 25px;}
#copyProjectModal a.cancel {color: #ff5d5d}
#budget {border-right:0px;}
-#tipsModal {margin-top: 10%;}
diff --git a/module/program/lang/de.php b/module/program/lang/de.php
index 4764bb28ec..341cdba341 100644
--- a/module/program/lang/de.php
+++ b/module/program/lang/de.php
@@ -38,9 +38,6 @@ $lang->program->errorNoProducts = 'At least one product is associated';
$lang->program->copyNoProject = 'There are no items available to copy.';
$lang->program->PRJSource = 'Project source:';
$lang->program->PRJStandalone = 'Projects that do not belong to a program.';
-$lang->program->tips = 'Note';
-$lang->program->setTeam = 'Set Team';
-$lang->program->goback = 'Go Back';
/* Fields. */
$lang->program->common = 'Program';
@@ -153,7 +150,6 @@ $lang->program->cannotCancelCat = "It has child projects, so you cannot unmark
$lang->program->parentBeginEnd = "Parent begin&end date: %s ~ %s";
$lang->program->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
$lang->program->readjustTime = 'Change the project begin&end date.';
-$lang->program->afterInfo = "Project is created. Next you can ";
$lang->program->PRJProgramTitle['0'] = 'Hide';
$lang->program->PRJProgramTitle['base'] = 'Base-level program only';
diff --git a/module/program/lang/en.php b/module/program/lang/en.php
index 715d55138f..eea8bf877c 100644
--- a/module/program/lang/en.php
+++ b/module/program/lang/en.php
@@ -38,9 +38,6 @@ $lang->program->errorNoProducts = 'At least one product is associated';
$lang->program->copyNoProject = 'There are no items available to copy.';
$lang->program->PRJSource = 'Project source:';
$lang->program->PRJStandalone = 'Projects that do not belong to a program.';
-$lang->program->tips = 'Note';
-$lang->program->setTeam = 'Set Team';
-$lang->program->goback = 'Go Back';
/* Fields. */
$lang->program->common = 'Program';
@@ -153,7 +150,6 @@ $lang->program->cannotCancelCat = "It has child projects, so you cannot unmark
$lang->program->parentBeginEnd = "Parent begin&end date: %s ~ %s";
$lang->program->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
$lang->program->readjustTime = 'Change the project begin&end date.';
-$lang->program->afterInfo = "Project is created. Next you can ";
$lang->program->PRJProgramTitle['0'] = 'Hide';
$lang->program->PRJProgramTitle['base'] = 'Base-level program only';
diff --git a/module/program/lang/fr.php b/module/program/lang/fr.php
index 4764bb28ec..341cdba341 100644
--- a/module/program/lang/fr.php
+++ b/module/program/lang/fr.php
@@ -38,9 +38,6 @@ $lang->program->errorNoProducts = 'At least one product is associated';
$lang->program->copyNoProject = 'There are no items available to copy.';
$lang->program->PRJSource = 'Project source:';
$lang->program->PRJStandalone = 'Projects that do not belong to a program.';
-$lang->program->tips = 'Note';
-$lang->program->setTeam = 'Set Team';
-$lang->program->goback = 'Go Back';
/* Fields. */
$lang->program->common = 'Program';
@@ -153,7 +150,6 @@ $lang->program->cannotCancelCat = "It has child projects, so you cannot unmark
$lang->program->parentBeginEnd = "Parent begin&end date: %s ~ %s";
$lang->program->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
$lang->program->readjustTime = 'Change the project begin&end date.';
-$lang->program->afterInfo = "Project is created. Next you can ";
$lang->program->PRJProgramTitle['0'] = 'Hide';
$lang->program->PRJProgramTitle['base'] = 'Base-level program only';
diff --git a/module/program/lang/vi.php b/module/program/lang/vi.php
index 4764bb28ec..341cdba341 100644
--- a/module/program/lang/vi.php
+++ b/module/program/lang/vi.php
@@ -38,9 +38,6 @@ $lang->program->errorNoProducts = 'At least one product is associated';
$lang->program->copyNoProject = 'There are no items available to copy.';
$lang->program->PRJSource = 'Project source:';
$lang->program->PRJStandalone = 'Projects that do not belong to a program.';
-$lang->program->tips = 'Note';
-$lang->program->setTeam = 'Set Team';
-$lang->program->goback = 'Go Back';
/* Fields. */
$lang->program->common = 'Program';
@@ -153,7 +150,6 @@ $lang->program->cannotCancelCat = "It has child projects, so you cannot unmark
$lang->program->parentBeginEnd = "Parent begin&end date: %s ~ %s";
$lang->program->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
$lang->program->readjustTime = 'Change the project begin&end date.';
-$lang->program->afterInfo = "Project is created. Next you can ";
$lang->program->PRJProgramTitle['0'] = 'Hide';
$lang->program->PRJProgramTitle['base'] = 'Base-level program only';
diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php
index 7e55d80407..fc30e50c91 100644
--- a/module/program/lang/zh-cn.php
+++ b/module/program/lang/zh-cn.php
@@ -39,9 +39,6 @@ $lang->program->errorNoProducts = '最少关联一个产品';
$lang->program->copyNoProject = '没有可用的项目来复制';
$lang->program->PRJSource = '项目来源:';
$lang->program->PRJStandalone = '没有所属项目集的项目';
-$lang->program->tips = '提示';
-$lang->program->setTeam = '设置团队';
-$lang->program->goback = '返回项目列表';
/* Fields. */
$lang->program->common = '项目集';
@@ -155,7 +152,6 @@ $lang->program->cannotCancelCat = "该项目下已经有子项目,无法取
$lang->program->parentBeginEnd = "父项目起止时间:%s ~ %s";
$lang->program->childLongTime = "子项目中有长期项目,父项目也应该是长期项目";
$lang->program->readjustTime = '重新调整项目起止时间';
-$lang->program->afterInfo = "项目添加成功,您现在可以进行以下操作:";
$lang->program->PRJProgramTitle['0'] = '不显示';
$lang->program->PRJProgramTitle['base'] = '只显示一级项目集';
diff --git a/module/program/view/pgmbrowsebylist.html.php b/module/program/view/pgmbrowsebylist.html.php
index c2e676c1e6..da605feac7 100644
--- a/module/program/view/pgmbrowsebylist.html.php
+++ b/module/program/view/pgmbrowsebylist.html.php
@@ -13,7 +13,7 @@
program->end);?> |
program->PGMBudget);?> |
program->PGMPM);?> |
- actions;?> |
+ actions;?> |
@@ -71,6 +71,8 @@
id", $program, 'list', 'icon icon-lock');?>
id", $program, 'list', 'persons');?>
+ id", $program, 'list', 'group');?>
+ id", $program, 'list', 'icon icon-menu-project');?>
id", $program, 'list', 'play', '', 'iframe', true);?>
createLink("program", "prjedit", "programID=$program->id"), "", '', "class='btn' title='{$this->lang->program->PRJEdit}'");?>
id", '', 'list', 'treemap-alt', '', 'disabled', '', '', $this->lang->program->PGMChildren);?>
diff --git a/module/program/view/prjcreate.html.php b/module/program/view/prjcreate.html.php
index a30e21b844..4dba723267 100644
--- a/module/program/view/prjcreate.html.php
+++ b/module/program/view/prjcreate.html.php
@@ -10,32 +10,6 @@
* @link http://www.zentao.net
*/
?>
-
-createLink('program', 'PRJBrowse', "programID=$programID&browseType=all");
-}
-else
-{
- $defaultURL = $this->createLink('program', 'PGMBrowse');
-}
-?>
-
-
-
-
-