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,6 +43,7 @@ if (defined('DMS_DEFAULTS_INCLUDED'))
43 } 43 }
44 44
45 define('DMS_DEFAULTS_INCLUDED',1); 45 define('DMS_DEFAULTS_INCLUDED',1);
  46 +define('LATEST_WEBSERVICE_VERSION',2);
46 47
47 48
48 if (function_exists('apd_set_pprof_trace')) { 49 if (function_exists('apd_set_pprof_trace')) {
ktapi/KTAPIFolder.inc.php
@@ -315,6 +315,9 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -315,6 +315,9 @@ class KTAPI_Folder extends KTAPI_FolderItem
315 $read_permission = &KTPermission::getByName(KTAPI_PERMISSION_READ); 315 $read_permission = &KTPermission::getByName(KTAPI_PERMISSION_READ);
316 $folder_permission = &KTPermission::getByName(KTAPI_PERMISSION_VIEW_FOLDER); 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 $user = $this->ktapi->get_user(); 322 $user = $this->ktapi->get_user();
320 323
@@ -324,13 +327,10 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -324,13 +327,10 @@ class KTAPI_Folder extends KTAPI_FolderItem
324 { 327 {
325 $folder_children = Folder::getList(array('parent_id = ?', $this->folderid)); 328 $folder_children = Folder::getList(array('parent_id = ?', $this->folderid));
326 329
327 -  
328 foreach ($folder_children as $folder) 330 foreach ($folder_children as $folder)
329 { 331 {
330 if(KTPermissionUtil::userHasPermissionOnItem($user, $folder_permission, $folder)) 332 if(KTPermissionUtil::userHasPermissionOnItem($user, $folder_permission, $folder))
331 { 333 {
332 - $creator=$this->_resolve_user($folder->getCreatorID());  
333 -  
334 if ($depth-1 > 0) 334 if ($depth-1 > 0)
335 { 335 {
336 $sub_folder = &$this->ktapi->get_folder_by_id($folder->getId()); 336 $sub_folder = &$this->ktapi->get_folder_by_id($folder->getId());
@@ -341,6 +341,50 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -341,6 +341,50 @@ class KTAPI_Folder extends KTAPI_FolderItem
341 $items=array(); 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 $contents[] = array( 389 $contents[] = array(
346 'id' => (int) $folder->getId(), 390 'id' => (int) $folder->getId(),
@@ -360,8 +404,9 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -360,8 +404,9 @@ class KTAPI_Folder extends KTAPI_FolderItem
360 'items'=>$items, 404 'items'=>$items,
361 'workflow'=>'n/a', 405 'workflow'=>'n/a',
362 'workflow_state'=>'n/a' 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,9 +421,19 @@ class KTAPI_Folder extends KTAPI_FolderItem
376 { 421 {
377 if (KTPermissionUtil::userHasPermissionOnItem($user, $read_permission, $document)) 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 $mimetypeid=$document->getMimeTypeID(); 438 $mimetypeid=$document->getMimeTypeID();
384 if (!array_key_exists($mimetypeid, $mime_cache)) 439 if (!array_key_exists($mimetypeid, $mime_cache))
@@ -396,37 +451,73 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -396,37 +451,73 @@ class KTAPI_Folder extends KTAPI_FolderItem
396 } 451 }
397 $mimeinfo=$mime_cache[$mimetypeid]; 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 $state=$state->getHumanName(); 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 $contents[] = array( 513 $contents[] = array(
423 'id' => (int) $document->getId(), 514 'id' => (int) $document->getId(),
424 'item_type'=>'D', 515 'item_type'=>'D',
425 'title'=>$document->getName(), 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 'size'=>$document->getFileSize(), 521 'size'=>$document->getFileSize(),
431 'major_version'=>$document->getMajorVersionNumber(), 522 'major_version'=>$document->getMajorVersionNumber(),
432 'minor_version'=>$document->getMinorVersionNumber(), 523 'minor_version'=>$document->getMinorVersionNumber(),
@@ -438,6 +529,8 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -438,6 +529,8 @@ class KTAPI_Folder extends KTAPI_FolderItem
438 'workflow'=>$workflow, 529 'workflow'=>$workflow,
439 'workflow_state'=>$state 530 'workflow_state'=>$state
440 ); 531 );
  532 +
  533 + }
441 } 534 }
442 } 535 }
443 536
ktwebservice/webservice.php
@@ -127,7 +127,7 @@ class KTWebService @@ -127,7 +127,7 @@ class KTWebService
127 // Caching was giving some problems, so disable it. 127 // Caching was giving some problems, so disable it.
128 128
129 $config = &KTConfig::getSingleton(); 129 $config = &KTConfig::getSingleton();
130 - $this->version = $config->get('webservice/version', 2); 130 + $this->version = $config->get('webservice/version', LATEST_WEBSERVICE_VERSION);
131 $this->mustDebug = $config->get('webservice/debug', false); 131 $this->mustDebug = $config->get('webservice/debug', false);
132 $this->ktapi = null; 132 $this->ktapi = null;
133 133
@@ -175,6 +175,46 @@ class KTWebService @@ -175,6 +175,46 @@ class KTWebService
175 'items' =>"{urn:$this->namespace}kt_folder_items" 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 $this->__typedef["{urn:$this->namespace}kt_folder_items"] = 218 $this->__typedef["{urn:$this->namespace}kt_folder_items"] =
179 array( 219 array(
180 array( 220 array(