Commit a24f1962e17a1a5998d171ee2a6e3fa56ee8a5e1

Authored by bshuttle
1 parent 1a396b9c

corrected version_history and metadata history.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4268 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/documentmanagement/editDocument.php
@@ -246,8 +246,26 @@ class KTEditDocumentDispatcher extends KTStandardDispatcher { @@ -246,8 +246,26 @@ class KTEditDocumentDispatcher extends KTStandardDispatcher {
246 //return '<pre>' . print_r($field_values, true) . '</pre>'; 246 //return '<pre>' . print_r($field_values, true) . '</pre>';
247 $this->startTransaction(); 247 $this->startTransaction();
248 248
  249 + $res = KTDocumentUtil::createMetadataVersion($oDocument);
  250 + if (PEAR::isError($res)) {
  251 + $this->errorRedirectToMain('Unable to create a metadata version of the document.');
  252 + }
  253 +
  254 + $oDocument->setLastModifiedDate(getCurrentDateTime());
  255 + $oDocument->setModifiedUserId($this->oUser->getId());
  256 + $oDocumentTransaction = & new DocumentTransaction($oDocument->getID(), 'update metadata.', UPDATE);
249 257
  258 + $res = $oDocumentTransaction->create();
  259 + if (PEAR::isError($res)) {
  260 + $this->errorRedirectToMain('Failed to create transaction.');
  261 + }
  262 +
  263 + $res = $oDocument->update();
  264 + if (PEAR::isError($res)) {
  265 + $this->errorRedirectToMain('Failed to change basic details about the document..');
  266 + }
250 $res = KTDocumentUtil::saveMetadata($oDocument, $field_values); 267 $res = KTDocumentUtil::saveMetadata($oDocument, $field_values);
  268 +
251 if (PEAR::isError($res)) { 269 if (PEAR::isError($res)) {
252 $this->rollbackTransaction(); 270 $this->rollbackTransaction();
253 271
presentation/lookAndFeel/knowledgeTree/documentmanagement/view.php
@@ -185,6 +185,45 @@ class ViewDocumentDispatcher extends KTStandardDispatcher { @@ -185,6 +185,45 @@ class ViewDocumentDispatcher extends KTStandardDispatcher {
185 } 185 }
186 186
187 187
  188 + function do_versionhistory() {
  189 + // this is the list of documents past.
  190 + $document_data = array();
  191 + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');
  192 + if ($document_id === null) {
  193 + $this->oPage->addError('No document was requested. Please <a href="/presentation/lookAndFeel/knowledgeTree/browse.php">browse</a> for one.');
  194 + return $this->do_error();
  195 + }
  196 + $document_data["document_id"] = $document_id;
  197 +
  198 + // try get the document.
  199 + $oDocument =& Document::get($document_id);
  200 + if (PEAR::isError($oDocument)) {
  201 + $this->oPage->addError('The document you attempted to retrieve is invalid. Please <a href="/presentation/lookAndFeel/knowledgeTree/browse.php">browse</a> for one.');
  202 + return $this->do_error();
  203 + }
  204 + // fixme check perms
  205 +
  206 + $this->oDocument =& $oDocument;
  207 + $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument));
  208 + $this->oPage->setBreadcrumbDetails("history");
  209 + $this->addPortlets("History");
  210 +
  211 + $aVersions = Document::getByLiveDocument($oDocument);
  212 + //var_dump($aVersions);
  213 +
  214 + // render pass.
  215 + $this->oPage->title = "Document History : " . $oDocument->getName();
  216 + $oTemplating = new KTTemplating;
  217 + $oTemplate = $oTemplating->loadTemplate("kt3/document/metadata_history");
  218 + $aTemplateData = array(
  219 + "context" => $this,
  220 + "document_id" => $document_id,
  221 + "document" => $oDocument,
  222 + "versions" => $aVersions,
  223 + );
  224 + return $oTemplate->render($aTemplateData);
  225 + }
  226 +
188 // FIXME refactor out the document-info creation into a single utility function. 227 // FIXME refactor out the document-info creation into a single utility function.
189 // this gets in: 228 // this gets in:
190 // fDocumentId (document to compare against) 229 // fDocumentId (document to compare against)
@@ -219,17 +258,20 @@ class ViewDocumentDispatcher extends KTStandardDispatcher { @@ -219,17 +258,20 @@ class ViewDocumentDispatcher extends KTStandardDispatcher {
219 return $this->do_error(); 258 return $this->do_error();
220 } 259 }
221 260
222 - // FIXME when transaction history accurately stores metadata_version, this is no longer required.  
223 - // FIXME detect that the metadata_version was "manufactured"  
224 - // <testing>  
225 - $oComparison =& $oDocument;  
226 - $comparison_data =& $document_data; // no copy.  
227 -  
228 - // </testing>  
229 -  
230 - 261 + $oComparison =& Document::get($comparison_version);
  262 + if (PEAR::isError($oComparison)) {
  263 + $this->errorRedirectToMain('Invalid document to compare against.');
  264 + }
  265 + $comparison_data = array();
  266 + $comparison_data['document_id'] = $oComparison->getId();
  267 +
231 $document_data["document"] = $oDocument; 268 $document_data["document"] = $oDocument;
  269 + $comparison_data['document'] = $oComparison;
  270 +
232 $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID()); 271 $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID());
  272 + $comparison_data["document_type"] =& DocumentType::get($oComparison->getDocumentTypeID());
  273 +
  274 + // follow twice: once for normal, once for comparison.
233 $is_valid_doctype = true; 275 $is_valid_doctype = true;
234 276
235 if (PEAR::isError($document_data["document_type"])) { 277 if (PEAR::isError($document_data["document_type"])) {
@@ -247,9 +289,16 @@ class ViewDocumentDispatcher extends KTStandardDispatcher { @@ -247,9 +289,16 @@ class ViewDocumentDispatcher extends KTStandardDispatcher {
247 289
248 $document_data["field_values"] = $field_values; 290 $document_data["field_values"] = $field_values;
249 291
  292 + $mdlist =& DocumentFieldLink::getList(array('document_id = ?', array($comparison_version)));
  293 +
  294 + $field_values = array();
  295 + foreach ($mdlist as $oFieldLink) {
  296 + $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue();
  297 + }
  298 +
  299 + $comparison_data["field_values"] = $field_values;
  300 +
250 301
251 - // FIXME generate portlets  
252 - // FIXME generate breadcrumb  
253 302
254 // Fieldset generation. 303 // Fieldset generation.
255 // 304 //
@@ -281,11 +330,7 @@ class ViewDocumentDispatcher extends KTStandardDispatcher { @@ -281,11 +330,7 @@ class ViewDocumentDispatcher extends KTStandardDispatcher {
281 array_push($fieldsets, new $displayClass($oFieldset)); 330 array_push($fieldsets, new $displayClass($oFieldset));
282 } 331 }
283 } 332 }
284 -  
285 - // <testing>  
286 - $document_data["is_manufactured"] = 1;  
287 - // </testing>  
288 - 333 +
289 // FIXME handle ad-hoc fieldsets. 334 // FIXME handle ad-hoc fieldsets.
290 335
291 $oTemplating = new KTTemplating; 336 $oTemplating = new KTTemplating;
@@ -308,6 +353,11 @@ class ViewDocumentDispatcher extends KTStandardDispatcher { @@ -308,6 +353,11 @@ class ViewDocumentDispatcher extends KTStandardDispatcher {
308 return ''; // allow normal rendering of errors. 353 return ''; // allow normal rendering of errors.
309 // FIXME show something useful / generic. 354 // FIXME show something useful / generic.
310 } 355 }
  356 +
  357 + function getUserForId($iUserId) {
  358 + $u = User::get($iUserId);
  359 + return $u->getName();
  360 + }
311 } 361 }
312 362
313 $oDispatcher = new ViewDocumentDispatcher; 363 $oDispatcher = new ViewDocumentDispatcher;
templates/kt3/document/metadata_history.smarty 0 → 100644
  1 +<h2>Metadata History: {$document->getName()}</h2>
  2 +
  3 +<p class="descriptiveText">This lists the older versions of the document, as the metadata about it has been changed.</p>
  4 +
  5 +
  6 + <table class="document_history" summary="Document History for KnowledgeTree New UI Presentation" cellspacing="0">
  7 +
  8 + <thead>
  9 + <tr>
  10 + <th class="username">User</th>
  11 + <th class="date">Content Version</th>
  12 + <th class="compare">Compare</th>
  13 +
  14 + </tr>
  15 + </thead>
  16 + <tbody>
  17 + <tr class="{cycle options=even,odd}">
  18 + <td class="username">{$context->getUserForId($document->getModifiedUserId())}</td>
  19 + <td class="date">{$document->getMajorVersionNumber()}.{$document->getMinorVersionNumber()}</td>
  20 + <td class="compare">Current</td>
  21 + </tr>
  22 +
  23 + {foreach item=oVersion from=$versions}
  24 + <tr class="{cycle options=even,odd}">
  25 + <td class="username">{$context->getUserForId($oVersion->getModifiedUserId())}</td>
  26 + <td class="date">{$oVersion->getMajorVersionNumber()}.{$oVersion->getMinorVersionNumber()}</td>
  27 + <td class="compare"><a href="{$smarty.server.PHP_SELF}?action=viewComparison&fDocumentId={$document->getId()}&fComparisonVersion={$oVersion->getId()}">compare with current</a></td>
  28 + </tr>
  29 + {/foreach}
  30 + </tbody>
  31 +
  32 + </table>
templates/kt3/view_document_history.smarty
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 <th class="action">Action</th> 11 <th class="action">Action</th>
12 <th class="date">Date</th> 12 <th class="date">Date</th>
13 <th class="contentversion">Content version</th> 13 <th class="contentversion">Content version</th>
14 - <th class="comment" colspan="2">Comment</th> 14 + <th class="comment">Comment</th>
15 </tr> 15 </tr>
16 </thead> 16 </thead>
17 <tbody> 17 <tbody>
@@ -22,9 +22,6 @@ @@ -22,9 +22,6 @@
22 <td class="date">{$aTransactionRow.datetime}</td> 22 <td class="date">{$aTransactionRow.datetime}</td>
23 <td class="contentversion">{$aTransactionRow.version}</td> 23 <td class="contentversion">{$aTransactionRow.version}</td>
24 <td class="comment">{$aTransactionRow.comment}</td> 24 <td class="comment">{$aTransactionRow.comment}</td>
25 - <td class="compare">  
26 - <a href="?action=viewComparison&fDocumentId={$document_id}&fComparisonVersion={$aTransactionRow.version}">Compare with current version</a>  
27 - </td>  
28 </tr> 25 </tr>
29 {/foreach} 26 {/foreach}
30 </tbody> 27 </tbody>