edit_server.html 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835
  1. <!-- Begin toolbar -->
  2. <div class="l-center edit">
  3. <div class="l-sort clearfix">
  4. <div class="l-unit-toolbar__buttonstrip">
  5. <a class="ui-button cancel" dir="ltr" id="btn-back" href="/list/server/"><i class="fas fa-arrow-left status-icon blue"></i><?=_('Back');?></a>
  6. <a href="/list/ip/" class="ui-button cancel" dir="ltr"><i class="fas fa-ethernet status-icon blue"></i><?=_('IP');?></a>
  7. <?php if ((isset($_SESSION['FIREWALL_SYSTEM'])) && (!empty($_SESSION['FIREWALL_SYSTEM']))) {?>
  8. <a href="/list/firewall/" class="ui-button cancel" dir="ltr"><i class="fas fa-shield-alt status-icon red"></i><?=_('Firewall');?></a>
  9. <?php }?>
  10. </div>
  11. <div class="l-unit-toolbar__buttonstrip u-float-right">
  12. <a href="#" class="ui-button" data-action="submit" data-id="vstobjects"><i class="fas fa-save status-icon purple"></i><?=_('Save');?></a>
  13. </div>
  14. </div>
  15. </div>
  16. <!-- End toolbar -->
  17. <div class="l-separator"></div>
  18. <div class="l-center animated fadeIn">
  19. <form id="vstobjects" name="v_configure_server" method="post">
  20. <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
  21. <input type="hidden" name="save" value="save">
  22. <div class="form-container">
  23. <h1 class="form-title"><?=_('Configuring Server');?></h1>
  24. <?php show_alert_message($_SESSION);?>
  25. <div class="u-wide-input-width">
  26. <!-- Basic options tab -->
  27. <details class="collapse u-mb10">
  28. <summary class="collapse-header">
  29. <i class="fas fa-cog u-mr15"></i><?=_('Basic options');?>
  30. </summary>
  31. <div class="collapse-content u-pl50">
  32. <div class="u-input-width">
  33. <div class="u-mb10">
  34. <label for="v_hostname" class="form-label"><?=_('Hostname');?></label>
  35. <input type="text" class="form-control" name="v_hostname" id="v_hostname" value="<?=htmlentities(trim($v_hostname, "'"))?>">
  36. </div>
  37. <div class="u-mb10">
  38. <label for="v_timezone" class="form-label"><?=_('Time Zone');?></label>
  39. <select class="form-select" name="v_timezone" id="v_timezone">
  40. <?php
  41. foreach ($v_timezones as $key => $value) {
  42. echo "\t\t\t\t<option value=\"".$key."\"";
  43. if ((!empty($v_timezone)) && ( $key == $v_timezone)){
  44. echo ' selected' ;
  45. }
  46. if($key == "UTC" && $v_timezone == "Etc/UTC"){
  47. echo ' selected' ;
  48. }
  49. echo ">".$value."</option>\n";
  50. }
  51. ?>
  52. </select>
  53. </div>
  54. <div class="u-mb10">
  55. <label for="v_theme" class="form-label"><?=_('Theme');?></label>
  56. <select class="form-select" name="v_theme" id="v_theme">
  57. <?php
  58. foreach ($theme as $key => $value) {
  59. echo "\t\t\t\t<option value=\"".$value."\"";
  60. if (($value == $_SESSION['THEME'])){
  61. echo ' selected' ;
  62. }
  63. echo ">".$value."</option>\n";
  64. }
  65. ?>
  66. </select>
  67. </div>
  68. <div class="form-check u-mb20">
  69. <input class="form-check-input" type="checkbox" name="v_policy_user_change_theme" id="v_policy_user_change_theme" <?php if ((isset($_SESSION['POLICY_USER_CHANGE_THEME'])) && (!empty($_SESSION['POLICY_USER_CHANGE_THEME'])) && ($_SESSION['POLICY_USER_CHANGE_THEME'] == "no")) echo 'checked' ?>>
  70. <label for="v_policy_user_change_theme">
  71. <?=_('Set as selected theme for all users');?>
  72. </label>
  73. </div>
  74. <div class="u-mb10">
  75. <label for="v_language" class="form-label"><?=_('Default Language');?></label>
  76. <select class="form-select" name="v_language" id="v_language">
  77. <?php
  78. foreach ($languages as $key => $value) {
  79. echo "\n\t\t\t\t\t\t\t\t\t<option value=\"".$key."\"";
  80. if (( $key == $_SESSION['LANGUAGE'] && (empty($v_language)) )) {
  81. echo 'selected' ;
  82. }
  83. echo ">".htmlentities($value)."</option>\n";
  84. }
  85. ?>
  86. </select>
  87. </div>
  88. <div class="form-check">
  89. <input class="form-check-input" type="checkbox" name="v_language_update" id="v_language_update">
  90. <label for="v_language_update">
  91. <?=_('Set as default language for all users');?>
  92. </label>
  93. </div>
  94. </div>
  95. </div>
  96. </details>
  97. <!-- Updates tab -->
  98. <details class="collapse u-mb10">
  99. <summary class="collapse-header">
  100. <i class="fas fa-code-branch u-mr15"></i><?=_('Updates');?>
  101. </summary>
  102. <div class="collapse-content u-pl50">
  103. <p class="u-mb10">
  104. <?=_('Version'); ?>: <span class="optional"><?=$_SESSION['VERSION'];?></span>
  105. </p>
  106. <?php if ($_SESSION['RELEASE_BRANCH'] !== 'release') {?>
  107. <p><?=_('Release'); ?>: <span class="optional"><?=$_SESSION['RELEASE_BRANCH'];?></span></p>
  108. <?php } ?>
  109. <p class="u-mb5"><?=_('Options'); ?></p>
  110. <div class="form-check">
  111. <input class="form-check-input" type="checkbox" name="v_debug_mode" id="v_debug_mode" <?php if ((isset($_SESSION['DEBUG_MODE'])) && (!empty($_SESSION['DEBUG_MODE'])) && ($_SESSION['DEBUG_MODE'] == "true")) echo 'checked' ?>>
  112. <label for="v_debug_mode">
  113. <?=_('Enable debug mode');?>
  114. </label>
  115. </div>
  116. <div class="form-check">
  117. <input class="form-check-input" type="checkbox" name="v_experimental_features" id="v_experimental_features" <?php if ((isset($_SESSION['POLICY_SYSTEM_ENABLE_BACON'])) && (!empty($_SESSION['POLICY_SYSTEM_ENABLE_BACON'])) && ($_SESSION['POLICY_SYSTEM_ENABLE_BACON'] == "true")) echo 'checked' ?>>
  118. <label for="v_experimental_features">
  119. <?=_('Enable preview features');?>
  120. </label>
  121. <span class="hint">(<a href="/list/server/preview/"><?=_('View');?></a>)</span>
  122. </div>
  123. <div class="form-check">
  124. <input class="form-check-input" type="checkbox" name="v_upgrade_send_notification_email" id="v_upgrade_send_notification_email" <?php if ((isset($_SESSION['UPGRADE_SEND_EMAIL'])) && (!empty($_SESSION['UPGRADE_SEND_EMAIL'])) && ($_SESSION['UPGRADE_SEND_EMAIL'] == "true")) echo 'checked' ?>>
  125. <label for="v_upgrade_send_notification_email">
  126. <?=_('SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL');?>
  127. </label>
  128. </div>
  129. <div class="form-check">
  130. <input class="form-check-input" type="checkbox" name="v_upgrade_send_email_log" id="v_upgrade_send_email_log" <?php if ((isset($_SESSION['UPGRADE_SEND_EMAIL_LOG'])) && (!empty($_SESSION['UPGRADE_SEND_EMAIL_LOG'])) && ($_SESSION['UPGRADE_SEND_EMAIL_LOG'] == "true")) echo 'checked' ?>>
  131. <label for="v_upgrade_send_email_log">
  132. <?=_('SYSTEM_UPGRADE_SEND_EMAIL_LOG');?>
  133. </label>
  134. </div>
  135. </div>
  136. </details>
  137. <!-- Web Server tab -->
  138. <details class="collapse u-mb10">
  139. <summary class="collapse-header">
  140. <i class="fas fa-globe-americas u-mr15"></i><?=_('Web Server');?>
  141. </summary>
  142. <div class="collapse-content u-pl50">
  143. <div class="u-input-width">
  144. <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
  145. <p>
  146. <?=_('Proxy Server');?>: <span class="optional"><?=$_SESSION['PROXY_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['PROXY_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  147. </p>
  148. <?php } ?>
  149. <?php if (!empty($_SESSION['WEB_SYSTEM'])) { ?>
  150. <p>
  151. <?=_('Web Server');?>: <span class="optional"><?=$_SESSION['WEB_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['WEB_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  152. </p>
  153. <?php } ?>
  154. <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
  155. <p>
  156. <?=_('Backend Server');?>: <span class="optional"><?=$_SESSION['WEB_BACKEND']; ?> <a href="/edit/server/<? echo $_SESSION['WEB_BACKEND'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  157. </p>
  158. <?php } ?>
  159. <?php if (!empty($_SESSION['WEB_BACKEND_POOL'])) { ?>
  160. <p>
  161. <?=_('Backend Pool Mode');?>: <span class="optional"><?=$_SESSION['WEB_BACKEND_POOL']; ?></span>
  162. </p>
  163. <?php } ?>
  164. <?php if(count($v_php_versions)): ?>
  165. <div class="u-mt15">
  166. <p class="u-mb10"><?=_('Enabled multi PHP versions');?></p>
  167. <div class="alert alert-info alert-with-icon u-mb10" role="alert">
  168. <i class="fas fa-info"></i>
  169. <p><?=_('Please wait while php is installed or removed');?></p>
  170. </div>
  171. </div>
  172. <?php foreach($v_php_versions as $php_version): ?>
  173. <div class="form-check">
  174. <input class="form-check-input" type="checkbox"
  175. <?=$php_version->installed?'checked':''; ?>
  176. <?=$php_version->protected?'disabled':''; ?>
  177. id="<?=$php_version->name?>"
  178. name="v_php_versions[<?=$php_version->tpl?>]">
  179. <label for="<?=$php_version->name?>">
  180. <?=$php_version->name?>
  181. </label>
  182. </div>
  183. <?php foreach($php_version->usedby as $wd_user => $wd_domains ): ?>
  184. <?php foreach($wd_domains as $wd_domain ): ?>
  185. <p class="u-side-by-side" style="border: 1px lightgrey; padding:0 10px;">
  186. <span>
  187. <i class="fas fa-user"></i>
  188. <?=$wd_user;?>
  189. </span>
  190. <span class="optional"><?=$wd_domain;?></span>
  191. </p>
  192. <?php endforeach; ?>
  193. <?php endforeach; ?>
  194. <?php endforeach; ?>
  195. <?php endif; ?>
  196. <?php if(!empty($_SESSION['WEB_BACKEND'])){ ?>
  197. <div class="u-pt6 u-mb10">
  198. <label for="v_php_default_version" class="form-label"><?=_('System PHP version');?></label>
  199. <select class="form-select" name="v_php_default_version" id="v_php_default_version">
  200. <?php
  201. foreach ($v_php_versions as $php_version) {
  202. if ($php_version -> installed) {
  203. ?>
  204. <option value="<?=$php_version->version; ?>" <?php if($php_version->name == DEFAULT_PHP_VERSION){ echo "selected" ;}?> ><?=$php_version->name; ?></option>
  205. <?php
  206. }
  207. }
  208. ?>
  209. </select>
  210. </div>
  211. <?php } ?>
  212. </div>
  213. </div>
  214. </details>
  215. <!-- DNS Server tab -->
  216. <?php if (!empty($_SESSION['DNS_SYSTEM'])) { ?>
  217. <details class="collapse u-mb10">
  218. <summary class="collapse-header">
  219. <i class="fas fa-atlas u-mr15"></i><?=_('DNS Server');?>
  220. </summary>
  221. <div class="collapse-content u-pl50">
  222. <p>
  223. <?=_('DNS Server');?>: <span class="optional"><?=$_SESSION['DNS_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['DNS_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  224. </p>
  225. <p>
  226. <?=_('DNS Cluster');?>: <span class="optional"><?php if ($v_dns_cluster == 'yes') { echo _('Yes'); } else { echo _('No'); } ?></span>
  227. </p>
  228. <?php if ($v_dns_cluster == 'yes') {
  229. $i = 0;
  230. foreach ($dns_cluster as $key => $value) {
  231. $i++;
  232. ?>
  233. <div class="u-input-width">
  234. <label for="v_dns_remote_host" class="form-label"><?=_('Host'). ' #'.$i ?></label>
  235. <input type="text" class="form-control" name="v_dns_remote_host" id="v_dns_remote_host" value="<?=$key; ?>" disabled>
  236. </div>
  237. <?php } } ?>
  238. </div>
  239. </details>
  240. <?php } ?>
  241. <!-- Mail Server tab -->
  242. <?php if ((!empty($_SESSION['MAIL_SYSTEM']))) { ?>
  243. <details class="collapse u-mb10">
  244. <summary class="collapse-header">
  245. <i class="fas fa-mail-bulk u-mr15"></i><?=_('Mail Server');?>
  246. </summary>
  247. <div class="collapse-content u-pl50">
  248. <p>
  249. <?=_('Mail Server');?>: <span class="optional"><?=$_SESSION['MAIL_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['MAIL_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  250. </p>
  251. <?php if (!empty($_SESSION['ANTIVIRUS_SYSTEM'])) { ?>
  252. <p>
  253. <?=_('Antivirus');?>: <span class="optional"><?=$_SESSION['ANTIVIRUS_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['ANTIVIRUS_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  254. </p>
  255. <?php } ?>
  256. <?php if (!empty($_SESSION['ANTISPAM_SYSTEM'])) { ?>
  257. <p>
  258. <?=_('AntiSpam');?>: <span class="optional"><?=$_SESSION['ANTISPAM_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['ANTISPAM_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  259. </p>
  260. <?php } ?>
  261. <?php if($_SESSION['WEBMAIL_SYSTEM']){?>
  262. <div class="u-input-width u-mt15 u-mb10">
  263. <label for="v_webmail_alias" class="form-label">
  264. <?=_('Webmail URL');?> <span class="hint">(<?=$_SESSION['WEBMAIL_ALIAS'];?>.example.com)</span>
  265. </label>
  266. <input type="text" class="form-control" name="v_webmail_alias" id="v_webmail_alias" value="<?=$_SESSION['WEBMAIL_ALIAS']; ?>">
  267. </div>
  268. <?php } ?>
  269. <div class="form-check u-mt20">
  270. <input class="form-check-input" type="checkbox" name="v_smtp_relay" id="v_smtp_relay" <?php if ($v_smtp_relay == 'true') echo 'checked'; ?> onclick="javascript:elementHideShow('smtp_relay_table');">
  271. <label for="v_smtp_relay">
  272. <?=_('Global SMTP Relay');?>
  273. </label>
  274. </div>
  275. <div id="smtp_relay_table" class="u-pl30 u-mt20" style="display:<?php if ($v_smtp_relay == 'true') {echo 'block';} else {echo 'none';} ?>;">
  276. <div class="u-input-width">
  277. <div class="u-mb10">
  278. <label for="v_smtp_relay_host" class="form-label"><?=_('Host');?></label>
  279. <input type="text" class="form-control" name="v_smtp_relay_host" id="v_smtp_relay_host" value="<?=htmlentities(trim($v_smtp_relay_host, "'"))?>">
  280. </div>
  281. <div class="u-mb10">
  282. <label for="v_smtp_relay_port" class="form-label"><?=_('Port');?></label>
  283. <input type="text" class="form-control" name="v_smtp_relay_port" id="v_smtp_relay_port" value="<?=htmlentities(trim($v_smtp_relay_port, "'"))?>">
  284. </div>
  285. <div class="u-mb10">
  286. <label for="v_smtp_relay_user" class="form-label"><?=_('Username');?></label>
  287. <input type="text" class="form-control" name="v_smtp_relay_user" id="v_smtp_relay_user" value="<?=htmlentities(trim($v_smtp_relay_user, "'"))?>">
  288. </div>
  289. <div class="u-mb10">
  290. <label for="v_smtp_relay_pass" class="form-label"><?=_('Password');?></label>
  291. <div class="u-pos-relative">
  292. <input type="text" class="form-control js-password-input" name="v_smtp_relay_pass" id="v_smtp_relay_pass">
  293. </div>
  294. </div>
  295. </div>
  296. </div>
  297. </div>
  298. </details>
  299. <?php } ?>
  300. <!-- Databases tab -->
  301. <?php if (!empty($_SESSION['DB_SYSTEM'])) { ?>
  302. <details class="collapse u-mb10">
  303. <summary class="collapse-header">
  304. <i class="fas fa-database u-mr15"></i><?=_('Databases');?>
  305. </summary>
  306. <div class="collapse-content u-pl50">
  307. <div class="u-input-width">
  308. <div class="u-mb10">
  309. <label for="v_mysql" class="form-label">
  310. <?=_('MySQL Support');?> <a href="/edit/server/mysql/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a>
  311. </label>
  312. <select class="form-select" name="v_mysql" id="v_mysql" disabled>
  313. <option value="no"><?=_('No'); ?></option>
  314. <option value="yes" <?php if($v_mysql == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  315. </select>
  316. </div>
  317. <!-- MySQL / MariaDB Options-->
  318. <?php if ($v_mysql == 'yes') { ?>
  319. <div class="u-mb20">
  320. <label for="v_mysql_url" class="form-label"><?=_('phpMyAdmin URL');?></label>
  321. <input type="text" class="form-control" name="v_mysql_url" id="v_mysql_url" value="<?=$_SESSION['DB_PMA_ALIAS']; ?>">
  322. </div>
  323. <div class="u-mb10">
  324. <label for="v_phpmyadmin_key" class="form-label">
  325. <?=_('phpMyAdmin Single Sign On');?><span class="hint">(<a href="https://docs.hestiacp.com/admin_docs/database/phpmyadmin-sso.html" target="_blank"><?=_('More info');?></a>)</span>
  326. </label>
  327. <select class="form-select" name="v_phpmyadmin_key" id="v_phpmyadmin_key" <?php if ($_SESSION['API'] != 'yes'){ echo "disabled"; }?>>
  328. <option value="no"><?=_('Disabled'); ?></option>
  329. <option value='yes' <?php if($_SESSION['PHPMYADMIN_KEY'] != ''){ echo 'selected="selected"'; }; ?>><?=_('Enabled'); ?></option>
  330. </select>
  331. </div>
  332. <?php } ?>
  333. </div>
  334. <?php if ($v_mysql == 'yes') {
  335. $i = 0;
  336. foreach ($v_mysql_hosts as $value) {
  337. $i++;
  338. ?>
  339. <div class="u-input-width u-pl30">
  340. <div class="u-mb10">
  341. <label for="v_mysql_host" class="form-label"><?=_('Host'). ' #'.$i ?></label>
  342. <input type="text" class="form-control" name="v_mysql_host" id="v_mysql_host" value="<?=$value['HOST']?>" disabled>
  343. </div>
  344. <div class="u-mb10">
  345. <label for="v_mysql_password" class="form-label"><?=_('Password');?></label>
  346. <div class="u-pos-relative">
  347. <input type="text" class="form-control js-password-input" name="v_mysql_password" id="v_mysql_password">
  348. </div>
  349. </div>
  350. <div class="u-mb10">
  351. <label for="v_mysql_max" class="form-label">
  352. <?=_('Maximum Number Of Databases');?>
  353. </label>
  354. <input type="text" class="form-control" name="v_mysql_max" id="v_mysql_max" value="<?=$value['MAX_DB']; ?>" disabled>
  355. </div>
  356. <div class="u-mb10">
  357. <label for="v_mysql_current" class="form-label">
  358. <?=_('Current Number Of Databases');?>
  359. </label>
  360. <input type="text" class="form-control" name="v_mysql_current" id="v_mysql_current" value="<?=$value['U_DB_BASES']; ?>" disabled>
  361. </div>
  362. </div>
  363. <?php }} ?>
  364. <!-- PostgreSQL Options-->
  365. <?php if ($v_pgsql == 'yes') { ?>
  366. <div class="u-input-width">
  367. <div class="u-mb10">
  368. <label for="v_pgsql" class="form-label">
  369. <?=_('PostgreSQL Support');?> <a href="/edit/server/postgresql/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a>
  370. </label>
  371. <select class="form-select" name="v_pgsql" id="v_pgsql" disabled>
  372. <option value="no"><?=_('No'); ?></option>
  373. <option value='yes' <?php if($v_pgsql == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  374. </select>
  375. </div>
  376. <div class="u-mb20">
  377. <label for="v_pgsql_url" class="form-label">
  378. <?=_('phpPgAdmin URL');?>
  379. </label>
  380. <input type="text" class="form-control" name="v_pgsql_url" id="v_pgsql_url" value="<?=$_SESSION['DB_PGA_ALIAS']; ?>">
  381. </div>
  382. </div>
  383. <?php } ?>
  384. <?php if ($v_pgsql == 'yes') {
  385. $i = 0;
  386. foreach ($v_pgsql_hosts as $value) {
  387. $i++;
  388. ?>
  389. <div class="u-input-width u-pl30">
  390. <div class="u-mb10">
  391. <label for="v_pgsql_host" class="form-label"><?=_('Host'). ' #'.$i ?></label>
  392. <input type="text" class="form-control" name="v_pgsql_host" id="v_pgsql_host" value="<?=$value['HOST']?>" disabled>
  393. </div>
  394. <div class="u-mb10">
  395. <label for="v_psql_max" class="form-label">
  396. <?=_('Maximum Number Of Databases');?>
  397. </label>
  398. <input type="text" class="form-control" name="v_psql_max" id="v_psql_max" value="<?=$value['MAX_DB']; ?>" disabled>
  399. </div>
  400. <div class="u-mb10">
  401. <label for="v_pgsql_max" class="form-label">
  402. <?=_('Current Number Of Databases');?>
  403. </label>
  404. <input type="text" class="form-control" name="v_pgsql_max" id="v_pgsql_max" value="<?=$value['U_DB_BASES']; ?>" disabled>
  405. </div>
  406. </div>
  407. <?php }} ?>
  408. </div>
  409. </details>
  410. <?php } ?>
  411. <!-- Backups tab -->
  412. <details class="collapse u-mb10">
  413. <summary class="collapse-header">
  414. <i class="fas fa-undo u-mr15"></i><?=_('Backups');?>
  415. </summary>
  416. <div class="collapse-content u-pl50">
  417. <div class="u-input-width">
  418. <div class="u-mb10">
  419. <label for="v_backup" class="form-label"><?=_('Local backup');?></label>
  420. <select class="form-select" name="v_backup" id="v_backup">
  421. <option value="no"><?=_('No'); ?></option>
  422. <option value="yes" <?php if($v_backup == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  423. </select>
  424. </div>
  425. <div class="u-mb10">
  426. <label for="v_backup_mode" class="form-label">
  427. <?=_('Compression');?> <a target="_blank" href="http://docs.hestiacp.com/admin_docs/backups.html#what-is-the-difference-between-zstd-and-gzip"><i class="fas fa-question-circle"></i></a>
  428. </label>
  429. <select class="form-select" name="v_backup_mode" id="v_backup_mode">
  430. <option value="gzip" <?php if($v_backup_mode != 'zstd') echo 'selected' ?>>gzip</option>
  431. <option value="zstd" <?php if($v_backup_mode == 'zstd') echo 'selected' ?>>zstd</option>
  432. </select>
  433. </div>
  434. <div class="u-mb10">
  435. <label for="v_backup_gzip" class="form-label">
  436. <?=_('Compression level');?> <a target="_blank" href="http://docs.hestiacp.com/admin_docs/backups.html#what-is-the-optimal-compression-ratio"><i class="fas fa-question-circle"></i></a>
  437. </label>
  438. <select class="form-select" name="v_backup_gzip" id="v_backup_gzip">
  439. <?php for ($level = 1; $level < 20; $level++) { ?>
  440. <option value='<?=$level;?>' <?php if($v_backup_gzip == $level) echo 'selected' ?>><?=$level;?><?php if($level > 9){ echo sprintf(' (%s)', _('zstd only')); } ?></option>
  441. <?php } ?>
  442. </select>
  443. </div>
  444. <div class="u-mb10">
  445. <label for="v_backup_dir" class="form-label">
  446. <?=_('Directory');?> <a target="_blank" href="https://docs.hestiacp.com/admin_docs/backups.html#how-to-change-default-backup-folder"><i class="fas fa-question-circle"></i></a>
  447. </label>
  448. <input type="text" class="form-control" name="v_backup_dir" id="v_backup_dir" value="<?=trim($v_backup_dir, "'")?>" disabled="disabled">
  449. </div>
  450. <div class="form-check">
  451. <input class="form-check-input" type="checkbox" name="v_backup_remote_adv" id="v_backup_remote_adv" <?php if (!empty($v_backup_remote_adv)) echo 'checked' ?> onclick="javascript:elementHideShow('remote_backup');">
  452. <label for="v_backup_remote_adv">
  453. <?=_('Remote backup');?>
  454. </label>
  455. </div>
  456. </div>
  457. <div id="remote_backup" class="u-pl50 u-mt20" style="display:<?php if (empty($v_backup_remote_adv)) echo 'none';?> ;">
  458. <div class="u-input-width">
  459. <div class="u-mb10">
  460. <label for="backup_type" class="form-label">
  461. <?=_('Protocol');?> <a target="_blank" href="http://docs.hestiacp.com/admin_docs/backups.html#what-kind-of-protocols-are-currently-supported"><i class="fas fa-question-circle"></i></a>
  462. </label>
  463. <select class="form-select" name="v_backup_type" id="backup_type">
  464. <option value='ftp'><?=_('ftp'); ?></option>
  465. <option value='sftp' <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'sftp' )) echo 'selected="selected"'; ?>><?=_('sftp'); ?></option>
  466. <option value="b2" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'b2' )) echo 'selected="selected"'; ?>><?=_('Backblaze'); ?>
  467. <option value="rclone" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'rclone' )) echo 'selected="selected"'; ?>><?=_('Rclone'); ?>
  468. </select>
  469. </div>
  470. <div id="backup_sftp" style="display: <?php if ((!empty($v_backup_type)) && !in_array(trim($v_backup_type, "'"),array('ftp','sftp'))){ echo 'none';} else {echo 'block';} ?>">
  471. <div class="u-mb10">
  472. <label for="v_backup_host" class="form-label"><?=_('Host');?></label>
  473. <input type="text" class="form-control" name="v_backup_host" id="v_backup_host" value="<?=trim($v_backup_host, "'")?>">
  474. </div>
  475. <div class="u-mb20">
  476. <label for="v_backup_port" class="form-label"><?=_('Port');?></label>
  477. <input type="text" class="form-control" name="v_backup_port" id="v_backup_port" value="<?=trim($v_backup_port, "'")?>">
  478. </div>
  479. <div class="u-mb10">
  480. <label for="v_backup_username" class="form-label"><?=_('Username');?></label>
  481. <input type="text" class="form-control" name="v_backup_username" id="v_backup_username" value="<?=trim($v_backup_username, "'")?>">
  482. </div>
  483. <div class="u-mb20">
  484. <label for="v_backup_password" class="form-label"><?=_('Password');?></label>
  485. <div class="u-pos-relative">
  486. <input type="text" class="form-control js-password-input" name="v_backup_password" id="v_backup_password" value="<?=trim($v_backup_password, "'")?>">
  487. </div>
  488. </div>
  489. <div class="u-mb10">
  490. <label for="v_backup_bpath" class="form-label"><?=_('Directory');?></label>
  491. <input type="text" class="form-control" name="v_backup_bpath" id="v_backup_bpath" value="<?=trim($v_backup_bpath, "'")?>">
  492. </div>
  493. </div>
  494. <div id="backup_bucket" style="display: <?php if ((empty($v_backup_type)) || !in_array(trim($v_backup_type, "'"),array('b2'))){ echo 'none';} else {echo 'block';} ?>">
  495. <div class="u-mb10">
  496. <label for="v_backup_bucket" class="form-label"><?=_('Bucket');?></label>
  497. <input type="text" class="form-control" name="v_backup_bucket" id="v_backup_bucket" value="<?=trim($v_backup_bucket, "'")?>">
  498. </div>
  499. <div class="u-mb10">
  500. <label for="v_backup_application_id" class="form-label"><?=_('Key ID');?></label>
  501. <input type="text" class="form-control" name="v_backup_application_id" id="v_backup_application_id" value="<?=trim($v_backup_application_id, "'")?>">
  502. </div>
  503. <div class="u-mb10">
  504. <label for="v_backup_application_key" class="form-label"><?=_('Application Key');?></label>
  505. <input type="text" class="form-control" name="v_backup_application_key" id="v_backup_application_key" value="<?=trim($v_backup_application_key, "'")?>">
  506. </div>
  507. </div>
  508. <div id="backup_rclone" style="display: <?php if ((empty($v_backup_type)) || !in_array(trim($v_backup_type, "'"),array('rclone'))){ echo 'none';} else {echo 'block';} ?>">
  509. <div class="u-mb10">
  510. <label for="v_rclone_host" class="form-label"><?=_('Host');?></label>
  511. <input type="text" class="form-control" name="v_rclone_host" id="v_rclone_host" value="<?=trim($v_rclone_host, "'")?>">
  512. </div>
  513. <div class="u-mb10">
  514. <label for="v_rclone_path" class="form-label"><?=_('Directory');?></label>
  515. <input type="text" class="form-control" name="v_rclone_path" id="v_rclone_path" value="<?=trim($v_rclone_path, "'")?>">
  516. </div>
  517. </div>
  518. </div>
  519. </div>
  520. </div>
  521. </details>
  522. <!-- SSL tab -->
  523. <details class="collapse u-mb10">
  524. <summary class="collapse-header">
  525. <i class="fas fa-lock u-mr15"></i><?=_('SSL');?>
  526. </summary>
  527. <div class="collapse-content u-pl50">
  528. <div class="u-input-width">
  529. <div class="u-mb20">
  530. <label for="v_ssl_crt" class="form-label">
  531. <?=_('SSL Certificate');?>
  532. <span id="generate-csr"> / <a class="generate" target="_blank" href="/generate/ssl/?domain=<?=htmlentities(trim($v_hostname,'"'));?>"><?=_('Generate CSR');?></a></span>
  533. </label>
  534. <textarea class="form-control u-min-height100 u-console" name="v_ssl_crt" id="v_ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
  535. </div>
  536. <div class="u-mb20">
  537. <label for="v_ssl_key" class="form-label"><?=_('SSL Key');?></label>
  538. <textarea class="form-control u-min-height100 u-console" name="v_ssl_key" id="v_ssl_key"><?=htmlentities(trim($v_ssl_key, "'"))?></textarea>
  539. </div>
  540. <table class="additional-info">
  541. <tr>
  542. <td>
  543. <b><?=_('SUBJECT');?>:</b>
  544. </td>
  545. <td class="details">
  546. <?=$v_ssl_subject?>
  547. </td>
  548. </tr>
  549. <?php if ($v_ssl_aliases){?>
  550. <tr>
  551. <td>
  552. <b><?=_('Aliases');?>:</b>
  553. </td>
  554. <td class="details">
  555. <?=$v_ssl_aliases?>
  556. </td>
  557. </tr>
  558. <?php } ?>
  559. <tr>
  560. <td>
  561. <b><?=_('NOT_BEFORE');?>:</b>
  562. </td>
  563. <td class="details">
  564. <?=$v_ssl_not_before?>
  565. </td>
  566. </tr>
  567. <tr>
  568. <td>
  569. <b><?=_('NOT_AFTER');?>:</b>
  570. </td>
  571. <td class="details">
  572. <?=$v_ssl_not_after?>
  573. </td>
  574. </tr>
  575. <tr>
  576. <td>
  577. <b><?=_('SIGNATURE');?>:</b>
  578. </td>
  579. <td class="details">
  580. <?=$v_ssl_signature?>
  581. </td>
  582. </tr>
  583. <tr>
  584. <td>
  585. <b><?=_('PUB_KEY');?>:</b>
  586. </td>
  587. <td class="details">
  588. <?=$v_ssl_pub_key?>
  589. </td>
  590. </tr>
  591. <tr>
  592. <td>
  593. <b><?=_('ISSUER');?>:</b>
  594. </td>
  595. <td class="details">
  596. <?=$v_ssl_issuer?>
  597. </td>
  598. </tr>
  599. </table>
  600. </div>
  601. </div>
  602. </details>
  603. <!-- Security tab -->
  604. <details class="collapse u-mb10">
  605. <summary class="collapse-header">
  606. <i class="fas fa-key u-mr15"></i><?=_('Security');?>
  607. </summary>
  608. <div class="collapse-content u-pl50">
  609. <div class="u-input-width">
  610. <h3 class="section-title" onclick="javascript:elementHideShow('security-system-table',this);">
  611. <?=_('System');?>
  612. <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
  613. </h3>
  614. <div id="security-system-table" style="display: none;">
  615. <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
  616. <?=_('API');?>
  617. </p>
  618. <div class="u-mb10">
  619. <label for="api-system" class="form-label"><?=_('Enable API access');?></label>
  620. <select class="form-select" name="v_api_system" id="api-system">
  621. <option value='0' <?php if(empty($_SESSION['API_SYSTEM']) || $_SESSION['API_SYSTEM'] == '0') echo 'selected' ?>><?=_('Disabled'); ?></option>
  622. <option value='1' <?php if($_SESSION['API_SYSTEM'] == '1') echo 'selected' ?>><?=_('Enabled for admin'); ?></option>
  623. <option value='2' <?php if($_SESSION['API_SYSTEM'] == '2') echo 'selected' ?>><?=_('Enabled for all users'); ?></option>
  624. </select>
  625. </div>
  626. <div class="u-mb10">
  627. <label for="api" class="form-label"><?=_('Enable legacy API access');?></label>
  628. <select class="form-select" name="v_api" id="api">
  629. <option value="yes"><?=_('Yes'); ?></option>
  630. <option value="no" <?php if($_SESSION['API'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  631. </select>
  632. </div>
  633. <div id="security_ip" style="<?php if ($_SESSION['API'] == "no" && $_SESSION['API_SYSTEM'] == '0') echo 'display:none;';?>">
  634. <div class="u-mb10">
  635. <label for="v_api_allowed_ip" class="form-label u-side-by-side">
  636. <?=_('Allowed IP addresses for API');?> <span class="optional">1 IP address per line</span>
  637. </label>
  638. <textarea class="form-control" name="v_api_allowed_ip" id="v_api_allowed_ip"><?php
  639. foreach(explode(',',$_SESSION['API_ALLOWED_IP']) as $ip ){
  640. echo trim($ip)."\n";
  641. }
  642. ?></textarea>
  643. </div>
  644. </div>
  645. <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
  646. <?=_('Login');?>
  647. </p>
  648. <div class="u-mb10">
  649. <label for="v_login_style" class="form-label"><?=_('Login screen style');?></label>
  650. <select class="form-select" name="v_login_style" id="v_login_style">
  651. <option value="default"><?=_('Default'); ?></option>
  652. <option value="old" <?php if($_SESSION['LOGIN_STYLE'] == 'old') echo 'selected' ?>><?=_('Old Style'); ?></option>
  653. </select>
  654. </div>
  655. <div class="u-mb10">
  656. <label for="v_policy_system_password_reset" class="form-label"><?=_('Allow users to reset their passwords');?></label>
  657. <select class="form-select" name="v_policy_system_password_reset" id="v_policy_system_password_reset">
  658. <option value="yes"><?=_('Yes'); ?></option>
  659. <option value="no" <?php if($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  660. </select>
  661. </div>
  662. <div class="u-mb20">
  663. <label for="v_inactive_session_timeout" class="form-label">
  664. <?=_('Inactive session timeout');?> (<?=_('Minutes');?>)
  665. </label>
  666. <input type="text" class="form-control" name="v_inactive_session_timeout" id="v_inactive_session_timeout" value="<?=trim($_SESSION['INACTIVE_SESSION_TIMEOUT'], "'")?>">
  667. </div>
  668. <div class="u-mb10">
  669. <label for="v_policy_csrf_strictness" class="form-label"><?=_('Prevent CSRF');?></label>
  670. <select class="form-select" name="v_policy_csrf_strictness" id="v_policy_csrf_strictness">
  671. <option value="0" <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '0') echo 'selected' ?>><?=_('Disabled');?></option>
  672. <option value="1" <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '1') echo 'selected' ?>><?=_('Enabled');?></option>
  673. <option value="2" <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '2') echo 'selected' ?>><?=_('Strict');?></option>
  674. </select>
  675. </div>
  676. </div>
  677. <?php if (($_SESSION['userContext'] === "admin") && ($_SESSION['user'] === 'admin')) {?>
  678. <h3 class="section-title" onclick="javascript:elementHideShow('security-sysadminprotect-table',this);">
  679. <?=_('System Protection');?>
  680. <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
  681. </h3>
  682. <div id="security-sysadminprotect-table" style="display: none;">
  683. <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
  684. <?=_('System Administrator account');?>
  685. </p>
  686. <div class="u-mb10">
  687. <label for="v_policy_system_protected_admin" class="form-label"><?=_('Restrict access to read-only for other administrators');?></label>
  688. <select class="form-select" name="v_policy_system_protected_admin" id="v_policy_system_protected_admin">
  689. <option value="yes"><?=_('Yes'); ?></option>
  690. <option value="no" <?php if($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
  691. </select>
  692. </div>
  693. <div class="u-mb10">
  694. <label for="v_policy_system_hide_admin" class="form-label"><?=_('Hide account from other administrators');?></label>
  695. <select class="form-select" name="v_policy_system_hide_admin" id="v_policy_system_hide_admin">
  696. <option value="yes"><?=_('Yes'); ?></option>
  697. <option value="no" <?php if($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
  698. </select>
  699. </div>
  700. <div class="u-mb10">
  701. <label for="v_policy_system_hide_services" class="form-label"><?=_('Do not allow other administrators to access Server Settings');?></label>
  702. <select class="form-select" name="v_policy_system_hide_services" id="v_policy_system_hide_services">
  703. <option value="yes"><?=_('Yes'); ?></option>
  704. <option value="no" <?php if($_SESSION['POLICY_SYSTEM_HIDE_SERVICES'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
  705. </select>
  706. </div>
  707. </div>
  708. <?php } ?>
  709. <h3 class="section-title" onclick="javascript:elementHideShow('security-policies-table',this);">
  710. <?=_('Policies');?>
  711. <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
  712. </h3>
  713. <div id="security-policies-table" style="display: none;">
  714. <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
  715. <?=_('Users');?>
  716. </p>
  717. <?php if ($_SESSION['POLICY_SYSTEM_ENABLE_BACON'] === 'true') { ?>
  718. <div class="u-mb10">
  719. <label for="v_policy_user_view_suspended" class="form-label">
  720. <?=_('Allow suspended users to log in with read-only access');?> <span class="hint">(<?=_('Preview');?>)</span>
  721. </label>
  722. <select class="form-select" name="v_policy_user_view_suspended" id="v_policy_user_view_suspended">
  723. <option value="yes" <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  724. <option value="no" <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  725. </select>
  726. </div>
  727. <?php } ?>
  728. <div class="u-mb10">
  729. <label for="v_policy_user_edit_details" class="form-label"><?=_('Allow users to edit their account details');?></label>
  730. <select class="form-select" name="v_policy_user_edit_details" id="v_policy_user_edit_details">
  731. <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  732. <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  733. </select>
  734. </div>
  735. <div class="u-mb10">
  736. <label for="v_policy_user_edit_web_templates" class="form-label"><?=_('Allow users to change templates when editing web domains');?></label>
  737. <select class="form-select" name="v_policy_user_edit_web_templates" id="v_policy_user_edit_web_templates">
  738. <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  739. <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  740. </select>
  741. </div>
  742. <div class="u-mb10">
  743. <label for="v_policy_user_edit_dns_templates" class="form-label"><?=_('Allow users to change templates when editing DNS zones');?></label>
  744. <select class="form-select" name="v_policy_user_edit_dns_templates" id="v_policy_user_edit_dns_templates">
  745. <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  746. <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  747. </select>
  748. </div>
  749. <div class="u-mb10">
  750. <label for="v_policy_user_view_logs" class="form-label"><?=_('Allow users to view action and login history logs');?></label>
  751. <select class="form-select" name="v_policy_user_view_logs" id="v_policy_user_view_logs">
  752. <option value="yes" <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  753. <option value="no" <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  754. </select>
  755. </div>
  756. <div class="u-mb10">
  757. <label for="v_policy_user_delete_logs" class="form-label"><?=_('Allow users to delete log history');?></label>
  758. <select class="form-select" name="v_policy_user_delete_logs" id="v_policy_user_delete_logs">
  759. <option value="yes" <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  760. <option value="no" <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  761. </select>
  762. </div>
  763. <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
  764. <?=_('Domains');?>
  765. </p>
  766. <div class="u-mb10">
  767. <label for="v_enforce_subdomain_ownership" class="form-label"><?=_('Enforce subdomain ownership');?></label>
  768. <select class="form-select u-mb20" name="v_enforce_subdomain_ownership" id="v_enforce_subdomain_ownership">
  769. <option value="yes"><?=_('Yes'); ?></option>
  770. <option value="no" <?php if($_SESSION['ENFORCE_SUBDOMAIN_OWNERSHIP'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  771. </select>
  772. </div>
  773. </div>
  774. </div>
  775. </div>
  776. </details>
  777. <!-- Plugins tab -->
  778. <details class="collapse u-mb10">
  779. <summary class="collapse-header">
  780. <i class="fas fa-puzzle-piece u-mr15"></i><?=_('Hestia Control Panel Plugins');?>
  781. </summary>
  782. <div class="collapse-content u-pl50">
  783. <div class="u-input-width">
  784. <div class="u-mb10">
  785. <label for="v_plugin_app_installer" class="form-label"><?=_('Quick App Installer');?></label>
  786. <select class="form-select" name="v_plugin_app_installer" id="v_plugin_app_installer">
  787. <option value="false"><?=_('No'); ?></option>
  788. <option value="true" <?php if($_SESSION['PLUGIN_APP_INSTALLER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
  789. </select>
  790. </div>
  791. <div class="u-mb10">
  792. <label for="v_filemanager" class="form-label"><?=_('Filemanager');?></label>
  793. <select class="form-select" name="v_filemanager" id="v_filemanager">
  794. <option value="false"><?=_('No'); ?></option>
  795. <option value="true" <?php if($_SESSION['FILE_MANAGER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
  796. </select>
  797. </div>
  798. <div class="u-mb10">
  799. <label for="v_quota" class="form-label"><?=_('FileSystem Disk Quota');?></label>
  800. <select class="form-select" name="v_quota" id="v_quota">
  801. <option value="no"><?=_('No'); ?></option>
  802. <option value="yes" <?php if($_SESSION['DISK_QUOTA'] == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  803. </select>
  804. </div>
  805. <div class="u-mb10">
  806. <label for="v_firewall" class="form-label"><?=_('Firewall');?></label>
  807. <select class="form-select u-mb20" name="v_firewall" id="v_firewall">
  808. <option value="no"><?=_('No'); ?></option>
  809. <option value="yes" <?php if($_SESSION['FIREWALL_SYSTEM'] == 'iptables') echo 'selected' ?>><?=_('Yes'); ?></option>
  810. </select>
  811. </div>
  812. </div>
  813. </div>
  814. </details>
  815. </div>
  816. </div>
  817. </form>
  818. </div>