diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php index 55ca7bb..00e5998 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php @@ -27,7 +27,50 @@ if (checkSession()) { if (isset($fFolderID)) { //if the user can edit the folder if (Permission::userHasFolderWritePermission($fFolderID)) { - if (isset($fCollaborationEdit)) { + 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 (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)); + $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(); + $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(); diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc index 39b7fa1..0297e03 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc @@ -16,11 +16,39 @@ function getFolderPath($iFolderID) { function getFolderData($iFolderID) { global $default; - $sQuery = "SELECT F.id, F.name AS folder_name, F.description, F.is_public " . + $sQuery = "SELECT F.id, F.name, F.description, F.is_public " . "FROM $default->owl_folders_table AS F " . "WHERE F.id = $iFolderID"; + + $sql = $default->db; + $sql->query($sQuery); + $sToRender = "\n"; + if ($sql->next_record()) { + $sToRender .= "\n"; + $sToRender .= "\n"; + if (Folder::folderIsUnitRootFolder($iFolderID)) { + $sToRender .= "\n"; + } else { + $sToRender .= "\n"; + } + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + + } + $sToRender .= "
Name" . $sql->f("name") . "f("name") . "\" size=\"30\">
Descriptionf("description") . "\" size=\"30\">
Publicf("is_public") ? "CHECKED" : "") ." >
\n"; + - $aDisplayColumns = array("folder_name", "description", "is_public"); + /*$aDisplayColumns = array("folder_name", "description", "is_public"); $aStoreColumns = array("name", "description" , "is_public"); $aColumnNames = array("Name", "Description", "Public"); $aDisplayColumnTypes = array(1,1,2); @@ -32,7 +60,9 @@ function getFolderData($iFolderID) { $oPatternEditableListFromQuery->setDropDownListTableNames($aDropDownListTableNames); $oPatternEditableListFromQuery->setColumnsRequired(array(1,0,1,0)); - return $oPatternEditableListFromQuery->render(); + return $oPatternEditableListFromQuery->render();*/ + + return $sToRender; } @@ -92,22 +122,7 @@ function getPage($iFolderID) { $sToRender .= getRightSide($iFolderID); $sToRender .= "\n"; $sToRender .= "\n"; - $sToRender .= "\n"; - /*$sToRender = "
" . getFolderPath($iFolderID) . "
\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "
" . wrapInTable(getFolderData($iFolderID)) . "" . wrapInTable(getFolderDocTypes($iFolderID)) . "
graphicsUrl/widgets/update.gif\" border=\"0\" />
" . wrapInTable(getFolderRouting($iFolderID)) . "
rootUrl/control.php?action=addFolderCollaboration&fFolderID=$iFolderID\">graphicsUrl/widgets/add.gif\" border=\"0\" />
\n";*/ + $sToRender .= "\n"; return $sToRender; } @@ -120,8 +135,8 @@ function getLeftSide($iFolderID) { $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "graphicsUrl/widgets/update.gif\" border=\"0\" />\n"; + $sToRender .= "\n"; + $sToRender .= "graphicsUrl/widgets/update.gif\" onClick=\"setActionAndSubmit('" . $_SERVER["PHP_SELF"] . "?fFolderID=$iFolderID&fForUpdate=1')\" border=\"0\" />\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n";