diff --git a/module/common/lang/de.php b/module/common/lang/de.php
index 515d69a7d1..46dd750536 100644
--- a/module/common/lang/de.php
+++ b/module/common/lang/de.php
@@ -29,6 +29,8 @@ $lang->help = 'Hilfe';
$lang->aboutZenTao = 'ZenTao';
$lang->profile = 'Profil';
$lang->changePassword = 'Passwort';
+$lang->unfoldMenu = 'Unfold Menu';
+$lang->collapseMenu = 'Collapse Menu';
$lang->runInfo = "
Time %s MS, Memory %s KB, Query %s.
";
$lang->agreement = "I have read and agreed to the terms and conditions of Z PUBLIC LICENSE 1.2 . Without authorization, I should not remove, hide or cover any logos/links of ZenTao.";
$lang->designedByAIUX = "Designed by AIUX";
diff --git a/module/common/lang/en.php b/module/common/lang/en.php
index b4b6013427..b2d1cba44d 100644
--- a/module/common/lang/en.php
+++ b/module/common/lang/en.php
@@ -29,6 +29,8 @@ $lang->help = 'Help';
$lang->aboutZenTao = 'About';
$lang->profile = 'Profile';
$lang->changePassword = 'Password';
+$lang->unfoldMenu = 'Unfold Menu';
+$lang->collapseMenu = 'Collapse Menu';
$lang->runInfo = "Time %s MS, Memory %s KB, Query %s.
";
$lang->agreement = "I have read and agreed to the terms and conditions of Z PUBLIC LICENSE 1.2 . Without authorization, I should not remove, hide or cover any logos/links of ZenTao.";
$lang->designedByAIUX = "Designed by AIUX";
diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php
index 59e4f8b04f..dce1cdf61b 100644
--- a/module/common/lang/fr.php
+++ b/module/common/lang/fr.php
@@ -29,6 +29,8 @@ $lang->help = 'Aide';
$lang->aboutZenTao = 'A Propos';
$lang->profile = 'Profil';
$lang->changePassword = 'Mot de Passe';
+$lang->unfoldMenu = 'Unfold Menu';
+$lang->collapseMenu = 'Collapse Menu';
$lang->runInfo = "Time %s MS, Memory %s KB, Query %s.
";
$lang->agreement = "J'ai lu et j'accepte les termes et conditions de la Z PUBLIC LICENSE 1.2 . Sans autorisation, je ne dois pas supprimer, masquer ou couvrir les logos / liens de ZenTao.";
$lang->designedByAIUX = "Designed by AIUX";
diff --git a/module/common/lang/vi.php b/module/common/lang/vi.php
index 4e959e2587..9bae270af7 100644
--- a/module/common/lang/vi.php
+++ b/module/common/lang/vi.php
@@ -29,6 +29,8 @@ $lang->help = 'Trợ giúp';
$lang->aboutZenTao = 'Giới thiệu';
$lang->profile = 'Hồ sơ';
$lang->changePassword = 'Mật khẩu';
+$lang->unfoldMenu = 'Unfold Menu';
+$lang->collapseMenu = 'Collapse Menu';
$lang->runInfo = "Time %s MS, Memory %s KB, Query %s.
";
$lang->agreement = "I have read and agreed to the terms and conditions of Z PUBLIC LICENSE 1.2 . Without authorization, I should not remove, hide or cover any logos/links of ZenTao.";
$lang->designedByAIUX = "Designed by AIUX";
diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php
index 490daaba08..893c0f70c7 100755
--- a/module/common/lang/zh-cn.php
+++ b/module/common/lang/zh-cn.php
@@ -149,6 +149,10 @@ $lang->program->menu = new stdclass();
//$lang->program->menu->index = '主页|program|pgmindex|';
$lang->program->menu->browse = array('link' => '项目集|program|pgmbrowse|', 'alias' => 'pgmcreate,pgmedit,pgmgroup,pgmmanagepriv,pgmmanageview,pgmmanagemembers');
+$lang->PRJ = new stdclass();
+$lang->PRJ->menu = new stdclass();
+$lang->PRJ->menu->browse = array('link' => '项目|program|prjbrowse|', 'alias' => 'prjcreate,prjedit,prjgroup,prjmanagepriv,prjmanageview,prjmanagemembers');
+
$lang->program->viewMenu = new stdclass();
$lang->program->viewMenu->product = array('link' => '产品|program|pgmproduct|program=%s', 'alias' => 'view');
$lang->program->viewMenu->project = array('link' => "项目|program|pgmproject|program=%s");
diff --git a/module/common/model.php b/module/common/model.php
index 3420a22396..7bfc81e8f1 100644
--- a/module/common/model.php
+++ b/module/common/model.php
@@ -621,7 +621,7 @@ class commonModel extends model
global $app, $lang, $config;
/* If program, return.*/
- if($moduleName == 'program' and strpos($methodName, 'prj') !== false) return;
+ if($moduleName == 'program' and strpos($methodName, 'prj') !== false) $lang->program->menu->browse = $lang->PRJ->menu->browse;
if($moduleName == 'product' and $methodName == 'create') return;
/* Set the main main menu. */
diff --git a/module/program/control.php b/module/program/control.php
index 06a078d133..5a77862968 100644
--- a/module/program/control.php
+++ b/module/program/control.php
@@ -822,15 +822,6 @@ class program extends control
*/
public function PRJCreate($model = 'waterfall', $programID = 0, $from = 'PRJ', $copyProjectID = '')
{
- if($from == 'PRJ')
- {
- $this->lang->navGroup->program = 'project';
- }
- else
- {
- $this->lang->navGroup->program = 'program';
- }
-
if($_POST)
{
$projectID = $this->program->PRJCreate();
@@ -924,7 +915,6 @@ class program extends control
public function PRJEdit($projectID = 0, $programID = 0)
{
$this->app->loadLang('custom');
- $this->lang->navGroup->program = 'project';
$this->app->loadLang('project');
$this->loadModel('productplan');
@@ -987,7 +977,6 @@ class program extends control
*/
public function PRJGroup($projectID = 0, $programID = 0)
{
- $this->lang->navGroup->program = 'project';
$title = $this->lang->company->orgView . $this->lang->colon . $this->lang->group->browse;
$position[] = $this->lang->group->browse;
@@ -1015,8 +1004,6 @@ class program extends control
*/
public function PRJCreateGroup($projectID = 0, $programID = 0)
{
- $this->lang->navGroup->program = 'project';
-
if(!empty($_POST))
{
$_POST['PRJ'] = $projectID;
@@ -1042,8 +1029,6 @@ class program extends control
*/
public function PRJManageView($groupID, $projectID, $programID)
{
- $this->lang->navGroup->program = 'project';
-
if($_POST)
{
$this->group->updateView($groupID);
@@ -1077,8 +1062,6 @@ class program extends control
*/
public function PRJManagePriv($type = 'byGroup', $param = 0, $menu = '', $version = '')
{
- $this->lang->navGroup->program = 'project';
-
if($type == 'byGroup')
{
$groupID = $param;
@@ -1144,8 +1127,6 @@ class program extends control
*/
public function PRJManageMembers($projectID, $dept = '')
{
- $this->lang->navGroup->program = 'project';
-
if(!empty($_POST))
{
$this->project->manageMembers($projectID);
@@ -1267,7 +1248,6 @@ class program extends control
*/
public function PRJStart($projectID)
{
- $this->lang->navGroup->program = 'project';
$this->loadModel('action');
$project = $this->program->getPRJByID($projectID);
@@ -1326,7 +1306,6 @@ class program extends control
*/
public function PRJSuspend($projectID)
{
- $this->lang->navGroup->program = 'project';
$this->loadModel('action');
if(!empty($_POST))
@@ -1361,7 +1340,6 @@ class program extends control
*/
public function PRJClose($projectID)
{
- $this->lang->navGroup->program = 'project';
$this->loadModel('action');
if(!empty($_POST))
@@ -1396,7 +1374,6 @@ class program extends control
*/
public function PRJActivate($projectID)
{
- $this->lang->navGroup->program = 'project';
$this->loadModel('action');
$project = $this->program->getPRJByID($projectID);
@@ -1495,7 +1472,6 @@ class program extends control
*/
public function PRJWhitelist($projectID = 0, $programID = 0, $module='program', $objectType = 'project', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
- $this->lang->navGroup->program = 'project';
echo $this->fetch('personnel', 'whitelist', "objectID=$projectID&module=$module&browseType=$objectType&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID");
}
@@ -1509,7 +1485,6 @@ class program extends control
*/
public function PRJAddWhitelist($projectID = 0, $deptID = 0)
{
- $this->lang->navGroup->program = 'project';
echo $this->fetch('personnel', 'addWhitelist', "objectID=$projectID&dept=$deptID&objectType=project&module=program");
}
@@ -1536,7 +1511,6 @@ class program extends control
*/
public function PRJManageProducts($projectID, $programID = 0)
{
- $this->lang->navGroup->program = 'project';
$browseProjectLink = $this->session->PRJBrowse ? $this->session->PRJBrowse : inLink('PRJBrowse', "programID=$programID");
if(!empty($_POST))
diff --git a/module/program/css/prjbrowse.css b/module/program/css/prjbrowse.css
index 504c8bd354..d1b8aa8238 100644
--- a/module/program/css/prjbrowse.css
+++ b/module/program/css/prjbrowse.css
@@ -1,36 +1,4 @@
.side-col .detail-content{padding-left: 10px; margin-top: 0px}
-.tree li.has-list.open:before {border-left: none;}
-#projectTree li {padding: 0 0 0 8px;}
-#projectTree li.has-list {padding-left: 20px;}
-#projectTree li > a {display: block; padding: 5px 0; border-radius: 2px; padding-left: 6px; height: 30px;}
-#projectTree li > a > span {display: inline-block;}
-#projectTree li > a > span + span {margin-left: 8px;}
-#projectTree li.selected > a {background-color: #E8F3FC;}
-#projectTree li.selected > a > span.title {color: #006AF1;}
-#projectTree .label-id {border-color: #cbd0db; color: #7d8599}
-#projectTree .label.label-type {background: #fff; border: 1px solid #7d8599; color:#7d8599}
-
-#projectTree li > a > span.title {color: #3C4353; white-space: nowrap; max-width: 60%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle;}
-#projectTree li > a > span.user {color: #838a9d;}
-#projectTree li > a > span.user > .icon-person {font-size: 14px; position: relative; top: -1px; color: #a6aab8}
-
-#projectTree li > .list-toggle {transform: rotate(0deg); width: 16px; height: 16px; border: 4px solid #a6aab8; border-radius: 2px; top: 7px;}
-#projectTree li > .list-toggle:before {content: ' '; display: block; position: absolute; border: 1px solid #a6aab8; top: 2px; left: -3px; right: -3px; bottom: 2px; min-width: 0; transition: all .2s;}
-#projectTree li > .list-toggle:hover:before,
-#projectTree li > .list-toggle:hover {border-color: #006AF1;}
-#projectTree li.open > .list-toggle {width: 12px; height: 12px; top: 9px; background-color: #a6aab8; border-width: 3px; left: 3px;}
-#projectTree li.open > .list-toggle:before {border: none; height: 2px; width: 6px; left: 0; top: 2px; background: #fff;}
-#projectTree li.open > .list-toggle:hover {background: #006AF1;}
-
-#projectTree ul > li:after {display: block; position: absolute; content: ' '; border-top: 2px solid #cbd0db; top: 14px; left: -12px; z-index: 1; width: 10px;}
-#projectTree ul > li:before,
-#projectTree ul > li.has-list:before {background: none; content: ' '; display: block; position: absolute; width: auto; height: auto; border: none; border-left: 2px solid #cbd0db; top: -13px; bottom: 12px; left: -12px;}
-#projectTree ul > li:last-child:before {bottom: auto; height: 29px;}
-#projectTree ul > li:first-child:before {top: -9px;}
-#projectTree ul > li.has-list:first-child:before {top: -13px;}
-#projectTree ul > li.tree-single-item:before {height: 23px;}
-#projectTree ul > li.has-list:after {width: 14px;}
-#projectTree ul > li.item-meas a.selected{color: #0c64eb;}
.side-col {padding-right: 20px; width: 18%}
#sidebar>.cell {width: 100%;}
diff --git a/module/program/model.php b/module/program/model.php
index b7c0ef57a8..1a23b4ebc1 100644
--- a/module/program/model.php
+++ b/module/program/model.php
@@ -1208,10 +1208,10 @@ class programModel extends model
if($program) $path = $program->path;
return $this->dao->select('*')->from(TABLE_PROJECT)
- ->where('type')->in('project,program')
+ ->where('type')->eq('program')
->andWhere('status')->ne('closed')
->andWhere('deleted')->eq('0')
- ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->programs . ',' . $this->app->user->view->projects)->fi()
+ ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->programs)->fi()
->beginIF($projectID > 0)->andWhere('path')->like($path . '%')->fi()
->orderBy('grade desc, `order`')
->get();
@@ -1291,9 +1291,8 @@ class programModel extends model
*/
public function createPRJManageLink($project)
{
- $link = $project->type == 'program' ? helper::createLink('program', 'PRJbrowse', "programID={$project->id}") : helper::createLink('program', 'index', "projectID={$project->id}", '', '', $project->id);
- $icon = $project->type == 'program' ? html::icon($this->lang->icons['program']) : html::icon($this->lang->icons['project']);
- return html::a($link, $icon . ' ' . $project->name, '_self', "id=project{$project->id} title='{$project->name}' class='text-ellipsis'");
+ $link = $project->type == 'program' ? helper::createLink('program', 'PRJbrowse', "programID={$project->id}&status=all") : helper::createLink('program', 'index', "projectID={$project->id}", '', '', $project->id);
+ return html::a($link, $project->name, '_self', "id=project{$project->id} title='{$project->name}' class='text-ellipsis'");
}
/**