story.html.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. /**
  3. * The browse view file of product module of ZenTaoPMS.
  4. *
  5. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  6. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  7. * @author chen.tao<chentao@easycorp.ltd>
  8. * @package product
  9. * @link https://www.zentao.net
  10. */
  11. namespace zin;
  12. jsVar('gradeGroup', $gradeGroup);
  13. jsVar('showGrade', $showGrade);
  14. jsVar('oldShowGrades', $showGrades);
  15. $viewType = $this->cookie->storyViewType ? $this->cookie->storyViewType : 'tree';
  16. foreach($libs as $id => $name) $libItems[] = array('text' => $name, 'url' => inlink('story', "libID=$id"), 'active' => $libID == $id);
  17. featureBar
  18. (
  19. to::leading
  20. (
  21. dropdown
  22. (
  23. btn(zget($libs, $libID), setClass('ghost')),
  24. set::items($libItems),
  25. set::trigger('click')
  26. ),
  27. picker
  28. (
  29. set::tree(),
  30. set::name('showGrades'),
  31. set::items($gradeMenu),
  32. set::search(false),
  33. set::multiple(true),
  34. set::width('150px'),
  35. setStyle('justify-content', 'center'),
  36. set::display($lang->story->viewAllGrades),
  37. set::menu(array('checkbox' => true)),
  38. set::value($showGrades),
  39. set::onPopHidden(jsRaw('setShowGrades'))
  40. )
  41. ),
  42. li(searchToggle(set::open($browseType == 'bysearch'), set::module('storyLib'))),
  43. set::link(inlink('story', "libID=$libID&browseType={key}"))
  44. );
  45. $importItem = array('text' => $lang->assetlib->importStory, 'data-size' => 'sm','url' => inlink('importstory', "libID=$libID"));
  46. toolbar
  47. (
  48. item(set(array
  49. (
  50. 'type' => 'btnGroup',
  51. 'items' => array(array
  52. (
  53. 'icon' => 'list',
  54. 'class' => 'btn-icon switchButton' . ($viewType == 'tiled' ? ' text-primary' : ''),
  55. 'data-type' => 'tiled',
  56. 'hint' => $lang->story->viewTypeList['tiled']
  57. ), array
  58. (
  59. 'icon' => 'treeview',
  60. 'class' => 'switchButton btn-icon' . ($viewType == 'tree' ? ' text-primary' : ''),
  61. 'data-type' => 'tree',
  62. 'hint' => $lang->story->viewTypeList['tree']
  63. ))
  64. ))),
  65. hasPriv('assetlib', 'storyLibView') ? item(set(array('id' => 'storyLibView', 'text' => $lang->assetlib->libView, 'icon' => 'list-alt', 'class' => 'ghost', 'url' => inlink('storyLibView', "libID=$libID")))) : null,
  66. common::hasPriv('assetlib', 'importstory') ? dropdown
  67. (
  68. btn(setID('importBtn'), setClass('btn ghost square dropdown-toggle'), set::icon('import')),
  69. set::items(array($importItem)),
  70. set::placement('bottom-end')
  71. ): null
  72. );
  73. $canBatchAssignTo = common::hasPriv('assetlib', 'batchAssignToStory');
  74. $canBatchApprove = common::hasPriv('assetlib', 'batchApproveStory');
  75. $canBatchRemove = common::hasPriv('assetlib', 'batchRemoveStory');
  76. $canBatchAction = ($browseType == 'all' or $browseType == 'bysearch') ? ($canBatchApprove or $canBatchRemove) : ($canBatchAssignTo or $canBatchApprove or $canBatchRemove);
  77. $footToolbar = array();
  78. if($canBatchAction)
  79. {
  80. if($canBatchAssignTo && $browseType == 'draft')
  81. {
  82. $assignedToItems = array();
  83. foreach($approvers as $account => $name)
  84. {
  85. $assignedToItems[] = array('text' => $name, 'class' => 'batch-btn', 'data-formaction' => createLink('assetlib', 'batchAssignToStory', "libID={$libID}&assignedTo={$account}"));
  86. }
  87. $footToolbar['items'][] = array('text' => $lang->assetlib->assignedTo, 'class' => 'btn btn-caret size-sm', 'btnType' => 'secondary', 'items' => $assignedToItems,'type' => 'dropdown');
  88. }
  89. if($canBatchApprove)
  90. {
  91. $approveItems = array();
  92. foreach($lang->assetlib->resultList as $key => $value)
  93. {
  94. $approveItems[] = array('text' => $value, 'class' => 'batch-btn', 'data-formaction' => createLink('assetlib', 'batchApproveStory', "libID={$libID}&result={$key}"));
  95. }
  96. $footToolbar['items'][] = array('text' => $lang->assetlib->approve, 'class' => 'batch-btn', 'btnType' => 'secondary', 'items' => $approveItems, 'data-url' => createLink('assetlib', 'batchApproveStory', "libID={$libID}"));
  97. }
  98. if($canBatchRemove)
  99. {
  100. $footToolbar['items'][] = array('text' => $lang->assetlib->removeStory, 'class' => 'batch-btn', 'btnType' => 'secondary', 'data-formaction' => createLink('assetlib', 'batchRemoveStory'));
  101. }
  102. }
  103. foreach($stories as $story)
  104. {
  105. if($story->status != 'active') $story->assignedTo = '';
  106. }
  107. if($viewType == 'tiled') $config->assetlib->dtable->story->fieldList['title']['nestedToggle'] = false;
  108. $stories = initTableData($stories, $config->assetlib->dtable->story->fieldList, $this->assetlib);
  109. $cols = array_values($config->assetlib->dtable->story->fieldList);
  110. $data = array_values($stories);
  111. dtable(set::id('stories'), set::cols($cols), set::data($data), set::userMap($users), set::fixedLeftWidth('44%'), set::checkable($canBatchAction ? true : false), set::onRenderCell(jsRaw('window.renderCell')), set::orderBy($orderBy), set::sortLink(inlink('story', "libkID={$libID}&browseType={$browseType}&param={$param}&orderBy={name}_{sortType}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}")), set::footToolbar($footToolbar), set::footPager(usePager()));