diff --git a/presentation/lookAndFeel/knowledgeTree/administration/unitmanagement/removeUnitBL.php b/presentation/lookAndFeel/knowledgeTree/administration/unitmanagement/removeUnitBL.php index 4178bc5..ffbdc1f 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/unitmanagement/removeUnitBL.php +++ b/presentation/lookAndFeel/knowledgeTree/administration/unitmanagement/removeUnitBL.php @@ -25,42 +25,55 @@ if (checkSession()) { $oPatternCustom = & new PatternCustom(); - // get main page - if (isset($fUnitID)) { - $fOrgID = UnitOrganisationLink::unitBelongsToOrg($fUnitID); - - if(!$fOrgID) { $fOrgID = null;} - - $oPatternCustom->setHtml(getDeleteConfirmedPage($fUnitID,$fOrgID)); - $main->setFormAction($_SERVER["PHP_SELF"] . "?fForDeleteConfirmed=1"); - } else { - $oPatternCustom->setHtml(getDeletePage(null)); - $main->setFormAction($_SERVER["PHP_SELF"]); - } - - if (isset($fForDeleteConfirmed)) { - // get unitorg object - if ($fOrgID > 0) { - $oUnitOrg = new UnitOrganisationLink($fUnitID,$fOrgID); - $oUnitOrg->setUnitOrgID($fUnitID); - - //delete unitorgobject - $oUnitOrg->delete(); - } - //get unit object + if ($fUnitID) { + // retrieve unit object $oUnit = Unit::get($fUnitID); - $oUnit->setName($fUnitName); - - - //delete unit object - if ($oUnit->delete()) { - $oPatternCustom->setHtml(getDeleteSuccessPage()); - } else { - $oPatternCustom->setHtml(getDeleteFailPage()); - } + if ($oUnit) { + + // if the unit has groups linked to it, then it can't be deleted + if ($oUnit->hasGroups()) { + // display error message + $oPatternCustom->setHtml(getStatusPage("Can't delete Unit '" . $oUnit->getName() . "'", "Please remove all groups belonging to this Unit before attempting to delete it")); + } else { + // retrieve organisation link (for later deletion or to get the organisation id) + $oUnitOrg = UnitOrganisationLink::getByUnitID($fUnitID); + + // we've received confirmation, so delete + if (isset($fForDeleteConfirmed)) { + //delete unit object + if ($oUnit->delete()) { + // delete the link between this unit and its organisation if there is one + if ($oUnitOrg) { + if ($oUnitOrg->delete()) { + $oPatternCustom->setHtml(getStatusPage("Unit SuccessFully Removed!")); + } else { + // couldn't delete the link to the organisation + $oPatternCustom->setHtml(getStatusPage("Deletion of Unit Organisation Link Failed!", "The Unit was deleted, but the link to the Organisation could not be deleted")); + } + } else { + // no organisation mapped + $oPatternCustom->setHtml(getStatusPage("Unit SuccessFully Removed!")); + } + } else { + $oPatternCustom->setHtml(getStatusPage("Deletion of Unit '" . $oUnit->getName() . "' Failed!")); + } + // ask for confirmation before deleting + } else { + $oOrganisation = Organisation::get($oUnitOrg->getOrgID()); + $oPatternCustom->setHtml(getConfirmDeletePage($oUnit, $oOrganisation)); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForDeleteConfirmed=1"); + } + } + } else { + // couldn't retrieve unit from db + $oPatternCustom->setHtml(getStatusPage("No Unit selected for deletion.")); + } + } else { + // no params received, error + $oPatternCustom->setHtml(getStatusPage("No Unit selected for deletion.")); } $main->setCentralPayload($oPatternCustom); $main->render(); } -?> +?> \ No newline at end of file diff --git a/presentation/lookAndFeel/knowledgeTree/administration/unitmanagement/removeUnitUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/unitmanagement/removeUnitUI.inc index fe85b23..1a9782c 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/unitmanagement/removeUnitUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/administration/unitmanagement/removeUnitUI.inc @@ -8,26 +8,20 @@ * @package presentation.lookAndFeel.knowledgeTree. * */ -// gets the delete stuff -function getDeletePage($iUnitID) { + +function getConfirmDeletePage($oUnit, $oOrg) { global $default; - $oUnit = null; - if (isset($iUnitID)) { - $oUnit = Unit::get($iUnitID); - $sHeading .= "Are you sure you wish to Remove this Unit?:\n"; - } else { - $sHeading .= "Please select a Unit: "; - } $sToRender .= renderHeading("Remove Unit"); $sToRender .= "\n"; - $sToRender .= "\n"; + $sToRender .= "\n"; $sToRender .= "\n"; - $sToRender .= "" . getUnitDisplay($oUnit) . "\n"; + $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; + $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; @@ -36,93 +30,25 @@ function getDeletePage($iUnitID) { $sToRender .= "\n"; $sToRender .= "
$sHeading
Are you sure you wish to Remove this Unit:
Unit Name: Unit Name: " . getUnitDisplay($oUnit) . "
Organisation Name: " . getOrgDisplay($oOrg) . "
\n"; - - return $sToRender; -} - -// get successfully deletion page -function getDeleteSuccessPage() { - - global $default; - - $sToRender .= renderHeading("Remove Unit"); - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "
Unit SuccessFully Removed!
rootUrl/control.php?action=listUnits\">graphicsUrl/widgets/back.gif\" border = \"0\" />
\n"; - return $sToRender; } -// get deletion failed page -function getDeleteFailPage() { +function getStatusPage($sHeading, $sText = "") { global $default; $sToRender .= renderHeading("Remove Unit"); $sToRender .= "\n"; $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; + $sToRender .= "\n"; $sToRender .= "\n"; + $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "
Deletion Failed!
Please Ensure that the unit has no groups belonging to it
$sHeading
$sText
rootUrl/control.php?action=listUnits\">graphicsUrl/widgets/back.gif\" border = \"0\" />
\n"; return $sToRender; } - -function getDeleteConfirmedPage($iUnitID,$iOrgID) { - global $default; - $oUnit = null; - if (isset($iUnitID)) { - $oUnit = Unit::get($iUnitID); - } - - if (isset($iOrgID)) { - $oOrg = Organisation::get($iOrgID); - } - - if($oOrg){ - $sOrgValue = getOrgDisplay($oOrg); - } else { - $sOrgValue = "* Not Assigned to an Organisation"; - } - - $sToRender .= renderHeading("Remove Unit"); - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= getDeleteButton($oUnit); - $sToRender .= "\n"; - $sToRender .= "
Are you sure you wish to Remove this Unit?:
Unit Name: " . getUnitDisplay($oUnit) . "
Organisation Name: " . $sOrgValue . "
\n"; - - return $sToRender; -} - - // show listbox...or the text name function getUnitDisplay($oUnit) { global $default; @@ -144,6 +70,8 @@ function getOrgDisplay($oOrg) { if (isset($oOrg)) { return "iId . "\">\n" . "" . $oOrg->getName() . ""; + } else { + return "* Not Assigned to an Organisation"; } }