v1.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace zin;
  3. require_once dirname(__DIR__) . DS . 'datalist' . DS . 'v1.php';
  4. class caseTimeInfo extends wg
  5. {
  6. /**
  7. * @var mixed[]
  8. */
  9. protected static $defineProps = array
  10. (
  11. 'case' => '?object', // 当前用例。
  12. 'users' => '?array' // 用户列表。
  13. );
  14. protected function getReviewedBy($users, $case)
  15. {
  16. $reviewedBy = '';
  17. foreach(explode(',', $case->reviewedBy) as $account)
  18. {
  19. $reviewedBy .= ' ' . zget($users, trim($account));
  20. }
  21. $reviewedBy = trim($reviewedBy);
  22. return $reviewedBy;
  23. }
  24. protected function getItems()
  25. {
  26. global $lang;
  27. $case = $this->prop('case', data('case'));
  28. if(!$case) return array();
  29. $users = $this->prop('users', data('users'));
  30. $items = array();
  31. $items[$lang->testcase->openedBy] = zget($users, $case->openedBy) . $lang->at . $case->openedDate;
  32. $items[$lang->testcase->reviewedBy] = $this->getReviewedBy($users, $case);
  33. $items[$lang->testcase->reviewedDate] = !empty($case->reviewedBy) ? $case->reviewedDate : '';
  34. $items[$lang->testcase->lblLastEdited] = !empty($case->lastEditedBy) ? zget($users, $case->lastEditedBy) . $lang->at . $case->lastEditedDate : '';
  35. return $items;
  36. }
  37. protected function build()
  38. {
  39. global $app;
  40. $isEn = $app->getClientLang() == 'en';
  41. return new datalist
  42. (
  43. set::className('case-time-info'),
  44. $isEn ? set::labelWidth('86') : null,
  45. set::items($this->getItems())
  46. );
  47. }
  48. }