From eb81f66f516f032af326348390209b247bac0dcf Mon Sep 17 00:00:00 2001 From: Neil Blakey-Milner Date: Wed, 5 Jan 2005 11:50:25 +0000 Subject: [PATCH] Allow the user to choose multiple document types when creating a folder. --- presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php | 25 ++++++++++++++++++++++--- presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc | 23 ++++++++++++++++++----- 2 files changed, 40 insertions(+), 8 deletions(-) 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 .= "\n"; $sToRender .= "" . _("Document Type") . ": \n"; - $sToRender .= "" . getDocumentTypeDropDown() . "\n"; + $sToRender .= "" . getDocumentTypeDropDown($iFolderID) . "\n"; $sToRender .= "\n"; $sToRender .= "
rootUrl/control.php?action=browse&fFolderID=$iFolderID\">
 \n"; $sToRender .= "\n"; @@ -75,11 +75,24 @@ function getRightSide($iFolderID) { return $sToRender; } -function getDocumentTypeDropDown() { +function getDocumentTypeDropDown($iFolderID) { global $default; - $oPatternListBox = & new PatternListBox("$default->document_types_table", "name", "id", "fDocumentTypeID"); - $oPatternListBox->setIncludeDefaultValue(false); - return $oPatternListBox->render(); +// $oPatternListBox = & new PatternListBox("$default->document_types_table", "name", "id", "fDocumentTypeID"); +// $oPatternListBox->setIncludeDefaultValue(false); +// return $oPatternListBox->render(); + require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentType.inc"); + $aDocumentTypes = DocumentType::getList(); + $ret = ""; + $ret .= sprintf("\n"; + return $ret; } function renderBrowsePage($iFolderID) { -- libgit2 0.21.4