diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php index 7e50dca..29f5484 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php @@ -1,15 +1,18 @@ fileSystemRoot/presentation/Html.inc"); if (isset($fFolderID)) { - //if the user can edit the folder - if (Permission::userHasFolderWritePermission($fFolderID)) { - if (isset($fForUpdate)) { - //user is updating folder data - $oFolder = Folder::get($fFolderID); - $oFolder->setDescription($fDescription); - if (isset($fIsPublic)) { - $oFolder->setIsPublic(true); - } else { - $oFolder->setIsPublic(false); - } - $bSuccessfulUpdate = false; - if (isset($fFolderName) && strcmp($oFolder->getName(), $fFolderName) != 0) { - //folder name has changed, update the full_path - $sOldName = $oFolder->getName(); - $sOldPath = $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName(); - $oFolder->setName($fFolderName); - if ($oFolder->update(true)) { - $bSuccessfulUpdate = true; - if (!PhysicalFolderManagement::renameFolder($sOldPath, $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName())) { - //reverse the database changes if the physical rename failed - $oFolder->setName($sOldName); - $oFolder->update(true); - $bSuccessfulUpdate = false; - } + $oFolder = Folder::get($fFolderID); + if ($oFolder) { + //if the user can edit the folder + if (Permission::userHasFolderWritePermission($fFolderID)) { + if (isset($fForUpdate)) { + //user is updating folder data + $oFolder = Folder::get($fFolderID); + $oFolder->setDescription($fDescription); + if (isset($fIsPublic)) { + $oFolder->setIsPublic(true); + } else { + $oFolder->setIsPublic(false); } - } else { - $bSuccessfulUpdate = $oFolder->update(); - } - if ($bSuccessfulUpdate) { - $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fFolderID)); - $main->setCentralPayload($oPatternCustom); - $main->setHasRequiredFields(true); - $main->setErrorMessage("Folder successfully updated"); - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); - $main->render(); - } else { - $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fFolderID)); - $main->setErrorMessage("An error occured while updating this folder"); - $main->setCentralPayload($oPatternCustom); - $main->setHasRequiredFields(true); - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); - $main->render(); - } - } else if (isset($fCollaborationEdit)) { - //user attempted to edit the folder collaboration process but could not because there is - //a document currently in this process - $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fFolderID, true)); - $main->setErrorMessage("You cannot edit this folder collaboration process as a document is currently undergoing this collaboration process"); - $main->setCentralPayload($oPatternCustom); - $main->setHasRequiredFields(true); - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); - $main->render(); - } else if (isset($fCollaborationDelete)) { - //user attempted to delete the folder collaboration process but could not because there is - //a document currently in this process - $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fFolderID, true)); - $main->setErrorMessage("You cannot delete this folder collaboration process as a document is currently undergoing this collaboration process"); - $main->setCentralPayload($oPatternCustom); - $main->setHasRequiredFields(true); - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); - $main->render(); - } else { - $oPatternCustom = & new PatternCustom(); - // does this folder have a document in it that has started collaboration? - $bCollaboration = Folder::hasDocumentInCollaboration($fFolderID); - - $oPatternCustom->setHtml(getPage($fFolderID, $bCollaboration)); - $main->setCentralPayload($oPatternCustom); - $main->setHasRequiredFields(true); - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); - $main->render(); - } - } else { - //user does not have write permission for this folder, - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); - $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(""); - $main->setCentralPayload($oPatternCustom); - $main->setErrorMessage("You do not have permission to edit this folder"); - $main->render(); - } + $bSuccessfulUpdate = false; + if (isset($fFolderName) && strcmp($oFolder->getName(), $fFolderName) != 0) { + //folder name has changed, update the full_path + $sOldName = $oFolder->getName(); + $sOldPath = $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName(); + $oFolder->setName($fFolderName); + if ($oFolder->update(true)) { + $bSuccessfulUpdate = true; + if (!PhysicalFolderManagement::renameFolder($sOldPath, $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName())) { + //reverse the database changes if the physical rename failed + $oFolder->setName($sOldName); + $oFolder->update(true); + $bSuccessfulUpdate = false; + } + } + } else { + $bSuccessfulUpdate = $oFolder->update(); + } + if ($bSuccessfulUpdate) { + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml(getPage($fFolderID, "Folder successfully updated")); + $main->setDHTMLScrolling(false); + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); + + $main->setCentralPayload($oPatternCustom); + $main->setHasRequiredFields(true); + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); + $main->render(); + } else { + $oPatternCustom = & new PatternCustom(); + $main->setDHTMLScrolling(false); + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); + + $oPatternCustom->setHtml(getPage($fFolderID, "An error occured while updating this folder")); + $main->setCentralPayload($oPatternCustom); + $main->setHasRequiredFields(true); + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); + $main->render(); + } + } else if (isset($fCollaborationEdit)) { + //user attempted to edit the folder collaboration process but could not because there is + //a document currently in this process + $oPatternCustom = & new PatternCustom(); + $main->setDHTMLScrolling(false); + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); + + $oPatternCustom->setHtml(getPage($fFolderID, "You cannot edit this folder collaboration process as a document is currently undergoing this collaboration process", true)); + $main->setCentralPayload($oPatternCustom); + $main->setHasRequiredFields(true); + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); + $main->render(); + } else if (isset($fCollaborationDelete)) { + //user attempted to delete the folder collaboration process but could not because there is + //a document currently in this process + $oPatternCustom = & new PatternCustom(); + $main->setDHTMLScrolling(false); + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); + + $oPatternCustom->setHtml(getPage($fFolderID, "You cannot delete this folder collaboration process as a document is currently undergoing this collaboration process", true)); + $main->setCentralPayload($oPatternCustom); + $main->setHasRequiredFields(true); + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); + $main->render(); + } else { + $oPatternCustom = & new PatternCustom(); + // does this folder have a document in it that has started collaboration? + $bCollaboration = Folder::hasDocumentInCollaboration($fFolderID); + $main->setDHTMLScrolling(false); + $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')"); + + $oPatternCustom->setHtml(getPage($fFolderID, $bCollaboration)); + $main->setCentralPayload($oPatternCustom); + $main->setHasRequiredFields(true); + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); + $main->render(); + } + } else { + //user does not have write permission for this folder, + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml("graphicsUrl/widgets/back.gif\" border=\"0\" />\n"); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("You do not have permission to edit this folder"); + $main->render(); + } + } else { + // folder doesn't exist + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml("graphicsUrl/widgets/back.gif\" border=\"0\" />\n"); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("The folder you're trying to modify does not exist in the DMS"); + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); + $main->render(); + } } else { //else display an error message $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(""); + $oPatternCustom->setHtml("graphicsUrl/widgets/back.gif\" border=\"0\" />\n"); $main->setCentralPayload($oPatternCustom); $main->setErrorMessage("No folder currently selected"); $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID")); $main->render(); } } - -?> +?> \ No newline at end of file diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc index f611441..e8980e0 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc @@ -19,7 +19,7 @@ function getFolderPath($iFolderID) { return "
" . displayFolderPathLink(Folder::getFolderPathAsArray($iFolderID), Folder::getFolderPathNamesAsArray($iFolderID), "$default->rootUrl/control.php?action=browse") . "
\n"; } -function getFolderData($iFolderID, $sDivName) { +function getFolderData($iFolderID, $sDivName, $sStatusMessage = "") { global $default; $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"]))); $sTDBGColour = $default->siteMap->getSectionColour($sSectionName, "td"); @@ -29,7 +29,10 @@ function getFolderData($iFolderID, $sDivName) { $sql = $default->db; $sql->query($sQuery); - $sToRender = "\n"; + if ($sStatusMessage) { + $sToRender .= "$sStatusMessage"; + } + $sToRender .= "
\n"; $sToRender .= ""; if ($sql->next_record()) { $sToRender .= "\n"; @@ -158,7 +161,7 @@ function renderFolderSection($sHeading) { return "\n"; } -function getPage($iFolderID, $bCollaboration = false) { +function getPage($iFolderID, $sStatusMessage = "", $bCollaboration = false) { global $default; if ( $default->browser == "ie" ) { @@ -177,7 +180,7 @@ function getPage($iFolderID, $bCollaboration = false) { $sToRender .= "
Folder Data
$sHeading
"; $sToRender .= ""; - $sToRender .= getFolderData($iFolderID, "folderData"); + $sToRender .= getFolderData($iFolderID, "folderData", $sStatusMessage); $sToRender .= getFolderRouting($iFolderID, "folderRouting", $bCollaboration); $sToRender .= getFolderDocTypes($iFolderID, "documentTypes"); $sToRender .= getFolderGroupAccess($iFolderID, "folderPermissions");