Commit 4018929d173e2b6d3f9aafcdfffcb6c981eedb3d
1 parent
81b55fa1
updated phpdoc
changed to use div switching added folder exists error handling git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2186 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
128 additions
and
102 deletions
presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php
| 1 | 1 | <?php |
| 2 | 2 | /** |
| 3 | -* Business logic used to edit folder properties | |
| 4 | -* | |
| 5 | -* Expected form variables: | |
| 6 | -* o $fFolderID - primary key of folder user is currently browsing | |
| 7 | -* | |
| 8 | -* @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa | |
| 9 | -* @date 2 February 2003 | |
| 10 | -* @package presentation.lookAndFeel.knowledgeTree.foldermanagement | |
| 11 | -* | |
| 12 | -*/ | |
| 3 | + * $Id$ | |
| 4 | + * | |
| 5 | + * Business logic used to edit folder properties | |
| 6 | + * | |
| 7 | + * Expected form variables: | |
| 8 | + * o $fFolderID - primary key of folder user is currently browsing | |
| 9 | + * | |
| 10 | + * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING. | |
| 11 | + * | |
| 12 | + * @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa | |
| 13 | + * @date 2 February 2003 | |
| 14 | + * @package presentation.lookAndFeel.knowledgeTree.foldermanagement | |
| 15 | + */ | |
| 13 | 16 | |
| 14 | 17 | require_once("../../../../config/dmsDefaults.php"); |
| 15 | 18 | |
| ... | ... | @@ -25,101 +28,121 @@ if (checkSession()) { |
| 25 | 28 | require_once("$default->fileSystemRoot/presentation/Html.inc"); |
| 26 | 29 | |
| 27 | 30 | if (isset($fFolderID)) { |
| 28 | - //if the user can edit the folder | |
| 29 | - if (Permission::userHasFolderWritePermission($fFolderID)) { | |
| 30 | - if (isset($fForUpdate)) { | |
| 31 | - //user is updating folder data | |
| 32 | - $oFolder = Folder::get($fFolderID); | |
| 33 | - $oFolder->setDescription($fDescription); | |
| 34 | - if (isset($fIsPublic)) { | |
| 35 | - $oFolder->setIsPublic(true); | |
| 36 | - } else { | |
| 37 | - $oFolder->setIsPublic(false); | |
| 38 | - } | |
| 39 | - $bSuccessfulUpdate = false; | |
| 40 | - if (isset($fFolderName) && strcmp($oFolder->getName(), $fFolderName) != 0) { | |
| 41 | - //folder name has changed, update the full_path | |
| 42 | - $sOldName = $oFolder->getName(); | |
| 43 | - $sOldPath = $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName(); | |
| 44 | - $oFolder->setName($fFolderName); | |
| 45 | - if ($oFolder->update(true)) { | |
| 46 | - $bSuccessfulUpdate = true; | |
| 47 | - if (!PhysicalFolderManagement::renameFolder($sOldPath, $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName())) { | |
| 48 | - //reverse the database changes if the physical rename failed | |
| 49 | - $oFolder->setName($sOldName); | |
| 50 | - $oFolder->update(true); | |
| 51 | - $bSuccessfulUpdate = false; | |
| 52 | - } | |
| 31 | + $oFolder = Folder::get($fFolderID); | |
| 32 | + if ($oFolder) { | |
| 33 | + //if the user can edit the folder | |
| 34 | + if (Permission::userHasFolderWritePermission($fFolderID)) { | |
| 35 | + if (isset($fForUpdate)) { | |
| 36 | + //user is updating folder data | |
| 37 | + $oFolder = Folder::get($fFolderID); | |
| 38 | + $oFolder->setDescription($fDescription); | |
| 39 | + if (isset($fIsPublic)) { | |
| 40 | + $oFolder->setIsPublic(true); | |
| 41 | + } else { | |
| 42 | + $oFolder->setIsPublic(false); | |
| 53 | 43 | } |
| 54 | - } else { | |
| 55 | - $bSuccessfulUpdate = $oFolder->update(); | |
| 56 | - } | |
| 57 | - if ($bSuccessfulUpdate) { | |
| 58 | - $oPatternCustom = & new PatternCustom(); | |
| 59 | - $oPatternCustom->setHtml(getPage($fFolderID)); | |
| 60 | - $main->setCentralPayload($oPatternCustom); | |
| 61 | - $main->setHasRequiredFields(true); | |
| 62 | - $main->setErrorMessage("Folder successfully updated"); | |
| 63 | - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 64 | - $main->render(); | |
| 65 | - } else { | |
| 66 | - $oPatternCustom = & new PatternCustom(); | |
| 67 | - $oPatternCustom->setHtml(getPage($fFolderID)); | |
| 68 | - $main->setErrorMessage("An error occured while updating this folder"); | |
| 69 | - $main->setCentralPayload($oPatternCustom); | |
| 70 | - $main->setHasRequiredFields(true); | |
| 71 | - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 72 | - $main->render(); | |
| 73 | - } | |
| 74 | - } else if (isset($fCollaborationEdit)) { | |
| 75 | - //user attempted to edit the folder collaboration process but could not because there is | |
| 76 | - //a document currently in this process | |
| 77 | - $oPatternCustom = & new PatternCustom(); | |
| 78 | - $oPatternCustom->setHtml(getPage($fFolderID, true)); | |
| 79 | - $main->setErrorMessage("You cannot edit this folder collaboration process as a document is currently undergoing this collaboration process"); | |
| 80 | - $main->setCentralPayload($oPatternCustom); | |
| 81 | - $main->setHasRequiredFields(true); | |
| 82 | - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 83 | - $main->render(); | |
| 84 | - } else if (isset($fCollaborationDelete)) { | |
| 85 | - //user attempted to delete the folder collaboration process but could not because there is | |
| 86 | - //a document currently in this process | |
| 87 | - $oPatternCustom = & new PatternCustom(); | |
| 88 | - $oPatternCustom->setHtml(getPage($fFolderID, true)); | |
| 89 | - $main->setErrorMessage("You cannot delete this folder collaboration process as a document is currently undergoing this collaboration process"); | |
| 90 | - $main->setCentralPayload($oPatternCustom); | |
| 91 | - $main->setHasRequiredFields(true); | |
| 92 | - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 93 | - $main->render(); | |
| 94 | - } else { | |
| 95 | - $oPatternCustom = & new PatternCustom(); | |
| 96 | - // does this folder have a document in it that has started collaboration? | |
| 97 | - $bCollaboration = Folder::hasDocumentInCollaboration($fFolderID); | |
| 98 | - | |
| 99 | - $oPatternCustom->setHtml(getPage($fFolderID, $bCollaboration)); | |
| 100 | - $main->setCentralPayload($oPatternCustom); | |
| 101 | - $main->setHasRequiredFields(true); | |
| 102 | - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 103 | - $main->render(); | |
| 104 | - } | |
| 105 | - } else { | |
| 106 | - //user does not have write permission for this folder, | |
| 107 | - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | |
| 108 | - $oPatternCustom = & new PatternCustom(); | |
| 109 | - $oPatternCustom->setHtml(""); | |
| 110 | - $main->setCentralPayload($oPatternCustom); | |
| 111 | - $main->setErrorMessage("You do not have permission to edit this folder"); | |
| 112 | - $main->render(); | |
| 113 | - } | |
| 44 | + $bSuccessfulUpdate = false; | |
| 45 | + if (isset($fFolderName) && strcmp($oFolder->getName(), $fFolderName) != 0) { | |
| 46 | + //folder name has changed, update the full_path | |
| 47 | + $sOldName = $oFolder->getName(); | |
| 48 | + $sOldPath = $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName(); | |
| 49 | + $oFolder->setName($fFolderName); | |
| 50 | + if ($oFolder->update(true)) { | |
| 51 | + $bSuccessfulUpdate = true; | |
| 52 | + if (!PhysicalFolderManagement::renameFolder($sOldPath, $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName())) { | |
| 53 | + //reverse the database changes if the physical rename failed | |
| 54 | + $oFolder->setName($sOldName); | |
| 55 | + $oFolder->update(true); | |
| 56 | + $bSuccessfulUpdate = false; | |
| 57 | + } | |
| 58 | + } | |
| 59 | + } else { | |
| 60 | + $bSuccessfulUpdate = $oFolder->update(); | |
| 61 | + } | |
| 62 | + if ($bSuccessfulUpdate) { | |
| 63 | + $oPatternCustom = & new PatternCustom(); | |
| 64 | + $oPatternCustom->setHtml(getPage($fFolderID, "Folder successfully updated")); | |
| 65 | + $main->setDHTMLScrolling(false); | |
| 66 | + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); | |
| 67 | + | |
| 68 | + $main->setCentralPayload($oPatternCustom); | |
| 69 | + $main->setHasRequiredFields(true); | |
| 70 | + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 71 | + $main->render(); | |
| 72 | + } else { | |
| 73 | + $oPatternCustom = & new PatternCustom(); | |
| 74 | + $main->setDHTMLScrolling(false); | |
| 75 | + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); | |
| 76 | + | |
| 77 | + $oPatternCustom->setHtml(getPage($fFolderID, "An error occured while updating this folder")); | |
| 78 | + $main->setCentralPayload($oPatternCustom); | |
| 79 | + $main->setHasRequiredFields(true); | |
| 80 | + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 81 | + $main->render(); | |
| 82 | + } | |
| 83 | + } else if (isset($fCollaborationEdit)) { | |
| 84 | + //user attempted to edit the folder collaboration process but could not because there is | |
| 85 | + //a document currently in this process | |
| 86 | + $oPatternCustom = & new PatternCustom(); | |
| 87 | + $main->setDHTMLScrolling(false); | |
| 88 | + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); | |
| 89 | + | |
| 90 | + $oPatternCustom->setHtml(getPage($fFolderID, "You cannot edit this folder collaboration process as a document is currently undergoing this collaboration process", true)); | |
| 91 | + $main->setCentralPayload($oPatternCustom); | |
| 92 | + $main->setHasRequiredFields(true); | |
| 93 | + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 94 | + $main->render(); | |
| 95 | + } else if (isset($fCollaborationDelete)) { | |
| 96 | + //user attempted to delete the folder collaboration process but could not because there is | |
| 97 | + //a document currently in this process | |
| 98 | + $oPatternCustom = & new PatternCustom(); | |
| 99 | + $main->setDHTMLScrolling(false); | |
| 100 | + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); | |
| 101 | + | |
| 102 | + $oPatternCustom->setHtml(getPage($fFolderID, "You cannot delete this folder collaboration process as a document is currently undergoing this collaboration process", true)); | |
| 103 | + $main->setCentralPayload($oPatternCustom); | |
| 104 | + $main->setHasRequiredFields(true); | |
| 105 | + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 106 | + $main->render(); | |
| 107 | + } else { | |
| 108 | + $oPatternCustom = & new PatternCustom(); | |
| 109 | + // does this folder have a document in it that has started collaboration? | |
| 110 | + $bCollaboration = Folder::hasDocumentInCollaboration($fFolderID); | |
| 111 | + $main->setDHTMLScrolling(false); | |
| 112 | + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); | |
| 113 | + | |
| 114 | + $oPatternCustom->setHtml(getPage($fFolderID, $bCollaboration)); | |
| 115 | + $main->setCentralPayload($oPatternCustom); | |
| 116 | + $main->setHasRequiredFields(true); | |
| 117 | + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 118 | + $main->render(); | |
| 119 | + } | |
| 120 | + } else { | |
| 121 | + //user does not have write permission for this folder, | |
| 122 | + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | |
| 123 | + $oPatternCustom = & new PatternCustom(); | |
| 124 | + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\" /></a>\n"); | |
| 125 | + $main->setCentralPayload($oPatternCustom); | |
| 126 | + $main->setErrorMessage("You do not have permission to edit this folder"); | |
| 127 | + $main->render(); | |
| 128 | + } | |
| 129 | + } else { | |
| 130 | + // folder doesn't exist | |
| 131 | + $oPatternCustom = & new PatternCustom(); | |
| 132 | + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\" /></a>\n"); | |
| 133 | + $main->setCentralPayload($oPatternCustom); | |
| 134 | + $main->setErrorMessage("The folder you're trying to modify does not exist in the DMS"); | |
| 135 | + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); | |
| 136 | + $main->render(); | |
| 137 | + } | |
| 114 | 138 | } else { |
| 115 | 139 | //else display an error message |
| 116 | 140 | $oPatternCustom = & new PatternCustom(); |
| 117 | - $oPatternCustom->setHtml(""); | |
| 141 | + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\" /></a>\n"); | |
| 118 | 142 | $main->setCentralPayload($oPatternCustom); |
| 119 | 143 | $main->setErrorMessage("No folder currently selected"); |
| 120 | 144 | $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); |
| 121 | 145 | $main->render(); |
| 122 | 146 | } |
| 123 | 147 | } |
| 124 | - | |
| 125 | -?> | |
| 148 | +?> | |
| 126 | 149 | \ No newline at end of file | ... | ... |
presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc
| ... | ... | @@ -19,7 +19,7 @@ function getFolderPath($iFolderID) { |
| 19 | 19 | return "<table border=\"0\" width=\"610\"><tr><td bgcolor=\"$sTDBGColour\">" . displayFolderPathLink(Folder::getFolderPathAsArray($iFolderID), Folder::getFolderPathNamesAsArray($iFolderID), "$default->rootUrl/control.php?action=browse") . "</td></tr></table>\n"; |
| 20 | 20 | } |
| 21 | 21 | |
| 22 | -function getFolderData($iFolderID, $sDivName) { | |
| 22 | +function getFolderData($iFolderID, $sDivName, $sStatusMessage = "") { | |
| 23 | 23 | global $default; |
| 24 | 24 | $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"]))); |
| 25 | 25 | $sTDBGColour = $default->siteMap->getSectionColour($sSectionName, "td"); |
| ... | ... | @@ -29,7 +29,10 @@ function getFolderData($iFolderID, $sDivName) { |
| 29 | 29 | |
| 30 | 30 | $sql = $default->db; |
| 31 | 31 | $sql->query($sQuery); |
| 32 | - $sToRender = "<table>\n"; | |
| 32 | + if ($sStatusMessage) { | |
| 33 | + $sToRender .= "<font color=\"red\">$sStatusMessage</font>"; | |
| 34 | + } | |
| 35 | + $sToRender .= "<table>\n"; | |
| 33 | 36 | $sToRender .= "<caption><strong>Folder Data</strong></caption>"; |
| 34 | 37 | if ($sql->next_record()) { |
| 35 | 38 | $sToRender .= "<tr>\n"; |
| ... | ... | @@ -158,7 +161,7 @@ function renderFolderSection($sHeading) { |
| 158 | 161 | return "<tr bgcolor=\"" . getColour($iColour) . "\"><td width=\"100%\">$sHeading</td></tr>\n"; |
| 159 | 162 | } |
| 160 | 163 | |
| 161 | -function getPage($iFolderID, $bCollaboration = false) { | |
| 164 | +function getPage($iFolderID, $sStatusMessage = "", $bCollaboration = false) { | |
| 162 | 165 | global $default; |
| 163 | 166 | |
| 164 | 167 | if ( $default->browser == "ie" ) { |
| ... | ... | @@ -177,7 +180,7 @@ function getPage($iFolderID, $bCollaboration = false) { |
| 177 | 180 | $sToRender .= "</table>"; |
| 178 | 181 | $sToRender .= "</div>"; |
| 179 | 182 | |
| 180 | - $sToRender .= getFolderData($iFolderID, "folderData"); | |
| 183 | + $sToRender .= getFolderData($iFolderID, "folderData", $sStatusMessage); | |
| 181 | 184 | $sToRender .= getFolderRouting($iFolderID, "folderRouting", $bCollaboration); |
| 182 | 185 | $sToRender .= getFolderDocTypes($iFolderID, "documentTypes"); |
| 183 | 186 | $sToRender .= getFolderGroupAccess($iFolderID, "folderPermissions"); | ... | ... |