Commit 93ca40c8fd6995c535ae99e90b035f2da390ab47

Authored by conradverm
1 parent c330991f

WSA-71

"Add missing fields to folder contents structure in web services"
Fixed.

Committed By: Conrad Vermeulen
Reviewed By: Martin Kirsten

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@7732 c91229c3-7414-0410-bfa2-8a42b809f60b
config/dmsDefaults.php
... ... @@ -43,6 +43,7 @@ if (defined('DMS_DEFAULTS_INCLUDED'))
43 43 }
44 44  
45 45 define('DMS_DEFAULTS_INCLUDED',1);
  46 +define('LATEST_WEBSERVICE_VERSION',2);
46 47  
47 48  
48 49 if (function_exists('apd_set_pprof_trace')) {
... ...
ktapi/KTAPIFolder.inc.php
... ... @@ -315,6 +315,9 @@ class KTAPI_Folder extends KTAPI_FolderItem
315 315 $read_permission = &KTPermission::getByName(KTAPI_PERMISSION_READ);
316 316 $folder_permission = &KTPermission::getByName(KTAPI_PERMISSION_VIEW_FOLDER);
317 317  
  318 + $config = KTConfig::getSingleton();
  319 +
  320 + $wsversion = $config->get('webservice/version', LATEST_WEBSERVICE_VERSION);
318 321  
319 322 $user = $this->ktapi->get_user();
320 323  
... ... @@ -324,13 +327,10 @@ class KTAPI_Folder extends KTAPI_FolderItem
324 327 {
325 328 $folder_children = Folder::getList(array('parent_id = ?', $this->folderid));
326 329  
327   -
328 330 foreach ($folder_children as $folder)
329 331 {
330 332 if(KTPermissionUtil::userHasPermissionOnItem($user, $folder_permission, $folder))
331 333 {
332   - $creator=$this->_resolve_user($folder->getCreatorID());
333   -
334 334 if ($depth-1 > 0)
335 335 {
336 336 $sub_folder = &$this->ktapi->get_folder_by_id($folder->getId());
... ... @@ -341,6 +341,50 @@ class KTAPI_Folder extends KTAPI_FolderItem
341 341 $items=array();
342 342 }
343 343  
  344 + $creator=$this->_resolve_user($folder->getCreatorID());
  345 +
  346 +
  347 + if ($wsversion >= 2)
  348 + {
  349 + $contents[] = array(
  350 + 'id' => (int) $folder->getId(),
  351 + 'item_type' => 'F',
  352 +
  353 + 'title' => $folder->getName(),
  354 + 'filename' => $folder->getName(),
  355 + 'filesize' => 'n/a',
  356 +
  357 + 'created_by' => is_null($creator)?'n/a':$creator->getName(),
  358 + 'created_date' => 'n/a',
  359 +
  360 + 'checked_out_by' => 'n/a',
  361 + 'checked_out_date' => 'n/a',
  362 +
  363 + 'modified_by' => 'n/a',
  364 + 'modified_date' => 'n/a',
  365 +
  366 + 'owned_by' => 'n/a',
  367 +
  368 + 'version' => 'n/a',
  369 +
  370 + 'immutable'=> 'n/a',
  371 + 'permissions' => 'n/a',
  372 +
  373 + 'workflow'=>'n/a',
  374 + 'workflow_state'=>'n/a',
  375 +
  376 + 'mime_type' => 'folder',
  377 + 'mime_icon_path' => 'folder',
  378 + 'mime_display' => 'Folder',
  379 +
  380 + 'storage_path' => 'n/a',
  381 +
  382 + 'items'=>$items,
  383 +
  384 + );
  385 + }
  386 + else
  387 + {
344 388  
345 389 $contents[] = array(
346 390 'id' => (int) $folder->getId(),
... ... @@ -360,8 +404,9 @@ class KTAPI_Folder extends KTAPI_FolderItem
360 404 'items'=>$items,
361 405 'workflow'=>'n/a',
362 406 'workflow_state'=>'n/a'
363   -
364 407 );
  408 + }
  409 +
365 410 }
366 411 }
367 412 }
... ... @@ -376,9 +421,19 @@ class KTAPI_Folder extends KTAPI_FolderItem
376 421 {
377 422 if (KTPermissionUtil::userHasPermissionOnItem($user, $read_permission, $document))
378 423 {
379   - $creator=$this->_resolve_user($document->getCreatorID());
380   - $checkedoutby=$this->_resolve_user($document->getCheckedOutUserID());
381   - $modifiedby=$this->_resolve_user($document->getCreatorID());
  424 + $created_by=$this->_resolve_user($document->getCreatorID());
  425 + $created_date = $document->getCreatedDateTime();
  426 + if (empty($created_date)) $created_date = 'n/a';
  427 +
  428 + $checked_out_by=$this->_resolve_user($document->getCheckedOutUserID());
  429 + $checked_out_date = $document->getCheckedOutDate();
  430 + if (empty($checked_out_date)) $checked_out_date = 'n/a';
  431 +
  432 + $modified_by=$this->_resolve_user($document->getCreatorID());
  433 + $modified_date = $document->getCheckedOutDate();
  434 + if (empty($modified_date)) $modified_date = 'n/a';
  435 +
  436 + $owned_by =$this->_resolve_user($document->getOwnerID());
382 437  
383 438 $mimetypeid=$document->getMimeTypeID();
384 439 if (!array_key_exists($mimetypeid, $mime_cache))
... ... @@ -396,37 +451,73 @@ class KTAPI_Folder extends KTAPI_FolderItem
396 451 }
397 452 $mimeinfo=$mime_cache[$mimetypeid];
398 453  
399   - $workflow = KTWorkflowUtil::getWorkflowForDocument($document);
  454 + $workflow='n/a';
  455 + $state='n/a';
  456 +
  457 + $wf = KTWorkflowUtil::getWorkflowForDocument($document);
400 458  
401   - if (!is_null($workflow) && !PEAR::isError($workflow))
  459 + if (!is_null($wf) && !PEAR::isError($wf))
402 460 {
403   - $workflow=$workflow->getHumanName();
  461 + $workflow=$wf->getHumanName();
404 462  
405   - $state=KTWorkflowUtil::getWorkflowStateForDocument($document);
406   - if (!is_null($state) && !PEAR::isError($state))
  463 + $ws=KTWorkflowUtil::getWorkflowStateForDocument($document);
  464 + if (!is_null($ws) && !PEAR::isError($ws))
407 465 {
408 466 $state=$state->getHumanName();
409 467 }
410   - else
411   - {
412   - $state='n/a';
413   - }
414 468 }
415   - else
  469 +
  470 + if ($wsversion >= 2)
416 471 {
417   - $workflow='n/a';
418   - $state='n/a';
  472 + $contents[] = array(
  473 + 'id' => (int) $document->getId(),
  474 + 'item_type' => 'D',
  475 +
  476 + 'title' => $document->getName(),
  477 + 'filename' => $document->getFileName(),
  478 + 'filesize' => $document->getFileSize(),
  479 +
  480 + 'created_by' => is_null($created_by)?'n/a':$created_by->getName(),
  481 + 'created_date' => $created_date,
  482 +
  483 + 'checked_out_by' => is_null($checked_out_by)?'n/a':$checked_out_by->getName(),
  484 + 'checked_out_date' => $checked_out_date,
  485 +
  486 + 'modified_by' => is_null($modified_by)?'n/a':$modified_by->getName(),
  487 + 'modified_date' => $modified_date,
  488 +
  489 + 'owned_by' => is_null($owned_by)?'n/a':$owned_by->getName(),
  490 +
  491 + 'version' => $document->getMajorVersionNumber() . '.' . $document->getMinorVersionNumber(),
  492 +
  493 + 'immutable'=> $document->getImmutable()?'true':'false',
  494 + 'permissions' => 'n/a',
  495 +
  496 + 'workflow'=> $workflow,
  497 + 'workflow_state'=> $state,
  498 +
  499 + 'mime_type' => $mime_cache[$mimetypeid]['type'],
  500 + 'mime_icon_path' => $mime_cache[$mimetypeid]['icon'],
  501 + 'mime_display' => $mime_cache[$mimetypeid]['display'],
  502 +
  503 + 'storage_path' => $document->getStoragePath(),
  504 +
  505 + 'items'=>array(),
  506 +
  507 + );
419 508 }
  509 + else
  510 + {
420 511  
421 512  
422 513 $contents[] = array(
423 514 'id' => (int) $document->getId(),
424 515 'item_type'=>'D',
425 516 'title'=>$document->getName(),
426   - 'creator'=>is_null($creator)?'n/a':$creator->getName(),
427   - 'checkedoutby'=>is_null($checkedoutby)?'n/a':$checkedoutby->getName(),
428   - 'modifiedby'=>is_null($modifiedby)?'n/a':$modifiedby->getName(),
429   - 'filename'=>$document->getName(),
  517 + 'creator'=>is_null($created_by)?'n/a':$created_by->getName(),
  518 + 'checkedoutby'=>is_null($checked_out_by)?'n/a':$checked_out_by->getName(),
  519 + 'modifiedby'=>is_null($modified_by)?'n/a':$modified_by->getName(),
  520 + 'filename'=>$document->getFileName(),
430 521 'size'=>$document->getFileSize(),
431 522 'major_version'=>$document->getMajorVersionNumber(),
432 523 'minor_version'=>$document->getMinorVersionNumber(),
... ... @@ -438,6 +529,8 @@ class KTAPI_Folder extends KTAPI_FolderItem
438 529 'workflow'=>$workflow,
439 530 'workflow_state'=>$state
440 531 );
  532 +
  533 + }
441 534 }
442 535 }
443 536  
... ...
ktwebservice/webservice.php
... ... @@ -127,7 +127,7 @@ class KTWebService
127 127 // Caching was giving some problems, so disable it.
128 128  
129 129 $config = &KTConfig::getSingleton();
130   - $this->version = $config->get('webservice/version', 2);
  130 + $this->version = $config->get('webservice/version', LATEST_WEBSERVICE_VERSION);
131 131 $this->mustDebug = $config->get('webservice/debug', false);
132 132 $this->ktapi = null;
133 133  
... ... @@ -175,6 +175,46 @@ class KTWebService
175 175 'items' =>"{urn:$this->namespace}kt_folder_items"
176 176 );
177 177  
  178 + if ($this->version >= 2)
  179 + {
  180 + $this->__typedef["{urn:$this->namespace}kt_folder_item"] =
  181 + array(
  182 + 'id' => 'int',
  183 + 'item_type' => 'string',
  184 +
  185 + 'title' => 'string',
  186 + 'filename' => 'string',
  187 + 'filesize' => 'string',
  188 +
  189 + 'created_by' => 'string',
  190 + 'created_date' => 'string',
  191 +
  192 + 'checked_out_by' => 'string',
  193 + 'checked_out_date' => 'string',
  194 +
  195 + 'modified_by' => 'string',
  196 + 'modified_date' => 'string',
  197 +
  198 + 'owned_by' => 'string',
  199 +
  200 + 'version' => 'string',
  201 +
  202 + 'immutable'=>'boolean',
  203 + 'permissions' => 'string',
  204 +
  205 + 'workflow'=>'string',
  206 + 'workflow_state'=>'string',
  207 +
  208 + 'mime_type' => 'string',
  209 + 'mime_icon_path' => 'string',
  210 + 'mime_display' => 'string',
  211 +
  212 + 'storage_path' => 'string',
  213 +
  214 + 'items' =>"{urn:$this->namespace}kt_folder_items"
  215 + );
  216 + }
  217 +
178 218 $this->__typedef["{urn:$this->namespace}kt_folder_items"] =
179 219 array(
180 220 array(
... ...