edit.html.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <?php
  2. /**
  3. * Edit view of program plan 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 Yue Liu <liuyue@easycorp.ltd>
  8. * @package programPlan
  9. * @link https://www.zentao.net
  10. */
  11. namespace zin;
  12. $typeList = $project->model == 'ipd' ? $lang->stage->ipdTypeList : $lang->stage->typeList;
  13. $typeItems = array();
  14. foreach($typeList as $key => $value) $typeItems[] = array('text' => $value, 'value' => $key);
  15. jsVar('plan', $plan);
  16. jsVar('stageTypeList', $typeList);
  17. jsVar('stageTypeItems', $typeItems);
  18. jsVar('changeAttrLang', $lang->programplan->confirmChangeAttr);
  19. jsVar('isTopStage', $isTopStage);
  20. jsVar('isLeafStage', $isLeafStage);
  21. if($project->model == 'ipd') unset($config->programplan->edit->form['parent']);
  22. modalHeader
  23. (
  24. set::title($this->lang->programplan->edit),
  25. set::entityText($plan->name),
  26. set::entityID($plan->id)
  27. );
  28. formPanel
  29. (
  30. setID('editForm'),
  31. set::ajax(array('beforeSubmit' => jsRaw("editStage"))),
  32. set::submitBtnText($lang->save),
  33. formGroup
  34. (
  35. set::label($lang->programplan->parent),
  36. set::width('2/3'),
  37. picker
  38. (
  39. setID('parent'),
  40. set::name('parent'),
  41. set::items($parentStageList),
  42. set::value($plan->parent),
  43. set::disabled($hasUploadedDeliverable),
  44. set::required(true),
  45. on::change('changeParentStage')
  46. )
  47. ),
  48. formGroup
  49. (
  50. set::label($lang->programplan->name),
  51. set::width('2/3'),
  52. set::required(true),
  53. input(set::name('name'), set::value($plan->name))
  54. ),
  55. isset($config->setCode) && $config->setCode == 1 ? formGroup
  56. (
  57. set::label($lang->execution->stage . $lang->programplan->code),
  58. set::width('2/3'),
  59. set::required(in_array('code', explode(',', $requiredFields))),
  60. input(set::name('code'), set::value($plan->code))
  61. ): null,
  62. formGroup
  63. (
  64. set::label($lang->programplan->PM),
  65. set::width('2/3'),
  66. picker(set::name('PM'), set::items($PMUsers), set::value($plan->PM))
  67. ),
  68. isset($config->setPercent) && $config->setPercent == 1 && !in_array($project->model, array('research', 'ipd')) ? formGroup
  69. (
  70. set::label($lang->programplan->percent),
  71. set::width('2/3'),
  72. inputControl
  73. (
  74. input(set::name('percent'), set::value((string)$plan->percent)),
  75. to::suffix('%'),
  76. set::suffixWidth('lg')
  77. )
  78. ): null,
  79. $project->model != 'research' ? formRow
  80. (
  81. formGroup
  82. (
  83. set::label($lang->programplan->attribute),
  84. set::width('2/3'),
  85. div
  86. (
  87. setID('attributeType'),
  88. setClass('flex self-center w-full'),
  89. $enableOptionalAttr && empty($plan->hasDeliverable) ? picker
  90. (
  91. setID('attribute'),
  92. set::name('attribute'),
  93. set::items($typeList),
  94. set::value($plan->attribute),
  95. set::required(true)
  96. ) : div
  97. (
  98. zget($typeList, $plan->attribute),
  99. input
  100. (
  101. set::type('hidden'),
  102. set::name('attribute'),
  103. set::value($plan->attribute)
  104. )
  105. )
  106. )
  107. ),
  108. formGroup
  109. (
  110. setClass('items-center'),
  111. icon
  112. (
  113. 'help',
  114. toggle::tooltip(array('title' => $lang->execution->typeTip, 'placement' => 'right')),
  115. setClass('ghost ml-1')
  116. )
  117. )
  118. ): null,
  119. formGroup
  120. (
  121. set::label($lang->programplan->planDateRange),
  122. set::width('2/3'),
  123. set::required(true),
  124. inputGroup
  125. (
  126. setID('dateBox'),
  127. datepicker(set::name('begin'), set::value($plan->begin)),
  128. $lang->project->to,
  129. datepicker(set::name('end'), set::value($plan->end))
  130. )
  131. ),
  132. formGroup
  133. (
  134. set::label($lang->programplan->realDateRange),
  135. set::width('2/3'),
  136. inputGroup
  137. (
  138. datepicker(set::name('realBegan'), set::value($plan->realBegan)),
  139. $lang->project->to,
  140. datepicker(set::name('realEnd'), set::value($plan->realEnd))
  141. )
  142. ),
  143. $project->model != 'research' ? formGroup
  144. (
  145. set::label($lang->project->acl),
  146. set::width('2/3'),
  147. picker
  148. (
  149. set::name('acl'),
  150. set::items($lang->execution->aclList),
  151. set::value($plan->acl),
  152. set::disabled($plan->grade > 1 ? 'disabled' : ''),
  153. set::required(true)
  154. )
  155. ) : null,
  156. $plan->setMilestone && $project->model != 'research' ? formGroup
  157. (
  158. set::label($lang->programplan->milestone),
  159. set::width('2/3'),
  160. radioList
  161. (
  162. set::name('milestone'),
  163. set::items($lang->programplan->milestoneList),
  164. set::value($plan->milestone),
  165. set::inline(true)
  166. )
  167. ) : input(set::type('hidden'), set::value($plan->milestone)),
  168. isset($this->config->qcVersion) ?
  169. formGroup
  170. (
  171. set::label($lang->programplan->output),
  172. set::width('2/3'),
  173. picker
  174. (
  175. set::name('output[]'),
  176. set::items($documentList),
  177. set::value($plan->output),
  178. set::multiple(true),
  179. set::required(true)
  180. )
  181. ) : null
  182. );
  183. render('modalDialog');