browse.html.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /**
  3. * The browse view file of activity 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 activity
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. if(!$hasProcess)
  12. {
  13. $currentModuleName = $lang->process->common;
  14. include('../../common/ext/ui/closefeaturenotice.html.php');
  15. return;
  16. }
  17. jsVar('groupID', $groupID);
  18. jsVar('browseType', $browseType);
  19. jsVar('param', $param);
  20. jsVar('orderBy', $orderBy);
  21. jsVar('sortHint', $lang->activity->sortHint);
  22. $cols = $this->loadModel('datatable')->getSetting('activity');
  23. if(!empty($cols['process'])) $cols['process']['map'] = $processes;
  24. if($browseType == 'all') unset($cols['order']);
  25. $activities = initTableData($activities, $cols, $this->activity);
  26. $canCreate = hasPriv('activity', 'create');
  27. $canBatchCreate = hasPriv('activity', 'batchCreate');
  28. $createLink = createLink('activity', 'create', "groupID=$groupID&processID=" . ($browseType == 'byprocess' ? $param : 0));
  29. $batchCreateLink = createLink('activity', 'batchCreate', "groupID=$groupID&processID=" . ($browseType == 'byprocess' ? $param : 0));
  30. $createItem = array('text' => $lang->activity->create, 'url' => $createLink, 'data-toggle' => 'modal');
  31. $batchCreateItem = array('text' => $lang->activity->batchCreate, 'url' => $batchCreateLink);
  32. featureBar
  33. (
  34. set::current($browseType == 'bysearch' ? $param : 'all'),
  35. set::linkParams("groupID={$groupID}&browseType={key}&param={$param}&orderBy={$orderBy}&scrollButtom=0&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"),
  36. li(searchToggle(set::open($browseType == 'bysearch')))
  37. );
  38. toolbar
  39. (
  40. $canCreate && $canBatchCreate ? btngroup
  41. (
  42. btn(setClass('btn primary create-activity-btn'), set::icon('plus'), set::url($createLink), $lang->activity->create, setData(array('toggle' => 'modal'))),
  43. dropdown
  44. (
  45. btn(setClass('btn primary dropdown-toggle'), setStyle(array('padding' => '6px', 'border-radius' => '0 2px 2px 0'))),
  46. set::items(array($createItem, $batchCreateItem)),
  47. set::placement('bottom-end')
  48. )
  49. ) : null,
  50. $canCreate && !$canBatchCreate ? item(set($createItem + array('class' => 'btn primary', 'icon' => 'plus'))) : null,
  51. $canBatchCreate && !$canCreate ? item(set($batchCreateItem + array('class' => 'btn primary', 'icon' => 'plus'))) : null
  52. );
  53. sidebar
  54. (
  55. moduleMenu
  56. (
  57. set::modules($moduleTree),
  58. set::activeKey($moduleID),
  59. set::allText($lang->activity->allProcesses),
  60. set::settingLink(''),
  61. set::showDisplay(false),
  62. set::closeLink(createLink('activity', 'browse', "groupID={$groupID}")),
  63. set::app($app->tab)
  64. )
  65. );
  66. $canBatchEdit = hasPriv('activity', 'batchEdit');
  67. $footToolbar = array
  68. (
  69. array
  70. (
  71. 'type' => 'btn-group',
  72. 'items' => array
  73. (
  74. array
  75. (
  76. 'text' => $lang->edit,
  77. 'className' => 'secondary batch-btn',
  78. 'data-page' => 'batch',
  79. 'data-formaction' => createLink('activity', 'batchEdit', "groupID=$groupID"),
  80. )
  81. )
  82. )
  83. );
  84. dtable
  85. (
  86. set::id('activities'),
  87. set::plugins(array('sortable')),
  88. set::cols($cols),
  89. set::data(array_values($activities)),
  90. set::checkable($canBatchEdit),
  91. set::userMap($users),
  92. set::customCols(true),
  93. set::orderBy($orderBy),
  94. set::sortHandler('.move-process'),
  95. set::sortable($orderBy == 'order_asc'),
  96. set::onSortEnd($orderBy == 'order_asc' ? jsRaw('window.onSortEnd') : null),
  97. set::sortLink(inlink('browse', "groupID={$groupID}&browseType={$browseType}&param={$param}&orderBy={name}_{sortType}&scrollButtom=0&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}")),
  98. set::onRenderCell(jsRaw('window.renderActivityCell')),
  99. set::afterRender($scrollButtom ? jsRaw("function(firstRender) {if(firstRender) this.scroll({to: 'bottom'});}") : null),
  100. set::footToolbar($footToolbar),
  101. set::footPager(usePager())
  102. );