diff --git a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/addDocTypeFieldsLinkBL.php b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/addDocTypeFieldsLinkBL.php
new file mode 100644
index 0000000..93440c3
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/addDocTypeFieldsLinkBL.php
@@ -0,0 +1,104 @@
+fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCreate.inc");
+ require_once("addDocTypeFieldsLinkUI.inc");
+ require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentField.inc");
+ require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentTypeFieldLink.inc");
+ require_once("$default->fileSystemRoot/lib/security/permission.inc");
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
+ require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
+ require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
+ require_once("$default->fileSystemRoot/presentation/Html.inc");
+
+ $oPatternCustom = & new PatternCustom();
+
+ if (isset($fAdd)){
+ if (isset($fDocTypeID)){
+
+ if ($bMandatory){ $bMandatory = true; }
+ else { $bMandatory = false; }
+
+ if ($fFieldID > 0){ // Use Existing Non-generic field
+
+ $oDocTypeFieldLink = new DocumentTypeFieldLink($fDocTypeID,$fFieldID,$bMandatory);
+
+ if ($oDocTypeFieldLink->create()){
+ $oPatternCustom->setHtml(addSuccessPage($fDocTypeID));
+ }else {
+ $oPatternCustom->setHtml(addFailPage($fDocTypeID));;
+ }
+
+ } else if (strlen($fNewField) > 0){ // Create a New Field
+
+ if ($bHasLookup){ $bHasLookup = true; }
+ else { $bHasLookup = false; }
+
+ $oDocField = new DocumentField($fNewField, $fDataType, false, $bHasLookup);
+ if ($oDocField->create()) {
+ $fFieldID = $oDocField->getID();
+ $oDocTypeFieldLink = new DocumentTypeFieldLink($fDocTypeID,$fFieldID,$bMandatory);
+
+ if ($oDocTypeFieldLink->create()){
+ $oPatternCustom->setHtml(getCreateNewSuccess($fDocTypeID));
+ }else {
+ $oPatternCustom->setHtml(getCreateNewFail($fDocTypeID));
+ }
+ } else {
+ $oPatternCustom->setHtml(getCreateNewFail($fDocTypeID));
+ }
+ } else {
+ $oPatternCustom->setHtml(getFail_NoFieldID($fDocTypeID));
+ }
+ }else{ //error
+ $oPatternCustom->setHtml(getMissingDocTypeIDPage($fDocTypeID));
+ }
+
+ } else if (isset($fDocTypeID)){
+ if (isset($fFromList)){
+ $sNewTableName = $default->owl_fields_table;
+ $sNewDisplayColumn = "name";
+ $sNewValueColumn = "id";
+ $sNewSelectName = "fFieldID";
+ $sNewWhereClause = "is_generic != 1";
+ $bNewOrderAsc = true;
+
+ $oSelectBox = & new PatternListBox($sNewTableName, $sNewDisplayColumn, $sNewValueColumn, $sNewSelectName, $sNewWhereClause , $bNewOrderAsc );
+ if (count($oSelectBox->getEntries()) > 0) {
+
+ $main->setFormAction($_SERVER['PHP_SELF'] . "?fAdd=1&fDocTypeID=$fDocTypeID");
+
+ $htmlListBox = $oSelectBox->render();
+ $oPatternCustom->addHtml(getFirstPage($htmlListBox, $fDocTypeID));
+
+ } else { //Go to -> no Non-generic fields exist
+ $oPatternCustom->addHtml(getListFailPage($fDocTypeID));
+ }
+ } else if(isset($fNewField)){//A new Field Entry
+ $main->setFormAction($_SERVER['PHP_SELF'] . "?fAdd=1&fDocTypeID=$fDocTypeID");
+ $oPatternCustom->addHtml(getFirstPage($Nothing, $fDocTypeID, true));
+ } else { // get OptionPage
+ $oPatternCustom->addHtml(getOptionPage($fDocTypeID));
+ }
+ } else {
+ $oPatternCustom->setHtml(getMissingDocTypeIDPage());
+ }
+
+ $main->setCentralPayload($oPatternCustom);
+ $main->setHasRequiredFields(true);
+ $main->render();
+}
+?>
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/addDocTypeFieldsLinkUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/addDocTypeFieldsLinkUI.inc
new file mode 100644
index 0000000..e974b96
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/addDocTypeFieldsLinkUI.inc
@@ -0,0 +1,130 @@
+";
+ $sToRender .= "
\n";
+
+ return $sToRender;
+}
+
+
+function genericMessage($sMsg, $fDocTypeID = null){
+ global $default;
+
+ $sToRender .= "\n";
+ $sToRender .= "$sMsg \n";
+ $sToRender .= "" . getBackButton($fDocTypeID) . " \n";
+ $sToRender .= "
\n";
+
+ return $sToRender;
+}
+
+function getCreateNewFail($fDocTypeID){
+ $sToRender = genericMessage("Error creating new Type Specific Field and Linking it", $fDocTypeID);
+ return $sToRender;
+}
+
+
+function getCreateNewSuccess($fDocTypeID){
+ $sToRender = genericMessage("New Type specific Field Created and Linked.", $fDocTypeID);
+ return $sToRender;
+}
+
+function getFail_NoFieldID($fDocTypeID = null){
+ $sToRender = genericMessage("Linking cannot be done. Please select a field to link to.", $fDocTypeID);
+ return $sToRender;
+}
+
+function addSuccessPage($fDocTypeID = null){
+ $sToRender = genericMessage("Field is successfully linked to the Document Type.", $fDocTypeID);
+ return $sToRender;
+}
+
+function addFailPage($fDocTypeID = null ){
+ $sToRender = genericMessage("Error: Field Could not be linked to the Document Type.", $fDocTypeID);
+ return $sToRender;
+}
+
+function getMissingDocTypeIDPage($iDocTypeID = null ){
+ $sToRender = genericMessage("Error: Page expects a Document Type ID.", $fDocTypeID);
+ return $sToRender;
+}
+
+
+function getListFailPage($iDocTypeID = null){
+ $sToRender = genericMessage("There are no Non-generic fields in the database.", $fDocTypeID);
+ return $sToRender;
+}
+
+// get add pages
+function getFirstPage($sHtmlListBox = null, $iDocTypeID, $bIsNew = null) {
+ global $default;
+
+ $sToRender .= renderHeading("Add Type Specific Field to Document Type");
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+
+ return $sToRender;
+}
+
+// gets the cancel button
+function getCancelButton($iDocTypeID = null) {
+ global $default;
+ //return "rootUrl/control.php?action=listDocTypes\"> graphicsUrl/widgets/cancel.gif\" border = \"0\" /> \n";
+ return "rootUrl/control.php?action=editDocTypeFields&fDocTypeSelected=1&fDocTypeID=" . $iDocTypeID . "\"> graphicsUrl/widgets/cancel.gif\" border = \"0\" /> \n";
+}
+
+// gets the cancel button
+function getBackButton($iDocTypeID = null) {
+ global $default;
+ return "rootUrl/control.php?action=editDocTypeFields&fDocTypeSelected=1&fDocTypeID=" . $iDocTypeID . "\"> graphicsUrl/widgets/back.gif\" border = \"0\" /> \n";
+}
+?>
\ No newline at end of file
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeBL.php b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeBL.php
index ba0702a..de702f6 100644
--- a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeBL.php
+++ b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeBL.php
@@ -32,13 +32,7 @@ if (checkSession()) {
$oDocType = DocumentType::get($fDocTypeID);
$oDocType->setName($fDocTypeName);
-
- // store type specific field id's in an array
- //$aGenericDocFields = DocumentField::getGenericFields();
- //$aSpecificDocFields = DocumentTypeFieldLink::getSpecificFields($fDocTypeID);
-
- // echo "" . arrayToString($aSpecificDocFields ) . " ";
-
+
if ($oDocType->update()) {
// if successfull print out success message
$oPatternCustom->setHtml(getEditPageSuccess());
@@ -48,23 +42,9 @@ if (checkSession()) {
$oPatternCustom->setHtml(getEditPageFail());
}
} else if (isset($fDocTypeSelected)){
- // post back on DocType select from manual edit page
- // store type generic field id's in an array
- $aGenericFields = DocumentField::getGenericFields();
-
- // get all specific fields
- $aAllSpecificFields = DocumentField::getAllSpecificFields();
-
-
- // store type specific field id's and names in an array for specifc doctype
- $aSpecificFields = DocumentTypeFieldLink::getSpecificFields($fDocTypeID);
-
-
-
- $oPatternCustom->setHtml(getDetailsPage($fDocTypeID, $aGenericFields, $aSpecificFields, $aAllSpecificFields));
- $main->setFormAction($_SERVER["PHP_SELF"] . "?fShowDetails=1");
-
-
+
+ $oPatternCustom->setHtml(getDetailsPage($fDocTypeID));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fUpdate=1");
}else if(isset($fAdd))
{
if($fIsMandatory == 1){
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeFieldsBL.php b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeFieldsBL.php
new file mode 100644
index 0000000..87e2d80
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeFieldsBL.php
@@ -0,0 +1,196 @@
+fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
+ require_once("editDocTypeFieldsUI.inc");
+ require_once("$default->fileSystemRoot/lib/security/permission.inc");
+ require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentType.inc");
+ require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentField.inc");
+ require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentTypeFieldLink.inc");
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
+ require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
+ require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
+ require_once("$default->fileSystemRoot/presentation/Html.inc");
+
+
+ $oPatternCustom = & new PatternCustom();
+
+ // if a new DocType has been added
+ // coming from manual edit page
+ if (isset($fUpdate)) {
+
+ //$oDocType = DocumentType::get($fDocTypeID);
+ //$oDocType->setName($fDocTypeName);
+
+ // store type specific field id's in an array
+ $aGenericDocFields = DocumentField::getGenericFields();
+ $aSpecificDocFields = DocumentTypeFieldLink::getSpecificFields($fDocTypeID);
+
+ echo "" . arrayToString($aSpecificDocFields ) . " ";
+
+ /**
+ if ($oDocType->update()) {
+ // if successfull print out success message
+ $oPatternCustom->setHtml(getEditPageSuccess());
+
+ } else {
+ // if fail print out fail message
+ $oPatternCustom->setHtml(getEditPageFail());
+ }
+ **/
+ } else if (isset($fDocTypeSelected)){
+ // post back on DocType select from manual edit page
+ // store type generic field id's in an array
+ $aGenericFields = DocumentField::getGenericFields();
+
+ // get all specific fields
+ $aAllSpecificFields = DocumentField::getAllSpecificFields();
+
+
+ // store type specific field id's and names in an array for specifc doctype
+ $aSpecificFields = DocumentTypeFieldLink::getSpecificFields($fDocTypeID);
+
+
+ $oPatternCustom->setHtml(getDetailsPage($fDocTypeID, $aGenericFields, $aSpecificFields, $aAllSpecificFields));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fShowDetails=1");
+
+
+ }else if(isset($fAdd))
+ {
+ if($fIsMandatory == 1){
+ $iMandatory = 1;
+ }else{
+ $iMandatory = 0;
+ }
+
+ $oDocTypeField = new DocumentTypeFieldLink($fDocTypeID, $fDocFieldTypeID, $iMandatory);
+
+ $oDocTypeField->create();
+
+
+ // post back on DocType select from manual edit page
+ // store type generic field id's in an array
+ //$oDocFieldType = new DocumentTypeFieldLink(
+ $aGenericFields = DocumentField::getGenericFields();
+
+ // get all specific fields
+ $aAllSpecificFields = DocumentField::getAllSpecificFields();
+
+
+ // store type specific field id's and names in an array for specifc doctype
+ $aSpecificFields = DocumentTypeFieldLink::getSpecificFields($fDocTypeID);
+
+ $oPatternCustom->setHtml(getDetailsPage($fDocTypeID, $aGenericFields, $aSpecificFields, $aAllSpecificFields));
+
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fDocTypeSelected=1");
+ //$oPatternCustom->setHtml(getEditPageSuccess());
+
+
+ }else if(isset($fRemove)){
+
+ $fFieldID = $fRemove;
+
+ // does'nt matter wot ismandatory is..not checking for it when deleting
+ $iMandatory = 0;
+ //create new object
+ $oDocTypeField = new DocumentTypeFieldLink($fDocTypeID, $fFieldID, $iMandatory);
+
+ //delete it by first getting hte corresponding id
+ $oDocTypeField ->setDocTypeFieldID($fDocTypeID, $fFieldID);
+ $oDocTypeField->delete();
+
+ // post back on DocType select from manual edit page
+ // store type generic field id's in an array
+ //$oDocFieldType = new DocumentTypeFieldLink(
+ $aGenericFields = DocumentField::getGenericFields();
+
+ // get all specific fields
+ $aAllSpecificFields = DocumentField::getAllSpecificFields();
+
+
+ // store type specific field id's and names in an array for specifc doctype
+ $aSpecificFields = DocumentTypeFieldLink::getSpecificFields($fDocTypeID);
+
+ $oPatternCustom->setHtml(getDetailsPage($fDocTypeID, $aGenericFields, $aSpecificFields, $aAllSpecificFields));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fDocTypeSelected=1");
+
+ }else if(isset($fEdit)){
+ $fFieldID = $fEdit;
+
+ $iMandatory = 0;
+
+ $oDocTypeField = new DocumentTypeFieldLink($fDocTypeID, $fFieldID, $iMandatory);
+
+ //delete it by first getting hte corresponding id
+ $oDocTypeField ->setDocTypeFieldID($fDocTypeID, $fFieldID);
+
+ $iDocTypeFieldID = $oDocTypeField->getID();
+
+ $oPatternCustom->setHtml(getMandatoryPage($fFieldID,$iDocTypeFieldID));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fUpdateMandatory=1");
+
+
+ } else if(isset($fUpdateMandatory)){
+
+ $oDocTypeField = new DocumentTypeFieldLink($fDocTypeID, $fFieldID, $fMandatory);
+
+ //delete it by first getting hte corresponding id
+ $oDocTypeField->setDocTypeFieldID($fDocTypeID, $fFieldID);
+
+ if(isset($fIsMandatory)){
+ $oDocTypeField->setIsMandatory(true);
+ }else{
+ $oDocTypeField->setIsMandatory(false);
+ }
+
+ $oDocTypeField->update();
+
+
+
+ // post back on DocType select from manual edit page
+ // store type generic field id's in an array
+ //$oDocFieldType = new DocumentTypeFieldLink(
+ $aGenericFields = DocumentField::getGenericFields();
+
+ // get all specific fields
+ $aAllSpecificFields = DocumentField::getAllSpecificFields();
+
+
+ // store type specific field id's and names in an array for specifc doctype
+ $aSpecificFields = DocumentTypeFieldLink::getSpecificFields($fDocTypeID);
+
+ $oPatternCustom->setHtml(getDetailsPage($fDocTypeID, $aGenericFields, $aSpecificFields, $aAllSpecificFields));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fDocTypeSelected=1");
+
+
+
+
+ }else {
+ // if nothing happens...just reload edit page
+ $oPatternCustom->setHtml(getEditPage(null));
+ $main->setFormAction($_SERVER["PHP_SELF"] ."?fDocTypeSelected=1");
+
+
+ }
+
+
+
+
+
+
+ //render the page
+ $main->setCentralPayload($oPatternCustom);
+ $main->render();
+}
+?>
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeFieldsUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeFieldsUI.inc
new file mode 100644
index 0000000..fc209ff
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeFieldsUI.inc
@@ -0,0 +1,295 @@
+\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= "Document Type Name: " . getDocTypeDisplay($oDocType) . " \n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " " . getUpdateButton($oDocType);
+ $sToRender .= getCancelButton($oDocType);
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+
+
+ return $sToRender;
+}
+
+// if its the manual edit page..then display normally
+function getDetailsPage($iDocTypeID,$aGeneric,$aSpecific, $aAllSpecific) {
+ global $default;
+ $oDocType = null;
+ if (isset($iDocTypeID)) {
+ $oDocType = DocumentType::get($iDocTypeID);
+
+ }
+
+ $sToRender .= renderHeading("Edit Document Type");
+
+ $sToRender .= "\n";
+
+
+ return $sToRender;
+}
+
+// if its the manual edit page..then display normally
+function getMandatoryPage($iDocFieldID,$iDocTypeFieldID) {
+ global $default;
+ $oDocField = null;
+
+ if (isset($iDocFieldID)) {
+ $oDocField = DocumentField::get($iDocFieldID);
+
+ }
+
+ if (isset($iDocTypeFieldID)) {
+ $oDocTypeField = DocumentTypeFieldLink::get($iDocTypeFieldID);
+
+ }
+
+ $sToRender .= " iDocumentTypeID . "\">\n" ;
+ $sToRender .= " iFieldID . "\">\n" .
+ //$sToRender .= renderHeading("Edit Mandatory settings");
+ $sToRender .= " \n";
+
+ $sToRender .= "Change Mandatory Setting: \n";
+ $sToRender .= "\n";
+
+
+ return $sToRender;
+}
+
+// if edition is successful print otu success page
+function getEditPageSuccess() {
+ global $default;
+
+ $sToRender .= renderHeading("Edit Document Type");
+ $sToRender .= "\n";
+
+ return $sToRender;
+}
+
+// gets the page if editing fails
+function getEditPageFail() {
+ global $default;
+
+ $sToRender .= renderHeading("Edit Document Type");
+ $sToRender .= "\n";
+
+ return $sToRender;
+}
+
+// show the list box when no DocType selected
+// then shows a text box with the DocType's name
+function getDocTypeDisplay($oDocType) {
+ global $default;
+ if (!isset($oDocType)) {
+ $oPatternListBox = & new PatternListBox($default->owl_document_types_table, "name", "id", "fDocTypeID");
+ // only restrict doc type editing for non sys admins
+ if (!Permission::userIsSystemAdministrator()) {
+ $oPatternListBox->setFromClause("LEFT OUTER JOIN $default->owl_documents_table D on ST.id=D.document_type_id");
+ $oPatternListBox->setWhereClause("ISNULL(D.id)");
+ }
+ $oPatternListBox->setPostBackOnChange(true);
+ return $oPatternListBox->render();
+ } else {
+ return $oDocType->getName();
+ }
+
+}
+
+function getGenericFieldsList($aGeneric) {
+ global $default;
+
+ $sList = "";
+ for($i = 0; $i < count($aGeneric);$i++) {
+ $sList .= "" . $aGeneric[$i]["name"]. " \n";
+ }
+ $sList .= " ";
+ return $sList;
+}
+
+function getSpecificFieldsList1($aSpecific) {
+ global $default;
+ $sList .= "";
+ for($i = 0; $i < count($aSpecific);$i++) {
+ $oDocField = DocumentField::get($aSpecific[$i]);
+ $sList .= "" . $oDocField->getName() . " " . getEditSpecificFieldButton($aSpecific[$i]) ." ". getRemoveSpecificFieldButton($aSpecific[$i]) . " \n";
+ }
+ return $sList;
+}
+
+function getSpecificFieldsList($aSpecific, $iDocTypeID = null) {
+ global $default;
+ for($i = 0; $i < count($aSpecific);$i++) {
+ $oDocField = DocumentField::get($aSpecific[$i]);
+ $sList .= "" . $oDocField->getName() . " " . getEditSpecificFieldButton($aSpecific[$i],$iDocTypeID) ." ". getRemoveSpecificFieldButton($aSpecific[$i], $iDocTypeID) . " \n";
+ }
+ return $sList;
+}
+
+// show Group details on confirm deletion page
+function addSpecificFieldsList($aAllSpecific) {
+ global $default;
+
+ $sDocFieldType = "";
+ for ($i=0;$i < count($aAllSpecific);$i++) {
+ $Options .= "". $aAllSpecific[$i]["name"] ." \n";
+ }
+ $sDocFieldType .= $Options . " ";
+
+ return $sDocFieldType;
+}
+
+// gets the updatebutton when a DocType is selected
+function getUpdateButton($oDocType) {
+ global $default;
+ if (!isset($oDocType)) {
+ return "Please select a Document Type: ";
+ } else {
+ return " graphicsUrl/widgets/update.gif\" value=\"submit\" /> \n";
+ }
+}
+
+// gets the updatebutton when a DocType is selected
+function getDocTypeFieldUpdateButton() {
+ global $default;
+ return " graphicsUrl/widgets/update.gif\" value=\"submit\" /> \n";
+}
+
+function getRemoveSpecificFieldButton($iNumber, $iDocTypeID=null) {
+ global $default;
+ //Return " graphicsUrl/widgets/remove.gif\" value=\"remove\" />\n";
+ return " graphicsUrl/widgets/remove.gif\" value=\"edit\" /> \n";
+}
+
+function getEditSpecificFieldButton($iNumber, $iDocTypeID=null) {
+ global $default;
+ //return " graphicsUrl/widgets/edit.gif\" value=\"edit\" />\n";
+ return " graphicsUrl/widgets/edit.gif\" value=\"edit\" /> \n";
+}
+
+function getAddSpecificFieldButton() {
+ global $default;
+ return " graphicsUrl/widgets/add.gif\" value=\"add\" />\n";
+}
+
+// gets the cancel button when a DocType is selected
+function getCancelButton($oDocType) {
+ global $default;
+ if (!isset($oDocType)) {
+ return "rootUrl/control.php?action=doctypeManagement\"> graphicsUrl/widgets/cancel.gif\" value=\"cancel\" border = \"0\"/> \n";
+ }
+ else {
+ return "rootUrl/control.php?action=listDocTypes\"> graphicsUrl/widgets/back.gif\" border = \"0\" /> \n";
+ }
+}
+?>
\ No newline at end of file
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeUI.inc
index 8f03bda..d0affc8 100644
--- a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeUI.inc
+++ b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/editDocTypeUI.inc
@@ -46,42 +46,21 @@ function getEditPage($iDocTypeID) {
}
// if its the manual edit page..then display normally
-function getDetailsPage($iDocTypeID,$aGeneric,$aSpecific, $aAllSpecific) {
+function getDetailsPage($iDocTypeID) {
global $default;
$oDocType = null;
+
if (isset($iDocTypeID)) {
$oDocType = DocumentType::get($iDocTypeID);
}
-
+
$sToRender .= renderHeading("Edit Document Type");
$sToRender .= "\n";
@@ -173,7 +152,7 @@ function getEditPageFail() {
$sToRender .= " \n";
$sToRender .= " \n";
$sToRender .= "\n";
- $sToRender .= "rootUrl/control.php?action=editDocType\"> graphicsUrl/widgets/back.gif\" border = \"0\" /> \n";
+ $sToRender .= "rootUrl/control.php?action=listDocTypes\"> graphicsUrl/widgets/back.gif\" border = \"0\" /> \n";
$sToRender .= " \n";
$sToRender .= "\n";
@@ -239,14 +218,14 @@ function getUpdateButton($oDocType) {
if (!isset($oDocType)) {
return "Please select a Document Type: ";
} else {
- return " graphicsUrl/widgets/update.gif\" value=\"submit\" /> \n";
+ return " graphicsUrl/widgets/update.gif\" border=0 value=\"submit\" /> \n";
}
}
// gets the updatebutton when a DocType is selected
function getDocTypeFieldUpdateButton() {
global $default;
- return " graphicsUrl/widgets/update.gif\" value=\"submit\" /> \n";
+ return " graphicsUrl/widgets/update.gif\" border=0 value=\"submit\" /> \n";
}
function getRemoveSpecificFieldButton($iNumber) {
@@ -271,7 +250,7 @@ function getCancelButton($oDocType) {
return "rootUrl/control.php?action=doctypeManagement\"> graphicsUrl/widgets/cancel.gif\" value=\"cancel\" border = \"0\"/> \n";
}
else {
- return "rootUrl/control.php?action=editDocType\"> graphicsUrl/widgets/cancel.gif\" border = \"0\" /> \n";
+ return "rootUrl/control.php?action=listDocTypes\"> graphicsUrl/widgets/cancel.gif\" border = \"0\" /> \n";
}
}
?>
\ No newline at end of file
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/listDocTypesBL.php b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/listDocTypesBL.php
new file mode 100644
index 0000000..5aaceea
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/listDocTypesBL.php
@@ -0,0 +1,64 @@
+fileSystemRoot/lib/visualpatterns/PatternCreate.inc");
+ //require_once("listDocTypesUI.inc");
+ require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
+ require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc");
+ require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
+ require_once("$default->fileSystemRoot/lib/users/User.inc");
+ require_once("$default->fileSystemRoot/lib/security/permission.inc");
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternBrowsableSearchResults.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
+ require_once("$default->fileSystemRoot/presentation/Html.inc");
+
+
+ $oPatternCustom = & new PatternCustom();
+
+if(checkSession()) {
+ global $default;
+
+ $oPatternCustom->addHtml(renderHeading("Current System Organisations")); // Create the Heading
+
+ $main->setFormAction($_SERVER['PHP_SELF']);
+
+ $sQuery = "SELECT id as DocTypeID, name as DocTypeName, " .
+ "'Edit', 'Delete', 'Edit Fields' " .
+ "FROM " . $default->owl_document_types_table . " " .
+ "ORDER BY name";
+
+ $aColumns = array("DocTypeName", "Edit", "Delete", "Edit Fields");
+ $aColumnNames = array("Name", "Edit", "Delete", "Edit Fields");
+ $aColumnTypes = array(1,3,3,3);
+ $aDBColumnArray = array("DocTypeID");
+ $aQueryStringVariableNames = array("fDocTypeID");
+
+ $aHyperLinkURL = array( 1=> "$default->rootUrl/control.php?action=editDocType&fDocTypeSelected=1",
+ 2=> "$default->rootUrl/control.php?action=removeDocType",
+ 3=> "$default->rootUrl/control.php?action=editDocTypeFields&fDocTypeSelected=1");
+
+ $oSearchResults = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnNames, "100%", $aHyperLinkURL,$aDBColumnArray,$aQueryStringVariableNames);
+ $oSearchResults->setDisplayColumnHeadings(true);
+ $htmlTables = $oSearchResults->render() ;
+
+ $oPatternCustom->addHtml($htmlTables);
+
+ } // end of if checksession
+
+ $main->setCentralPayload($oPatternCustom);
+ $main->render();
+}
+?>
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/listDocTypesUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/listDocTypesUI.inc
new file mode 100644
index 0000000..8e8563c
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/listDocTypesUI.inc
@@ -0,0 +1,218 @@
+graphicsUrl/widgets/select.gif\" value=\"submit\" border=\"0\"/>\n";
+ return $sToRender;
+}
+
+// display the listbox initially ..then just display the text
+function getGroupDisplay($oGroup, $iSelectedValue = 0) {
+ global $default;
+ if (!isset($oGroup)) {
+ if (Permission::userIsSystemAdministrator()) {
+ // if this is the system administrator, prepend group names with unit name
+ $oPatternListBox = & new PatternListBox($default->owl_groups_table, "name", "id", "fGroupID");
+ $oPatternListBox->setFromClause("LEFT OUTER JOIN groups_units_link GUL on ST.id=GUL.group_id " .
+ "LEFT OUTER JOIN units_lookup UL on GUL.unit_id=UL.id");
+ $oPatternListBox->setCompositeDisplayName("DISTINCT COALESCE(CONCAT(CONCAT(UL.name, '-'),ST.name),ST.name)");
+ } else if (Permission::userIsUnitAdministrator()) {
+ // else if this is a unit administrator, only display the groups in your unit
+ $oPatternListBox = & new PatternListBox($default->owl_groups_table, "name", "id", "fGroupID");
+ $oPatternListBox->setFromClause("INNER JOIN $default->owl_groups_units_table GUL on ST.id=GUL.group_id");
+ $oPatternListBox->setWhereClause("GUL.unit_id=" . User::getUnitID($_SESSION["userID"]));
+ }
+ if ($iSelectedValue != 0) {
+ $oPatternListBox->setSelectedValue($iSelectedValue);
+ }
+
+ return $oPatternListBox->render();
+ } else {
+ return " iId . "\">\n" .
+ $oGroup->getName();
+ }
+
+}
+
+
+function getFilterOptions($fGroupID = 0){
+ global $default;
+ $sToRender .= getGroupDisplay($aGroups, $fGroupID);
+ /*
+ $sToRender .= "\n";*/
+ return $sToRender ;
+}
+
+function getPageButtons($oThread){
+ global $default;
+
+ $sToRender .= "\n";
+ //$sToRender .= "getDocumentID() . "&fAddComment=1") . "\"> graphicsUrl/widgets/addcomment.gif\" border=\"0\" /> \n";
+ //$sToRender .= " graphicsUrl/widgets/back.gif\" onmouseover=\"this.style.cursor='hand'\" onclick=\"javascript: history.go(-1);\" />\n";
+
+ return $sToRender ;
+}
+
+// If there are no threads to view for a document
+function getViewFailPage($sMessage)
+{
+ global $default;
+
+ if (strlen($sMessage)>0){
+ $sToRender = $sMessage;
+ }
+ else $sToRender = "Current document has no discussion. Press the ADD button to start a discussion.";
+
+ return $sToRender;
+}
+
+/**
+ * Page to create a new thread
+ *
+ * @param $fDocumentID -> a valid document ID
+ */
+function getNewThreadOption($fDocumentID) {
+ global $default;
+
+ $sToRender .= "Would you like to create a new Discussion thread for this document?";
+ $sToRender .= " ";
+ $sToRender .= " graphicsUrl/widgets/new.gif\" border=\"0\"> ";
+ $sToRender .= " graphicsUrl/widgets/cancel.gif\" border=\"0\"> ";
+
+ return $sToRender;
+}
+
+/**
+ * Renders the heading for the page
+ *
+ * @param $sHeading -> text heading for the page
+ */
+function renderHeading1($sHeading) {
+ global $default;
+
+ $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"])));
+ $sColor = $default->siteMap->getSectionColour($sSectionName, "th");
+ $sToRender = "\n";
+ $sToRender .= "$sHeading \n";
+ $sToRender .= " \n";
+ $sToRender .= " \n";
+ $sToRender .= "
\n";
+ return $sToRender;
+}
+
+/**
+ * Renders the path for the document
+ *
+ * @param $fDocumentID -> a valid document ID
+ */
+function renderDocumentPath($iDocumentID) {
+ global $default;
+
+ $oDocument = & Document::get($iDocumentID);
+ $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"])));
+ $sTDBGColour = $default->siteMap->getSectionColour($sSectionName, "td");
+ $sDocumentPath = displayFolderPathLink(Folder::getFolderPathAsArray($oDocument->getFolderID()), Folder::getFolderPathNamesAsArray($oDocument->getFolderID()), "$default->rootUrl/control.php?action=browse") . " > ";
+ $sDocumentPath .= "rootUrl/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewBL.php?fDocumentID=" . $oDocument->getID() . "&fForInlineView=1\">" . $oDocument->getName() . " ";
+ return "\n";
+}
+
+/**
+ * Views the list of comments for a document
+ * Prints out 1 comment
+ * User needs to call this function many times to list all comments
+ *
+ * @param $iNum -> its the iterative index of the current comment
+ * @param $iThread -> a valid Thread Object
+ * @param $oComment -> a valid Comment Object
+ * @param $oUser -> a valid User Object (Logged in user)
+ */
+function getViewComment($iNum,$oThread,$oComment,$oUser) {
+ global $default;
+
+ $iSubjectChars = 59;
+ // If iNum is odd then highlight it
+ if (($iNum%2) == 1) $BGcolor = "#F5F6EE";
+ if (($iNum%2) == 0) $UserBGcolor = "#F5F6EE";
+
+ // If the Subject string is too long
+ if (strlen($oComment->getSubject())>$iSubjectChars ) $dotdot = " ...";
+ if (strlen($oUser->getUserName())> 13 ) $Userdotdot = " ...";
+
+ // If this is the first Subject line then create a table
+ if ($iNum == 1) {
+ $sHeading = "Document Discussion Comments";
+
+ $sToRender .= renderHeading($sHeading );
+ $sToRender .= renderDocumentPath($oThread->getDocumentID());
+ $sToRender .= " \n";
+ $sToRender .= "\n\n";}
+ return $sToRender;
+}
+
+/**
+ * Views a single thread comment with its text body
+ *
+ * @param $iDocumentID -> a valid Document ID
+ * @param $oComment -> a valid Comment Object
+ * @param $oUser -> a valid User Object (Logged in user)
+ */
+function getCommentBody($oComment, $iDocumentID, $oUser) {
+ global $default;
+
+ $sHeading = "Document Comment";
+
+ $sToRender .= renderHeading($sHeading);
+ $sToRender .= renderDocumentPath($iDocumentID);
+
+ $sToRender .= "Author: " . $oUser->getUserName() . " \n";
+ $sToRender .= "\n";
+ $sToRender .= "getID()) . "\"> graphicsUrl/widgets/reply.gif\" border=\"0\" /> ";
+ $sToRender .= " graphicsUrl/widgets/back.gif\" onmouseover=\"this.style.cursor='hand'\" onclick=\"javascript: history.go(-1);\" > \n";
+ $sToRender .= "Subject: ";
+ $sToRender .= "" . $oComment->getSubject() . " ";
+ $sToRender .= " Date: " . $oComment->getDate() . " ";
+ $sToRender .= " ";
+ $sToRender .= urldecode(str_replace("%0D%0A"," ",str_replace("+", " ",$oComment->getBody()))); // Div Views as HTML
+ $sToRender .= "
";
+
+ $sToRender .= "
";
+
+ return $sToRender;
+}
+
+?>
\ No newline at end of file
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/removeDocTypeUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/removeDocTypeUI.inc
index b68a610..f4ef350 100644
--- a/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/removeDocTypeUI.inc
+++ b/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/removeDocTypeUI.inc
@@ -54,7 +54,7 @@ function getDeleteSuccessPage() {
$sToRender .= " \n";
$sToRender .= " \n";
$sToRender .= "\n";
- $sToRender .= "rootUrl/control.php?action=removeDocType\"> graphicsUrl/widgets/back.gif\" border = \"0\" /> \n";
+ $sToRender .= "rootUrl/control.php?action=listDocTypes\"> graphicsUrl/widgets/back.gif\" border = \"0\" /> \n";
$sToRender .= " \n";
$sToRender .= "\n";
@@ -76,7 +76,7 @@ function getDeleteFailPage() {
$sToRender .= "Please Ensure that the Document Type has been Removed from ALL Folders \n";
$sToRender .= " \n";
$sToRender .= "\n";
- $sToRender .= "rootUrl/control.php?action=removeDocType\"> graphicsUrl/widgets/back.gif\" border = \"0\" /> \n";
+ $sToRender .= "rootUrl/control.php?action=listDocTypes\"> graphicsUrl/widgets/back.gif\" border = \"0\" /> \n";
$sToRender .= "\n";
return $sToRender;
@@ -105,7 +105,7 @@ function getDeleteButton($oDocType) {
global $default;
if (isset($oDocType)) {
return " graphicsUrl/widgets/delete.gif\" value=\"submit\" border=\"0\"/> \n".
- "rootUrl/control.php?action=removeDocType\"> graphicsUrl/widgets/cancel.gif\" border = \"0\" /> \n";
+ "rootUrl/control.php?action=listDocTypes\"> graphicsUrl/widgets/cancel.gif\" border = \"0\" /> \n";
}
}
?>