Commit 34497bce9358435f7134ab1d89e1d864b88de034

Authored by rob
1 parent 2ddd5f76

Completed. Can now create new folders on system


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@595 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php
... ... @@ -12,17 +12,88 @@
12 12 */
13 13  
14 14 require_once("../../../../config/dmsDefaults.php");
15   -if (checkSession()) {
16   - require_once("$default->owl_fs_root/lib/visualpatterns/PatternTableSqlQuery.inc");
17   - require_once("$default->owl_fs_root/lib/foldermanagement/Folder.inc");
18   - require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
19   - require_once("$default->owl_fs_root/presentation/Html.inc");
20   - require_once("addFolderUI.inc");
  15 +if (checkSession()) {
  16 + require_once("$default->owl_fs_root/lib/visualpatterns/PatternCustom.inc");
  17 +
  18 + $oPatternCustom = & new PatternCustom();
21 19  
22 20 if (isset($fFolderID)) {
23   - echo renderPage($fFolderID);
  21 + require_once("$default->owl_fs_root/lib/visualpatterns/PatternTableSqlQuery.inc");
  22 + require_once("$default->owl_fs_root/lib/foldermanagement/Folder.inc");
  23 + require_once("$default->owl_fs_root/lib/foldermanagement/PhysicalFolderManagement.inc");
  24 + require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
  25 + require_once("$default->owl_fs_root/presentation/Html.inc");
  26 + require_once("addFolderUI.inc");
  27 +
  28 + if (!isset($fFolderName)) {
  29 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  30 + //we're still browsing
  31 + if (Permission::userHasFolderWritePermission($fFolderID)) {
  32 + //if the user is allowed to add folders, then display the add button
  33 + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
  34 + } else {
  35 + //otherwise just let the user browse
  36 + $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
  37 + $main->setErrorMessage("You do not have permission to create new folders in this folder");
  38 + }
  39 + $main->setCentralPayload($oPatternCustom);
  40 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  41 + $main->render();
  42 + } else {
  43 + //have a folder name to store
  44 + if (Permission::userHasFolderWritePermission($fFolderID)) {
  45 + if (Folder::folderExistsName($fFolderName, $fFolderID)) {
  46 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  47 + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
  48 + $main->setCentralPayload($oPatternCustom);
  49 + $main->setErrorMessage("There is another folder named $fFolderName in this folder already");
  50 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  51 + $main->render();
  52 + } else {
  53 + $oParentFolder = Folder::get($fFolderID);
  54 + //create the folder in the db, giving it the properties of it's parent folder
  55 + $oFolder = &new Folder($fFolderName, "", $fFolderID, $_SESSION["userID"], $oParentFolder->getDocumentTypeID(), $oParentFolder->getUnitID());
  56 + if ($oFolder->create()) {
  57 + //create the folder on the file system
  58 + if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) {
  59 + redirect("$default->owl_root_url/control.php?action=browse&fBrowseType=folder&fFolderID=" . $oFolder->getID());
  60 + } else {
  61 + //if we couldn't do that, remove the folder from the db and report and error
  62 + $oFolder->delete();
  63 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  64 + $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
  65 + $main->setCentralPayload($oPatternCustom);
  66 + $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem");
  67 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  68 + $main->render();
  69 + }
  70 + } else {
  71 + //if we couldn't create the folder in the db, report an error
  72 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  73 + $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
  74 + $main->setCentralPayload($oPatternCustom);
  75 + $main->setErrorMessage("There was an error creating the folder $fFolderName in the database");
  76 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  77 + $main->render();
  78 + }
  79 + }
  80 + } else {
  81 + //if the user doesn't have write permission for this folder,
  82 + //give them only browse facilities
  83 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  84 + $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
  85 + $main->setCentralPayload($oPatternCustom);
  86 + $main->setErrorMessage("You do not have permission to create new folders in this folder");
  87 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  88 + $main->render();
  89 + }
  90 + }
24 91 } else {
25   - echo renderPage(14);
  92 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  93 + $oPatternCustom->setHtml("");
  94 + $main->setCentralPayload($oPatternCustom);
  95 + $main->setErrorMessage("No folder currently selected");
  96 + $main->render();
26 97 }
27 98 }
28 99  
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc
... ... @@ -30,7 +30,7 @@ function renderFolderList($fFolderID) {
30 30 return $oPatternTableSqlQuery->render();
31 31 }
32 32  
33   -function renderPage($fFolderID) {
  33 +function renderBrowseAddPage($fFolderID) {
34 34 $sToRender = "<table border=\"0\">\n";
35 35 $sToRender .= "<tr>\n";
36 36 $sToRender .= "\t<td>" . renderFolderPath($fFolderID) . "</td>\n";
... ... @@ -40,11 +40,33 @@ function renderPage($fFolderID) {
40 40 $sToRender .= "<tr>\n";
41 41 $sToRender .= "\t<td>" . renderFolderList($fFolderID) . "<td>\n";
42 42 $sToRender .= "</tr>\n";
  43 + $sToRender .= "</table><br>\n";
  44 + $sToRender .= "<table border=\"1\">\n";
  45 + $sToRender .= "<tr>\n";
  46 + $sToRender .= "<td colspan=\"2\"><b>New folder name:<b></td>\n";
  47 + $sToRender .= "</tr>\n";
  48 + $sToRender .= "<td><input type=\"text\" name=\"fFolderName\" value=\"\" /></td>\n";
  49 + $sToRender .= "<td><input type=\"submit\" value=\"Add\"></td>\n";
  50 + $sToRender .= "</tr>\n";
43 51 $sToRender .= "</table>\n";
44 52  
45 53 return $sToRender;
46 54 }
47 55  
  56 +function renderBrowsePage($fFolderID) {
  57 + $sToRender = "<table border=\"0\">\n";
  58 + $sToRender .= "<tr>\n";
  59 + $sToRender .= "\t<td>" . renderFolderPath($fFolderID) . "</td>\n";
  60 + $sToRender .= "</tr>\n";
  61 + $sToRender .= "</table>\n";
  62 + $sToRender .= "<table border=\"0\">\n";
  63 + $sToRender .= "<tr>\n";
  64 + $sToRender .= "\t<td>" . renderFolderList($fFolderID) . "<td>\n";
  65 + $sToRender .= "</tr>\n";
  66 + $sToRender .= "</table><br>\n";
  67 +
  68 + return $sToRender;
  69 +}
48 70  
49 71  
50 72 ?>
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc
... ... @@ -58,5 +58,27 @@ function displayFolderLink($oFolder, $sLinkPage = &quot;&quot;) {
58 58 $oFolder->getName());
59 59 }
60 60  
  61 +function renderFolderPath($fFolderID) {
  62 + $sFolderPath = displayFolderPathLink(Folder::getFolderPathAsArray($fFolderID, "$default->owl_ui_directory/foldermanagement/addFolderBL.php"));
  63 + return "<table border=1 width = 100%><tr><td>$sFolderPath</td></tr></table>\n";
  64 +}
  65 +
  66 +function renderFolderList($fFolderID) {
  67 + global $default;
  68 + $sQuery = "SELECT F.id AS id, F.name AS name " .
  69 + "FROM $default->owl_folders_table AS F " .
  70 + "WHERE F.parent_id = " . $fFolderID;
  71 +
  72 + $aColumns = array("name");
  73 + $aColumnTypes = array(3);
  74 + $aColumnHeaderNames = array("Folder");
  75 +
  76 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaderNames, "100%", "$default->owl_root_url/control.php?action=addFolder&fFolderID=", "id");
  77 + $oPatternTableSqlQuery->setImageURL("$default->owl_fs_root/graphics/widgets/dfolder.gif");
  78 + $oPatternTableSqlQuery->setEmptyTableMessage("This folder contains no sub folders");
  79 + return $oPatternTableSqlQuery->render();
  80 +}
  81 +
  82 +
61 83  
62 84 ?>
... ...