diff --git a/module/project/control.php b/module/project/control.php index 96f41a566d..96fecd0142 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -252,10 +252,12 @@ class project extends control $data = array(); if(isset($selectedProgram)) { - $data['selectedProgramBegin'] = $selectedProgram->begin; - $data['selectedProgramEnd'] = $selectedProgram->end; - $data['budgetUnit'] = $selectedProgram->budgetUnit; + $data['selectedProgramBegin'] = $selectedProgram->begin; + $data['selectedProgramEnd'] = $selectedProgram->end; + $data['budgetUnit'] = $selectedProgram->budgetUnit; + $data['selectedProgramParent'] = $selectedProgram->parent; } + if(!empty($objectID)) $data['parent'] = $object->parent; if(isset($availableBudget)) $data['availableBudget'] = $availableBudget; if(isset($minChildBegin)) $data['minChildBegin'] = $minChildBegin; if(isset($maxChildEnd)) $data['maxChildEnd'] = $maxChildEnd; diff --git a/module/project/js/create.js b/module/project/js/create.js index 36d67fc765..8ce560267e 100644 --- a/module/project/js/create.js +++ b/module/project/js/create.js @@ -115,7 +115,30 @@ $(function() */ function setParentProgram(parentProgram) { - location.href = createLink('project', 'create', 'model=' + model + '&programID=' + parentProgram); + //ParentProgram is the ID of the currently selected program. + + var lastSelectedID = $('#parent').attr('data-lastSelected'); + var lastSelectedParent = 0; + var selectedParent = 0; + + if(parentProgram == 0) $('#budgetBox').find('input').removeAttr("placeholder"); + + $.get(createLink('project', 'ajaxGetObjectInfo', 'objectType=program&objectID=' + lastSelectedID + "&selectedProgramID=" + parentProgram), function(data) + { + var data = JSON.parse(data); + selectedParent = parentProgram != 0 ? data.selectedProgramParent : 0; + lastSelectedParent = lastSelectedID != 0 ? data.parent : 0; + + if(selectedParent != lastSelectedParent) + { + location.href = createLink('project', 'create', 'model=' + model + '&programID=' + parentProgram); + return; + } + budgetOverrunTips(); + outOfDateTip(); + }); + + $('#parent').attr('data-lastSelected', parentProgram); } /** diff --git a/module/project/view/create.html.php b/module/project/view/create.html.php index 2dbe674850..75a8da8db5 100755 --- a/module/project/view/create.html.php +++ b/module/project/view/create.html.php @@ -46,7 +46,7 @@ - + @@ -55,7 +55,7 @@