v1.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace zin;
  3. require_once dirname(__DIR__) . DS . 'datalist' . DS . 'v1.php';
  4. class bugLifeInfo extends wg
  5. {
  6. /**
  7. * @var mixed[]
  8. */
  9. protected static $defineProps = array
  10. (
  11. 'bug' => '?object', // 当前Bug。
  12. 'users' => '?array' // 用户列表。
  13. );
  14. protected function getItems()
  15. {
  16. global $lang;
  17. $bug = $this->prop('bug', data('bug'));
  18. if(!$bug) return array();
  19. $users = $this->prop('users', data('users'));
  20. $builds = $this->prop('builds', data('builds'));
  21. $items = array();
  22. $openedBuildList = explode(',', $bug->openedBuild);
  23. $openedBuildText = '';
  24. foreach($openedBuildList as $openedBuild)
  25. {
  26. if(!$openedBuild) continue;
  27. $openedBuildText .= zget($builds, $openedBuild) . ' ';
  28. }
  29. $items[$lang->bug->openedBy] = zget($users, $bug->openedBy) . (formatTime($bug->openedDate) ? $lang->at . $bug->openedDate : '');
  30. $items[$lang->bug->openedBuild] = trim($openedBuildText);
  31. $items[$lang->bug->lblResolved] = zget($users, $bug->resolvedBy) . (formatTime($bug->resolvedDate) ? $lang->at . formatTime($bug->resolvedDate, DT_DATE1) : '');
  32. $items[$lang->bug->resolvedBuild] = zget($builds, $bug->resolvedBuild);
  33. $duplicateBugLink = $bug->duplicateBug ? createLink('bug', 'view', "bugID={$bug->duplicateBug}") : '';
  34. $duplicateBugText = $bug->duplicateBug ? " #{$bug->duplicateBug}: " . "<a href='{$duplicateBugLink}' data-toggle='modal' data-size='lg'>{$bug->duplicateBugTitle}</a>": '';
  35. $duplicateBugText = div
  36. (
  37. span(zget($lang->bug->resolutionList, $bug->resolution)),
  38. $bug->duplicateBug ? span(" #{$bug->duplicateBug}: ") : null,
  39. $bug->duplicateBug ? a(
  40. $bug->duplicateBugTitle,
  41. set::href($duplicateBugLink),
  42. setData('toggle', 'modal'),
  43. setData('size', 'lg')
  44. ) : null
  45. );
  46. $items[$lang->bug->resolution] = array('children' => $duplicateBugText);
  47. $items[$lang->bug->closedBy] = zget($users, $bug->closedBy) . (formatTime($bug->closedDate) ? $lang->at . $bug->closedDate : '');
  48. $items[$lang->bug->lblLastEdited] = zget($users, $bug->lastEditedBy, $bug->lastEditedBy) . (formatTime($bug->lastEditedDate) ? $lang->at . $bug->lastEditedDate : '');
  49. return $items;
  50. }
  51. protected function build()
  52. {
  53. global $app;
  54. $isEn = $app->getClientLang() == 'en';
  55. return new datalist
  56. (
  57. set::className('bug-life-info'),
  58. $isEn ? set::labelWidth('100') : null,
  59. set::items($this->getItems())
  60. );
  61. }
  62. }