recentprojectblock.html.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * The recentproject block view file of block module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Yuting Wang <wangyuting@easycorp.ltd>
  7. * @package block
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $space = $app->getClientLang() == 'en' ? ' ' : '';
  12. $cards = array();
  13. foreach($projects as $projectID => $project)
  14. {
  15. $viewLink = createLink('project', 'index', "projectID=$project->id");
  16. $execution = $project->recentExecution;
  17. $cards[] = cell
  18. (
  19. setClass('p-2', $longBlock ? 'w-1/3' : 'w-full h-50'),
  20. div
  21. (
  22. setClass('border rounded-sm h-full px-4 hover:shadow hover:border-primary cursor-pointer open-url group', $longBlock ? 'py-3' : 'py-2'),
  23. setData('url', $viewLink),
  24. div
  25. (
  26. setClass('mb-2'),
  27. a
  28. (
  29. setClass('font-bold text-fore text-md group-hover:text-primary'),
  30. set('href', $viewLink),
  31. $project->name
  32. )
  33. ),
  34. div
  35. (
  36. setClass('space-y-3'),
  37. div
  38. (
  39. span(setClass('text-gray mr-1'), $lang->projectCommon . $space . $lang->project->member . ': '),
  40. sprintf($lang->block->totalMember, $project->teamCount)
  41. ),
  42. div
  43. (
  44. span
  45. (
  46. setClass('text-gray mr-1'),
  47. $lang->project->end . ': '
  48. ),
  49. $project->end == LONG_TIME ? $lang->program->longTime : $project->end
  50. ),
  51. div
  52. (
  53. $project->multiple && $execution ? div
  54. (
  55. span
  56. (
  57. setClass('text-gray mr-1'),
  58. $execution->type == 'kanban' ? $lang->project->lastKanban : $lang->block->zentaoapp->latestExecution . ': '
  59. ),
  60. a
  61. (
  62. set('href', createLink('execution', 'task', "executionID={$execution->id}")),
  63. $execution->name
  64. ),
  65. label
  66. (
  67. setClass('label warning-pale circle ml-2'),
  68. $lang->execution->statusList[$execution->status]
  69. )
  70. ) : div(setClass('h-5'))
  71. ),
  72. div
  73. (
  74. setClass('flex items-center'),
  75. span(setClass('num mr-1'), round((float)$project->progress) . '%'),
  76. progressBar
  77. (
  78. setClass('progress flex-auto'),
  79. set::height(8),
  80. set::percent(round((float)$project->progress)),
  81. set::color('var(--color-primary-300)'),
  82. set::background('rgba(0,0,0,0.02)')
  83. )
  84. )
  85. )
  86. )
  87. );
  88. }
  89. blockPanel
  90. (
  91. set::bodyClass('row flex-wrap justify-start p-1.5 pt-1'),
  92. set::headingClass('pb-0 border-b-0'),
  93. !empty($cards) ? $cards : center
  94. (
  95. setClass('text-gray flex-auto'),
  96. $lang->noData
  97. )
  98. );