dynamicitem.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. namespace zin;
  3. class dynamicItem
  4. {
  5. /**
  6. * @param object $dynamic
  7. */
  8. public static function getStatusClass($dynamic)
  9. {
  10. $action = strtolower($dynamic->action);
  11. $objectType = strtolower($dynamic->objectType);
  12. // if($dynamic->major) return 'active';
  13. if($objectType == 'release' && $action == 'opened') return 'trophy';
  14. if($objectType == 'project' && $action == 'closed') return 'trophy';
  15. if(strpos($action, 'assigned') !== false) return 'blue';
  16. if(strpos($action, 'releaseddoc') !== false) return 'green';
  17. if(strpos($action, 'finished') !== false || strpos($action, 'resolved') !== false || ($action == 'closed' && $objectType != 'product')) return 'green';
  18. return '';
  19. }
  20. /**
  21. * @param object $dynamic
  22. * @param mixed[] $users
  23. */
  24. public static function build($dynamic, $users)
  25. {
  26. global $config;
  27. $dynamicLabel = zget($dynamic, 'dynamicLabel', '');
  28. if(empty($dynamicLabel)) $dynamicLabel = zget($dynamic, 'actionLabel', '');
  29. $objectLabel = array();
  30. if($dynamic->action != 'login' && $dynamic->action != 'logout')
  31. {
  32. $objectLabel[] = span
  33. (
  34. $dynamic->objectLabel
  35. );
  36. $objectID = $dynamic->objectID && strpos(',module,chartgroup,', ",$dynamic->objectType,") !== false && strpos(',created,edited,moved,', "$dynamic->action") !== false ? trim($dynamic->extra, ',') : $dynamic->objectID;
  37. $objectLabel[] = $objectID ? span
  38. (
  39. setClass('label gray-300-outline mx-2 font-sm'),
  40. $objectID
  41. ) : null;
  42. if(($config->edition == 'max' && strpos($config->action->assetType, ",{$dynamic->objectType},") !== false) && empty($dynamic->objectName))
  43. {
  44. $objectLabel[] = span("#{$dynamic->objectID}");
  45. }
  46. elseif(empty($dynamic->objectID) and $dynamic->extra)
  47. {
  48. $objectLabel[] = span("#{$dynamic->extra}");
  49. }
  50. elseif(empty($dynamic->objectLink))
  51. {
  52. $objectLabel[] = span($dynamic->objectName);
  53. }
  54. else
  55. {
  56. $objectLabel[] = a
  57. (
  58. set::href($dynamic->objectLink),
  59. set::title($dynamic->objectName),
  60. $dynamic->objectName
  61. );
  62. }
  63. }
  64. $dynamicClass = static::getStatusClass($dynamic);
  65. return li
  66. (
  67. setClass($dynamicClass),
  68. div
  69. (
  70. span
  71. (
  72. setClass('dynamic-tag p-1 text-gray'),
  73. isset($dynamic->time) ? $dynamic->time : $dynamic->date
  74. ),
  75. div
  76. (
  77. setClass('dynamic-text flex flex-nowrap justify-between items-center'),
  78. div
  79. (
  80. setClass('clip p-1'),
  81. zget($users, $dynamic->actor),
  82. span
  83. (
  84. setClass('text-gray px-1'),
  85. $dynamicLabel
  86. ),
  87. $objectLabel
  88. ),
  89. $dynamicClass == 'trophy' ?
  90. div
  91. (
  92. setClass('w-0 h-0'),
  93. h::img
  94. (
  95. set::src('static/svg/trophy.svg'),
  96. setClass('ml-2')
  97. )
  98. ) : null
  99. )
  100. )
  101. );
  102. }
  103. }