browse.html.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. /**
  3. * The browse view file of screen 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 Gang Liu <liugang@easycorp.ltd>
  7. * @package screen
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('showGuide', $showGuide);
  12. $bizGuideLink = common::checkNotCN() ? 'https://www.zentao.pm/page/zentao-pricing.html' : 'https://www.zentao.net/page/enterprise.html';
  13. if($this->config->edition == 'open')
  14. {
  15. div
  16. (
  17. set::className('clearfix pt-3 pr-2.5'),
  18. div
  19. (
  20. set::className('pull-right'),
  21. btn
  22. (
  23. setClass('text-primary'),
  24. set::text($lang->screen->bizGuide),
  25. set::trailingIcon('chevron-right'),
  26. set::type('ghost'),
  27. set::url($bizGuideLink),
  28. set::target('blank')
  29. )
  30. )
  31. );
  32. }
  33. if(empty($screens))
  34. {
  35. div
  36. (
  37. setClass('flex justify-center items-center text-gray bg-white h-48'),
  38. $lang->screen->noscreens
  39. );
  40. }
  41. else
  42. {
  43. $items = array();
  44. $canView = hasPriv('screen', 'view');
  45. foreach($screens as $screenID => $screen)
  46. {
  47. if($screenID == 3 && !hasPriv('screen', 'annualData')) continue;
  48. $content = div(setClass('border border-strong'), div
  49. (
  50. setClass("h-48 image_{$screen->status}"),
  51. img(setClass('h-full object-cover object-top'), set(array('src' => $screen->src, 'width' => '100%')))
  52. ), div
  53. (
  54. setClass('px-4 py-3 h-20 relative'),
  55. setData(array('builtin' => $screen->builtin, 'status' => $screen->status)),
  56. div
  57. (
  58. setClass('text-black text-md overflow-hidden'),
  59. set::title($screen->name),
  60. $screen->status == 'draft' ? label(setClass('secondary-pale mr-1'), $lang->screen->draft) : null,
  61. $screen->name
  62. ),
  63. div(setClass('text-gray text-sm overflow-hidden'), set::title($screen->name), $screen->desc ?: $lang->screen->noDesc),
  64. !empty($screen->actions) ? div
  65. (
  66. setClass('absolute right-0 top-0'),
  67. dropdown(btn
  68. (
  69. set::type('ghost'),
  70. set::icon('ellipsis-v'),
  71. set::caret(false),
  72. on::click()->prevent()->stop()
  73. ), set::items($screen->actions), set::flip(true), set::placement('bottom-center'), set::strategy('absolute'), set::hasIcons(false), set::trigger('hover'))
  74. ) : null
  75. ));
  76. $items[] = div
  77. (
  78. setData(array('id' => $screen->id)),
  79. setClass('pl-2.5 pr-2.5 mb-2 w-1/4'),
  80. $canView ? a
  81. (
  82. set::href(createLink('screen', 'view', "id={$screen->id}")),
  83. set::target('_blank'),
  84. $content
  85. ) : $content
  86. );
  87. }
  88. div(setClass('flex flex-wrap'),$items);
  89. }
  90. if($showGuide)
  91. {
  92. modal
  93. (
  94. setID('firstGuide'),
  95. set::closeBtn(false),
  96. set::bodyProps(array('style' => array('padding' => '0'))),
  97. div
  98. (
  99. setStyle(array('background' => "url($imageURL) no-repeat", 'background-size' => '100%', 'height' => '460px')),
  100. $version == 'pms' ? a
  101. (
  102. setStyle(array('position' => 'absolute', 'width' => '50px', 'height' => '20px', 'top' => '235px', 'right' => '117px')),
  103. set::href($lang->admin->bizInfoURL),
  104. set::target('_blank')
  105. ) : null
  106. ),
  107. set::footerClass('form-actions py-6'),
  108. set::footerActions(array(array('data-dismiss' => 'modal', 'class' => 'primary', 'text' => $lang->close)))
  109. );
  110. }