create.html.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. /**
  3. * The create view file of mr 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 Zeng Gang<zenggang@easycorp.ltd>
  7. * @package mr
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. h::importJs('js/misc/base64.js');
  12. jsVar('hostType', strtolower($repo->SCM));
  13. jsVar('hostID', $repo->gitService);
  14. jsVar('repo', $repo);
  15. jsVar('jobPairs', $jobPairs);
  16. jsVar('objectID', $objectID);
  17. jsVar('projectID', $project->id);
  18. jsVar('mrLang', $lang->mr);
  19. jsVar('branchPrivs', array());
  20. jsVar('projectNamespace', in_array($repo->SCM, array('Gitea', 'Gogs')) ? $project->name_with_namespace : '');
  21. $module = $app->tab == 'devops' ? 'repo' : $app->tab;
  22. dropmenu
  23. (
  24. set::module($module),
  25. set::tab($module),
  26. set::url(createLink($module, 'ajaxGetDropMenu', "objectID=$objectID&module={$app->rawModule}&method={$app->rawMethod}"))
  27. );
  28. if(in_array($repo->SCM, array('Gitea', 'Gogs')))
  29. {
  30. $projectItem = array($project->name_with_namespace => $project->name_with_namespace);
  31. }
  32. else
  33. {
  34. $projectItem = array($project->id => $project->name_with_namespace);
  35. }
  36. formPanel
  37. (
  38. set::title($lang->mr->create),
  39. set::labelWidth($app->clientLang == 'zh-cn' ? '6em' : '10em'),
  40. count($repoPairs) > 1 ? formGroup(
  41. set::label($lang->repo->common),
  42. set::width('1/2'),
  43. picker
  44. (
  45. setClass('font-normal w-36'),
  46. set::name('repoID'),
  47. set::items($repoPairs),
  48. set::value($repo->id),
  49. set::required(true),
  50. on::change('changeRepo')
  51. )
  52. ) : null,
  53. formGroup
  54. (
  55. setClass('hidden'),
  56. set::name('hostID'),
  57. set::value($repo->gitService)
  58. ),
  59. formGroup
  60. (
  61. set::width('1/2'),
  62. set::readonly(true),
  63. set::label($lang->repo->common),
  64. set::name('sourceProject'),
  65. set::id('sourceProject'),
  66. set::items($projectItem),
  67. set::value($repo->id),
  68. setClass(count($repoPairs) > 1 ? 'hidden' : '')
  69. ),
  70. formGroup
  71. (
  72. setClass('hidden'),
  73. set::name('targetProject'),
  74. set::id('targetProject'),
  75. set::items($projectItem),
  76. set::value($repo->id)
  77. ),
  78. formRow
  79. (
  80. formGroup
  81. (
  82. set::width('1/2'),
  83. set::labelWidth($app->clientLang == 'zh-cn' ? '6em' : '9em'),
  84. set::required(true),
  85. set::label($lang->mr->sourceBranch),
  86. set::name('sourceBranch'),
  87. set::items(array())
  88. ),
  89. formGroup
  90. (
  91. set::width('1/2'),
  92. set::labelWidth($app->clientLang == 'zh-cn' ? '6em' : '9em'),
  93. set::required(true),
  94. set::label($lang->mr->targetBranch),
  95. set::name('targetBranch'),
  96. set::items(array())
  97. )
  98. ),
  99. formGroup
  100. (
  101. set::required(true),
  102. set::name('title'),
  103. set::label($lang->mr->title)
  104. ),
  105. formGroup
  106. (
  107. set::width('1/2'),
  108. set::required(true),
  109. set::name('assignee'),
  110. set::label($lang->mr->reviewer),
  111. set::control('picker'),
  112. set::items($users)
  113. ),
  114. formRow
  115. (
  116. formGroup
  117. (
  118. set::label($lang->mr->submitType),
  119. set::name('needCI'),
  120. set::width('270px'),
  121. set::control(array('control' => 'checkbox', 'text' => $lang->mr->needCI, 'value' => '1')),
  122. on::change('onNeedCiChange')
  123. ),
  124. formGroup
  125. (
  126. set::name('removeSourceBranch'),
  127. set::width('150px'),
  128. set::control(array('control' => 'checkbox', 'text' => $lang->mr->removeSourceBranch, 'value' => '1'))
  129. ),
  130. formGroup
  131. (
  132. set::name('squash'),
  133. set::control(array('control' => 'checkbox', 'text' => $lang->mr->squash, 'value' => '1')),
  134. btn(icon('help'), setClass('text-gray size-sm mt-1 ghost'), set('data-placement', 'right'), set('data-type', 'white'), set('data-class-name', 'text-gray border border-light'), toggle::tooltip(array('title' => $lang->mr->squashHelp)))
  135. )
  136. ),
  137. formGroup
  138. (
  139. setID('jobID'),
  140. setClass('hidden'),
  141. set::width('1/2'),
  142. set::required(true),
  143. set::name('jobID'),
  144. set::label($lang->mr->pipeline),
  145. set::items($jobPairs)
  146. ),
  147. formGroup
  148. (
  149. set::name('description'),
  150. set::label($lang->mr->description),
  151. set::control('textarea')
  152. ),
  153. formRow
  154. (
  155. setClass('hidden'),
  156. formGroup
  157. (
  158. set::name('repoID'),
  159. set::label($lang->devops->repo),
  160. set::value($repo->id)
  161. )
  162. ),
  163. formRow
  164. (
  165. setClass('hidden'),
  166. formGroup
  167. (
  168. set::name('executionID'),
  169. set::label(''),
  170. set::value($executionID)
  171. )
  172. ),
  173. set::actions(array(
  174. 'submit',
  175. array(
  176. 'text' => $lang->goback,
  177. 'class' => 'btn',
  178. 'data-app' => $app->tab,
  179. 'url' => createLink($app->rawModule, 'browse', "repoID=" . ($executionID ? 0 : $repo->id) . "&mode=status&param=opened&objectID={$executionID}")
  180. )
  181. ))
  182. );
  183. render();