create.html.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. /**
  3. * The create view file of execution 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 Shujie Tian<tianshujie@easycorp.ltd>
  7. * @package execution
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $fields = useFields('execution.create');
  12. $typeField = $isStage ? 'attribute' : 'lifetime';
  13. $fields->fullModeOrders('productsBox,PO,QD,PM,RD,team,teams,teamMembers[],desc');
  14. if(!$isStage || empty($config->setPercent))
  15. {
  16. $fields->remove('percent');
  17. $fields->field('days')->width('1/2');
  18. }
  19. if(empty($config->setCode)) $fields->remove('code');
  20. if(!empty($config->setCode)) $fields->moveBefore($typeField, 'name');
  21. if(!empty($project->model) && $project->model == 'kanban')
  22. {
  23. $fields->remove($typeField);
  24. if(empty($config->setCode)) $fields->field('name')->wrapAfter();
  25. }
  26. if(!empty($project->model) && $project->model == 'agileplus')
  27. {
  28. if(!empty($config->setCode))
  29. {
  30. $fields->field('code')->width('1/4');
  31. $fields->field($typeField)->width('1/4');
  32. $fields->moveAfter($typeField, 'code');
  33. }
  34. if($isKanban)
  35. {
  36. if(empty($config->setCode)) $fields->field('name')->width('full');
  37. if(!empty($config->setCode)) $fields->field('code')->width('1/2');
  38. }
  39. }
  40. jsVar('+projectID', $projectID);
  41. jsVar('copyProjectID', $copyProjectID);
  42. jsVar('window.weekend', $config->execution->weekend);
  43. jsVar('isStage', $isStage);
  44. jsVar('copyExecutionID', $copyExecutionID);
  45. jsVar('executionID', isset($executionID) ? $executionID : 0);
  46. jsVar('typeDesc', $lang->execution->typeDesc);
  47. $showExecutionExec = !empty($from) and ($from == 'execution' || $from == 'doc');
  48. formGridPanel
  49. (
  50. set::title($showExecutionExec ? $lang->execution->createExec : $lang->execution->create),
  51. to::headingActions
  52. (
  53. btn
  54. (
  55. set::icon('copy'),
  56. setClass('primary-ghost size-md'),
  57. toggle::modal(array('target' => '#copyExecutionModal', 'destroyOnHide' => true, 'size' => 'sm')),
  58. $lang->execution->copyExec
  59. ),
  60. divider(setClass('h-4 mr-4 ml-2 self-center'))
  61. ),
  62. on::change('[name=project]', 'refreshPage'),
  63. on::change('[name=type]', 'setType'),
  64. on::change('[name=begin],[name=end]', 'computeWorkDays'),
  65. on::change('[name=teams]', 'loadMembers'),
  66. on::change('[name=parent]', 'setParentStage'),
  67. on::change('#copyTeam', 'toggleCopyTeam'),
  68. on::click('[name=lifetime]', 'toggleOpsTip'),
  69. set::fields($fields)
  70. );
  71. modalTrigger
  72. (
  73. modal
  74. (
  75. set::id('copyExecutionModal'),
  76. set::footerClass('justify-center'),
  77. to::header
  78. (
  79. div
  80. (
  81. setClass('w-full'),
  82. div
  83. (
  84. h4
  85. (
  86. set::className('copy-title'),
  87. $lang->execution->copyTitle
  88. )
  89. ),
  90. div
  91. (
  92. setClass('flex items-center py-4 border-b border-b-1'),
  93. span
  94. (
  95. setClass('mr-2'),
  96. $lang->execution->selectProject
  97. ),
  98. picker
  99. (
  100. set::className('flex-1 w-full'),
  101. set::name('project'),
  102. set::items($copyProjects),
  103. set::value($projectID),
  104. set::required(true),
  105. on::change('loadProjectExecutions')
  106. )
  107. )
  108. )
  109. ),
  110. to::footer
  111. (
  112. setClass('mt-4'),
  113. btn
  114. (
  115. setClass('primary btn-wide hidden confirmBtn'),
  116. set::text($lang->execution->copyExec),
  117. on::click('setCopyExecution')
  118. )
  119. ),
  120. div
  121. (
  122. set::id('copyExecutions'),
  123. setClass('flex items-center flex-wrap gap-4')
  124. )
  125. )
  126. );