Commit 1ced84605c5e44f11eefbe203a8f69822e111cad

Authored by nbm
1 parent 442fb8fd

Reindent


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5673 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 377 additions and 382 deletions
view.php
@@ -54,8 +54,8 @@ require_once(KT_LIB_DIR . "/browse/browseutil.inc.php"); @@ -54,8 +54,8 @@ require_once(KT_LIB_DIR . "/browse/browseutil.inc.php");
54 class ViewDocumentDispatcher extends KTStandardDispatcher { 54 class ViewDocumentDispatcher extends KTStandardDispatcher {
55 55
56 var $sSection = "view_details"; 56 var $sSection = "view_details";
57 - var $sHelpPage = 'ktcore/browse.html';  
58 - 57 + var $sHelpPage = 'ktcore/browse.html';
  58 +
59 var $actions; 59 var $actions;
60 60
61 function ViewDocumentDispatcher() { 61 function ViewDocumentDispatcher() {
@@ -65,467 +65,462 @@ class ViewDocumentDispatcher extends KTStandardDispatcher { @@ -65,467 +65,462 @@ class ViewDocumentDispatcher extends KTStandardDispatcher {
65 65
66 parent::KTStandardDispatcher(); 66 parent::KTStandardDispatcher();
67 } 67 }
68 -  
69 - function check() {  
70 - if (!parent::check()) { return false; }  
71 -  
72 -  
73 -  
74 - return true;  
75 - }  
76 - 68 +
  69 + function check() {
  70 + if (!parent::check()) { return false; }
  71 + return true;
  72 + }
  73 +
77 // FIXME identify the current location somehow. 74 // FIXME identify the current location somehow.
78 function addPortlets($currentaction = null) { 75 function addPortlets($currentaction = null) {
79 - $this->actions = KTDocumentActionUtil::getDocumentActionsForDocument($this->oDocument, $this->oUser);  
80 - $oPortlet = new KTActionPortlet(_kt("Document Actions"));  
81 - $oPortlet->setActions($this->actions, $currentaction);  
82 - $this->oPage->addPortlet($oPortlet);  
83 - }  
84 - 76 + $this->actions = KTDocumentActionUtil::getDocumentActionsForDocument($this->oDocument, $this->oUser);
  77 + $oPortlet = new KTActionPortlet(_kt("Document Actions"));
  78 + $oPortlet->setActions($this->actions, $currentaction);
  79 + $this->oPage->addPortlet($oPortlet);
  80 + }
  81 +
85 function do_main() { 82 function do_main() {
86 - // fix legacy, broken items.  
87 - if (KTUtil::arrayGet($_REQUEST, "fDocumentID", true) !== true) { 83 + // fix legacy, broken items.
  84 + if (KTUtil::arrayGet($_REQUEST, "fDocumentID", true) !== true) {
88 $_REQUEST["fDocumentId"] = KTUtil::arrayGet($_REQUEST, "fDocumentID"); 85 $_REQUEST["fDocumentId"] = KTUtil::arrayGet($_REQUEST, "fDocumentID");
89 - unset($_REQUEST["fDocumentID"]);  
90 - }  
91 -  
92 - $document_data = array();  
93 - $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');  
94 - if ($document_id === null) {  
95 - $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
96 - return $this->do_error();  
97 - }  
98 - // try get the document.  
99 - $oDocument =& Document::get($document_id);  
100 - if (PEAR::isError($oDocument)) {  
101 - $this->oPage->addError('The document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
102 - return $this->do_error();  
103 - }  
104 - $document_id = $oDocument->getId();  
105 - $document_data["document_id"] = $oDocument->getId();  
106 - 86 + unset($_REQUEST["fDocumentID"]);
  87 + }
  88 +
  89 + $document_data = array();
  90 + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');
  91 + if ($document_id === null) {
  92 + $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  93 + return $this->do_error();
  94 + }
  95 + // try get the document.
  96 + $oDocument =& Document::get($document_id);
  97 + if (PEAR::isError($oDocument)) {
  98 + $this->oPage->addError('The document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  99 + return $this->do_error();
  100 + }
  101 + $document_id = $oDocument->getId();
  102 + $document_data["document_id"] = $oDocument->getId();
  103 +
107 104
108 if (!KTBrowseUtil::inAdminMode($this->oUser, $oDocument->getFolderId())) { 105 if (!KTBrowseUtil::inAdminMode($this->oUser, $oDocument->getFolderId())) {
109 - if ($oDocument->getStatusID() == ARCHIVED) {  
110 - $this->oPage->addError(_kt('This document has been archived. Please contact the system administrator to have it restored if it is still needed.'));  
111 - return $this->do_error();  
112 - } else if ($oDocument->getStatusID() == DELETED) {  
113 - $this->oPage->addError(_kt('This document has been deleted. Please contact the system administrator to have it restored if it is still needed.'));  
114 - return $this->do_error(); 106 + if ($oDocument->getStatusID() == ARCHIVED) {
  107 + $this->oPage->addError(_kt('This document has been archived. Please contact the system administrator to have it restored if it is still needed.'));
  108 + return $this->do_error();
  109 + } else if ($oDocument->getStatusID() == DELETED) {
  110 + $this->oPage->addError(_kt('This document has been deleted. Please contact the system administrator to have it restored if it is still needed.'));
  111 + return $this->do_error();
115 } else if (!Permission::userHasDocumentReadPermission($oDocument)) { 112 } else if (!Permission::userHasDocumentReadPermission($oDocument)) {
116 $this->oPage->addError(_kt('You are not allowed to view this document')); 113 $this->oPage->addError(_kt('You are not allowed to view this document'));
117 return $this->do_error(); 114 return $this->do_error();
118 } 115 }
119 - }  
120 -  
121 - if ($oDocument->getStatusID() == ARCHIVED) {  
122 - $this->oPage->addError(_kt('This document has been archived.')); 116 + }
  117 +
  118 + if ($oDocument->getStatusID() == ARCHIVED) {
  119 + $this->oPage->addError(_kt('This document has been archived.'));
123 } else if ($oDocument->getStatusID() == DELETED) { 120 } else if ($oDocument->getStatusID() == DELETED) {
124 - $this->oPage->addError(_kt('This document has been deleted.')); 121 + $this->oPage->addError(_kt('This document has been deleted.'));
125 } 122 }
126 123
127 - $this->oPage->setSecondaryTitle($oDocument->getName()); 124 + $this->oPage->setSecondaryTitle($oDocument->getName());
128 125
129 $aOptions = array( 126 $aOptions = array(
130 "documentaction" => "viewDocument", 127 "documentaction" => "viewDocument",
131 "folderaction" => "browse", 128 "folderaction" => "browse",
132 ); 129 );
133 -  
134 - $this->oDocument =& $oDocument; 130 +
  131 + $this->oDocument =& $oDocument;
135 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); 132 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions));
136 - $this->oPage->setBreadcrumbDetails(_kt("document details"));  
137 - $this->addPortlets("Document Details");  
138 -  
139 - $document_data["document"] = $oDocument;  
140 - $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID());  
141 - $is_valid_doctype = true;  
142 -  
143 - if (PEAR::isError($document_data["document_type"])) {  
144 - $this->oPage->addError('The document you requested has an invalid <strong>document type</strong>. Unfortunately, this means that we cannot effectively display it.');  
145 - $is_valid_doctype = false;  
146 - }  
147 -  
148 - // we want to grab all the md for this doc, since its faster that way.  
149 - $mdlist =& DocumentFieldLink::getByDocument($oDocument);  
150 -  
151 - $field_values = array();  
152 - foreach ($mdlist as $oFieldLink) { 133 + $this->oPage->setBreadcrumbDetails(_kt("document details"));
  134 + $this->addPortlets("Document Details");
  135 +
  136 + $document_data["document"] = $oDocument;
  137 + $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID());
  138 + $is_valid_doctype = true;
  139 +
  140 + if (PEAR::isError($document_data["document_type"])) {
  141 + $this->oPage->addError('The document you requested has an invalid <strong>document type</strong>. Unfortunately, this means that we cannot effectively display it.');
  142 + $is_valid_doctype = false;
  143 + }
  144 +
  145 + // we want to grab all the md for this doc, since its faster that way.
  146 + $mdlist =& DocumentFieldLink::getByDocument($oDocument);
  147 +
  148 + $field_values = array();
  149 + foreach ($mdlist as $oFieldLink) {
153 $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue(); 150 $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue();
154 - }  
155 -  
156 - //var_dump($field_values);  
157 -  
158 - $document_data["field_values"] = $field_values;  
159 -  
160 - // Fieldset generation.  
161 - //  
162 - // we need to create a set of FieldsetDisplay objects  
163 - // that adapt the Fieldsets associated with this lot  
164 - // to the view (i.e. ZX3). Unfortunately, we don't have  
165 - // any of the plumbing to do it, so we handle this here.  
166 - $fieldsets = array();  
167 -  
168 - // we always have a generic.  
169 - array_push($fieldsets, new GenericFieldsetDisplay());  
170 - 151 + }
  152 +
  153 + //var_dump($field_values);
  154 +
  155 + $document_data["field_values"] = $field_values;
  156 +
  157 + // Fieldset generation.
  158 + //
  159 + // we need to create a set of FieldsetDisplay objects
  160 + // that adapt the Fieldsets associated with this lot
  161 + // to the view (i.e. ZX3). Unfortunately, we don't have
  162 + // any of the plumbing to do it, so we handle this here.
  163 + $fieldsets = array();
  164 +
  165 + // we always have a generic.
  166 + array_push($fieldsets, new GenericFieldsetDisplay());
  167 +
171 $fieldsetDisplayReg =& KTFieldsetDisplayRegistry::getSingleton(); 168 $fieldsetDisplayReg =& KTFieldsetDisplayRegistry::getSingleton();
172 169
173 foreach (KTMetadataUtil::fieldsetsForDocument($oDocument) as $oFieldset) { 170 foreach (KTMetadataUtil::fieldsetsForDocument($oDocument) as $oFieldset) {
174 $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace()); 171 $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace());
175 array_push($fieldsets, new $displayClass($oFieldset)); 172 array_push($fieldsets, new $displayClass($oFieldset));
176 } 173 }
177 -  
178 -  
179 - $checkout_user = 'Unknown user';  
180 - if ($oDocument->getIsCheckedOut() == 1) {  
181 - $oCOU = User::get($oDocument->getCheckedOutUserId());  
182 - if (!(PEAR::isError($oCOU) || ($oCOU == false))) {  
183 - $checkout_user = $oCOU->getName();  
184 - }  
185 - }  
186 - 174 +
  175 +
  176 + $checkout_user = 'Unknown user';
  177 + if ($oDocument->getIsCheckedOut() == 1) {
  178 + $oCOU = User::get($oDocument->getCheckedOutUserId());
  179 + if (!(PEAR::isError($oCOU) || ($oCOU == false))) {
  180 + $checkout_user = $oCOU->getName();
  181 + }
  182 + }
  183 +
187 // is the checkout action active? 184 // is the checkout action active?
188 $bCanCheckin = false; 185 $bCanCheckin = false;
189 foreach ($this->actions as $oDocAction) { 186 foreach ($this->actions as $oDocAction) {
190 - $sActName = $oDocAction->sName; 187 + $sActName = $oDocAction->sName;
191 if ($sActName == 'ktcore.actions.document.cancelcheckout') { 188 if ($sActName == 'ktcore.actions.document.cancelcheckout') {
192 if ($oDocAction->_show()) { 189 if ($oDocAction->_show()) {
193 $bCanCheckin = true; 190 $bCanCheckin = true;
194 } 191 }
195 } 192 }
196 } 193 }
197 -  
198 - 194 +
  195 +
199 $oTemplating =& KTTemplating::getSingleton(); 196 $oTemplating =& KTTemplating::getSingleton();
200 - $oTemplate = $oTemplating->loadTemplate("kt3/view_document");  
201 - $aTemplateData = array( 197 + $oTemplate = $oTemplating->loadTemplate("kt3/view_document");
  198 + $aTemplateData = array(
202 "context" => $this, 199 "context" => $this,
203 - "sCheckoutUser" => $checkout_user,  
204 - "isCheckoutUser" => ($this->oUser->getId() == $oDocument->getCheckedOutUserId()),  
205 - "canCheckin" => $bCanCheckin,  
206 - "document_id" => $document_id,  
207 - "document" => $oDocument,  
208 - "document_data" => $document_data,  
209 - "fieldsets" => $fieldsets,  
210 - );  
211 - //return '<pre>' . print_r($aTemplateData, true) . '</pre>';  
212 - return $oTemplate->render($aTemplateData); 200 + "sCheckoutUser" => $checkout_user,
  201 + "isCheckoutUser" => ($this->oUser->getId() == $oDocument->getCheckedOutUserId()),
  202 + "canCheckin" => $bCanCheckin,
  203 + "document_id" => $document_id,
  204 + "document" => $oDocument,
  205 + "document_data" => $document_data,
  206 + "fieldsets" => $fieldsets,
  207 + );
  208 + //return '<pre>' . print_r($aTemplateData, true) . '</pre>';
  209 + return $oTemplate->render($aTemplateData);
213 } 210 }
214 -  
215 - function do_history() {  
216 - $document_data = array();  
217 - $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');  
218 - if ($document_id === null) {  
219 - $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
220 - return $this->do_error();  
221 - }  
222 - $document_data["document_id"] = $document_id;  
223 -  
224 - // try get the document.  
225 - $oDocument =& Document::get($document_id);  
226 - if (PEAR::isError($oDocument)) {  
227 - $this->oPage->addError('The document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
228 - return $this->do_error();  
229 - }  
230 - // fixme check perms  
231 -  
232 - $this->oDocument =& $oDocument;  
233 -  
234 - $this->oPage->setSecondaryTitle($oDocument->getName());  
235 - 211 +
  212 + function do_history() {
  213 + $document_data = array();
  214 + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');
  215 + if ($document_id === null) {
  216 + $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  217 + return $this->do_error();
  218 + }
  219 + $document_data["document_id"] = $document_id;
  220 +
  221 + // try get the document.
  222 + $oDocument =& Document::get($document_id);
  223 + if (PEAR::isError($oDocument)) {
  224 + $this->oPage->addError('The document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  225 + return $this->do_error();
  226 + }
  227 + // fixme check perms
  228 +
  229 + $this->oDocument =& $oDocument;
  230 +
  231 + $this->oPage->setSecondaryTitle($oDocument->getName());
  232 +
236 $aOptions = array( 233 $aOptions = array(
237 "documentaction" => "viewDocument", 234 "documentaction" => "viewDocument",
238 "folderaction" => "browse", 235 "folderaction" => "browse",
239 ); 236 );
240 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); 237 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions));
241 - $this->oPage->setBreadcrumbDetails(_kt("history"));  
242 - $this->addPortlets("History");  
243 -  
244 - $aTransactions = array();  
245 - // FIXME create a sane "view user information" page somewhere.  
246 - // FIXME do we really need to use a raw db-access here? probably...  
247 - $sQuery = "SELECT DTT.name AS transaction_name, U.name AS user_name, DT.version AS version, DT.comment AS comment, DT.datetime AS datetime " .  
248 - "FROM " . KTUtil::getTableName("document_transactions") . " AS DT INNER JOIN " . KTUtil::getTableName("users") . " AS U ON DT.user_id = U.id " .  
249 - "INNER JOIN " . KTUtil::getTableName("transaction_types") . " AS DTT ON DTT.namespace = DT.transaction_namespace " .  
250 - "WHERE DT.document_id = ? ORDER BY DT.datetime DESC";  
251 - $aParams = array($document_id);  
252 -  
253 - $res = DBUtil::getResultArray(array($sQuery, $aParams));  
254 - if (PEAR::isError($res)) {  
255 - var_dump($res); // FIXME be graceful on failure.  
256 - exit(0);  
257 - }  
258 -  
259 - // FIXME roll up view transactions  
260 - $aTransactions = $res;  
261 -  
262 -  
263 - // render pass.  
264 - $this->oPage->title = _kt("Document History"); 238 + $this->oPage->setBreadcrumbDetails(_kt("history"));
  239 + $this->addPortlets("History");
  240 +
  241 + $aTransactions = array();
  242 + // FIXME create a sane "view user information" page somewhere.
  243 + // FIXME do we really need to use a raw db-access here? probably...
  244 + $sQuery = "SELECT DTT.name AS transaction_name, U.name AS user_name, DT.version AS version, DT.comment AS comment, DT.datetime AS datetime " .
  245 + "FROM " . KTUtil::getTableName("document_transactions") . " AS DT INNER JOIN " . KTUtil::getTableName("users") . " AS U ON DT.user_id = U.id " .
  246 + "INNER JOIN " . KTUtil::getTableName("transaction_types") . " AS DTT ON DTT.namespace = DT.transaction_namespace " .
  247 + "WHERE DT.document_id = ? ORDER BY DT.datetime DESC";
  248 + $aParams = array($document_id);
  249 +
  250 + $res = DBUtil::getResultArray(array($sQuery, $aParams));
  251 + if (PEAR::isError($res)) {
  252 + var_dump($res); // FIXME be graceful on failure.
  253 + exit(0);
  254 + }
  255 +
  256 + // FIXME roll up view transactions
  257 + $aTransactions = $res;
  258 +
  259 +
  260 + // render pass.
  261 + $this->oPage->title = _kt("Document History");
265 $oTemplating =& KTTemplating::getSingleton(); 262 $oTemplating =& KTTemplating::getSingleton();
266 - $oTemplate = $oTemplating->loadTemplate("kt3/view_document_history");  
267 - $aTemplateData = array( 263 + $oTemplate = $oTemplating->loadTemplate("kt3/view_document_history");
  264 + $aTemplateData = array(
268 "context" => $this, 265 "context" => $this,
269 - "document_id" => $document_id,  
270 - "document" => $oDocument,  
271 - "transactions" => $aTransactions,  
272 - );  
273 - return $oTemplate->render($aTemplateData);  
274 - }  
275 -  
276 -  
277 - function do_versionhistory() {  
278 - // this is the list of documents past.  
279 - $document_data = array();  
280 - $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');  
281 - if ($document_id === null) {  
282 - $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
283 - return $this->do_error();  
284 - }  
285 - $document_data["document_id"] = $document_id;  
286 -  
287 - // try get the document.  
288 - $oDocument =& Document::get($document_id);  
289 - if (PEAR::isError($oDocument)) {  
290 - $this->oPage->addError('The document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
291 - return $this->do_error();  
292 - }  
293 - // fixme check perms  
294 - $this->oPage->setSecondaryTitle($oDocument->getName());  
295 - $this->oDocument =& $oDocument;  
296 - $aOptions = array( 266 + "document_id" => $document_id,
  267 + "document" => $oDocument,
  268 + "transactions" => $aTransactions,
  269 + );
  270 + return $oTemplate->render($aTemplateData);
  271 + }
  272 +
  273 +
  274 + function do_versionhistory() {
  275 + // this is the list of documents past.
  276 + $document_data = array();
  277 + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');
  278 + if ($document_id === null) {
  279 + $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  280 + return $this->do_error();
  281 + }
  282 + $document_data["document_id"] = $document_id;
  283 +
  284 + // try get the document.
  285 + $oDocument =& Document::get($document_id);
  286 + if (PEAR::isError($oDocument)) {
  287 + $this->oPage->addError('The document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  288 + return $this->do_error();
  289 + }
  290 + // fixme check perms
  291 + $this->oPage->setSecondaryTitle($oDocument->getName());
  292 + $this->oDocument =& $oDocument;
  293 + $aOptions = array(
297 "documentaction" => "viewDocument", 294 "documentaction" => "viewDocument",
298 "folderaction" => "browse", 295 "folderaction" => "browse",
299 ); 296 );
300 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); 297 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions));
301 - $this->oPage->setBreadcrumbDetails(_kt("history"));  
302 - $this->addPortlets("History");  
303 -  
304 - $aMetadataVersions = KTDocumentMetadataVersion::getByDocument($oDocument); 298 + $this->oPage->setBreadcrumbDetails(_kt("history"));
  299 + $this->addPortlets("History");
  300 +
  301 + $aMetadataVersions = KTDocumentMetadataVersion::getByDocument($oDocument);
305 $aVersions = array(); 302 $aVersions = array();
306 foreach ($aMetadataVersions as $oVersion) { 303 foreach ($aMetadataVersions as $oVersion) {
307 $aVersions[] = Document::get($oDocument->getId(), $oVersion->getId()); 304 $aVersions[] = Document::get($oDocument->getId(), $oVersion->getId());
308 } 305 }
309 -  
310 - // render pass.  
311 - $this->oPage->title = _kt("Document History"); 306 +
  307 + // render pass.
  308 + $this->oPage->title = _kt("Document History");
312 $oTemplating =& KTTemplating::getSingleton(); 309 $oTemplating =& KTTemplating::getSingleton();
313 - $oTemplate = $oTemplating->loadTemplate("kt3/document/metadata_history"); 310 + $oTemplate = $oTemplating->loadTemplate("kt3/document/metadata_history");
314 311
315 $aActions = KTDocumentActionUtil::getDocumentActionsByNames(array('ktcore.actions.document.view')); 312 $aActions = KTDocumentActionUtil::getDocumentActionsByNames(array('ktcore.actions.document.view'));
316 $oAction = $aActions[0]; 313 $oAction = $aActions[0];
317 $oAction->setDocument($this->oDocument); 314 $oAction->setDocument($this->oDocument);
318 -  
319 - $aTemplateData = array( 315 +
  316 + $aTemplateData = array(
320 "context" => $this, 317 "context" => $this,
321 - "document_id" => $document_id,  
322 - "document" => $oDocument,  
323 - "versions" => $aVersions, 318 + "document_id" => $document_id,
  319 + "document" => $oDocument,
  320 + "versions" => $aVersions,
324 'downloadaction' => $oAction, 321 'downloadaction' => $oAction,
325 - );  
326 - return $oTemplate->render($aTemplateData);  
327 - }  
328 -  
329 - // FIXME refactor out the document-info creation into a single utility function.  
330 - // this gets in:  
331 - // fDocumentId (document to compare against)  
332 - // fComparisonVersion (the metadata_version of the appropriate document)  
333 - function do_viewComparison() {  
334 -  
335 - $document_data = array();  
336 - $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');  
337 - if ($document_id === null) {  
338 - $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
339 - return $this->do_error();  
340 - }  
341 -  
342 - $document_data["document_id"] = $document_id;  
343 -  
344 - $base_version = KTUtil::arrayGet($_REQUEST, 'fBaseVersion');  
345 -  
346 - // try get the document.  
347 - $oDocument =& Document::get($document_id, $base_version);  
348 - if (PEAR::isError($oDocument)) {  
349 - $this->oPage->addError('The base document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
350 - return $this->do_error();  
351 - }  
352 -  
353 - if (!Permission::userHasDocumentReadPermission($oDocument)) {  
354 - // FIXME inconsistent.  
355 - $this->oPage->addError(_kt('You are not allowed to view this document'));  
356 - return $this->do_error();  
357 - }  
358 -  
359 - $this->oDocument =& $oDocument;  
360 - $this->oPage->setSecondaryTitle($oDocument->getName());  
361 - $aOptions = array( 322 + );
  323 + return $oTemplate->render($aTemplateData);
  324 + }
  325 +
  326 + // FIXME refactor out the document-info creation into a single utility function.
  327 + // this gets in:
  328 + // fDocumentId (document to compare against)
  329 + // fComparisonVersion (the metadata_version of the appropriate document)
  330 + function do_viewComparison() {
  331 +
  332 + $document_data = array();
  333 + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');
  334 + if ($document_id === null) {
  335 + $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  336 + return $this->do_error();
  337 + }
  338 +
  339 + $document_data["document_id"] = $document_id;
  340 +
  341 + $base_version = KTUtil::arrayGet($_REQUEST, 'fBaseVersion');
  342 +
  343 + // try get the document.
  344 + $oDocument =& Document::get($document_id, $base_version);
  345 + if (PEAR::isError($oDocument)) {
  346 + $this->oPage->addError('The base document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  347 + return $this->do_error();
  348 + }
  349 +
  350 + if (!Permission::userHasDocumentReadPermission($oDocument)) {
  351 + // FIXME inconsistent.
  352 + $this->oPage->addError(_kt('You are not allowed to view this document'));
  353 + return $this->do_error();
  354 + }
  355 +
  356 + $this->oDocument =& $oDocument;
  357 + $this->oPage->setSecondaryTitle($oDocument->getName());
  358 + $aOptions = array(
362 "documentaction" => "viewDocument", 359 "documentaction" => "viewDocument",
363 "folderaction" => "browse", 360 "folderaction" => "browse",
364 ); 361 );
365 362
366 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); 363 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions));
367 - $this->oPage->setBreadcrumbDetails(_kt("compare versions"));  
368 -  
369 - $comparison_version = KTUtil::arrayGet($_REQUEST, 'fComparisonVersion');  
370 - if ($comparison_version=== null) {  
371 - $this->oPage->addError('No comparison version was requested. Please <a href="' . KTUtil::addQueryStringSelf('action=history&fDocumentId=' . $document_id) . '">select a version</a>.');  
372 - return $this->do_error();  
373 - }  
374 -  
375 - $oComparison =& Document::get($oDocument->getId(), $comparison_version);  
376 - if (PEAR::isError($oComparison)) {  
377 - $this->errorRedirectToMain(_kt('Invalid document to compare against.'));  
378 - }  
379 - $comparison_data = array();  
380 - $comparison_data['document_id'] = $oComparison->getId();  
381 -  
382 - $document_data["document"] = $oDocument;  
383 - $comparison_data['document'] = $oComparison;  
384 -  
385 - $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID());  
386 - $comparison_data["document_type"] =& DocumentType::get($oComparison->getDocumentTypeID());  
387 -  
388 - // follow twice: once for normal, once for comparison.  
389 - $is_valid_doctype = true;  
390 -  
391 - if (PEAR::isError($document_data["document_type"])) {  
392 - $this->oPage->addError('The document you requested has an invalid <strong>document type</strong>. Unfortunately, this means that we cannot effectively display it.');  
393 - $is_valid_doctype = false;  
394 - }  
395 -  
396 - // we want to grab all the md for this doc, since its faster that way.  
397 - $mdlist =& DocumentFieldLink::getList(array('metadata_version_id = ?', array($oDocument->getMetadataVersionId())));  
398 -  
399 - $field_values = array();  
400 - foreach ($mdlist as $oFieldLink) { 364 + $this->oPage->setBreadcrumbDetails(_kt("compare versions"));
  365 +
  366 + $comparison_version = KTUtil::arrayGet($_REQUEST, 'fComparisonVersion');
  367 + if ($comparison_version=== null) {
  368 + $this->oPage->addError('No comparison version was requested. Please <a href="' . KTUtil::addQueryStringSelf('action=history&fDocumentId=' . $document_id) . '">select a version</a>.');
  369 + return $this->do_error();
  370 + }
  371 +
  372 + $oComparison =& Document::get($oDocument->getId(), $comparison_version);
  373 + if (PEAR::isError($oComparison)) {
  374 + $this->errorRedirectToMain(_kt('Invalid document to compare against.'));
  375 + }
  376 + $comparison_data = array();
  377 + $comparison_data['document_id'] = $oComparison->getId();
  378 +
  379 + $document_data["document"] = $oDocument;
  380 + $comparison_data['document'] = $oComparison;
  381 +
  382 + $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID());
  383 + $comparison_data["document_type"] =& DocumentType::get($oComparison->getDocumentTypeID());
  384 +
  385 + // follow twice: once for normal, once for comparison.
  386 + $is_valid_doctype = true;
  387 +
  388 + if (PEAR::isError($document_data["document_type"])) {
  389 + $this->oPage->addError('The document you requested has an invalid <strong>document type</strong>. Unfortunately, this means that we cannot effectively display it.');
  390 + $is_valid_doctype = false;
  391 + }
  392 +
  393 + // we want to grab all the md for this doc, since its faster that way.
  394 + $mdlist =& DocumentFieldLink::getList(array('metadata_version_id = ?', array($oDocument->getMetadataVersionId())));
  395 +
  396 + $field_values = array();
  397 + foreach ($mdlist as $oFieldLink) {
401 $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue(); 398 $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue();
402 - }  
403 -  
404 - $document_data["field_values"] = $field_values;  
405 - $mdlist =& DocumentFieldLink::getList(array('metadata_version_id = ?', array($comparison_version))); 399 + }
  400 +
  401 + $document_data["field_values"] = $field_values;
  402 + $mdlist =& DocumentFieldLink::getList(array('metadata_version_id = ?', array($comparison_version)));
406 403
407 - $field_values = array();  
408 - foreach ($mdlist as $oFieldLink) { 404 + $field_values = array();
  405 + foreach ($mdlist as $oFieldLink) {
409 $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue(); 406 $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue();
410 - }  
411 -  
412 - $comparison_data["field_values"] = $field_values;  
413 -  
414 -  
415 -  
416 - // Fieldset generation.  
417 - //  
418 - // we need to create a set of FieldsetDisplay objects  
419 - // that adapt the Fieldsets associated with this lot  
420 - // to the view (i.e. ZX3). Unfortunately, we don't have  
421 - // any of the plumbing to do it, so we handle this here.  
422 - $fieldsets = array();  
423 -  
424 - // we always have a generic.  
425 - array_push($fieldsets, new GenericFieldsetDisplay());  
426 -  
427 - // FIXME can we key this on fieldset namespace? or can we have duplicates?  
428 - // now we get the other fieldsets, IF there is a valid doctype.  
429 -  
430 - if ($is_valid_doctype) {  
431 - // these are the _actual_ fieldsets.  
432 - $fieldsetDisplayReg =& KTFieldsetDisplayRegistry::getSingleton();  
433 -  
434 - // and the generics  
435 - $activesets = KTFieldset::getGenericFieldsets();  
436 - foreach ($activesets as $oFieldset) {  
437 - $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace());  
438 - array_push($fieldsets, new $displayClass($oFieldset));  
439 - }  
440 -  
441 - $activesets = KTFieldset::getForDocumentType($oDocument->getDocumentTypeID());  
442 - foreach ($activesets as $oFieldset) {  
443 - $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace());  
444 - array_push($fieldsets, new $displayClass($oFieldset));  
445 - }  
446 - }  
447 -  
448 - // FIXME handle ad-hoc fieldsets.  
449 - $this->addPortlets(); 407 + }
  408 +
  409 + $comparison_data["field_values"] = $field_values;
  410 +
  411 + // Fieldset generation.
  412 + //
  413 + // we need to create a set of FieldsetDisplay objects
  414 + // that adapt the Fieldsets associated with this lot
  415 + // to the view (i.e. ZX3). Unfortunately, we don't have
  416 + // any of the plumbing to do it, so we handle this here.
  417 + $fieldsets = array();
  418 +
  419 + // we always have a generic.
  420 + array_push($fieldsets, new GenericFieldsetDisplay());
  421 +
  422 + // FIXME can we key this on fieldset namespace? or can we have duplicates?
  423 + // now we get the other fieldsets, IF there is a valid doctype.
  424 +
  425 + if ($is_valid_doctype) {
  426 + // these are the _actual_ fieldsets.
  427 + $fieldsetDisplayReg =& KTFieldsetDisplayRegistry::getSingleton();
  428 +
  429 + // and the generics
  430 + $activesets = KTFieldset::getGenericFieldsets();
  431 + foreach ($activesets as $oFieldset) {
  432 + $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace());
  433 + array_push($fieldsets, new $displayClass($oFieldset));
  434 + }
  435 +
  436 + $activesets = KTFieldset::getForDocumentType($oDocument->getDocumentTypeID());
  437 + foreach ($activesets as $oFieldset) {
  438 + $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace());
  439 + array_push($fieldsets, new $displayClass($oFieldset));
  440 + }
  441 + }
  442 +
  443 + // FIXME handle ad-hoc fieldsets.
  444 + $this->addPortlets();
450 $oTemplating =& KTTemplating::getSingleton(); 445 $oTemplating =& KTTemplating::getSingleton();
451 - $oTemplate = $oTemplating->loadTemplate("kt3/compare_document");  
452 - $aTemplateData = array(  
453 - "context" => $this,  
454 - "document_id" => $document_id,  
455 - "document" => $oDocument,  
456 - "document_data" => $document_data,  
457 - "comparison_data" => $comparison_data,  
458 - "comparison_document" => $oComparison,  
459 - "fieldsets" => $fieldsets,  
460 - );  
461 - //var_dump($aTemplateData["comparison_data"]);  
462 - return $oTemplate->render($aTemplateData); 446 + $oTemplate = $oTemplating->loadTemplate("kt3/compare_document");
  447 + $aTemplateData = array(
  448 + "context" => $this,
  449 + "document_id" => $document_id,
  450 + "document" => $oDocument,
  451 + "document_data" => $document_data,
  452 + "comparison_data" => $comparison_data,
  453 + "comparison_document" => $oComparison,
  454 + "fieldsets" => $fieldsets,
  455 + );
  456 + //var_dump($aTemplateData["comparison_data"]);
  457 + return $oTemplate->render($aTemplateData);
  458 + }
  459 +
  460 + /* we have a lot of error handling. this one is the absolute final failure. */
  461 + function do_error() {
  462 + return ''; // allow normal rendering of errors.
  463 + // FIXME show something useful / generic.
463 } 464 }
464 -  
465 - /* we have a lot of error handling. this one is the absolute final failure. */  
466 - function do_error() {  
467 - return ''; // allow normal rendering of errors.  
468 - // FIXME show something useful / generic.  
469 - }  
470 -  
471 - function do_startComparison() {  
472 - $document_data = array();  
473 - $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');  
474 - if ($document_id === null) {  
475 - $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
476 - return $this->do_error();  
477 - }  
478 - $document_data["document_id"] = $document_id;  
479 -  
480 - $comparison_version = KTUtil::arrayGet($_REQUEST, 'fComparisonVersion');  
481 - if ($comparison_version=== null) {  
482 - $this->oPage->addError('No comparison version was requested. Please <a href="' . KTUtil::addQueryStringSelf('action=history&fDocumentId='.$document_id) . '">select a version</a>.');  
483 - return $this->do_error();  
484 - }  
485 -  
486 - // try get the document.  
487 - $oDocument =& Document::get($document_id, $comparison_version);  
488 - if (PEAR::isError($oDocument)) {  
489 - $this->oPage->addError('The document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');  
490 - return $this->do_error();  
491 - }  
492 - if (!Permission::userHasDocumentReadPermission($oDocument)) {  
493 - // FIXME inconsistent.  
494 - $this->oPage->addError(_kt('You are not allowed to view this document'));  
495 - return $this->do_error();  
496 - }  
497 - $this->oDocument =& $oDocument;  
498 - $this->oPage->setSecondaryTitle($oDocument->getName());  
499 - $aOptions = array( 465 +
  466 + function do_startComparison() {
  467 + $document_data = array();
  468 + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');
  469 + if ($document_id === null) {
  470 + $this->oPage->addError('No document was requested. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  471 + return $this->do_error();
  472 + }
  473 + $document_data["document_id"] = $document_id;
  474 +
  475 + $comparison_version = KTUtil::arrayGet($_REQUEST, 'fComparisonVersion');
  476 + if ($comparison_version=== null) {
  477 + $this->oPage->addError('No comparison version was requested. Please <a href="' . KTUtil::addQueryStringSelf('action=history&fDocumentId='.$document_id) . '">select a version</a>.');
  478 + return $this->do_error();
  479 + }
  480 +
  481 + // try get the document.
  482 + $oDocument =& Document::get($document_id, $comparison_version);
  483 + if (PEAR::isError($oDocument)) {
  484 + $this->oPage->addError('The document you attempted to retrieve is invalid. Please <a href="' . KTBrowseUtil::getBrowseBaseUrl() . '">browse</a> for one.');
  485 + return $this->do_error();
  486 + }
  487 + if (!Permission::userHasDocumentReadPermission($oDocument)) {
  488 + // FIXME inconsistent.
  489 + $this->oPage->addError(_kt('You are not allowed to view this document'));
  490 + return $this->do_error();
  491 + }
  492 + $this->oDocument =& $oDocument;
  493 + $this->oPage->setSecondaryTitle($oDocument->getName());
  494 + $aOptions = array(
500 "documentaction" => "viewDocument", 495 "documentaction" => "viewDocument",
501 "folderaction" => "browse", 496 "folderaction" => "browse",
502 ); 497 );
503 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); 498 $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions));
504 - $this->oPage->setBreadcrumbDetails(_kt("Select Document Version to compare against"));  
505 -  
506 - $aMetadataVersions = KTDocumentMetadataVersion::getByDocument($oDocument); 499 + $this->oPage->setBreadcrumbDetails(_kt("Select Document Version to compare against"));
  500 +
  501 + $aMetadataVersions = KTDocumentMetadataVersion::getByDocument($oDocument);
507 $aVersions = array(); 502 $aVersions = array();
508 foreach ($aMetadataVersions as $oVersion) { 503 foreach ($aMetadataVersions as $oVersion) {
509 $aVersions[] = Document::get($oDocument->getId(), $oVersion->getId()); 504 $aVersions[] = Document::get($oDocument->getId(), $oVersion->getId());
510 } 505 }
511 -  
512 - $oTemplating =& KTTemplating::getSingleton();  
513 - $oTemplate = $oTemplating->loadTemplate("ktcore/document/comparison_version_select");  
514 - $aTemplateData = array( 506 +
  507 + $oTemplating =& KTTemplating::getSingleton();
  508 + $oTemplate = $oTemplating->loadTemplate("ktcore/document/comparison_version_select");
  509 + $aTemplateData = array(
515 "context" => $this, 510 "context" => $this,
516 - "document_id" => $document_id,  
517 - "document" => $oDocument,  
518 - "versions" => $aVersions, 511 + "document_id" => $document_id,
  512 + "document" => $oDocument,
  513 + "versions" => $aVersions,
519 'downloadaction' => $oAction, 514 'downloadaction' => $oAction,
520 - );  
521 - return $oTemplate->render($aTemplateData); 515 + );
  516 + return $oTemplate->render($aTemplateData);
  517 + }
  518 +
  519 + function getUserForId($iUserId) {
  520 + $u = User::get($iUserId);
  521 + if (PEAR::isError($u) || ($u == false)) { return _kt('User no longer exists'); }
  522 + return $u->getName();
522 } 523 }
523 -  
524 - function getUserForId($iUserId) {  
525 - $u = User::get($iUserId);  
526 - if (PEAR::isError($u) || ($u == false)) { return _kt('User no longer exists'); }  
527 - return $u->getName();  
528 - }  
529 } 524 }
530 525
531 $oDispatcher = new ViewDocumentDispatcher; 526 $oDispatcher = new ViewDocumentDispatcher;