diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/archiveSettingsUI.inc b/presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/archiveSettingsUI.inc index b74eacd..ebf673b 100644 --- a/presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/archiveSettingsUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/archiveSettingsUI.inc @@ -1,7 +1,5 @@ fileSystemRoot/lib/documentmanagement/Document.inc"); +require_once("$default->fileSystemRoot/lib/archiving/ArchiveRestorationRequest.inc"); +require_once("$default->fileSystemRoot/lib/email/Email.inc"); +require_once("$default->fileSystemRoot/lib/users/User.inc"); +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMainPage.inc"); +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); +require_once("restoreArchivedDocumentUI.inc"); +require_once("$default->uiDirectory/documentmanagement/documentUI.inc"); +require_once("$default->fileSystemRoot/presentation/Html.inc"); + +/** + * $Id$ + * + * Business logic for requesting the restoration of an archived document. + * + * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING. + * + * @version $Revision$ + * @author Michael Joseph , Jam Warehouse (Pty) Ltd, South Africa + * @package presentation.lookAndFeel.knowledgeTree.documentmanagement.archiving + */ + +if (checkSession()) { + global $default; + + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); + + // instantiate my content pattern + $oContent = new PatternCustom(); + + if ($fDocumentID) { + // instantiate the document + $oDocument = Document::get($fDocumentID); + if ($oDocument) { + + // lookup the unit admin + $oUnitAdminUser = getUnitAdminUser(); + + // create the request + $oRestoreRequest = new ArchiveRestorationRequest($fDocumentID, $_SESSION["userID"], $oUnitAdminUser->getID()); + if ($oRestoreRequest->create()) { + // FIXME: refactor notification + // send the email requesting the restoration of an archived document + $oUser = User::get($_SESSION["userID"]); + + $sBody = $oUnitAdmin->getName() . ",

The user " . $oUser->getName() . " has requested that document "; + $sBody .= "'" . generateControllerLink("viewDocument", "fDocumentID=" . $oDocument->getID(), $oDocument->getName()) . "'"; + $sBody .= " be restored from the archive."; + $oEmail = & new Email(); + $oEmail->send($oUnitAdmin->getEmail(), "Archived Document Restoration Request", $sBody); + + // display a confirmation message + $oContent->setHtml(renderRequestSuccessPage($oDocument)); + } else { + // error creating the request + $oContent->setHtml(renderRequestFailurePage($oDocument)); + } + } else { + // error retrieving document + $default->log->error("requestDocumentRestoreBL.php there was an error retrieving document id=$fDocumentID from the db"); + // TODO: generic error page + } + + } else { + // display the select archiving type page + $oContent->setHtml(renderAddArchiveSettingsPage(null)); + } + + // build the page + $main->setCentralPayload($oContent); + $main->setFormAction($_SERVER['PHP_SELF']); + $main->setHasRequiredFields(true); + $main->render(); +} +?> \ No newline at end of file diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/restoreArchivedDocumentUI.inc b/presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/restoreArchivedDocumentUI.inc new file mode 100644 index 0000000..b10370d --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/restoreArchivedDocumentUI.inc @@ -0,0 +1,81 @@ +, Jam Warehouse (Pty) Ltd, South Africa + * @package presentation.lookAndFeel.knowledgeTree.administration.news + */ + +/** + * Displays the page that allows an administrator to restore an archived document + */ +function getRestoreArchivedDocumentPage($oDocument) { + global $default; + + $sToRender = renderHeading("Restore Archived Document") . renderDocumentPath($oDocument) . "\n
\n"; + + $sToRender .= "\n"; + $sToRender .= "\t\n\t\t\n\t\n"; + $sToRender .= "\t\n"; + $sToRender .= "\t\n"; + $sToRender .= "\t\t\n"; + $sToRender .= "\t"; + $sToRender .= "
Please click 'Restore' to restore this archived document.
getID() . "\"/>
getID()) . "\">graphicsUrl/widgets/restore.gif\" border=\"0\" />"; + $sToRender .= "rootUrl/control.php?action=browse&fFolderID=" . $oDocument->getFolderID() . "\">graphicsUrl/widgets/cancel.gif\" border=\"0\" />
\n"; + + return $sToRender; +} + +/** + * Displays the page that allows a user to request the restoration of an archived document + */ +function getRequestRestoreDocumentPage($oDocument) { + global $default; + + $sToRender = renderHeading("Request Archived Document Restoration") . renderDocumentPath($oDocument) . "\n
\n"; + + $sToRender .= "\n"; + $sToRender .= "\t\n\t\t\n\t\n"; + $sToRender .= "\t\n"; + $sToRender .= "\t\n"; + $sToRender .= "\t\t\n"; + $sToRender .= "\t"; + $sToRender .= "
To request that the document be unarchived, please click the 'Restore' button.
getID() . "\"/>
graphicsUrl/widgets/restore.gif\" border=\"0\" />"; + $sToRender .= "rootUrl/control.php?action=browse&fFolderID=" . $oDocument->getFolderID() . "\">graphicsUrl/widgets/cancel.gif\" border=\"0\" />
\n"; + + return $sToRender; +} + +/** + * Displays the page that allows an administrator to restore an archived document + */ +function renderRequestSuccessPage($oDocument) { + global $default; + + $sToRender = renderHeading("Restore Archived Document"); + $sToRender .= "\n"; + $sToRender .= "\t\n"; + $sToRender .= "\t\n"; + $sToRender .= "
Your request has been processed, you will be notified when the document is restored.
rootUrl/control.php?action=browse&fFolderID=" . $oDocument->getFolderID() . "\">graphicsUrl/widgets/back.gif\" border=\"0\" />
\n"; + return $sToRender; +} + +/** + * Display the error page for archiving request failure + */ +function renderRequestFailurePage($oDocument, $oUnitAdminUser) { + global $default; + $sToRender = renderHeading("Restore Archived Document"); + $sToRender .= "\n"; + $sToRender .= "\t\n"; + $sToRender .= "\t\n"; + $sToRender .= "
There was an error requesting the restoration of this document from the archive. Please try again later.
rootUrl/control.php?action=browse&fFolderID=" . $oDocument->getFolderID() . "\">graphicsUrl/widgets/back.gif\" border=\"0\" />
\n"; + return $sToRender; +} +?> \ No newline at end of file