diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php
index 4d4ad0deb3..97f72e0e39 100644
--- a/module/common/lang/zh-cn.php
+++ b/module/common/lang/zh-cn.php
@@ -154,11 +154,11 @@ $lang->dividerMenu = ',project,doc,';
$lang->program = new stdclass();
$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,prjcreate,prjedit,prjmanageproducts');
+$lang->program->menu->browse = array('link' => '项目集|program|pgmbrowse|', 'alias' => 'pgmcreate,pgmedit,pgmgroup,pgmmanagepriv,pgmmanageview,pgmmanagemembers,prjcreate,prjedit,prjmanageproducts,prjwhitelist,prjaddwhitelist');
$lang->PRJ = new stdclass();
$lang->PRJ->menu = new stdclass();
-$lang->PRJ->menu->browse = array('link' => '项目|program|prjbrowse|', 'alias' => 'prjcreate,prjedit,prjgroup,prjmanagepriv,prjmanageview,prjmanagemembers,prjmanageproducts');
+$lang->PRJ->menu->browse = array('link' => '项目|program|prjbrowse|', 'alias' => 'prjcreate,prjedit,prjgroup,prjmanagepriv,prjmanageview,prjmanagemembers,prjmanageproducts,prjwhitelist,prjaddwhitelist');
$lang->program->viewMenu = new stdclass();
$lang->program->viewMenu->product = array('link' => '产品|program|pgmproduct|program=%s', 'alias' => 'view');
diff --git a/module/personnel/control.php b/module/personnel/control.php
index 0146f5a28b..83c9f05e2c 100644
--- a/module/personnel/control.php
+++ b/module/personnel/control.php
@@ -91,10 +91,12 @@ class personnel extends control
* @param int $recTotal
* @param int $recPerPage
* @param int $pageID
+ * @param int $programID
+ * @param string $from PRJ|pgmbrowse|pgmproject
* @access public
* @return void
*/
- public function whitelist($objectID = 0, $module = 'personnel', $objectType = 'program', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
+ public function whitelist($objectID = 0, $module = 'personnel', $objectType = 'program', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1, $programID = 0, $from = '')
{
if($module == 'personnel') $this->setProgramNavMenu($objectID);
@@ -113,11 +115,9 @@ class personnel extends control
$pager = pager::init($recTotal, $recPerPage, $pageID);
/* Set back link. */
- if($module == 'program')
- {
- $goback = $this->session->PRJBrowse ? $this->session->PRJBrowse : $this->createLink('program', 'PRJBrowse');
- $this->view->goback = $goback;
- }
+ if($from == 'pgmbrowse') $goback = $this->createLink('program', 'PGMBrowse');
+ if($from == 'pgmproject') $goback = $this->createLink('program', 'PGMProject', "programID=$programID");
+ if($from == 'PRJ') $goback = $this->createLink('program', 'PRJBrowse');
$this->view->title = $this->lang->personnel->whitelist;
$this->view->position[] = $this->lang->personnel->whitelist;
@@ -127,6 +127,9 @@ class personnel extends control
$this->view->whitelist = $this->personnel->getWhitelist($objectID, $objectType, $orderBy, $pager);
$this->view->depts = $this->loadModel('dept')->getOptionMenu();
$this->view->module = $module;
+ $this->view->goback = isset($goback) ? $goback : '';
+ $this->view->programID = $programID;
+ $this->view->from = $from;
$this->display();
}
@@ -138,10 +141,12 @@ class personnel extends control
* @param int $deptID
* @param string $objectType program|project|product|sprint
* @param string $module
+ * @param int $programID
+ * @param string $from PRJ|pgmbrowse|pgmproject
* @access public
* @return void
*/
- public function addWhitelist($objectID = 0, $deptID = 0, $objectType = 'program', $module = 'personnel')
+ public function addWhitelist($objectID = 0, $deptID = 0, $objectType = 'program', $module = 'personnel', $programID = 0, $from = '')
{
if($module == 'personnel') $this->setProgramNavMenu($objectID);
$this->app->loadLang('project');
@@ -151,8 +156,13 @@ class personnel extends control
$this->personnel->addWhitelist($objectType, $objectID);
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => $this->getError()));
- $moduleMethod = $module == 'program' ? 'PRJWhitelist' : 'whitelist';
- $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->createLink($module, $moduleMethod, "objectID=$objectID")));
+ $locateLink = $this->createLink($module, 'whitelist', "objectID=$objectID");
+ if($module == 'program')
+ {
+ $openModule = $from == 'PRJ' ? 'project' : 'program';
+ $locateLink = $this->createLink('program', 'PRJWhitelist', "objectID=$objectID&programID=$programID&module=$module&from=$from") . "#open=$openModule";
+ }
+ $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $locateLink));
}
$this->loadModel('dept');
@@ -170,6 +180,8 @@ class personnel extends control
$this->view->depts = $this->dept->getOptionMenu();
$this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted');
$this->view->dept = $this->dept->getByID($deptID);
+ $this->view->programID = $programID;
+ $this->view->from = $from;
$this->display();
}
diff --git a/module/personnel/js/addwhitelist.js b/module/personnel/js/addwhitelist.js
index 0d8665f8b4..1edfca2e0f 100644
--- a/module/personnel/js/addwhitelist.js
+++ b/module/personnel/js/addwhitelist.js
@@ -8,6 +8,9 @@ function setDeptUsers(dept)
{
var deptID = $(dept).val();
var link = createLink(module, moduleMethod, 'objectID=' + objectID + '&deptID=' + deptID + '&objectType=' + objectType + '&module=' + module);
+
+ if(module == 'program') link = createLink(module, moduleMethod, 'objectID=' + objectID + '&deptID=' + deptID + '&programID=' + programID + '&from=' + from);
+
location.href = link;
}
diff --git a/module/personnel/view/addwhitelist.html.php b/module/personnel/view/addwhitelist.html.php
index 685ff0dc87..7cea5b0997 100644
--- a/module/personnel/view/addwhitelist.html.php
+++ b/module/personnel/view/addwhitelist.html.php
@@ -84,7 +84,8 @@
session->whitelistBrowse;?>
- goback, '', 'class="btn btn-back btn-wide"');?>
+
+ goback, '', "class='btn btn-back btn-wide' $dataGroup");?>
|
@@ -105,4 +106,6 @@
+
+
diff --git a/module/personnel/view/whitelist.html.php b/module/personnel/view/whitelist.html.php
index 2db0afb74d..5431d5c401 100644
--- a/module/personnel/view/whitelist.html.php
+++ b/module/personnel/view/whitelist.html.php
@@ -13,12 +13,17 @@
+
+
+
goback, '', 'class="btn btn-secondary"');?>
- createLink($module, 'whitelist', "objectID=$objectID"), '' . $lang->personnel->whitelist . '', '', 'class="btn btn-link btn-active-text"');?>
+ createLink($module, $moduleMethod, $vars), '' . $lang->personnel->whitelist . '', '', "class='btn btn-link btn-active-text' $openModule");?>
- " . $lang->personnel->addWhitelist, '', "class='btn btn-primary'");?>
+
+
+ " . $lang->personnel->addWhitelist, '', "class='btn btn-primary' $openModule");?>
diff --git a/module/program/control.php b/module/program/control.php
index 73b89b73b4..2b019213d0 100644
--- a/module/program/control.php
+++ b/module/program/control.php
@@ -1480,6 +1480,7 @@ class program extends control
* @param int $projectID
* @param int $programID
* @param string $module
+ * @param string $from PRJ|pgmbrowse|pgmproject
* @param string $objectType
* @param string $orderby
* @param int $recTotal
@@ -1488,9 +1489,18 @@ class program extends control
* @access public
* @return void
*/
- public function PRJWhitelist($projectID = 0, $programID = 0, $module='program', $objectType = 'project', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
+ public function PRJWhitelist($projectID = 0, $programID = 0, $module='program', $from = '', $objectType = 'project', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
- echo $this->fetch('personnel', 'whitelist', "objectID=$projectID&module=$module&browseType=$objectType&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID");
+ if($from == 'pgmbrowse') $this->lang->PRJ->menu = $this->lang->program->menu;
+ if($from == 'pgmproject')
+ {
+ $this->app->rawMethod = 'pgmproject';
+ $this->lang->navGroup->program = 'program';
+ $this->lang->program->switcherMenu = $this->program->getPGMSwitcher($programID, true);
+ $this->program->setPGMViewMenu($programID);
+ }
+
+ echo $this->fetch('personnel', 'whitelist', "objectID=$projectID&module=$module&browseType=$objectType&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID&programID=$programID&from=$from");
}
/**
@@ -1498,12 +1508,23 @@ class program extends control
*
* @param int $projectID
* @param int $deptID
+ * @param int $programID
+ * @param int $from
* @access public
* @return void
*/
- public function PRJAddWhitelist($projectID = 0, $deptID = 0)
+ public function PRJAddWhitelist($projectID = 0, $deptID = 0, $programID = 0, $from = '')
{
- echo $this->fetch('personnel', 'addWhitelist', "objectID=$projectID&dept=$deptID&objectType=project&module=program");
+ /* Navigation stay in program when enter from program list. */
+ if($from == 'pgmbrowse') $this->lang->PRJ->menu = $this->lang->program->menu;
+ if($from == 'pgmproject')
+ {
+ $this->app->rawMethod = 'pgmproject';
+ $this->lang->program->switcherMenu = $this->program->getPGMSwitcher($programID, true);
+ $this->program->setPGMViewMenu($programID);
+ }
+
+ echo $this->fetch('personnel', 'addWhitelist', "objectID=$projectID&dept=$deptID&objectType=project&module=program&programID=$programID&from=$from");
}
/*
diff --git a/module/program/model.php b/module/program/model.php
index 3dd4199e5a..f5ae1ddbb0 100644
--- a/module/program/model.php
+++ b/module/program/model.php
@@ -1710,17 +1710,17 @@ class programModel extends model
echo "";
echo "
";
- $from = $project->from == 'PRJ' ? 'PRJ' : 'pgmproject';
- $dataGroup = $project->from == 'PRJ' ? 'project' : 'program';
- common::printIcon('program', 'PRJEdit', "projectID=$project->id&programID=$project->parent&from=$from", $project, 'list', 'edit', '', '', '', "data-group=$dataGroup");
+ $from = $project->from == 'PRJ' ? 'PRJ' : 'pgmproject';
+ $openModule = $project->from == 'PRJ' ? 'project' : 'program';
+ common::printIcon('program', 'PRJEdit', "projectID=$project->id&programID=$project->parent&from=$from", $project, 'list', 'edit', '', '', '', "data-group=$openModule");
common::printIcon('program', 'PRJManageMembers', "projectID=$project->id", $project, 'list', 'group');
common::printIcon('program', 'PRJGroup', "projectID=$project->id&programID=$programID", $project, 'list', 'lock');
echo "";
echo "";
echo "";
echo "
";
diff --git a/module/program/view/pgmbrowsebylist.html.php b/module/program/view/pgmbrowsebylist.html.php
index 8ab86bcbe6..d5a1020315 100644
--- a/module/program/view/pgmbrowsebylist.html.php
+++ b/module/program/view/pgmbrowsebylist.html.php
@@ -86,14 +86,14 @@
status != 'closed') common::printIcon('program', 'PRJActivate', "projectID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
- id&programID=$program->parent&from=pgmbrowse", $program, 'list', 'edit', '', '', '', "data-group='program'");?>
+ id&programID=$program->parent&from=pgmbrowse", $program, 'list', 'edit', '', '', '', "data-group='program'");?>
id", $program, 'list', 'group');?>
id", $program, 'list', 'lock');?>