viewtask.html.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. /**
  3. * The view task file of marketresearch module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2024 禅道软件(青岛)有限公司(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 Hucheng Tang<tanghucheng@easycorp.ltd>
  7. * @package marketresearch
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. include($this->app->getModuleRoot() . 'ai/ui/promptmenu.html.php');
  12. $isInModal = isInModal();
  13. $task->executionInfo = $execution;
  14. $actions = $this->loadModel('common')->buildOperateMenu($task);
  15. $hasDivider = !empty($actions['mainActions']) && !empty($actions['suffixActions']);
  16. if(!empty($actions)) $actions = array_merge($actions['mainActions'], array('type' => 'divider'), $actions['suffixActions']);
  17. if(!$hasDivider) unset($actions['type']);
  18. foreach($actions as $key => $action)
  19. {
  20. if(isset($action['url']) && strpos($action['url'], 'createBranch') !== false && empty($hasGitRepo)) unset($actions[$key]);
  21. if(isset($action['url']) && strpos($action['url'], 'view') !== false && strpos($action['url'], 'review') === false)
  22. {
  23. if($isInModal)
  24. {
  25. $actions[$key]['data-toggle'] = 'modal';
  26. $actions[$key]['data-size'] = 'lg';
  27. }
  28. if($task->parent == 0) unset($actions[$key]);
  29. }
  30. if(isonlybody() && isset($actions[$key]['data-load']))
  31. {
  32. unset($actions[$key]['data-load']);
  33. $actions[$key]['data-toggle'] = 'modal';
  34. }
  35. if(isset($actions[$key]['url']))
  36. {
  37. $actions[$key]['url'] = str_replace(array('{story}', '{module}', '{parent}', '{execution}'), array($task->story, $task->module, $task->parent, $task->execution), $action['url']);
  38. }
  39. }
  40. /* 初始化主栏内容。Init sections in main column. */
  41. $sections = array();
  42. $sections[] = setting()
  43. ->title($lang->task->legendDesc)
  44. ->control('html')
  45. ->content(empty($task->desc) ? $lang->noDesc : $task->desc);
  46. if($task->children)
  47. {
  48. $children = initTableData($task->children, $config->task->dtable->children->fieldList, $this->task);
  49. $sections[] = setting()
  50. ->title($lang->task->children)
  51. ->control('dtable')
  52. ->className('ring')
  53. ->cols(array_values($config->task->dtable->children->fieldList))
  54. ->userMap($users)
  55. ->data($children)
  56. ->checkable(false);
  57. }
  58. if($task->files)
  59. {
  60. $sections[] = array
  61. (
  62. 'control' => 'fileList',
  63. 'files' => $task->files,
  64. 'object' => $task,
  65. 'padding' => false
  66. );
  67. }
  68. /* 初始化侧边栏标签页。Init sidebar tabs. */
  69. $tabs = array();
  70. /* 基本信息。Legend basic items. */
  71. $tabs[] = setting()
  72. ->group('basic')
  73. ->title($lang->task->legendBasic)
  74. ->control('researchtaskBasicinfo')
  75. ->statusText($this->processStatus('task', $task));
  76. /* 一生信息。Legend life items. */
  77. $tabs[] = setting()
  78. ->group('basic')
  79. ->title($lang->task->legendLife)
  80. ->control('taskLifeInfo');
  81. if($task->team)
  82. {
  83. $tabs[] = setting()
  84. ->group('basic')
  85. ->title($lang->task->team)
  86. ->control('taskTeam');
  87. }
  88. $tabs[] = setting()
  89. ->group('related')
  90. ->title($lang->task->legendEffort)
  91. ->control('taskEffortInfo');
  92. detail
  93. (
  94. set::objectType('task'),
  95. $task->parent > 0 ? array
  96. (
  97. set::parentTitle($task->parentName),
  98. set::parentUrl(createLink('marketresearch', 'viewTask', "taskID={$task->parent}")),
  99. set::parentTitleProps(array('data-load' => 'modal')),
  100. to::title(to::leading(label(setClass('gray-pale rounded-full'), $lang->task->childrenAB)))
  101. ) : null,
  102. set::urlFormatter(array('{id}' => $task->id, '{parent}' => $task->parent, '{execution}' => $task->execution)),
  103. set::toolbar($toolbar),
  104. set::sections($sections),
  105. set::tabs($tabs),
  106. set::actions(array_values($actions))
  107. );