Commit 02619b235ed5c0ad6691b14d9fb0d3832d14b659

Authored by michael
1 parent cafd58d5

completed archive settings pages


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@1918 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/addArchiveSettingsBL.php
@@ -3,10 +3,7 @@ @@ -3,10 +3,7 @@
3 require_once("../../../../../config/dmsDefaults.php"); 3 require_once("../../../../../config/dmsDefaults.php");
4 require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc"); 4 require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc");
5 5
6 -require_once("$default->fileSystemRoot/lib/archiving/DocumentArchiving.inc");  
7 -require_once("$default->fileSystemRoot/lib/archiving/ArchivingUtilisationSettings.inc");  
8 -require_once("$default->fileSystemRoot/lib/archiving/ArchivingDateSettings.inc");  
9 -require_once("$default->fileSystemRoot/lib/archiving/TimePeriod.inc"); 6 +require_once("$default->fileSystemRoot/lib/archiving/DocumentArchiveSettingsFactory.inc");
10 7
11 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMainPage.inc"); 8 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMainPage.inc");
12 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); 9 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
@@ -27,70 +24,16 @@ require_once("$default->uiDirectory/documentmanagement/archiving/archiveSettings @@ -27,70 +24,16 @@ require_once("$default->uiDirectory/documentmanagement/archiving/archiveSettings
27 * @package presentation.lookAndFeel.knowledgeTree.documentmanagement 24 * @package presentation.lookAndFeel.knowledgeTree.documentmanagement
28 */ 25 */
29 26
30 -class DocumentArchiveSettingsFactory {  
31 - function create($iDocumentID, $iArchivingTypeID, $dExpirationDate, $iDocumentTransactionID, $iTimeUnitID, $iUnits) {  
32 - global $default;  
33 - $sArchivingType = lookupName($default->owl_archiving_type_lookup_table, $iArchivingTypeID);  
34 -  
35 - // search for an existing time period id  
36 - $aTimePeriod = TimePeriod::getList("time_unit_id=$iTimeUnitID AND units=$iUnits");  
37 - if (count($aTimePeriod) > 0) {  
38 - $iTimePeriodID = $aTimePeriod[0]->getID();  
39 - } else {  
40 - // create it  
41 - $oTimePeriod = new TimePeriod($iTimeUnitID, $iUnits);  
42 - if ($oTimePeriod->create()) {  
43 - $iTimePeriodID = $oTimePeriod->getID();  
44 - } else {  
45 - $default->log->error("couldn't create time period- " . arrayToString($oTimePeriod));  
46 - return false;  
47 - }  
48 - }  
49 -  
50 - // construction strings  
51 - switch ($sArchivingType) {  
52 - case "Date" : $sSearchConstruction = "\$aArchiveSettings = ArchivingDateSettings::getList(\"expiration_date='$dExpirationDate' AND time_period_id=$iTimePeriodID\");";  
53 - $sConstruction = "\$oArchiveSettings = new ArchivingDateSettings($dExpirationDate, $iTimePeriodID);";  
54 - break;  
55 - case "Utilisation" : $sSearchConstruction = "\$aArchiveSettings = ArchivingUtilisationSettings::getList(\"document_transaction_id=$iDocumentTransactionID AND time_period_id=$iTimePeriodID\");";  
56 - $sConstruction = "\$oArchiveSettings = new ArchivingUtilisationSettings($iDocumentTransactionID, $iTimePeriodID);";  
57 - break;  
58 - }  
59 -  
60 - // search for the settings first  
61 - eval($sSearchConstruction);  
62 - if (count($aArchiveSettings) > 0) {  
63 - $iArchiveSettingsID = $aArchiveSettings[0]->getID();  
64 - } else {  
65 - // create them  
66 - eval($sConstruction);  
67 - if ($oArchiveSettings->create()) {  
68 - $iArchiveSettingsID = $oArchiveSettings->getID();  
69 - } else {  
70 - $default->log->error("couldn't create archive settings- " . arrayToString($oArchiveSettings));  
71 - return false;  
72 - }  
73 -  
74 - // now link to the documents  
75 - $oDocumentArchiving = new DocumentArchiving($iDocumentID, $iArchivingTypeID, $iArchiveSettingsID);  
76 - if ($oDocumentArchiving->create()) {  
77 - return true;  
78 - } else {  
79 - $default->log->error("couldn't create document archiving - " . arrayToString($oDocumentArchiving));  
80 - return false;  
81 - }  
82 - }  
83 - }  
84 -}  
85 -  
86 if (checkSession()) { 27 if (checkSession()) {
87 global $default; 28 global $default;
88 29
89 // instantiate my content pattern 30 // instantiate my content pattern
90 $oContent = new PatternCustom(); 31 $oContent = new PatternCustom();
91 - $default->log->info(arrayToString($_REQUEST)); 32 +
92 if ($fStore) { 33 if ($fStore) {
93 - if (DocumentArchiveSettingsFactory::create($fDocumentID, $fArchivingTypeID, $fExpirationDate, $fDocumentTransactionID, $fTimeUnitID, $fUnits)) { 34 + $oDASFactory = new DocumentArchiveSettingsFactory($fArchivingTypeID);
  35 +
  36 + if ($oDASFactory->create($fDocumentID, $fExpirationDate, $fDocumentTransactionID, $fTimeUnitID, $fUnits)) {
94 // created, redirect to view page 37 // created, redirect to view page
95 redirect("$default->rootUrl/control.php?action=viewDocument&fDocumentID=$fDocumentID"); 38 redirect("$default->rootUrl/control.php?action=viewDocument&fDocumentID=$fDocumentID");
96 } else { 39 } else {
@@ -102,10 +45,9 @@ if (checkSession()) { @@ -102,10 +45,9 @@ if (checkSession()) {
102 45
103 } elseif (isset($fArchivingTypeID)) { 46 } elseif (isset($fArchivingTypeID)) {
104 // the archiving type has been chosen, so display the correct form 47 // the archiving type has been chosen, so display the correct form
105 - // display the edit/add page  
106 $oContent->setHtml(renderAddArchiveSettingsPage($fArchivingTypeID)); 48 $oContent->setHtml(renderAddArchiveSettingsPage($fArchivingTypeID));
107 } else { 49 } else {
108 - // display the choose archiving type page 50 + // display the select archiving type page
109 $oContent->setHtml(renderAddArchiveSettingsPage(null)); 51 $oContent->setHtml(renderAddArchiveSettingsPage(null));
110 } 52 }
111 53
presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/archiveSettingsUI.inc
@@ -40,10 +40,12 @@ function renderErrorMessage($sErrorMessage) { @@ -40,10 +40,12 @@ function renderErrorMessage($sErrorMessage) {
40 return $sToRender; 40 return $sToRender;
41 } 41 }
42 42
43 -  
44 -function renderDocumentTransactionListBox() { 43 +function renderDocumentTransactionListBox($iDocumentTransactionID) {
45 global $default; 44 global $default;
46 $oPatternListBox = & new PatternListBox($default->owl_transaction_types_table, "name", "id", "fDocumentTransactionID"); 45 $oPatternListBox = & new PatternListBox($default->owl_transaction_types_table, "name", "id", "fDocumentTransactionID");
  46 + if (isset($iDocumentTransactionID)) {
  47 + $oPatternListBox->setSelectedValue($iDocumentTransactionID);
  48 + }
47 return $oPatternListBox->render(); 49 return $oPatternListBox->render();
48 } 50 }
49 51
@@ -55,9 +57,12 @@ function renderArchivingTypeListBox() { @@ -55,9 +57,12 @@ function renderArchivingTypeListBox() {
55 return $oPatternListBox->render(); 57 return $oPatternListBox->render();
56 } 58 }
57 59
58 -function renderTimeUnitsListBox($sVariableName) { 60 +function renderTimeUnitsListBox($iTimeUnitID) {
59 global $default; 61 global $default;
60 - $oPatternListBox = & new PatternListBox($default->owl_time_unit_lookup_table, "name", "id", $sVariableName); 62 + $oPatternListBox = & new PatternListBox($default->owl_time_unit_lookup_table, "name", "id", "fTimeUnitID");
  63 + if (isset($iTimeUnitID)) {
  64 + $oPatternListBox->setSelectedValue($iTimeUnitID);
  65 + }
61 return $oPatternListBox->render(); 66 return $oPatternListBox->render();
62 } 67 }
63 68
@@ -74,99 +79,155 @@ function renderChooseArchivingTypeForm() { @@ -74,99 +79,155 @@ function renderChooseArchivingTypeForm() {
74 return $sToRender; 79 return $sToRender;
75 } 80 }
76 81
  82 +function getDateArchivingJavascript() {
  83 + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";
  84 + $sToRender .= "function validateForm(theForm) {\n";
  85 + $sToRender .= "\tif (isBlank(theForm.fExpirationDate) && isBlank(theForm.fUnits) && isBlank(theForm.fTimeUnitID)) {\n";
  86 + $sToRender .= "\t\talert('You must specify an expiration date OR an expiration period');\n";
  87 + $sToRender .= "\t\treturn false;\n";
  88 + $sToRender .= "\t}\n";
  89 + // if expirationDate is not blank
  90 + // and either units or unit id are not blank
  91 + $sToRender .= "\tif (!isBlank(theForm.fExpirationDate) && (!isBlank(theForm.fUnits) || !isBlank(theForm.fTimeUnitID))) {\n";
  92 + $sToRender .= "\t\talert('You must specify EITHER an expiration date OR an expiration period');\n";
  93 + $sToRender .= "\t\treturn false;\n";
  94 + $sToRender .= "\t}\n";
  95 +
  96 + $sToRender .= "\tif (!isBlank(theForm.fUnits) || !isBlank(theForm.fTimeUnitID)) {\n";
  97 + $sToRender .= "\t\tif (!validNum(theForm.fUnits, 'Units', true) ) {\n";
  98 + $sToRender .= "\t\t\treturn false;\n";
  99 + $sToRender .= "\t\t}\n";
  100 + $sToRender .= "\t\tif (!validRequired(theForm.fTimeUnitID, 'Date Unit')) {\n";
  101 + $sToRender .= "\t\t\treturn false;\n";
  102 + $sToRender .= "\t\t}\n";
  103 + $sToRender .= "\t} else {\n";
  104 + $sToRender .= "\t\tif (isBlank(theForm.fExpirationDate)) {\n";
  105 + $sToRender .= "\t\t\tif (!validDate(theForm.fExpirationDate, 'Expiration Date', true)) {\n";
  106 + $sToRender .= "\t\t\t\treturn false;\n";
  107 + $sToRender .= "\t\t\t}\n";
  108 + $sToRender .= "\t\t}\n";
  109 + $sToRender .= "\t}\n";
  110 + $sToRender .= "\treturn true;\n";
  111 + $sToRender .= "}\n";
  112 + $sToRender .= "//-->\n</script>\n\n";
  113 + return $sToRender;
  114 +}
  115 +
  116 +function getUtilisationArchivingJavascript() {
  117 + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";
  118 + $sToRender .= "function validateForm(theForm) {\n";
  119 + $sToRender .= "\tif (!validRequired(theForm.fDocumentTransactionID,'Document Transaction')) {\n";
  120 + $sToRender .= "\t\treturn false;\n\t}\n";
  121 + $sToRender .= "\tif (!validNum(theForm.fUnits,'Units', true)) {\n";
  122 + $sToRender .= "\t\treturn false;\n\t}\n";
  123 + $sToRender .= "\tif (!validRequired(theForm.fTimeUnitID,'Date Unit')) {\n";
  124 + $sToRender .= "\t\treturn false;\n\t}\n";
  125 + $sToRender .= "return true;\n}\n";
  126 + $sToRender .= "//-->\n</script>\n\n";
  127 + return $sToRender;
  128 +}
  129 +
  130 +function renderTimePeriod($sHeading, $oTimePeriod = null) {
  131 + global $default;
  132 + if (strlen($sHeading) > 0) {
  133 + $sToRender .= "<tr><td colspan=\"3\">$sHeading:</td></tr>";
  134 + }
  135 + $sToRender .= "<tr valign=\"middle\"><td><input type=\"text\" size=\"11\" name=\"fUnits\" value=\"" . ($oTimePeriod ? $oTimePeriod->getUnits() : "") . "\">";
  136 + $sToRender .= "&nbsp;&nbsp;" . renderTimeUnitsListBox( ($oTimePeriod ? $oTimePeriod->getTimeUnitID() : null) );
  137 + $sToRender .= "&nbsp;&nbsp;<a href=\"javascript:void();\" onclick=\"document.MainForm.fUnits.value='';document.MainForm.fTimeUnitID.value='';\"><img src=\"$default->graphicsUrl/widgets/clear.gif\" border=\"0\"></a></td></tr>";
  138 + return $sToRender;
  139 +}
  140 +
77 /** 141 /**
78 * Displays the edit archive settings form 142 * Displays the edit archive settings form
79 * 143 *
80 - * @param ArchiveSettings the archive settings to modify 144 + * @param integer the archive settings to modify, null display an add form
81 */ 145 */
82 -function renderAddArchiveSettingsForm($iArchivingTypeID) { 146 +function renderArchiveSettingsForm($oDocumentArchiving = null) {
83 global $default, $fDocumentID; 147 global $default, $fDocumentID;
84 148
  149 + if (is_a($oDocumentArchiving, "DocumentArchiving")) {
  150 + $sToRender .= "(in order to change the archiving type for this document, click the 'Remove' button and add new archiving settings)";
  151 + $iArchivingTypeID = $oDocumentArchiving->getArchivingTypeID();
  152 + } else {
  153 + $iArchivingTypeID = (integer)$oDocumentArchiving;
  154 + unset($oDocumentArchiving);
  155 + }
85 $sArchivingType = lookupName($default->owl_archiving_type_lookup_table, $iArchivingTypeID); 156 $sArchivingType = lookupName($default->owl_archiving_type_lookup_table, $iArchivingTypeID);
86 -  
87 - $sToRender = "<table border=\"0\">";  
88 - // TODO: form instructions and calendar control integration  
89 - if ($sArchivingType == "Date") {  
90 - $sToRender .= "<tr><th colspan=\"2\">Archive By Date</th></tr>";  
91 - $sToRender .= "<tr><td>Expiration Date:</td></tr>";  
92 - $sToRender .= "<tr><td><input type=\"text\" name=\"fExpirationDate\" size=\"11\"></td><td align=\"right\"><a href=\"javascript: void(0);\" onmouseover=\"if (timeoutId) clearTimeout(timeoutId);window.status='Show Calendar';return true;\" onmouseout=\"if (timeoutDelay) calendarTimeout();window.status='';\" onclick=\"g_Calendar.show(event,'MainForm.fExpirationDate', false, 'yyyy-mm-dd', new Date()); return false;\"><img src=\"$default->graphicsUrl/calendar/calendar.gif\" name=\"imgCalendar\" width=\"34\" height=\"21\" border=\"0\" alt=\"\"></a></td></tr>";  
93 - $sToRender .= "<tr><td colspan=\"3\">Expiration Period:</td></tr>";  
94 - $sToRender .= "<tr><td><input type=\"text\" size=\"11\" name=\"fUnits\"></td>";  
95 - $sToRender .= "<td>" . renderTimeUnitsListBox("fTimeUnitID") . "</td></tr>";  
96 -  
97 - $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";  
98 - $sToRender .= "function validateForm(theForm) {\n";  
99 - $sToRender .= "\tif (isBlank(theForm.fExpirationDate) && isBlank(theForm.fUnits) && isBlank(theForm.fTimeUnitID)) {\n";  
100 - $sToRender .= "\t\talert('You must specify an expiration date OR an expiration period');\n";  
101 - $sToRender .= "\t\treturn false;\n";  
102 - $sToRender .= "\t}\n";  
103 -  
104 - $sToRender .= "\tif (!isBlank(theForm.fUnits) || !isBlank(theForm.fTimeUnitID)) {\n";  
105 - $sToRender .= "\t\tif (!validNum(theForm.fUnits, 'Units', true) ) {\n";  
106 - $sToRender .= "\t\t\treturn false;\n";  
107 - $sToRender .= "\t\t}\n";  
108 - $sToRender .= "\t\tif (!validRequired(theForm.fTimeUnitID, 'Date Unit')) {\n";  
109 - $sToRender .= "\t\t\treturn false;\n";  
110 - $sToRender .= "\t\t}\n";  
111 - $sToRender .= "\t} else {\n";  
112 - $sToRender .= "\t\tif (isBlank(theForm.fExpirationDate)) {\n";  
113 - $sToRender .= "\t\t\talert('Please enter a value for the \"Expiration Date\" field');\n";  
114 - $sToRender .= "\t\t\ttheForm.fExpirationDate.focus();\n\t\treturn false;\n";  
115 - $sToRender .= "\t\t}\n";  
116 - $sToRender .= "\t}\n";  
117 - $sToRender .= "\t\treturn true;\n";  
118 - $sToRender .= "}\n";  
119 - $sToRender .= "//-->\n</script>\n\n";  
120 - 157 +
  158 + $sToRender .= "<table border=\"0\">";
  159 + // TODO: calendar control integration
  160 + switch ($sArchivingType) {
  161 + case "Date" :
  162 +
  163 + if ($oDocumentArchiving) {
  164 + // get date settings from document archiving
  165 + $oDateArchivingSettings = ArchivingDateSettings::get($oDocumentArchiving->getArchivingSettingsID());
  166 + }
  167 + $sToRender .= "<tr><th align=\"left\" colspan=\"2\">Archive By Date</th></tr>";
  168 + $sToRender .= "<tr><td>Expiration Date:</td></tr>";
  169 + $sToRender .= "<tr><td valign=bottom><input type=\"text\" name=\"fExpirationDate\" size=\"11\" " . ($oDateArchivingSettings ? "value=\"" . ($oDateArchivingSettings->getExpirationDate() == "0000-00-00" ? "" : $oDateArchivingSettings->getExpirationDate()) : "") . "\">";
  170 + $sToRender .= "&nbsp;&nbsp;<a href=\"javascript:show_calendar('MainForm.fExpirationDate',null,null,'YYYY-MM-DD');\" onmouseover=\"window.status='Date Picker';return true;\" onmouseout=\"window.status='';return true;\"><img src=\"$default->graphicsUrl/calendar/calendar.gif\" name=\"imgCalendar\" width=\"34\" height=\"21\" border=\"0\" alt=\"\"></a>";
  171 + $sToRender .= "&nbsp;&nbsp;<a href=\"javascript:void();\" onclick=\"document.MainForm.fExpirationDate.value=''\"><img src=\"$default->graphicsUrl/widgets/clear.gif\" border=\"0\"></a></td></tr>";
  172 +
  173 + if ($oDateArchivingSettings) {
  174 + $oTimePeriod = TimePeriod::get($oDateArchivingSettings->getTimePeriodID());
  175 + $sToRender .= renderTimePeriod("Expires after", $oTimePeriod);
  176 + } else {
  177 + $sToRender .= renderTimePeriod("Expires after");
  178 + }
  179 + $sToRender .= getDateArchivingJavascript();
  180 + break;
  181 + case "Utilisation" :
  182 + if ($oDocumentArchiving) {
  183 + // get date settings from document archiving
  184 + $oUtilisationArchivingSettings = ArchivingUtilisationSettings::get($oDocumentArchiving->getArchivingSettingsID());
  185 + $iDocumentTransactionID = $oUtilisationArchivingSettings->getDocumentTransactionID();
  186 + }
  187 +
  188 + $sToRender .= "<tr><th align=\"left\" colspan=\"2\">Archive By Utilisation</th></tr>";
  189 + $sToRender .= "<tr><td>Document Transaction:</td><td>" .
  190 + renderDocumentTransactionListBox($iDocumentTransactionID) .
  191 + "</td></tr>";
121 192
122 - } elseif ($sArchivingType == "Utilisation") {  
123 - $sToRender .= "<tr><th colspan=\"2\">Archive By Utilisation</th></tr>";  
124 - $sToRender .= "<tr><td>Document Transaction:</td><td>" . renderDocumentTransactionListBox() . "</td></tr>";  
125 - $sToRender .= "<tr><td>Units</td><td colspan=\"2\"><input type=\"text\" size=\"11\" name=\"fUnits\">" . renderTimeUnitsListBox("fTimeUnitID") . "</td></tr>";  
126 -  
127 - $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";  
128 - $sToRender .= "function validateForm(theForm) {\n";  
129 - $sToRender .= "\tif (!validRequired(theForm.fDocumentTransactionID,'Document Transaction')) {\n";  
130 - $sToRender .= "\t\treturn false;\n\t}\n";  
131 - $sToRender .= "\tif (!validNum(theForm.fUnits,'Units', true)) {\n";  
132 - $sToRender .= "\t\treturn false;\n\t}\n";  
133 - $sToRender .= "\tif (!validRequired(theForm.fTimeUnitID,'Date Unit')) {\n";  
134 - $sToRender .= "\t\treturn false;\n\t}\n";  
135 - $sToRender .= "return true;\n}\n";  
136 - $sToRender .= "//-->\n</script>\n\n"; 193 + if ($oUtilisationArchivingSettings) {
  194 + $oTimePeriod = TimePeriod::get($oUtilisationArchivingSettings->getTimePeriodID());
  195 + $sToRender .= renderTimePeriod("Time since last transaction", $oTimePeriod);
  196 + } else {
  197 + $sToRender .= renderTimePeriod("Time since last transaction");
  198 + }
  199 + $sToRender .= getUtilisationArchivingJavascript();
  200 + break;
137 } 201 }
138 202
139 // hidden archive settings references 203 // hidden archive settings references
140 $sToRender .= "<input type=\"hidden\" name=\"fDocumentID\" value=\"$fDocumentID\">\n"; 204 $sToRender .= "<input type=\"hidden\" name=\"fDocumentID\" value=\"$fDocumentID\">\n";
141 $sToRender .= "<input type=\"hidden\" name=\"fArchivingTypeID\" value=\"$iArchivingTypeID\">\n"; 205 $sToRender .= "<input type=\"hidden\" name=\"fArchivingTypeID\" value=\"$iArchivingTypeID\">\n";
142 - $sToRender .= "<input type=\"hidden\" name=\"fStore\" value=\"1\">\n";  
143 - $sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/submit.gif\" border=\"0\">\n";  
144 - $sToRender .= $sJavaScript;  
145 - $sToRender .= "<a href=\"$default->rootUrl/control.php?action=addDocumentArchiveSettings&fDocumentID=$fDocumentID\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\" /></a></td></tr>\n"; 206 + $sToRender .= "<input type=\"hidden\" name=\"fStore\" value=\"1\">\n";
  207 + if ($oDocumentArchiving) {
  208 + $sToRender .= "<tr><td colspan=\"2\"><input type=\"image\" src=\"$default->graphicsUrl/widgets/update.gif\" border=\"0\">\n";
  209 + $sToRender .= "<a href=\"$default->rootUrl/control.php?action=modifyDocumentArchiveSettings&fDocumentID=$fDocumentID&fDelete=1\"><img src=\"$default->graphicsUrl/widgets/remove.gif\" border=\"0\" /></a>\n";
  210 + } else {
  211 + $sToRender .= "<tr><td colspan=\"2\"><input type=\"image\" src=\"$default->graphicsUrl/widgets/submit.gif\" border=\"0\">\n";
  212 + }
  213 + $sToRender .= "<a href=\"$default->rootUrl/control.php?action=viewDocument&fDocumentID=$fDocumentID\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\" /></a></td></tr>\n";
146 $sToRender .= "</table>"; 214 $sToRender .= "</table>";
147 215
148 -  
149 -  
150 return $sToRender; 216 return $sToRender;
151 } 217 }
152 218
153 /** 219 /**
154 * Displays the edit document archive settings page 220 * Displays the edit document archive settings page
155 */ 221 */
156 -function renderEditArchiveSettingsPage($oArchiveSettings, $sErrorMessage = "") { 222 +function renderEditArchiveSettingsPage($oDocumentArchiving, $sErrorMessage = "") {
157 global $default; 223 global $default;
158 224
159 - //$sToRender .= "<table width=\"600\">" . renderHeading("Edit Document Archive Settings") . "</table>";  
160 $sToRender .= renderHeading("Edit Document Archive Settings"); 225 $sToRender .= renderHeading("Edit Document Archive Settings");
161 if (strlen($sErrorMessage) > 0) { 226 if (strlen($sErrorMessage) > 0) {
162 $sToRender .= renderErrorMessage($sErrorMessage); 227 $sToRender .= renderErrorMessage($sErrorMessage);
163 } 228 }
164 $sToRender .= "<table>\n"; 229 $sToRender .= "<table>\n";
165 - if ($oArchiveSettings) {  
166 - $sToRender .= renderEditArchiveSettingsForm($oArchiveSettings);  
167 - } else {  
168 - $sToRender .= renderAddArchiveSettingsForm($oArchiveSettings);  
169 - } 230 + $sToRender .= renderArchiveSettingsForm($oDocumentArchiving);
170 $sToRender .= "</table>\n"; 231 $sToRender .= "</table>\n";
171 return $sToRender; 232 return $sToRender;
172 } 233 }
@@ -183,7 +244,7 @@ function renderAddArchiveSettingsPage($iArchivingTypeID, $sErrorMessage = &quot;&quot;) { @@ -183,7 +244,7 @@ function renderAddArchiveSettingsPage($iArchivingTypeID, $sErrorMessage = &quot;&quot;) {
183 } 244 }
184 $sToRender .= "<table>\n"; 245 $sToRender .= "<table>\n";
185 if ($iArchivingTypeID) { 246 if ($iArchivingTypeID) {
186 - $sToRender .= renderAddArchiveSettingsForm($iArchivingTypeID); 247 + $sToRender .= renderArchiveSettingsForm($iArchivingTypeID);
187 } else { 248 } else {
188 $sToRender .= renderChooseArchivingTypeForm(); 249 $sToRender .= renderChooseArchivingTypeForm();
189 } 250 }
presentation/lookAndFeel/knowledgeTree/documentmanagement/archiving/modifyArchiveSettingsBL.php
@@ -2,7 +2,9 @@ @@ -2,7 +2,9 @@
2 2
3 require_once("../../../../../config/dmsDefaults.php"); 3 require_once("../../../../../config/dmsDefaults.php");
4 require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc"); 4 require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc");
5 -require_once("$default->fileSystemRoot/lib/documentmanagement/ArchiveSettings.inc"); 5 +
  6 +require_once("$default->fileSystemRoot/lib/archiving/DocumentArchiveSettingsFactory.inc");
  7 +
6 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMainPage.inc"); 8 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMainPage.inc");
7 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); 9 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
8 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc"); 10 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc");
@@ -27,34 +29,38 @@ if (checkSession()) { @@ -27,34 +29,38 @@ if (checkSession()) {
27 29
28 // instantiate my content pattern 30 // instantiate my content pattern
29 $oContent = new PatternCustom(); 31 $oContent = new PatternCustom();
  32 + $default->log->info(arrayToString($_REQUEST));
30 if ($fDocumentID) { 33 if ($fDocumentID) {
31 - $oArchiveSettings = ArchiveSettings::getFromDocumentID($fDocumentID);  
32 - if ($fStore) {  
33 - // we're updating the settings- check the parameters  
34 - if (isset($fExpirationDate) || isset($fExpirationUnits) && isset($fExpirationDatePart)) {  
35 - // setting archiving by date  
36 - // update the object  
37 - if ($fExpirationDate) {  
38 - $oArchiveSettings->setExpirationDate($fExpirationDate);  
39 - } else if ($fExpirationUnits && $fExpirationDatePart) {  
40 - $oArchiveSettings->setExpirationDate(time() + $fExpirationUnits*$oArchiveSettings->aDateUnits[$fExpirationDatePart]);  
41 - }  
42 - } else if (isset($fDocumentTransactionID) && isset($fUtilisationUnits) && isset($fUtilisationDatePart)) {  
43 - // setting by utilisation  
44 -  
45 - // update the object  
46 - $oArchiveSettings->setDocumentTransactionID($fDocumentTransactionID);  
47 - $oArchiveSettings->setUtilisationThreshold($fUtilisationUnits*$oArchiveSettings->aDateUnits[$fUtilisationDatePart]);  
48 - } else {  
49 - // all params not present, so display an error message  
50 - $oContent->setHtml(renderEditArchiveSettingsPage($oArchiveSettings, "Please complete the form before submitting."));  
51 - }  
52 - } else {  
53 - // display the edit page  
54 - $oContent->setHtml(renderEditArchiveSettingsPage($oArchiveSettings));  
55 - } 34 + // retrieve the appropriate settings given the document id
  35 + $oDocumentArchiving = DocumentArchiving::getFromDocumentID($fDocumentID);
  36 + if ($oDocumentArchiving) {
  37 + if ($fStore) {
  38 + $oDASFactory = new DocumentArchiveSettingsFactory($oDocumentArchiving->getArchivingTypeID());
  39 +
  40 + if ($oDASFactory->update($oDocumentArchiving, $fExpirationDate, $fDocumentTransactionID, $fTimeUnitID, $fUnits)) {
  41 + $default->log->info("modifyArchiveSettingsBL.php successfully updated archive settings (documentID=$fDocumentID)");
  42 + // created, redirect to view page
  43 + redirect("$default->rootUrl/control.php?action=viewDocument&fDocumentID=$fDocumentID");
  44 + } else {
  45 + $default->log->error("modifyArchiveSettingsBL.php error updating archive settings (documentID=$fDocumentID)");
  46 + }
  47 + } elseif ($fDelete) {
  48 + if ($oDocumentArchiving->delete()) {
  49 + $default->log->info("modifyArchiveSettingsBL.php successfully deleted archive settings (documentID=$fDocumentID)");
  50 + redirect("$default->rootUrl/control.php?action=viewDocument&fDocumentID=$fDocumentID");
  51 + } else {
  52 + $default->log->error("modifyArchiveSettingsBL.php error deleting archive settings (documentID=$fDocumentID)");
  53 + }
  54 + } else {
  55 + // display the edit page
  56 + $oContent->setHtml(renderEditArchiveSettingsPage($oDocumentArchiving));
  57 + }
  58 + } else {
  59 + // no archiving settings for this document
  60 + $oContent->setHtml(renderEditArchiveSettingsPage(null, "No document has been selected."));
  61 + }
56 } else { 62 } else {
57 - // document id missing 63 + // document id missing
58 $oContent->setHtml(renderEditArchiveSettingsPage(null, "No document has been selected.")); 64 $oContent->setHtml(renderEditArchiveSettingsPage(null, "No document has been selected."));
59 } 65 }
60 66