create.html.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. /**
  3. * The create view file of release 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 release
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('projectID', isset($projectID) ? $projectID : 0);
  12. jsVar('appList', $appList);
  13. jsVar('productID', zget($product, 'id', 0));
  14. $productRow = array();
  15. if(!empty($projectID))
  16. {
  17. $productRow[] = on::change('#product', 'changeProduct');
  18. $productRow[] = formRow
  19. (
  20. setClass($product->shadow ? 'hidden' : ''),
  21. formGroup
  22. (
  23. set::width('1/2'),
  24. set::name('product'),
  25. set::label($lang->release->product),
  26. set::items($products),
  27. set::value($product->id)
  28. )
  29. );
  30. }
  31. formPanel
  32. (
  33. set::title($lang->release->create),
  34. set::titleClass('text-lg gap-0'),
  35. to::titleSuffix
  36. (
  37. btn(setClass('ghost'), icon('help'), set::hint($lang->help), set::url('https://www.zentao.net/book/zentaopms/888.html'), set::target('_blank'))
  38. ),
  39. on::change('[name=status]')->call('changeStatus'),
  40. on::change('[name=newSystem]')->call('setSystemBox'),
  41. on::change('[name=system]')->call('loadSystemBlock'),
  42. common::checkNotCN() ? set::labelWidth('160px') : null,
  43. formRow
  44. (
  45. formGroup
  46. (
  47. set::width('1/2'),
  48. set::label($lang->release->selectSystem),
  49. set::required(true),
  50. inputGroup
  51. (
  52. div
  53. (
  54. setClass('w-full'),
  55. setId('systemBox'),
  56. picker(set::name('system'), set::required(true), set::items(array_column($appList, 'name', 'id'))),
  57. input(set::name('systemName'), setClass('hidden'))
  58. ),
  59. hasPriv('system', 'create') ? div
  60. (
  61. setClass('input-group-addon flex'),
  62. checkbox
  63. (
  64. set::name('newSystem'),
  65. set::text($lang->release->addSystem)
  66. )
  67. ) : null
  68. )
  69. )
  70. ),
  71. formRow
  72. (
  73. formGroup
  74. (
  75. set::width('1/2'),
  76. set::name('name'),
  77. set::label($lang->release->name)
  78. ),
  79. formGroup
  80. (
  81. set::width('1/2'),
  82. setClass('items-center'),
  83. checkbox(
  84. set::name('marker'),
  85. set::rootClass('ml-4'),
  86. set::value(1),
  87. set::text($lang->release->marker)
  88. ),
  89. $lastRelease ? '(' . $lang->release->last . ': ' . $lastRelease->name . ')' : ''
  90. )
  91. ),
  92. $productRow,
  93. formGroup
  94. (
  95. setClass('hidden'),
  96. setID('systemBlock'),
  97. set::required(true),
  98. set::label($lang->release->includedSystem),
  99. div(setID('systemItems'), setClass('w-full'))
  100. ),
  101. formRow
  102. (
  103. setID('buildBox'),
  104. formGroup
  105. (
  106. set::width('1/2'),
  107. set::label($lang->release->includedBuild),
  108. picker
  109. (
  110. set::name('build[]'),
  111. set::placeholder($lang->build->placeholder->multipleSelect),
  112. set::items($builds),
  113. set::multiple(true)
  114. )
  115. ),
  116. formGroup
  117. (
  118. set::width('1/2'),
  119. setClass('items-center'),
  120. checkbox(
  121. set::name('sync'),
  122. set::rootClass('ml-4'),
  123. set::checked(1),
  124. set::value(1),
  125. set::text($lang->release->syncFromBuilds)
  126. )
  127. )
  128. ),
  129. formRow
  130. (
  131. formGroup
  132. (
  133. set::width('1/4'),
  134. set::name('status'),
  135. set::label($lang->release->status),
  136. set::control(array('control' => 'picker', 'required' => true)),
  137. set::value($status),
  138. set::items($lang->release->statusList)
  139. )
  140. ),
  141. formRow
  142. (
  143. formGroup
  144. (
  145. set::width(isInModal() ? '1/2' : '1/4'),
  146. set::name('date'),
  147. set::label($lang->release->date),
  148. set::value(helper::today()),
  149. set::control('date')
  150. )
  151. ),
  152. formRow
  153. (
  154. setClass('hidden'),
  155. formGroup
  156. (
  157. set::width(isInModal() ? '1/2' : '1/4'),
  158. set::name('releasedDate'),
  159. set::label($lang->release->releasedDate),
  160. set::value(helper::today()),
  161. set::control('date')
  162. )
  163. ),
  164. formGroup
  165. (
  166. set::label($lang->release->desc),
  167. set::name('desc'),
  168. set::control('editor'),
  169. set::rows('10')
  170. ),
  171. formGroup
  172. (
  173. set::label($lang->release->mailto),
  174. mailto(set::items($users))
  175. ),
  176. formGroup
  177. (
  178. set::label($lang->release->files),
  179. fileSelector(set::name('releaseFiles[]'))
  180. )
  181. );
  182. /* ====== Render page ====== */
  183. render();