Commit 34497bce9358435f7134ab1d89e1d864b88de034
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
Showing
3 changed files
with
124 additions
and
9 deletions
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 = "") { |
| 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 | ?> | ... | ... |