Commit 93ca40c8fd6995c535ae99e90b035f2da390ab47
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
Showing
3 changed files
with
158 additions
and
24 deletions
config/dmsDefaults.php
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( | ... | ... |