diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewBL.php b/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewBL.php
index 9733f13..f9e3b37 100644
--- a/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewBL.php
+++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewBL.php
@@ -50,7 +50,9 @@ require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc");
require_once("$default->fileSystemRoot/lib/documentmanagement/DependantDocumentInstance.inc");
require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentCollaboration.inc");
+require_once("$default->fileSystemRoot/lib/archiving/ArchivingSettings.inc");
require_once("$default->fileSystemRoot/lib/archiving/DocumentArchiving.inc");
+require_once("$default->fileSystemRoot/lib/archiving/TimePeriod.inc");
require_once("$default->fileSystemRoot/lib/foldermanagement/FolderCollaboration.inc");
require_once("$default->fileSystemRoot/lib/foldermanagement/FolderUserRole.inc");
diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewUI.inc b/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewUI.inc
index 408ce8e..08c03ce 100644
--- a/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewUI.inc
+++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewUI.inc
@@ -139,44 +139,40 @@ function renderTypeSpecificMetaData($oDocument, $bEditable) {
$sToRender .= "\t\n";
return $sToRender;
}
-
-function renderEditableDocumentArchiveSettings($oDocument) {
+function renderDocumentArchiveSettingsDetails($oDocument, $bEditable) {
global $default;
- $sQuery = "SELECT d.id, atl.name, 'Edit' AS edit FROM $default->document_archiving_table AS da " .
- "INNER JOIN $default->archiving_settings_table AS ast ON da.archiving_settings_id=ast.id " .
- "INNER JOIN $default->archiving_type_lookup_table AS atl ON ast.archiving_type_id=atl.id " .
- "INNER JOIN $default->documents_table AS d ON da.document_id=d.id " .
- "WHERE d.id = " . $oDocument->getID();
-
- $aColumns = array("name", "edit");
- $aColumnHeaders = array("Archiving Type");
- $aColumnTypes = array(1,3);
- $aDBColumnArray = array("id");
- $aQueryStringVariableNames = array("fDocumentID");
- $aLinkURLs = array(1=>"$default->rootUrl/control.php?action=modifyDocumentArchiveSettings");
- $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "500", $aLinkURLs ,$aDBColumnArray,$aQueryStringVariableNames);
- $oPatternTableSqlQuery->setTableHeading("Archiving Settings");
- $oPatternTableSqlQuery->setEmptyTableMessage("No archiving settings");
- $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
- return $oPatternTableSqlQuery->render();
-}
-
-function renderNonEditableDocumentArchiveSettings($oDocument) {
- global $default;
- $sQuery = "SELECT d.id, atl.name FROM $default->document_archiving_table AS da " .
- "INNER JOIN $default->archiving_settings_table AS ast ON da.archiving_settings_id=ast.id " .
- "INNER JOIN $default->archiving_type_lookup_table AS atl ON ast.archiving_type_id=atl.id " .
- "INNER JOIN $default->documents_table AS d ON da.document_id=d.id " .
- "WHERE d.id = " . $oDocument->getID();
-
- $aColumns = array("name");
- $aColumnHeaders = array("Archiving Type");
- $aColumnTypes = array(1);
- $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "500", $aLinkURLs ,$aDBColumnArray,$aQueryStringVariableNames);
- $oPatternTableSqlQuery->setTableHeading("Archiving Settings");
- $oPatternTableSqlQuery->setEmptyTableMessage("No archiving settings");
- $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
- return $oPatternTableSqlQuery->render();
+
+ // retrieve the appropriate settings given the document id
+ $oDocumentArchiving = DocumentArchiving::getFromDocumentID($oDocument->getID());
+ // retrieve the settings
+ $oArchiveSettings = ArchivingSettings::get($oDocumentArchiving->getArchivingSettingsID());
+ // switch on archiving type
+ $sArchivingType = lookupName($default->archiving_type_lookup_table, $oArchiveSettings->getArchivingTypeID());
+ $oTimePeriod = TimePeriod::get($oArchiveSettings->getTimePeriodID());
+
+ switch ($sArchivingType) {
+ case "Date" :
+ $sDisplayText = "Expiration Date: " . $oArchiveSettings->getExpirationDate();
+ if ($oTimePeriod) {
+ $sDisplayText .= "
Expires after " . $oTimePeriod->getUnits() . " ";
+ $sDisplayText .= lookupName($default->time_unit_lookup_table, $oTimePeriod->getTimeUnitID()) . " from document creation date";
+ }
+ break;
+ case "Utilisation" :
+ $sDisplayText .= "Archive document " . $oTimePeriod->getUnits() . " ";
+ $sDisplayText .= lookupName($default->time_unit_lookup_table, $oTimePeriod->getTimeUnitID());
+ $sDisplayText .= " after the last " . lookupName($default->transaction_types_table, $oArchiveSettings->getDocumentTransactionID()) . " transaction";
+ break;
+ }
+
+ $sToRender = "
";
+ $sToRender .= "Archiving Settings";
+ $sToRender .= "| Archiving Type: $sArchivingType | ";
+ $sToRender .= "";
+ $sToRender .= "| $sDisplayText | " . ($bEditable ? "" . generateControllerLink("modifyDocumentArchiveSettings", "fDocumentID=" . $oDocument->getID(), "Edit") . " | " : "");
+ $sToRender .= "
";
+ $sToRender .= "
";
+ return $sToRender;
}
function renderDocumentArchiveSettings($oDocument, $bEditable) {
@@ -184,7 +180,8 @@ function renderDocumentArchiveSettings($oDocument, $bEditable) {
$sToRender .= "\t\n";
$sToRender .= "\t\n";
- $sToRender .= "\t\t| " . ($bEditable ? renderEditableDocumentArchiveSettings($oDocument) : renderNonEditableDocumentArchiveSettings($oDocument)) . " | \n";
+
+ $sToRender .= "\t\t" . renderDocumentArchiveSettingsDetails($oDocument, $bEditable) . " | \n";
$sToRender .= "\t
";
if ($bEditable) {
$sToRender .= "\t\n";