From 34497bce9358435f7134ab1d89e1d864b88de034 Mon Sep 17 00:00:00 2001 From: rob Date: Mon, 27 Jan 2003 15:43:18 +0000 Subject: [PATCH] Completed. Can now create new folders on system --- presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc | 24 +++++++++++++++++++++++- presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc | 22 ++++++++++++++++++++++ 3 files changed, 124 insertions(+), 9 deletions(-) diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php index 242ee1a..dd315b7 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php @@ -12,17 +12,88 @@ */ require_once("../../../../config/dmsDefaults.php"); -if (checkSession()) { - require_once("$default->owl_fs_root/lib/visualpatterns/PatternTableSqlQuery.inc"); - require_once("$default->owl_fs_root/lib/foldermanagement/Folder.inc"); - require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc"); - require_once("$default->owl_fs_root/presentation/Html.inc"); - require_once("addFolderUI.inc"); +if (checkSession()) { + require_once("$default->owl_fs_root/lib/visualpatterns/PatternCustom.inc"); + + $oPatternCustom = & new PatternCustom(); if (isset($fFolderID)) { - echo renderPage($fFolderID); + require_once("$default->owl_fs_root/lib/visualpatterns/PatternTableSqlQuery.inc"); + require_once("$default->owl_fs_root/lib/foldermanagement/Folder.inc"); + require_once("$default->owl_fs_root/lib/foldermanagement/PhysicalFolderManagement.inc"); + require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc"); + require_once("$default->owl_fs_root/presentation/Html.inc"); + require_once("addFolderUI.inc"); + + if (!isset($fFolderName)) { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + //we're still browsing + if (Permission::userHasFolderWritePermission($fFolderID)) { + //if the user is allowed to add folders, then display the add button + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID)); + } else { + //otherwise just let the user browse + $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); + $main->setErrorMessage("You do not have permission to create new folders in this folder"); + } + $main->setCentralPayload($oPatternCustom); + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); + $main->render(); + } else { + //have a folder name to store + if (Permission::userHasFolderWritePermission($fFolderID)) { + if (Folder::folderExistsName($fFolderName, $fFolderID)) { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID)); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("There is another folder named $fFolderName in this folder already"); + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); + $main->render(); + } else { + $oParentFolder = Folder::get($fFolderID); + //create the folder in the db, giving it the properties of it's parent folder + $oFolder = &new Folder($fFolderName, "", $fFolderID, $_SESSION["userID"], $oParentFolder->getDocumentTypeID(), $oParentFolder->getUnitID()); + if ($oFolder->create()) { + //create the folder on the file system + if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) { + redirect("$default->owl_root_url/control.php?action=browse&fBrowseType=folder&fFolderID=" . $oFolder->getID()); + } else { + //if we couldn't do that, remove the folder from the db and report and error + $oFolder->delete(); + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem"); + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); + $main->render(); + } + } else { + //if we couldn't create the folder in the db, report an error + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("There was an error creating the folder $fFolderName in the database"); + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); + $main->render(); + } + } + } else { + //if the user doesn't have write permission for this folder, + //give them only browse facilities + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("You do not have permission to create new folders in this folder"); + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); + $main->render(); + } + } } else { - echo renderPage(14); + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom->setHtml(""); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("No folder currently selected"); + $main->render(); } } diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc index f8d0b6b..bde3b6c 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc @@ -30,7 +30,7 @@ function renderFolderList($fFolderID) { return $oPatternTableSqlQuery->render(); } -function renderPage($fFolderID) { +function renderBrowseAddPage($fFolderID) { $sToRender = "\n"; $sToRender .= "\n"; $sToRender .= "\t\n"; @@ -40,11 +40,33 @@ function renderPage($fFolderID) { $sToRender .= "\n"; $sToRender .= "\t\n"; + $sToRender .= "
" . renderFolderPath($fFolderID) . "
" . renderFolderList($fFolderID) . "\n"; $sToRender .= "

\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; $sToRender .= "
New folder name:
\n"; return $sToRender; } +function renderBrowsePage($fFolderID) { + $sToRender = "\n"; + $sToRender .= "\n"; + $sToRender .= "\t\n"; + $sToRender .= "\n"; + $sToRender .= "
" . renderFolderPath($fFolderID) . "
\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\t\n"; + $sToRender .= "
" . renderFolderList($fFolderID) . "\n"; + $sToRender .= "

\n"; + + return $sToRender; +} ?> diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc b/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc index 217b1eb..bcd00ba 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc @@ -58,5 +58,27 @@ function displayFolderLink($oFolder, $sLinkPage = "") { $oFolder->getName()); } +function renderFolderPath($fFolderID) { + $sFolderPath = displayFolderPathLink(Folder::getFolderPathAsArray($fFolderID, "$default->owl_ui_directory/foldermanagement/addFolderBL.php")); + return "
$sFolderPath
\n"; +} + +function renderFolderList($fFolderID) { + global $default; + $sQuery = "SELECT F.id AS id, F.name AS name " . + "FROM $default->owl_folders_table AS F " . + "WHERE F.parent_id = " . $fFolderID; + + $aColumns = array("name"); + $aColumnTypes = array(3); + $aColumnHeaderNames = array("Folder"); + + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaderNames, "100%", "$default->owl_root_url/control.php?action=addFolder&fFolderID=", "id"); + $oPatternTableSqlQuery->setImageURL("$default->owl_fs_root/graphics/widgets/dfolder.gif"); + $oPatternTableSqlQuery->setEmptyTableMessage("This folder contains no sub folders"); + return $oPatternTableSqlQuery->render(); +} + + ?> -- libgit2 0.21.4