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 @@
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');?>