linkstory.html.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * The UI file of story 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 Wang Yidong <yidong@easycorp.ltd>
  8. * @package story
  9. * @link https://www.zentao.net
  10. */
  11. namespace zin;
  12. $pageParams = http_build_query($app->getParams());
  13. $config->story->dtable->fieldList['title']['title'] = $lang->story->name;
  14. $cols = array();
  15. $cols['id'] = $config->story->dtable->fieldList['id'];
  16. $cols['title'] = $config->story->dtable->fieldList['title'];
  17. $cols['pri'] = $config->story->dtable->fieldList['pri'];
  18. $cols['status'] = $config->story->dtable->fieldList['status'];
  19. $cols['stage'] = $config->story->dtable->fieldList['stage'];
  20. $cols['openedBy'] = $config->story->dtable->fieldList['openedBy'];
  21. $cols['estimate'] = $config->story->dtable->fieldList['estimate'];
  22. $cols['title']['nestedToggle'] = false;
  23. $cols['title']['flex'] = 1;
  24. $data = array();
  25. foreach($stories2Link as $linkStory) $data[] = $this->story->formatStoryForList($linkStory, array(), $linkStory->type, $maxGradeGroup);
  26. modalHeader(set::title($lang->story->linkStory));
  27. searchForm
  28. (
  29. set::module('story'),
  30. set::simple(true),
  31. set::show(true)
  32. );
  33. dtable
  34. (
  35. setID('linkStories'),
  36. set::userMap($users),
  37. set::cols($cols),
  38. set::data($data),
  39. set::footPager(usePager()),
  40. set::checkboxLabel($lang->selectAll),
  41. set::orderBy($orderBy),
  42. set::sortLink(createLink('story', 'linkStory', "storyID={$storyID}&type={$type}&linkedStoryID={$linkedStoryID}&browseType={$browseType}&queryID={$queryID}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&orderBy={name}_{sortType}"))
  43. );
  44. div
  45. (
  46. setClass('flex justify-center gap-4 p-4'),
  47. btn(setClass('px-6'), set::type('primary'), set::btnType('button'), set::text($lang->save), setData(array('on' => 'click', 'call' => 'fnLinkStories', 'params' => 'event'))),
  48. isInModal() ? null : backBtn(setClass('px-6'))
  49. );
  50. h::js
  51. (
  52. <<<EOD
  53. window.fnLinkStories = function(e)
  54. {
  55. const dtable = zui.DTable.query('#linkStories');
  56. const checkedList = dtable.$.getChecks();
  57. if(!checkedList.length) return;
  58. const postData = new FormData();
  59. postData.append('story', {$story->id});
  60. checkedList.forEach((id) => postData.append('stories[]', id));
  61. $.ajaxSubmit({"url": $.createLink('story', 'linkStory', '{$pageParams}'), "data": postData});
  62. }
  63. EOD
  64. );
  65. render();