index.html.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. /**
  3. * The index view file of reporttemplate module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2025 禅道软件(青岛)有限公司(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 Mengyi Liu
  7. * @package reporttemplate
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $scopeItems = array();
  12. foreach($scopeList as $scope)
  13. {
  14. $cardItems = array();
  15. if(!empty($templates[$scope->id]))
  16. {
  17. foreach($templates[$scope->id] as $template)
  18. {
  19. $cardDesc = $template->templateDesc ? $template->templateDesc : $lang->reporttemplate->noDesc;
  20. $cardDate = formatTime($template->hotDate, 'Y-m-d');
  21. $viewLink = createLink('reporttemplate', 'view', "reporttemplateID=$template->id");
  22. $editLink = createLink('reporttemplate', 'edit', "reporttemplateID=$template->id");
  23. $deleteLink = createLink('reporttemplate', 'delete', "templateID=$template->id");
  24. $actions = array();
  25. if(hasPriv('reporttemplate', 'edit')) $actions[] = array('icon' => 'edit', 'text' => $this->lang->reporttemplate->edit, 'url' => $editLink);
  26. if(hasPriv('reporttemplate', 'delete')) $actions[] = array('icon' => 'trash', 'text' => $this->lang->reporttemplate->deleteAbbr, 'url' => $deleteLink, 'data-confirm' => $this->lang->reporttemplate->confirmDelete, 'innerClass' => 'ajax-submit');
  27. $cardItems[] = div
  28. (
  29. hasPriv('reporttemplate', 'view') ? on::click()->do("clickTemplateCard(event, '$viewLink')") : null,
  30. setClass('reporttemplate-space-card-lib px-2 w-1/4 group'),
  31. div
  32. (
  33. setClass('canvas border rounded py-2 px-3 col gap-1 hover:shadow-lg hover:border-primary relative cursor-pointer'),
  34. div
  35. (
  36. setClass('flex gap-2 items-center pt-2 pb-1 mr-4'),
  37. icon
  38. (
  39. setClass('icon-file-archive text-2xl')
  40. ),
  41. div
  42. (
  43. setClass('font-bold text-clip flex-auto'),
  44. set::title($template->title),
  45. $template->title
  46. ),
  47. $template->status == 'draft' ? label
  48. (
  49. setClass('special-pale flex-none'),
  50. $lang->reporttemplate->statusList['draft']
  51. ) : null
  52. ),
  53. div
  54. (
  55. setClass('py-1'),
  56. $lang->reporttemplate->hotDate . ': ' . $cardDate
  57. ),
  58. div
  59. (
  60. setClass('text-gray text-clip text-sm py-1'),
  61. set::title($cardDesc),
  62. $cardDesc
  63. ),
  64. div
  65. (
  66. setClass('toolbar absolute top-1 right-1 opacity-0 group-hover:opacity-100'),
  67. !empty($actions) ? dropdown
  68. (
  69. btn(setClass('size-sm dropdown'), set::type('ghost'), set::icon('ellipsis-v'), set::caret(false)),
  70. set::items($actions),
  71. set::flip(true),
  72. set::placement('bottom-center'),
  73. set::strategy('absolute'),
  74. set::hasIcons(false)
  75. ) : null
  76. )
  77. )
  78. );
  79. }
  80. }
  81. $scopeItems[] = div
  82. (
  83. setClass('reporttemplate-space-card ring rounded surface-light'),
  84. div
  85. (
  86. setClass('row items-center justify-between gap-2 px-2.5 py-1 border-b'),
  87. div
  88. (
  89. setClass('row items-center ml-2 flex-none'),
  90. div
  91. (
  92. setClass('min-w-0 flex-auto'),
  93. strong($scope->name),
  94. span(setClass('label ml-2 flex-none bg-white size-sm text-sm'), $lang->reporttemplate->scope)
  95. )
  96. ),
  97. toolbar
  98. (
  99. hasPriv('reporttemplate', 'browse') ? item(set(array
  100. (
  101. 'type' => 'ghost',
  102. 'caret' => 'right',
  103. 'class' => 'text-primary',
  104. 'text' => $lang->more,
  105. 'url' => createLink('reporttemplate', 'browse', "libID={$scope->id}")
  106. ))) : null
  107. )
  108. ),
  109. div
  110. (
  111. setClass('reporttemplate-space-card-libs py-3 px-1.5'),
  112. !empty($cardItems) ? div
  113. (
  114. setClass('row'),
  115. $cardItems
  116. ) : div
  117. (
  118. setClass('center gap-4 py-10'),
  119. div
  120. (
  121. setClass('text-gray'),
  122. $lang->reporttemplate->noTemplate
  123. )
  124. )
  125. )
  126. );
  127. }
  128. div
  129. (
  130. setClass('reporttemplate-home-body flex-auto min-h-0 col gap-4 p-0.5 items-stretch overflow-auto scrollbar-hover'),
  131. $scopeItems
  132. );