create.html.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <?php
  2. /**
  3. * The create view file of repo 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 repo
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. if($this->app->tab != 'devops')
  12. {
  13. dropmenu
  14. (
  15. set::module($app->tab),
  16. set::tab($app->tab),
  17. set::url(createLink($app->tab, 'ajaxGetDropMenu', "objectID=$objectID&module={$app->rawModule}&method={$app->rawMethod}"))
  18. );
  19. }
  20. jsVar('pathGitTip', $lang->repo->example->path->git);
  21. jsVar('pathSvnTip', $lang->repo->example->path->svn);
  22. jsVar('clientGitTip', $lang->repo->example->client->git);
  23. jsVar('clientSvnTip', $lang->repo->example->client->svn);
  24. jsVar('scmList', $lang->repo->scmList);
  25. jsVar('noProductTip', $lang->repo->error->noProduct);
  26. jsVar('noRepoLeft', $lang->repo->notice->noRepoLeft);
  27. jsVar('hasProduct', !empty($products));
  28. jsVar('appTab', $app->tab);
  29. jsVar('client', '');
  30. formPanel
  31. (
  32. on::change('#SCM', 'onScmChange'),
  33. on::change('#serviceHost', 'onHostChange'),
  34. on::change('#serviceProject', 'onProjectChange'),
  35. set::title($lang->repo->createAction),
  36. set::back('GLOBAL'),
  37. formRow
  38. (
  39. formGroup
  40. (
  41. set::width('1/2'),
  42. set::id('SCM'),
  43. set::name('SCM'),
  44. set::label($lang->product->typeAB),
  45. set::required(true),
  46. set::control('picker'),
  47. set::items($lang->repo->scmList)
  48. ),
  49. h::span
  50. (
  51. setClass('tips-git leading-8 ml-2'),
  52. html($lang->repo->syncTips)
  53. )
  54. ),
  55. formRow
  56. (
  57. setClass('service hide'),
  58. formGroup
  59. (
  60. set::width('1/2'),
  61. set::name("serviceHost"),
  62. set::label($lang->repo->serviceHost),
  63. set::required(true),
  64. set::value(""),
  65. set::control("picker"),
  66. set::items($serviceHosts)
  67. )
  68. ),
  69. formRow
  70. (
  71. setClass('service hide service-project'),
  72. formGroup
  73. (
  74. set::name("serviceProject"),
  75. set::label($lang->repo->serviceProject),
  76. set::required(true),
  77. set::width('1/2'),
  78. set::control('picker'),
  79. set::items(array())
  80. )
  81. ),
  82. formGroup(set::width('1/2'), set::name("name"), set::label($lang->user->name), set::required(true)),
  83. formRow
  84. (
  85. setClass('hide-service hide-git'),
  86. formGroup
  87. (
  88. set::width('1/2'),
  89. set::name("path"),
  90. set::label($lang->repo->path),
  91. set::required(true),
  92. set::placeholder($lang->repo->example->path->git)
  93. )
  94. ),
  95. formRow
  96. (
  97. ($config->inContainer || $config->inQuickon || $config->inCompose) ? setClass('hidden') : setClass('hide-service'),
  98. formGroup(set::width('1/2'), set::name("client"), set::label($lang->repo->client), set::required(true))
  99. ),
  100. formRow
  101. (
  102. setClass('account-fields hide-service'),
  103. formGroup(set::width('1/2'), set::name("account"), set::label($lang->user->account), set::required(true))
  104. ),
  105. formRow
  106. (
  107. setClass('account-fields hide-service'),
  108. formGroup
  109. (
  110. set::width('1/2'),
  111. set::label($lang->user->password),
  112. set::required(true),
  113. inputGroup
  114. (
  115. control(set(array
  116. (
  117. 'name' => "password",
  118. 'id' => "password",
  119. 'value' => "",
  120. 'type' => "password"
  121. ))),
  122. control(set(array
  123. (
  124. 'name' => "encrypt",
  125. 'id' => "encrypt",
  126. 'value' => "base64",
  127. 'type' => "picker",
  128. 'items' => $lang->repo->encryptList
  129. )))
  130. )
  131. )
  132. ),
  133. formRow
  134. (
  135. $this->app->tab != 'devops' ? setClass('hidden') : null,
  136. formGroup
  137. (
  138. set::width('1/2'),
  139. set::name("product[]"),
  140. set::label($lang->story->product),
  141. set::required(true),
  142. set::control(array("control" => "picker","multiple" => true)),
  143. set::items($products),
  144. set::value(empty($objectID) ? '' : implode(',', array_keys($products)))
  145. ),
  146. empty($products) ? span(setClass('leading-8 ml-2'), $lang->repo->error->noProduct) : null
  147. ),
  148. formGroup
  149. (
  150. set::width('1/2'),
  151. set::name("desc"),
  152. set::label($lang->story->spec),
  153. set::control("input"),
  154. set::placeholder($lang->repo->descPlaceholder)
  155. ),
  156. formRow
  157. (
  158. set::id('aclList'),
  159. formGroup
  160. (
  161. set::width('1/2'),
  162. set::name('acl[acl]'),
  163. set::label($lang->repo->acl),
  164. set::control('radioList'),
  165. set::items($lang->repo->aclList),
  166. set::value('open'),
  167. on::change('onAclChange')
  168. )
  169. ),
  170. formRow
  171. (
  172. set::id('whitelist'),
  173. setClass('hidden'),
  174. formGroup
  175. (
  176. set::label($lang->product->whitelist),
  177. inputGroup
  178. (
  179. $lang->repo->group,
  180. width('full'),
  181. control(set(array
  182. (
  183. 'name' => "acl[groups][]",
  184. 'id' => "aclgroups",
  185. 'value' => NULL,
  186. 'type' => "picker",
  187. 'items' => $groups,
  188. 'multiple' => true
  189. )))
  190. ),
  191. inputGroup
  192. (
  193. $lang->repo->user,
  194. control(set(array
  195. (
  196. 'name' => "acl[users][]",
  197. 'id' => "aclusers",
  198. 'value' => NULL,
  199. 'type' => "picker",
  200. 'items' => $users,
  201. 'multiple' => true
  202. ))),
  203. setClass('mt-2')
  204. )
  205. )
  206. )
  207. );
  208. render();