diff --git a/module/project/control.php b/module/project/control.php index 9aa49fa019..4e88286e9a 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -471,6 +471,7 @@ class project extends control $this->view->users = $this->user->getPairs('noclosed|nodeleted'); $this->view->project = $project; $this->view->programList = $this->program->getParentPairs(); + $this->view->program = $this->program->getByID($project->parent); $this->view->projectID = $projectID; $this->view->allProducts = array('0' => '') + $allProducts; $this->view->productPlans = $productPlans; @@ -519,14 +520,23 @@ class project extends control $projectIdList = $this->post->projectIdList ? $this->post->projectIdList : die(js::locate($this->session->projectList, 'parent')); $projects = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->in($projectIdList)->fetchAll('id'); - foreach($projects as $project) $appendPMUsers[$project->PM] = $project->PM; + /* Get program list. */ + $programs = $this->loadModel('program')->getParentPairs(); + $unauthorizedIDList = array(); + foreach($projects as $project) + { + if(!isset($programs[$project->parent]) and !in_array($project->parent, $unauthorizedIDList)) $unauthorizedIDList[] = $project->parent; + $appendPMUsers[$project->PM] = $project->PM; + } + $unauthorizedPrograms = $this->program->getPairsByList($unauthorizedIDList); $this->view->title = $this->lang->project->batchEdit; $this->view->position[] = $this->lang->project->batchEdit; - $this->view->projects = $projects; - $this->view->programList = $this->loadModel('program')->getParentPairs(); - $this->view->PMUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst', $appendPMUsers); + $this->view->projects = $projects; + $this->view->programs = $programs; + $this->view->unauthorizedPrograms = $unauthorizedPrograms; + $this->view->PMUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst', $appendPMUsers); $this->display(); } diff --git a/module/project/model.php b/module/project/model.php index 3c2f0fcbe3..c6cb2abaa5 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -976,8 +976,8 @@ class projectModel extends model $projectName = $data->names[$projectID]; $projects[$projectID] = new stdClass(); + if(isset($data->parents[$projectID])) $projects[$projectID]->parent = $data->parents[$projectID]; $projects[$projectID]->name = $projectName; - $projects[$projectID]->parent = $data->parents[$projectID]; $projects[$projectID]->PM = $data->PMs[$projectID]; $projects[$projectID]->begin = $data->begins[$projectID]; $projects[$projectID]->end = isset($data->ends[$projectID]) ? $data->ends[$projectID] : LONG_TIME; diff --git a/module/project/view/batchedit.html.php b/module/project/view/batchedit.html.php index 26b4903ab9..5ba083d44b 100644 --- a/module/project/view/batchedit.html.php +++ b/module/project/view/batchedit.html.php @@ -37,7 +37,11 @@ parent ? $lang->program->subAcls : $lang->project->acls;?> - parent, "class='form-control chosen' data-id='$projectID' data-name='{$project->name}' data-parent='{$project->parent}'");?> + parent])):?> + parent, "class='form-control chosen' data-id='$projectID' data-name='{$project->name}' data-parent='{$project->parent}' disabled");?> + + parent, "class='form-control chosen' data-id='$projectID' data-name='{$project->name}' data-parent='{$project->parent}'");?> + name, "class='form-control'");?> PM, "class='form-control chosen'");?> diff --git a/module/project/view/edit.html.php b/module/project/view/edit.html.php index 8c52ae4ae2..bae7c19025 100644 --- a/module/project/view/edit.html.php +++ b/module/project/view/edit.html.php @@ -32,7 +32,16 @@ - + parent])) + { + echo html::hidden('parent', $project->parent); + $attr = 'disabled'; + $programList = array($project->parent => $program->name); + } + ?> +
program->parent;?>parent, "class='form-control chosen'");?>parent, "class='form-control chosen' $attr");?>