Commit 5ff69c492f2096eda4176ccd7f37bfd4e7de420a

Authored by Michael Joseph
1 parent e04c496c

Added the ability to specify the unit when creating a group.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2921 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupBL.php
... ... @@ -28,6 +28,7 @@
28 28 require_once("../../../../../config/dmsDefaults.php");
29 29 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
30 30 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCreate.inc");
  31 +require_once("$default->fileSystemRoot/lib/groups/Group.inc");
31 32 require_once("$default->fileSystemRoot/lib/groups/GroupUnitLink.inc");
32 33 require_once("$default->fileSystemRoot/lib/security/Permission.inc");
33 34 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
... ... @@ -41,9 +42,28 @@ if (checkSession()) {
41 42  
42 43 require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
43 44 $oPatternCustom = & new PatternCustom();
44   - $oPatternCustom->setHtml(getPage());
  45 + if (isset($fGroupName) && isset($fUnitID)) {
  46 + // add new group
  47 + $oGroup = new Group($fGroupName);
  48 + if($oGroup->create()) {
  49 + // now set the group's unit
  50 + $default->log->info("set group (id=" . $oGroup->getID() . ") to unit id=$fUnitID");
  51 + $oGroupUnit = new GroupUnitLink($oGroup->getID(), $fUnitID);
  52 + if ($oGroupUnit->create()) {
  53 + // redirect to list page
  54 + controllerRedirect("listGroups");
  55 + } else {
  56 + $oPatternCustom->setHtml(statusPage("Add A New Group", "Addition Unsuccessful!", "There was an error associating the new group with the specified unit.", "addGroup"));
  57 + }
  58 + } else {
  59 + $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"));
  60 + }
  61 + } else {
  62 + // display form
  63 + $oPatternCustom->setHtml(getPage());
  64 + }
45 65 $main->setCentralPayload($oPatternCustom);
46   - $main->setFormAction("$default->rootUrl/presentation/lookAndFeel/knowledgeTree/create.php?fRedirectURL=".urlencode("$default->rootUrl/control.php?action=editGroup&fFromCreate=1&fGroupID="));
  66 + $main->setFormAction($_SERVER["PHP_SELF"]);
47 67 $main->setHasRequiredFields(true);
48 68 $main->render();
49 69 }
... ...
presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/addGroupUI.inc
... ... @@ -25,38 +25,46 @@
25 25 * @package administration.groupmanagement
26 26 */
27 27  
28   -// get add pages
  28 +/**
  29 + * Builds the group addition form
  30 + */
29 31 function getPage() {
30   -
31 32 global $default;
32   - $aDisplayRowNames = array("Group Name:");
33   - $aParameterNumbers = array(0);
34   - $aDisplayColumnTypes = array(1);
35   - $aRequired = array(1);
36   -
37   - // create a text field that is required
38   - $oPatternCreate = & new PatternCreate("Group", "groups/Group.inc", $aDisplayRowNames, $aParameterNumbers, $aDisplayColumnTypes, $aRequired);
39   - $oPatternCreate->setUniqueName("group");
40   -
41   - $sToRender .= renderHeading("Add Group");
42   -
  33 + $sToRender .= renderHeading("Add A New Group");
43 34 $sToRender .= "<table>\n";
44   - $sToRender .= "<tr><td>Add a New Group to the System</td></tr>\n";
45   - $sToRender .= "<tr></tr>\n";
46   - $sToRender .= "<tr>\n";
47   - $sToRender .= "<td>" . $oPatternCreate->render() . "</td>\n";
48   - $sToRender .= "</tr>\n";
49   - $sToRender .= "<tr>\n";
50   - $sToRender .= "</tr>\n";
51 35 $sToRender .= "<tr>\n";
  36 + $sToRender .= "<td>Group Name:</td>\n";
  37 + $sToRender .= "<td><input size = \"40\" type=\"text\" name=\"fGroupName\" \"> </td>\n";
52 38 $sToRender .= "</tr>\n";
  39 + $sToRender .= "<tr/>\n";
  40 + $sToRender .= "<tr><td><b>Unit</b></td><td>" . getUnitListBox() . "</td></tr>\n";
53 41 $sToRender .= "<td align=\"right\"><input type=\"image\" src=\"$default->graphicsUrl/widgets/add.gif\" value=\"Submit\" border=\"0\"/>";
54 42 $sToRender .= getCancelButton("listGroups") . "</td>\n";
55   - $sToRender .= "</table>\n";
56   -
  43 + $sToRender .= "</table>\n";
57 44 return $sToRender;
58   -
59   -
60   -
  45 +}
  46 +
  47 +/**
  48 + * Builds the unit selection list box
  49 + */
  50 +function getUnitListBox() {
  51 + global $default;
  52 + if (Permission::userIsSystemAdministrator()) {
  53 + // if this is the system administrator, show all the units
  54 + $oPatternListBox = & new PatternListBox($default->units_table, "name", "id", "fUnitID");
  55 + } else if (Permission::userIsUnitAdministrator()) {
  56 + // else if this is a unit administrator, only display the units you're an administrator for
  57 + $oPatternListBox = & new PatternListBox($default->units_table, "name", "id", "fUnitID");
  58 + $oPatternListBox->setWhereClause("ST.id in (" . implode(",", User::getUnitIDs($_SESSION["userID"])) . ")");
  59 + }
  60 +
  61 + // javascript validation
  62 + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";
  63 + $sToRender .= "function validateForm(theForm) {\n";
  64 + $sToRender .= "\tif (!(validRequired(theForm.fUnitID, 'Initial Unit'))) {\n";
  65 + $sToRender .= "\t\treturn false;\n\t}\n";
  66 + $sToRender .= "return true;\n}\n";
  67 + $sToRender .= "//-->\n</script>\n\n";
  68 + return $oPatternListBox->render() . $sToRender;
61 69 }
62 70 ?>
63 71 \ No newline at end of file
... ...