diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/createDependantDocumentBL.php b/presentation/lookAndFeel/knowledgeTree/documentmanagement/createDependantDocumentBL.php new file mode 100644 index 0000000..792af6d --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/createDependantDocumentBL.php @@ -0,0 +1,79 @@ +fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc"); + require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc"); + require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc"); + require_once("$default->fileSystemRoot/lib/security/permission.inc"); + require_once("$default->fileSystemRoot/lib/email/Email.inc"); + require_once("$default->fileSystemRoot/lib/documentmanagement/DependantDocumentInstance.inc"); + require_once("$default->fileSystemRoot/presentation/Html.inc"); + require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc"); + + + //TODO REMOVE THIS LINE - FOR TESTING ONLY!!!! + if (!isset($fDocumentID)) { + $fDocumentID = 1; + } + + if (isset($fForStore)) { + $oDependantDocument = & new DependantDocumentInstance($fDocumentTitle, $fUserID, $fTargetDocumentID, $fDocumentID); + if ($oDependantDocument->create()) { + $oUser = User::get($fUserID); + if ($oUser->getEmailNotification()) { + //notify the user by email if they wish to be notified by email + $oTemplateDocument = & Document::get($fTargetDocumentID); + + + $sBody = $oUser->getName() . ", a step in the document collaboration process requires you to create a new document. " . + generateLink("/control.php","action=dashboard","Log onto KnowledgeTree") . " and select the relevant link under the 'Dependant Documents' heading on your dashboard when you are ready upload it."; + //if we have a template document + if (!($oTemplateDocument === false)) { + $sBody .= "The document entitled " . generateLink("/control.php", "action=viewDocument&fDocumentID=" . $oTemplateDocument->getID(), $oTemplateDocument->getName()) . " " . + "can be used as a template"; + } + + $oEmail = & new Email(); + $oEmail->send($oUser->getEmail(), "Dependant document creation required", $sBody); + } + //go back to the document page you were viewing + redirect($default->rootUrl . "/control.php?action=viewDocument&fDocumentID=$fDocumentID"); + } else { + //dependant document creation failed - display an error message + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); + $oDocument = Document::get($fDocumentID); + + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml(getAddPage($oDocument->getFolderID(), $fDocumentID, $fUnitID, $fUserID, $fDocumentTitle, $fTemplateDocument)); + $main->setCentralPayload($oPatternCustom); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fDocumentID=$fDocumentID&fForStore=1"); + $main->setErrorMessage("An error occured whilst trying to create the dependant document"); + $main->render(); + + } + } else { + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); + //we're browsing, so just display the page + $oDocument = Document::get($fDocumentID); + + $oPatternCustom = & new PatternCustom(); + $oPatternCustom->setHtml(getAddPage($oDocument->getFolderID(), $fDocumentID, $fUnitID, $fUserID, $fDocumentTitle, $fTemplateDocument)); + $main->setCentralPayload($oPatternCustom); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fDocumentID=$fDocumentID&fForStore=1"); + $main->render(); + } +} + +?> \ No newline at end of file diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/createDependantDocumentUI.inc b/presentation/lookAndFeel/knowledgeTree/documentmanagement/createDependantDocumentUI.inc new file mode 100644 index 0000000..34d0f60 --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/createDependantDocumentUI.inc @@ -0,0 +1,113 @@ +siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"]))); + $sTDBGColour = $default->siteMap->getSectionColour($sSectionName, "td"); + $sFolderPathLink = displayFolderPathLink(Folder::getFolderPathAsArray($iFolderID), Folder::getFolderPathNamesAsArray($iFolderID), "$default->rootUrl/control.php?action=browse"); + return "
$sFolderPathLink
\n"; +} + +function getAddPage($iFolderID, $iDocumentID, $iUnitID, $iUserID, $sDocumentTitle, $sTemplateDocument) { + global $default; + $sToRender = renderHeading("Create a new dependant document"); + $sToRender .= getFolderPath($iFolderID); + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + + //had a slight problem with netscape 4.7x - it doesn't support disabled. So I had to use + //javascript to set the onFocus attribute to blur + $bAddNetscapeScript = false; + if (! (($default->phpSniff->property("browser") == "moz") && ($default->phpSniff->property("version") <= "4.79")) ) { + //for any other browser but netscape 4.7 do this + $sToRender .= "\n"; + }else { + //for netscape 4.7 do this + $sToRender .= "\n"; + $bAddNetscapeScript = true; + } + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "
Document title
User's Unit" . getUnitDropDown($iDocumentID, $iUnitID) . "
User" . getUserDropDown($iUnitID, $iUserID) . "
Template documentrootUrl/control.php?action=templateBrowse','window2')\">Template documentrootUrl/control.php?action=templateBrowse','window2')\">
graphicsUrl/widgets/done.gif\" onClick='return validateForm(document.MainForm);' border=\"0\"/>rootUrl . "/control.php?action=viewDocument&fDocumentID=$iDocumentID\">graphicsUrl/widgets/cancel.gif\" border=\"0\"/>
\n"; + $sToRender .= "
\n"; + $sToRender .= "\n"; + + return $sToRender . "\n\n" . getValidationJavaScript() . "\n\n" . getBrowseJavaScript() . ($bAddNetscapeScript ? getNetscapeDisableScript() : ""); +} + +function getUserDropDown($iUnitID, $iUserID) { + global $default; + if (!isset($iUnitID)) { + $iUnitID = -1; + } + $oPatternListBox = & new PatternListBox($default->owl_users_table, "Name", "id", "fUserID", "GUL.unit_id = $iUnitID"); + $sFromClause = "INNER join users_groups_link AS UGL ON UGL.user_id = ST.id " . + "INNER JOIN groups_units_link AS GUL ON GUL.group_id = UGL.group_id "; + $oPatternListBox->setFromClause($sFromClause); + if (isset($iUserID)) { + $oPatternListBox->setSelectedValue($iUserID); + } + return $oPatternListBox->render(); + + +} + +function getUnitDropDown($iDocumentID, $iUnitID) { + global $default; + if (!isset($iUnitID)) { + $iUnitID = -1; + } + $oPatternListBox = & new PatternListBox($default->owl_units_table, "Name", "id", "fUnitID"); + $oPatternListBox->setPostBackOnChange(true); + $oPatternListBox->setOnChangeAction("setActionAndSubmit('" . $_SERVER["PHP_SELF"] . "?fDocumentID=$iDocumentID&fForAdd=1')"); + if (isset($iUnitID)) { + $oPatternListBox->setSelectedValue($iUnitID); + } + return $oPatternListBox->render(); +} + +function getValidationJavaScript() { + $sToRender .= "\n\n\n\n"; + return $sToRender; +} + +function getBrowseJavaScript() { + $sToRender = "\n"; + return $sToRender; +} + +function getNetscapeDisableScript() { + $sToRender = "\n\n"; + return $sToRender; + +} + + + + +?> \ No newline at end of file