xuanxuan.html.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. <?php
  2. /**
  3. * The xuanxuan view file of admin 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 Gang Liu <liugang@easycorp.ltd>
  7. * @package setting
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. if($type == 'edit')
  12. {
  13. $https = zget($config->xuanxuan, 'https', 'off');
  14. $debug = zget($config->xuanxuan, 'debug', 'off');
  15. if($debug == 1) $debug = 'on';
  16. else if($debug == 0) $debug = 'off';
  17. formPanel
  18. (
  19. set::title($lang->im->settings),
  20. set::labelWidth('140px'),
  21. formGroup
  22. (
  23. set::label($lang->im->version),
  24. span
  25. (
  26. setClass('mt-1.5 w-1/4'),
  27. $config->xuanxuan->version
  28. )
  29. ),
  30. formGroup
  31. (
  32. set::label($lang->im->turnon),
  33. radioList
  34. (
  35. width('1/4'),
  36. set::name('turnon'),
  37. set::inline(true),
  38. set::items($lang->im->turnonList),
  39. set::value($turnon)
  40. )
  41. ),
  42. formGroup
  43. (
  44. set::label($lang->im->key),
  45. input
  46. (
  47. width('1/4'),
  48. set::name('key'),
  49. set::readonly(true),
  50. set::value(zget($config->xuanxuan, 'key', ''))
  51. ),
  52. a
  53. (
  54. setClass('ml-4 mt-1.5'),
  55. on::click('createKey'),
  56. set::href('javascript:;'),
  57. $lang->im->createKey
  58. )
  59. ),
  60. formGroup
  61. (
  62. set::label($lang->im->backendLang),
  63. set::required(true),
  64. picker
  65. (
  66. setStyle(array('width' => '25%')),
  67. set::required(true),
  68. set::name('backendLang'),
  69. set::items($lang->setting->langs),
  70. set::value(zget($config->xuanxuan, 'backendLang', ''))
  71. )
  72. ),
  73. formGroup
  74. (
  75. set::label($lang->im->xxdServer),
  76. set::required(true),
  77. input
  78. (
  79. width('1/4'),
  80. set::name('server'),
  81. set::value($domain)
  82. ),
  83. span
  84. (
  85. setClass('text-gray ml-4 mt-1.5'),
  86. $lang->im->xxdServerTip
  87. )
  88. ),
  89. formGroup
  90. (
  91. set::label($lang->im->pollingInterval),
  92. set::required(true),
  93. input
  94. (
  95. width('1/4'),
  96. set::name('pollingInterval'),
  97. set::value(zget($config->xuanxuan, 'pollingInterval', 60))
  98. ),
  99. span
  100. (
  101. setClass('text-gray ml-4 mt-1.5'),
  102. $lang->im->xxdPollIntTip
  103. )
  104. ),
  105. formGroup
  106. (
  107. set::label($lang->im->xxd->ip),
  108. set::required(true),
  109. input
  110. (
  111. width('1/4'),
  112. set::name('ip'),
  113. set::value(zget($config->xuanxuan, 'ip', '0.0.0.0'))
  114. )
  115. ),
  116. formGroup
  117. (
  118. set::label($lang->im->xxd->chatPort),
  119. set::required(true),
  120. input
  121. (
  122. width('1/4'),
  123. set::name('chatPort'),
  124. set::value(zget($config->xuanxuan, 'chatPort', 11444))
  125. )
  126. ),
  127. formGroup
  128. (
  129. set::label($lang->im->xxd->commonPort),
  130. set::required(true),
  131. input
  132. (
  133. width('1/4'),
  134. set::name('commonPort'),
  135. set::value(zget($config->xuanxuan, 'commonPort', 11443))
  136. )
  137. ),
  138. formGroup
  139. (
  140. set::label($lang->im->xxd->uploadFileSize),
  141. set::required(true),
  142. inputGroup
  143. (
  144. setClass('grow-0 w-1/4'),
  145. $lang->im->xxd->max,
  146. input
  147. (
  148. set::name('uploadFileSize'),
  149. set::value(zget($config->xuanxuan, 'uploadFileSize', 20))
  150. ),
  151. 'M'
  152. )
  153. ),
  154. formGroup
  155. (
  156. set::label($lang->im->xxd->aes),
  157. radioList
  158. (
  159. width('1/4'),
  160. set::name('aes'),
  161. set::inline(true),
  162. set::items($lang->im->aesOptions),
  163. set::value(zget($config->xuanxuan, 'aes', 'on'))
  164. ),
  165. span
  166. (
  167. setClass('ml-4 mt-1.5 text-gray'),
  168. $lang->im->xxdAESTip
  169. )
  170. ),
  171. formGroup
  172. (
  173. set::label($lang->im->xxd->https),
  174. radioList
  175. (
  176. width('1/4'),
  177. set::name('https'),
  178. set::inline(true),
  179. set::items($lang->im->httpsOptions),
  180. set::value($https),
  181. on::change("$('[name=sslkey],[name=sslcrt]').closest('.form-row').toggleClass('hidden');")
  182. )
  183. ),
  184. formRow
  185. (
  186. $https == 'off' ? set::hidden(true) : null,
  187. formGroup
  188. (
  189. set::label($lang->im->xxd->sslkey),
  190. set::required(true),
  191. textarea
  192. (
  193. set::name('sslkey'),
  194. set::value(zget($config->xuanxuan, 'sslkey', '')),
  195. set::placeholder($lang->im->placeholder->xxd->sslkey),
  196. set::rows(5)
  197. )
  198. )
  199. ),
  200. formRow
  201. (
  202. $https == 'off' ? set::hidden(true) : null,
  203. formGroup
  204. (
  205. set::label($lang->im->xxd->sslcrt),
  206. set::required(true),
  207. textarea
  208. (
  209. set::name('sslcrt'),
  210. set::value(zget($config->xuanxuan, 'sslcrt', '')),
  211. set::placeholder($lang->im->placeholder->xxd->sslcrt),
  212. set::rows(5)
  213. )
  214. )
  215. ),
  216. strpos(\extCommonModel::getLicensePropertyValue('permissions'), 'im/messageGetReadStatus') !== false
  217. ? formGroup
  218. (
  219. set::label($lang->im->readStatus),
  220. radioList
  221. (
  222. width('1/4'),
  223. set::name('readStatus'),
  224. set::inline(true),
  225. set::items($lang->im->readOptions),
  226. set::value(zget($config->xuanxuan, 'readStatus', 'off'))
  227. )
  228. )
  229. : null,
  230. formGroup
  231. (
  232. set::label($lang->im->debug),
  233. radioList
  234. (
  235. width('1/4'),
  236. set::name('debug'),
  237. set::inline(true),
  238. set::items($lang->im->debugStatus),
  239. set::value($debug)
  240. )
  241. )
  242. );
  243. }
  244. else
  245. {
  246. $disabled = empty($config->xuanxuan->turnon);
  247. panel
  248. (
  249. set::title($lang->im->settings),
  250. tableData
  251. (
  252. set::tdClass('flex gap-2'),
  253. item(set::name($lang->im->version), $config->xuanxuan->version),
  254. item(set::name($lang->im->turnon), zget($lang->im->turnonList, $config->xuanxuan->turnon)),
  255. item(set::name($lang->im->key), zget($config->xuanxuan, 'key', '')),
  256. item(set::name($lang->im->backendLang), zget($lang->setting->langs, $config->xuanxuan->backendLang, '')),
  257. item(set::name($lang->im->xxdServer), $domain),
  258. item(set::name($lang->im->pollingInterval), zget($config->xuanxuan, 'pollingInterval', 60) . $lang->im->secs),
  259. item(set::name($lang->im->xxd->ip), zget($config->xuanxuan, 'ip', '0.0.0.0')),
  260. item(set::name($lang->im->xxd->chatPort), zget($config->xuanxuan, 'chatPort', 11444)),
  261. item(set::name($lang->im->xxd->commonPort), zget($config->xuanxuan, 'commonPort', 11443)),
  262. item(set::name($lang->im->xxd->uploadFileSize), $lang->im->xxd->max . zget($config->xuanxuan, 'uploadFileSize', 20) . 'M'),
  263. item(set::name($lang->im->xxd->aes), zget($lang->im->aesOptions, zget($config->xuanxuan, 'aes', 'on'))),
  264. item(set::name($lang->im->xxd->https), zget($lang->im->httpsOptions, zget($config->xuanxuan, 'https', 'off'))),
  265. strpos(\extCommonModel::getLicensePropertyValue('permissions'), 'im/messageGetReadStatus') !== false
  266. ? item(set::name($lang->im->readStatus), zget($lang->im->readOptions, zget($config->xuanxuan, 'readStatus', 'off')))
  267. : null,
  268. item(set::name($lang->im->debug), zget($lang->im->debugStatus, zget($config->xuanxuan, 'debug', 0))),
  269. $disabled ? null : item
  270. (
  271. set::name($lang->im->xxd->os),
  272. select
  273. (
  274. set::name('os'),
  275. set::items($lang->im->osList),
  276. set::value(zget($config->xuanxuan, $os)),
  277. on::change("$('#downloadXXD').attr('href', $.createLink('setting', 'downloadXXD', 'type=package&os=' + \$ele.val()));")
  278. )
  279. ),
  280. item
  281. (
  282. hasPriv('im', 'downloadXxdPackage') ? a
  283. (
  284. setID('downloadXXD'),
  285. setClass('btn not-open-url' . ($disabled ? ' disabled' : ' primary')),
  286. $disabled ? null : set::href(inlink('downloadXXD', "type=package&os={$os}")),
  287. $lang->im->downloadXXD
  288. ) : null,
  289. a
  290. (
  291. setClass('btn not-open-url' . ($disabled ? ' disabled' : ' primary')),
  292. $disabled ? null : set::href(inlink('downloadXXD', 'type=config')),
  293. $lang->im->downloadConfig
  294. ),
  295. a
  296. (
  297. setClass('btn'),
  298. set::href(inlink('xuanxuan', 'type=edit')),
  299. $lang->im->changeSetting
  300. ),
  301. a
  302. (
  303. setClass('btn'),
  304. set::target('_blank'),
  305. set::href('http://www.zentao.net/book/zentaopmshelp/302.html'),
  306. $lang->im->help
  307. )
  308. )
  309. )
  310. );
  311. }
  312. render();