createapplication.html.php 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <?php
  2. /**
  3. * The createapplication view file of space 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 space
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $service = key($lang->space->appType);
  12. $showVersion = getEnvData('ALLOW_SELECT_VERSION', false, 'bool');
  13. $dbTypeItems = array();
  14. foreach($lang->instance->dbTypes as $type => $db) $dbTypeItems[] = array('text' => $db, 'value' => $type);
  15. $colWidth = isInModal() ? 'full' : '2/3';
  16. jsVar('gitlabUrlTips', $lang->gitlab->placeholder->url);
  17. jsVar('gitlabTokenTips', $lang->gitlab->placeholder->token);
  18. jsVar('sonarqubeUrlTips', $lang->sonarqube->placeholder->url);
  19. jsVar('jenkinsTokenTips', $lang->jenkins->tokenFirst);
  20. jsVar('jenkinsPasswordTips', $lang->jenkins->tips);
  21. jsVar('sonarqubeAccountTips', $lang->sonarqube->placeholder->account);
  22. jsVar('apps', $apps);
  23. jsVar('appID', $appID);
  24. jsVar('defaultApp', $defaultApp);
  25. jsVar('externalApps', $config->space->zentaoApps);
  26. if($config->inQuickon)
  27. {
  28. jsVar('pgList', $pgList);
  29. jsVar('mysqlList', $mysqlList);
  30. jsVar('showVersion', $showVersion);
  31. jsVar('resourceAlert', $lang->instance->notices['notEnoughResource']);
  32. }
  33. if($config->inQuickon)
  34. {
  35. formPanel
  36. (
  37. setClass('storePanel'),
  38. set::formID('createStoreAppForm'),
  39. set::title($lang->space->install),
  40. $appID ? set::url(createLink('instance', 'install', "appID={$appID}")) : null,
  41. $appID ? set::submitBtnText($lang->instance->install) : null,
  42. $appID ? set::actions(array('submit', array('text' => $lang->instance->stop, 'data-type' => 'submit', 'data-dismiss' => 'modal'))) : null,
  43. isInModal() ? null : set::actionsClass('w-2/3'),
  44. formRow
  45. (
  46. setStyle('display', $appID ? 'none' : 'block'),
  47. formGroup
  48. (
  49. set::width($colWidth),
  50. set::label($lang->app->common),
  51. set::name('storeAppType'),
  52. set::items($apps),
  53. set::value($appID ? $appID : $defaultApp),
  54. set::disabled(!!$appID),
  55. set::required(true),
  56. on::change('onChangeStoreAppType')
  57. )
  58. ),
  59. formRow
  60. (
  61. setStyle('display', $appID ? 'none' : 'block'),
  62. formGroup
  63. (
  64. set::label($lang->space->addType),
  65. set::name('type'),
  66. set::value('store'),
  67. set::disabled(!!$appID),
  68. set::control('radioListInline'),
  69. set::items(array(array('text' => $lang->store->common, 'value' => 'store'), array('text' => $lang->space->handConfig, 'value' => 'external'))),
  70. set::required(true),
  71. on::change('onChangeType')
  72. )
  73. ),
  74. formRow
  75. (
  76. setStyle('display', 'block'),
  77. formGroup
  78. (
  79. set::width($colWidth),
  80. set::label($lang->instance->name),
  81. set::name('customName'),
  82. set::control('input'),
  83. set::value($appID ? $apps[$appID] : ''),
  84. set::required(true)
  85. )
  86. ),
  87. $showVersion ? formGroup
  88. (
  89. set::width($colWidth),
  90. set::label($lang->instance->version),
  91. set::name('version'),
  92. set::required(true),
  93. set::control('picker'),
  94. set::items($versionList)
  95. ) : formGroup
  96. (
  97. set::width($colWidth),
  98. set::label($lang->instance->version),
  99. set::name('app_version'),
  100. set::required(true),
  101. set::readonly(true),
  102. input
  103. (
  104. set::type('hidden'),
  105. set::name('version')
  106. )
  107. ),
  108. formRow
  109. (
  110. formGroup
  111. (
  112. set::width($colWidth),
  113. set::label($lang->instance->domain),
  114. set::required(true),
  115. inputGroup
  116. (
  117. input
  118. (
  119. setClass('form-control'),
  120. set::name('customDomain'),
  121. set::value($thirdDomain)
  122. ),
  123. $this->cne->sysDomain()
  124. )
  125. )
  126. ),
  127. formRow
  128. (
  129. setClass('dbType' . ($showDb ? '' : ' hidden')),
  130. formGroup
  131. (
  132. set::label($lang->instance->dbType),
  133. set::control('radioListInline'),
  134. set::name('dbType'),
  135. set::items($dbTypeItems),
  136. set::value('sharedDB'),
  137. set::required(true),
  138. on::change('onChangeDbType'),
  139. h::a
  140. (
  141. setClass('leading-8 ml-4'),
  142. set::href('https://www.qucheng.com/book/Installation-manual/app-install-33.html'),
  143. set::target('_blank'),
  144. $lang->instance->howToSelectDB
  145. )
  146. )
  147. ),
  148. formRow
  149. (
  150. setClass('dbType dbService' . ($showDb ? '' : ' hidden')),
  151. formGroup
  152. (
  153. set::width($colWidth),
  154. set::label($lang->space->instanceType),
  155. set::name('dbService'),
  156. set::items(array()),
  157. set::required(true)
  158. )
  159. )
  160. );
  161. }
  162. formPanel
  163. (
  164. $config->inQuickon ? setClass('externalPanel hidden') : setClass('externalPanel'),
  165. set::formID('createAppForm'),
  166. set::title($lang->space->install),
  167. set::url($this->createLink($service, 'create')),
  168. set::actionsClass('w-2/3'),
  169. formGroup
  170. (
  171. set::width($colWidth),
  172. set::label($lang->app->common),
  173. set::name('appType'),
  174. set::items($lang->space->appType),
  175. set::required(true),
  176. set::control(array('type' => 'picker', 'id' => 'appType')),
  177. on::change('onChangeAppType')
  178. ),
  179. $config->inQuickon ? formGroup
  180. (
  181. set::label($lang->space->addType),
  182. set::name('type'),
  183. set::value('external'),
  184. set::control('radioListInline'),
  185. set::items(array(array('text' => $lang->store->common, 'value' => 'store'), array('text' => $lang->space->handConfig, 'value' => 'external'))),
  186. set::required(true),
  187. on::change('onChangeType')
  188. ) : null,
  189. formGroup
  190. (
  191. set::width($colWidth),
  192. set::label($lang->{$service}->name),
  193. set::name('name'),
  194. set::required(true)
  195. ),
  196. formGroup
  197. (
  198. set::width($colWidth),
  199. set::label($lang->{$service}->url),
  200. set::name('url'),
  201. set::required(true),
  202. set::placeholder($lang->{$service}->placeholder->url)
  203. ),
  204. formRow
  205. (
  206. setClass('jenkins sonarqube hidden'),
  207. formGroup
  208. (
  209. set::width($colWidth),
  210. set::label($lang->user->account),
  211. set::name('account'),
  212. set::required(true)
  213. )
  214. ),
  215. formRow
  216. (
  217. setClass('token'),
  218. formGroup
  219. (
  220. set::width($colWidth),
  221. set::label($lang->{$service}->token),
  222. set::name('token'),
  223. set::placeholder($lang->{$service}->placeholder->token),
  224. set::required(true),
  225. set::control(array(
  226. 'type' => 'textarea',
  227. 'rows' => 4
  228. ))
  229. )
  230. ),
  231. formRow
  232. (
  233. setClass('jenkins sonarqube password hidden'),
  234. formGroup
  235. (
  236. set::width($colWidth),
  237. set::label($lang->user->password),
  238. set::name('password')
  239. )
  240. )
  241. );
  242. render();