diff --git a/presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupBL.php b/presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupBL.php index c1d758e..bbdf925 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupBL.php +++ b/presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupBL.php @@ -28,6 +28,7 @@ require_once("../../../../../config/dmsDefaults.php"); require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc"); require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCreate.inc"); +require_once("$default->fileSystemRoot/lib/groups/Group.inc"); require_once("$default->fileSystemRoot/lib/groups/GroupUnitLink.inc"); require_once("$default->fileSystemRoot/lib/security/Permission.inc"); require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); @@ -41,9 +42,28 @@ if (checkSession()) { require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage()); + if (isset($fGroupName) && isset($fUnitID)) { + // add new group + $oGroup = new Group($fGroupName); + if($oGroup->create()) { + // now set the group's unit + $default->log->info("set group (id=" . $oGroup->getID() . ") to unit id=$fUnitID"); + $oGroupUnit = new GroupUnitLink($oGroup->getID(), $fUnitID); + if ($oGroupUnit->create()) { + // redirect to list page + controllerRedirect("listGroups"); + } else { + $oPatternCustom->setHtml(statusPage("Add A New Group", "Addition Unsuccessful!", "There was an error associating the new group with the specified unit.", "addGroup")); + } + } else { + $oPatternCustom->setHtml(statusPage("Add A New Group", "Addition Unsuccessful!", "There was an error creating the new group (Check that a group with this name doesn't already exist).", "addGroup")); + } + } else { + // display form + $oPatternCustom->setHtml(getPage()); + } $main->setCentralPayload($oPatternCustom); - $main->setFormAction("$default->rootUrl/presentation/lookAndFeel/knowledgeTree/create.php?fRedirectURL=".urlencode("$default->rootUrl/control.php?action=editGroup&fFromCreate=1&fGroupID=")); + $main->setFormAction($_SERVER["PHP_SELF"]); $main->setHasRequiredFields(true); $main->render(); } diff --git a/presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupUI.inc index bc17e0e..b893bf4 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupUI.inc @@ -25,38 +25,46 @@ * @package administration.groupmanagement */ -// get add pages +/** + * Builds the group addition form + */ function getPage() { - global $default; - $aDisplayRowNames = array("Group Name:"); - $aParameterNumbers = array(0); - $aDisplayColumnTypes = array(1); - $aRequired = array(1); - - // create a text field that is required - $oPatternCreate = & new PatternCreate("Group", "groups/Group.inc", $aDisplayRowNames, $aParameterNumbers, $aDisplayColumnTypes, $aRequired); - $oPatternCreate->setUniqueName("group"); - - $sToRender .= renderHeading("Add Group"); - + $sToRender .= renderHeading("Add A New Group"); $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 .= "\n"; $sToRender .= "\n"; - $sToRender .= "
Add a New Group to the System
" . $oPatternCreate->render() . "
Group Name:
Unit" . getUnitListBox() . "
graphicsUrl/widgets/add.gif\" value=\"Submit\" border=\"0\"/>"; $sToRender .= getCancelButton("listGroups") . "
\n"; - + $sToRender .= "\n"; return $sToRender; - - - +} + +/** + * Builds the unit selection list box + */ +function getUnitListBox() { + global $default; + if (Permission::userIsSystemAdministrator()) { + // if this is the system administrator, show all the units + $oPatternListBox = & new PatternListBox($default->units_table, "name", "id", "fUnitID"); + } else if (Permission::userIsUnitAdministrator()) { + // else if this is a unit administrator, only display the units you're an administrator for + $oPatternListBox = & new PatternListBox($default->units_table, "name", "id", "fUnitID"); + $oPatternListBox->setWhereClause("ST.id in (" . implode(",", User::getUnitIDs($_SESSION["userID"])) . ")"); + } + + // javascript validation + $sToRender .= "\n\n\n\n"; + return $oPatternListBox->render() . $sToRender; } ?> \ No newline at end of file