From 10092bf26ad8b6d6019630319f63006f61466402 Mon Sep 17 00:00:00 2001 From: rob Date: Fri, 14 Feb 2003 13:26:26 +0000 Subject: [PATCH] Initial revision. Move a document to a new folder --- presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentBL.php | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentUI.inc | 25 +++++++++++++++++++++++++ 2 files changed, 118 insertions(+), 0 deletions(-) create mode 100644 presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentBL.php create mode 100644 presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentUI.inc diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentBL.php b/presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentBL.php new file mode 100644 index 0000000..db7349f --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentBL.php @@ -0,0 +1,93 @@ +owl_fs_root/lib/security/permission.inc"); + +require_once("$default->owl_fs_root/lib/users/User.inc"); + +require_once("$default->owl_fs_root/lib/documentmanagement/DocumentTransaction.inc"); +require_once("$default->owl_fs_root/lib/documentmanagement/Document.inc"); +require_once("$default->owl_fs_root/lib/documentmanagement/PhysicalDocumentManager.inc"); +require_once("$default->owl_fs_root/lib/foldermanagement/Folder.inc"); + +require_once("$default->owl_fs_root/lib/visualpatterns/PatternTableSqlQuery.inc"); +require_once("$default->owl_fs_root/lib/visualpatterns/PatternCustom.inc"); + +require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentUI.inc"); +require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc"); +require_once("$default->owl_fs_root/presentation/Html.inc"); + +if (checkSession()) { + + if (isset($fDocumentID) && isset($fFolderID)) { + if (isset($fForMove)) { + //we're trying to move a document + $oDocument = & Document::get($fDocumentID); + $iOldFolderID = $oDocument->getFolderID(); + if (Permission::userHasDocumentWritePermission($fDocumentID) && Permission::userHasFolderWritePermission($fFolderID)) { + //if the user has both document and folder write permissions + //get the old document path + $sOldDocumentFileSystemPath = Folder::getFolderPath($iOldFolderID) . $oDocument->getFileName(); + //put the document in the new folder + $oDocument->setFolderID($fFolderID); + if ($oDocument->update()) { + //get the new document path + $sNewDocumentFileSystemPath = Folder::getFolderPath($oDocument->getFolderID()) . $oDocument->getFileName(); + //move the document on the file system + if (PhysicalDocumentManager::move($sOldDocumentFileSystemPath, $sNewDocumentFileSystemPath)) { + //redirect to the view path + redirect("$default->owl_root_url/control.php?action=viewDocument&fDocumentID=$fDocumentID"); + } else { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + //we couldn't move the document on the file system + //so reset the database values + $oDocument->setFolderID($iOldFolderID); + $oDocument->update(); + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml(getPage($fFolderID, $fDocumentID)); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("Could not move document on file system"); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForMove=1"); + $main->render(); + } + } else { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + //had a problem with the database + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml(getPage($fFolderID, $fDocumentID)); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("Could not update document in database"); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForMove=1&fDocumentID=$fDocumentID&fFolderID=$fFolderID"); + $main->render(); + } + } else { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml(getPage($fFolderID, $fDocumentID)); + $main->setCentralPayload($oPatternCustom); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForMove=1&fDocumentID=$fDocumentID&fFolderID=$fFolderID"); + $main->setErrorMessage("You do not have rights to move this document"); + $main->render(); + } + + } else { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml(getPage($fFolderID, $fDocumentID)); + $main->setCentralPayload($oPatternCustom); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForMove=1&fDocumentID=$fDocumentID&fFolderID=$fFolderID"); + $main->render(); + } + } else { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml(""); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("No document/folder selected"); + $main->render(); + } + +} +?> diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentUI.inc b/presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentUI.inc new file mode 100644 index 0000000..1f9033a --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentUI.inc @@ -0,0 +1,25 @@ +owl_root_url/control.php?action=browse"); + return "
$sFolderPath
\n"; +} + +function getPage($iFolderID, $iDocumentID) { + global $default; + $sToRender = "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "
" . getFolderPath($iFolderID) . "
\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "
" . renderFolderList($iFolderID, "control.php?action=moveDocument&fDocumentID=$iDocumentID") . "
owl_graphics_url/widgets/movehere.gif\" />
\n"; + return $sToRender; +} + +?> -- libgit2 0.21.4