linkstory.html.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * The linkstory file of mr 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 Ke Zhao <zhaoke@easycorp.ltd>
  7. * @package mr
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $moduleName = $app->rawModule;
  12. jsVar('orderBy', $orderBy);
  13. jsVar('sortLink', createLink($moduleName, 'linkStory', "MRID=$MRID&repoID=$repoID&browseType=$browseType&param=$param&orderBy={orderBy}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"));
  14. $this->loadModel('release');
  15. $app->loadLang('productplan');
  16. $footToolbar = array(
  17. 'items' => array
  18. (
  19. array(
  20. 'text' => $lang->mr->linkStory,
  21. 'className' => 'batch-btn ajax-btn',
  22. 'data-app' => $app->tab,
  23. 'data-url' => createLink($moduleName, 'linkStory', "MRID=$MRID&repoID=$repoID&browseType=$browseType&param=$param&orderBy=$orderBy")
  24. )
  25. ),
  26. 'btnProps' => array('size' => 'sm', 'btnType' => 'secondary', 'data-type' => 'stories'));
  27. searchForm
  28. (
  29. set::module('story'),
  30. set::simple(true),
  31. set::show(true),
  32. set::extraHeight('+144'),
  33. set::onSearch(jsRaw("window.onSearchLinks.bind(null, 'mr-story')"))
  34. );
  35. div
  36. (
  37. set('class', 'mr-linkstory-title'),
  38. icon('unlink'),
  39. span
  40. (
  41. set('class', 'font-semibold ml-2'),
  42. $lang->productplan->unlinkedStories . "({$pager->recTotal})"
  43. )
  44. );
  45. $cols = array();
  46. foreach($config->release->dtable->defaultFields['linkStory'] as $field) $cols[$field] = zget($config->release->dtable->story->fieldList, $field, array());
  47. $cols = array_map(function($col){$col['show'] = true; return $col;}, $cols);
  48. $cols['title']['data-toggle'] = 'modal';
  49. $cols['title']['data-size'] = 'lg';
  50. $cols['title']['nestedToggle'] = false;
  51. $cols['title']['link'] = array('module' => 'story', 'method' => 'view', 'params' => 'storyID={id}');
  52. $data = array_values($allStories);
  53. dtable
  54. (
  55. set::userMap($users),
  56. set::data($data),
  57. set::cols($cols),
  58. set::checkable(true),
  59. set::footToolbar($footToolbar),
  60. set::loadPartial(true),
  61. set::sortLink(jsRaw('createSortLink')),
  62. set::footer(array('checkbox', 'toolbar', array('html' => html::a(inlink('link', "MRID={$MRID}&type=story"), $lang->goback, '', "class='btn size-sm'")), 'flex', 'pager')),
  63. set::footPager(usePager())
  64. );