diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php index 9d2b175..3cc07fc 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php @@ -149,9 +149,25 @@ if (!$oFolder->create()) { exit(0); } +if (!is_array($fDocumentTypeID)) { + $fDocumentTypeID = array($fDocumentTypeID); +} + +$aFolderDocTypeLinks = array(); +$bFailed = false; +foreach ($fDocumentTypeID as $iDocumentTypeID) { + $oFolderDocTypeLink = & new FolderDocTypeLink($oFolder->getID(), $iDocumentTypeID); + if (!$oFolderDocTypeLink->create()) { + $bFailed = true; + break; + } + $aFolderDocTypeLinks[] =& $oFolderDocTypeLink; +} -$oFolderDocTypeLink = & new FolderDocTypeLink($oFolder->getID(), $fDocumentTypeID); -if (!$oFolderDocTypeLink->create()) { +if ($bFailed) { + foreach ($aFolderDocTypeLinks as $oFolderDocTypeLink) { + $oFolderDocTypeLink->delete(); + } //couldn't associate the chosen document type with this folder $default->log->error("addFolderBL.php DB error storing folder-document type link for folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' folderID=$fFolderID; docTypeID=$fDocumentTypeID"); @@ -173,7 +189,10 @@ if (!PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getI $default->log->error("addFolderBL.php Filesystem error attempting to store folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' id=$fFolderID"); // remove the folder and its doc type link from the db and report and error - $oFolderDocTypeLink->delete(); + foreach ($aFolderDocTypeLinks as $oFolderDocTypeLink) { + $oFolderDocTypeLink->delete(); + } + //couldn't associate the chosen document type with this folder $oFolder->delete(); require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc index f4d9cd3..427c8b0 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc @@ -55,7 +55,7 @@ function getRightSide($iFolderID) { $sToRender .= "\n"; $sToRender .= "
| rootUrl/control.php?action=browse&fFolderID=$iFolderID\"> |