edit_web.html 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605
  1. <div class="l-center edit">
  2. <div class="l-sort clearfix">
  3. <div class="l-unit-toolbar__buttonstrip">
  4. <a class="ui-button cancel" id="btn-back" href="/list/web/"><i class="fas fa-arrow-left status-icon blue"></i> <?=__('Back')?></a>
  5. </div>
  6. <div class="l-unit-toolbar__buttonstrip float-right">
  7. <a href="/add/webapp/?domain=<?=$v_domain?>" class="ui-button cancel">
  8. <i class="fas fa-magic status-icon blue"></i> <?=__('Quick Install App')?>
  9. </a>
  10. <a href="#" class="ui-button" title="<?=__('Save')?>" data-action="submit" data-id="vstobjects"><i class="fas fa-save status-icon purple"></i> <?=__('Save')?></a>
  11. </div>
  12. </div>
  13. </div>
  14. <div class="l-separator"></div>
  15. <div class="l-center animated fadeIn">
  16. <?php
  17. $back = $_SESSION['back'];
  18. if (empty($back)) {
  19. $back = "location.href='/list/web/'";
  20. } else {
  21. $back = "location.href='".$back."'";
  22. }
  23. ?>
  24. <form id="vstobjects" name="v_edit_web" method="post" class="<?=$v_status?>">
  25. <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
  26. <input type="hidden" name="save" value="save" />
  27. <table class='data'>
  28. <tr class="data-add">
  29. <td class="data-dotted">
  30. <table class="data-col1">
  31. <tr>
  32. <td>
  33. </td>
  34. </tr>
  35. </table>
  36. </td>
  37. <td class="data-dotted">
  38. <table class="data-col2">
  39. <tr>
  40. <td class="step-top">
  41. <span class="page-title"><?=__('Editing Domain')?></span>
  42. </td>
  43. </tr>
  44. <tr>
  45. <td>
  46. <?php
  47. if (!empty($_SESSION['error_msg'])) {
  48. echo "<span class=\"vst-error\"> <i class=\"fas fa-exclamation-circle status-icon red\"></i> ".htmlentities($_SESSION['error_msg'])."</span>";
  49. } else {
  50. if (!empty($_SESSION['ok_msg'])) {
  51. echo "<span class=\"vst-ok\"> <i class=\"fas fa-check-circle status-icon green\"></i> ".$_SESSION['ok_msg']."</span>";
  52. }
  53. }
  54. ?>
  55. </td>
  56. </tr>
  57. <tr>
  58. <td>
  59. <?php
  60. if (!empty($_SESSION['error_msg'])) {
  61. echo "<span class=\"vst-error\"> <i class=\"fas fa-exclamation-circle status-icon red\"></i> ".htmlentities($_SESSION['error_msg'])."</span>";
  62. } else {
  63. if (!empty($_SESSION['ok_msg'])) {
  64. echo "<span class=\"vst-ok\"> <i class=\"fas fa-check-circle status-icon green\"></i> ".$_SESSION['ok_msg']."</span>";
  65. }
  66. }
  67. ?>
  68. </td>
  69. </tr>
  70. <tr>
  71. <td class="vst-text step-top">
  72. <?php print __('Domain');?>
  73. </td>
  74. </tr>
  75. <tr>
  76. <td>
  77. <input type="text" size="20" class="vst-input" name="v_domain" value="<?=htmlentities(trim($v_domain, "'"))?>" disabled>
  78. <input type="hidden" name="v_domain" value="<?=htmlentities(trim($v_domain, "'"))?>">
  79. </td>
  80. </tr>
  81. <tr>
  82. <td class="vst-text input-label">
  83. <?php print __('IP Address');?>
  84. </td>
  85. </tr>
  86. <tr>
  87. <td>
  88. <select class="vst-list" name="v_ip">
  89. <?php
  90. foreach ($ips as $ip => $value) {
  91. $display_ip = htmlentities(empty($value['NAT']) ? $ip : "{$value['NAT']}");
  92. $ip_selected = ((!empty($v_ip) && $ip == $v_ip) || $v_ip == "'{$ip}'") ? 'selected' : '';
  93. echo "\n\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"{$ip}\" {$ip_selected}>{$display_ip}</option>\n";
  94. }
  95. ?>
  96. </select>
  97. </td>
  98. </tr>
  99. <tr>
  100. <td class="vst-text input-label">
  101. <?php print __('Aliases');?>
  102. </td>
  103. </tr>
  104. <tr>
  105. <td>
  106. <textarea size="20" class="vst-textinput short" name="v_aliases"><?=htmlentities(trim($v_aliases, "'"))?></textarea>
  107. </td>
  108. </tr>
  109. <tr>
  110. <td class="vst-text step-top">
  111. <?php print __('Web Statistics');?>
  112. </td>
  113. </tr>
  114. <tr>
  115. <td>
  116. <select class="vst-list" name="v_stats">
  117. <?php
  118. foreach ($stats as $key => $value) {
  119. $svalue = "'".$value."'";
  120. echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
  121. if (empty($v_stats)) $v_stats = 'none';
  122. if (( $value == $v_stats ) || ($svalue == $v_stats )){
  123. echo ' selected' ;
  124. }
  125. echo ">". htmlentities(__($value)) ."</option>\n";
  126. }
  127. ?>
  128. </select>
  129. </td>
  130. </tr>
  131. <tr class="stats-auth" style="<? if ($v_stats == 'none') { ?>display:none<? } ?>">
  132. <td class="vst-text input-label step-left">
  133. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');"><?php print __('Statistics Authorization');?></label>
  134. </td>
  135. </tr>
  136. <tr class="stats-auth">
  137. <td class="step-left">
  138. <table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user">
  139. <tr>
  140. <td class="vst-text input-label">
  141. <?php print __('Username');?>
  142. </td>
  143. </tr>
  144. <tr>
  145. <td>
  146. <input type="text" size="20" class="vst-input" name="v_stats_user" value="<?=htmlentities(trim($v_stats_user, "'"))?>">
  147. </td>
  148. </tr>
  149. <tr>
  150. <td class="vst-text input-label">
  151. <?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a>
  152. </td>
  153. </tr>
  154. <tr>
  155. <td>
  156. <input type="text" size="20" class="vst-input password" name="v_stats_password" value="<?=htmlentities(trim($v_stats_password, "'"))?>" id="v_password">
  157. </td>
  158. </tr>
  159. </table>
  160. </td>
  161. </tr>
  162. <tr>
  163. <td class="vst-text input-label">
  164. <?php print __('Web Template') . "<span class='optional'>" .strtoupper($_SESSION['WEB_SYSTEM']) . "</span>";?>
  165. </td>
  166. </tr>
  167. <tr>
  168. <td>
  169. <select class="vst-list" name="v_template">
  170. <?php
  171. foreach ($templates as $key => $value) {
  172. echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
  173. $svalue = "'".$value."'";
  174. if ((!empty($v_template)) && ( $value == $v_template ) || ($svalue == $v_template)){
  175. echo ' selected' ;
  176. }
  177. echo ">".htmlentities($value)."</option>\n";
  178. }
  179. ?>
  180. </select>
  181. </td>
  182. </tr>
  183. <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
  184. <tr>
  185. <td class="vst-text input-label">
  186. <?php print __('Backend Template') . " <span class='optional'>" . strtoupper($_SESSION['WEB_BACKEND']) . "</span>";?>
  187. </td>
  188. </tr>
  189. <tr>
  190. <td>
  191. <select class="vst-list" name="v_backend_template">
  192. <?php
  193. foreach ($backend_templates as $key => $value) {
  194. echo "\t\t\t\t<option value=\"".$value."\"";
  195. $svalue = "'".$value."'";
  196. if ((!empty($v_backend_template)) && ( $value == $v_backend_template ) || ($svalue == $v_backend_template)){
  197. echo ' selected' ;
  198. }
  199. if ((empty($v_backend_template)) && ($value == 'default')){
  200. echo ' selected' ;
  201. }
  202. echo ">".htmlentities($value)."</option>\n";
  203. }
  204. ?>
  205. </select>
  206. </td>
  207. </tr>
  208. <?php }?>
  209. <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
  210. <tr>
  211. <td class="vst-text step-top">
  212. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if (!empty($v_proxy)) echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');"> <?php print __('Proxy Support') . "<span class='optional'>" . strtoupper($_SESSION['PROXY_SYSTEM']) . "</span>";?></label>
  213. </td>
  214. </tr>
  215. <tr>
  216. <td class="step-left">
  217. <table style="display:<?php if (empty($v_proxy)) { echo 'none';} else {echo 'block';}?> ;" id="proxytable">
  218. <tr>
  219. <td class="vst-text input-label">
  220. <?php print __('Proxy Template');?>
  221. </td>
  222. </tr>
  223. <tr>
  224. <td>
  225. <select class="vst-list" name="v_proxy_template">
  226. <?php
  227. foreach ($proxy_templates as $key => $value) {
  228. echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
  229. $svalue = "'".$value."'";
  230. if ((!empty($v_proxy_template)) && ( $value == $v_proxy_template ) || ($svalue == $v_proxy_template)){
  231. echo ' selected' ;
  232. }
  233. if ((empty($v_proxy_template)) && ($value == 'default')){
  234. echo ' selected' ;
  235. }
  236. echo ">".htmlentities($value)."</option>\n";
  237. }
  238. ?>
  239. </select>
  240. </td>
  241. </tr>
  242. <tr>
  243. <td class="vst-text input-label">
  244. <?php print __('Proxy Extensions');?>
  245. </td>
  246. </tr>
  247. <tr>
  248. <td>
  249. <textarea size="20" class="vst-textinput short" name="v_proxy_ext"><?php if (!empty($v_proxy_ext)) { echo htmlentities(trim($v_proxy_ext, "'"));} else { echo 'jpg, jpeg, gif, png, ico, svg, css, zip, tgz, gz, rar, bz2, exe, pdf, doc, xls, ppt, txt, odt, ods, odp, odf, tar, bmp, rtf, js, mp3, avi, mpeg, flv, html, htm'; } ?></textarea>
  250. </td>
  251. </tr>
  252. </table>
  253. </td>
  254. </tr>
  255. <?php } ?>
  256. <tr>
  257. <td class="vst-text step-top">
  258. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_custom_doc_root_check" <?php if (!empty($v_custom_doc_root)) echo "checked=yes" ?> onclick="javascript:elementHideShow('v_custom_doc_root');"> <?php print __('Custom document root');?></label>
  259. </td>
  260. </tr>
  261. <tr>
  262. <td class="step-left">
  263. <table style="display:<?php if (empty($v_custom_doc_root)) { echo 'none';} else {echo 'block';}?> ;" id="v_custom_doc_root">
  264. <tr>
  265. <td class="vst-text input-label">
  266. <?php print __('Point to');?>
  267. </td>
  268. </tr>
  269. <tr>
  270. <td>
  271. <input type="hidden" name="v-custom-doc-root_prepath"" value="<?php echo $v_custom_doc_root_prepath;?>">
  272. <select class="vst-list" name="v-custom-doc-domain">
  273. <option value="<?php echo $v_domain;?>"><?php echo $v_domain;?></option>
  274. <?php
  275. foreach ($user_domains as $domain) {
  276. if($domain != $v_domain ){
  277. if($v_custom_doc_domain == $domain){
  278. ?>
  279. <option value="<?php echo $domain;?>" selected="selected"><?php echo $domain;?></option>
  280. <?php
  281. }else{
  282. ?>
  283. <option value="<?php echo $domain;?>"><?php echo $domain;?></option>
  284. <?php
  285. }
  286. }
  287. }
  288. ?>
  289. </select>
  290. </td>
  291. </tr>
  292. <tr>
  293. <td class="vst-text input-label">
  294. <?php print( __('Folder'));?> <span class="optional">(<?php print __('optional');?>)</span>
  295. </td>
  296. </tr>
  297. <tr>
  298. <td>
  299. <input type="text" size="20" class="vst-input"
  300. name="v-custom-doc-folder" value="<?=htmlentities(trim($v_custom_doc_folder, "'"))?>">
  301. </td>
  302. </tr>
  303. <tr>
  304. <td>
  305. <small class="custom_docroot_hint"></small>
  306. </td>
  307. </tr>
  308. </table>
  309. </td>
  310. </tr>
  311. <tr>
  312. <td class="vst-text step-top">
  313. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');"> <?php print __('SSL Support');?></label>
  314. </td>
  315. </tr>
  316. <tr>
  317. <td class="step-left">
  318. <table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable">
  319. <tr>
  320. <td class="input-label vst-text">
  321. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_letsencrypt" <?php if($v_letsencrypt == 'yes' || $v_letencrypt == 'on') echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_letsencrypt(this)"> <?php print __('Lets Encrypt Support');?></label>
  322. </td>
  323. </tr>
  324. <tr>
  325. <td class="input-label vst-text">
  326. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl_forcessl" <?php if($v_ssl_forcessl == 'yes') echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_forcessl(this)"> <?php print __('Force SSL/HTTPS');?></label>
  327. </td>
  328. </tr>
  329. <tr>
  330. <td class="input-label vst-text">
  331. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl_hsts" <?php if($v_ssl_hsts == 'yes') echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_hsts(this)"> <?php print __('Enable SSL HSTS');?></label>
  332. </td>
  333. </tr>
  334. <tr style="display: none;">
  335. <td class="vst-text input-label">
  336. <?php print __('Home Directory');?>
  337. </td>
  338. </tr>
  339. <tr style="display: none;">
  340. <td>
  341. <select class="vst-list" name="v_ssl_home">
  342. <option value='same'>
  343. public_html
  344. </option>
  345. </select>
  346. </td>
  347. </tr>
  348. <tr>
  349. <td class="vst-text input-label">
  350. <?php print __('SSL Certificate');?>
  351. <span id="generate-csr"> / <a class="generate" target="_blank" href="/generate/ssl/?domain=<?=$v_domain?>"><?=__('Generate CSR')?></a></span>
  352. </td>
  353. </tr>
  354. <tr>
  355. <td>
  356. <textarea size="20" class="vst-textinput short" name="v_ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
  357. </td>
  358. </tr>
  359. <tr>
  360. <td class="vst-text input-label">
  361. <?php print __('SSL Key');?>
  362. </td>
  363. </tr>
  364. <tr>
  365. <td>
  366. <textarea size="20" class="vst-textinput short" name="v_ssl_key"><?=htmlentities(trim($v_ssl_key, "'"))?></textarea>
  367. </td>
  368. </tr>
  369. <tr>
  370. <td class="vst-text input-label">
  371. <?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span>
  372. </td>
  373. </tr>
  374. <tr>
  375. <td>
  376. <textarea size="20" class="vst-textinput short" name="v_ssl_ca"><?=htmlentities(trim($v_ssl_ca, "'"))?></textarea>
  377. </td>
  378. </tr>
  379. <?
  380. if ($v_ssl != 'no' ) { ?>
  381. <tr>
  382. <td>
  383. <table class="additional-info">
  384. <tr>
  385. <td>
  386. <b><?=__('SUBJECT')?>:</b>
  387. </td>
  388. <td class="details">
  389. <?=$v_ssl_subject?>
  390. </td>
  391. </tr>
  392. <? if($v_ssl_aliases){?>
  393. <tr>
  394. <td>
  395. <b><?=__('ALIASES')?>:</b>
  396. </td>
  397. <td class="details">
  398. <?=$v_ssl_aliases?>
  399. </td>
  400. </tr>
  401. <? } ?>
  402. <tr>
  403. <td>
  404. <b><?=__('NOT_BEFORE')?>:</b>
  405. </td>
  406. <td class="details">
  407. <?=$v_ssl_not_before?>
  408. </td>
  409. </tr>
  410. <tr>
  411. <td>
  412. <b><?=__('NOT_AFTER')?>:</b>
  413. </td>
  414. <td class="details">
  415. <?=$v_ssl_not_after?>
  416. </td>
  417. </tr>
  418. <tr>
  419. <td>
  420. <b><?=__('SIGNATURE')?>:</b>
  421. </td>
  422. <td class="details">
  423. <?=$v_ssl_signature?>
  424. </td>
  425. </tr>
  426. <tr>
  427. <td>
  428. <b><?=__('PUB_KEY')?>:</b>
  429. </td>
  430. <td class="details">
  431. <?=$v_ssl_pub_key?>
  432. </td>
  433. </tr>
  434. <tr>
  435. <td>
  436. <b><?=__('ISSUER')?>:</b>
  437. </td>
  438. <td class="details">
  439. <?=$v_ssl_issuer?>
  440. </td>
  441. </tr>
  442. </table>
  443. </td>
  444. </tr>
  445. <? } // if ssl is enabled ?>
  446. </table>
  447. </td>
  448. </tr>
  449. <tr>
  450. <td class="vst-text step-top">
  451. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_additional_ftp_accounts(this)"> <?php print __('Additional FTP Account');?></label>
  452. </td>
  453. </tr>
  454. <tr>
  455. <td>
  456. <?php foreach ($v_ftp_users as $i => $ftp_user): ?>
  457. <?php
  458. $v_ftp_user = $ftp_user['v_ftp_user'];
  459. $v_ftp_password = $ftp_user['v_ftp_password'];
  460. $v_ftp_path = $ftp_user['v_ftp_path'];
  461. $v_ftp_email = $ftp_user['v_ftp_email'];
  462. $v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
  463. ?>
  464. <table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" class="ftptable ftptable-nrm" name="v_add_domain_ftp">
  465. <tr>
  466. <td class="vst-text input-label">
  467. <?php print __('FTP') ?> #<span class="ftp-user-number"><?php print $i + 1; ?></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?=__('delete')?>)</a>
  468. <input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
  469. <input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[<?php print $i ?>][is_new]" value="<?php print htmlentities($ftp_user['is_new']) ?>" />
  470. </td>
  471. </tr>
  472. <tr>
  473. <td class="vst-text step-left input-label">
  474. <?php print __('Username');?><br>
  475. <span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
  476. </td>
  477. </tr>
  478. <tr>
  479. <td class="step-left">
  480. <input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?>
  481. name="v_ftp_user[<?php print $i ?>][v_ftp_user]" value="<?=htmlentities(trim($v_ftp_user, "'"))?>">
  482. <small class="hint"></small>
  483. </td>
  484. </tr>
  485. <tr>
  486. <td class="vst-text step-left input-label">
  487. <?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
  488. </td>
  489. </tr>
  490. <tr>
  491. <td class="step-left">
  492. <input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[<?php print $i ?>][v_ftp_password]" value="<?=htmlentities(trim($v_ftp_password, "'"))?>">
  493. </td>
  494. </tr>
  495. <tr>
  496. <td class="vst-text step-left input-label">
  497. <?php print __('Path');?>
  498. </td>
  499. </tr>
  500. <tr>
  501. <td class="step-left">
  502. <input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="<?php print !empty($v_ftp_pre_path) ? htmlentities(trim($v_ftp_pre_path, "'")) : '/'; ?>">
  503. <input type="hidden" class="vst-input v-ftp-path" name="v_ftp_user[<?php print $i ?>][v_ftp_path_prev]" value="<?php if (!empty($v_ftp_path)) echo ($v_ftp_path[0] != '/' ? '/' : '').htmlentities(trim($v_ftp_path, "'")) ?>">
  504. <input type="text" class="vst-input v-ftp-path" name="v_ftp_user[<?php print $i ?>][v_ftp_path]" value="<?php if (!empty($v_ftp_path)) echo ($v_ftp_path[0] != '/' ? '/' : '').htmlentities(trim($v_ftp_path, "'")); ?>">
  505. <br /><span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
  506. </td>
  507. </tr>
  508. <?php if ($ftp_user['is_new'] == 1): ?>
  509. <tr>
  510. <td class="vst-text step-left input-label">
  511. <?php print __('Send FTP credentials to email');?>
  512. </td>
  513. </tr>
  514. <tr>
  515. <td class="step-left">
  516. <input type="text" class="vst-input vst-email-alert-on-psw" name="v_ftp_user[<?php print $i ?>][v_ftp_email]" value="<?=htmlentities(trim($v_ftp_email, "'"))?>">
  517. </td>
  518. </tr>
  519. <?php endif; ?>
  520. </table>
  521. <?php endforeach; ?>
  522. </td>
  523. </tr>
  524. <tr class="add-new-ftp-user-button" style="<?php print !empty($v_ftp_user) ? '' : 'display:none;' ?>">
  525. <td class="vst-text step-top v-add-new-user step-bottom">
  526. <a class="additional-control" onClick="App.Actions.WEB.add_ftp_user_form()"><?php print __('Add one more FTP Account');?></a>
  527. </td>
  528. </tr>
  529. </table>
  530. <table class="data-col2">
  531. </table>
  532. </td>
  533. </tr>
  534. </table>
  535. </form>
  536. <div id="templates" class="hidden">
  537. <table class="ftptable ftptable-nrm" name="v_add_domain_ftp">
  538. <tr>
  539. <td class="vst-text input-label">
  540. <?php print __('FTP') ?> #<span class="ftp-user-number"></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?=__('delete')?>)</a>
  541. <input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0" />
  542. <input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1" />
  543. </td>
  544. </tr>
  545. <tr>
  546. <td class="vst-text step-left input-label">
  547. <?php print __('Username');?><br>
  548. <span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
  549. </td>
  550. </tr>
  551. <tr>
  552. <td class="step-left">
  553. <input type="text" size="20" class="vst-input v-ftp-user" name="v_ftp_user[%INDEX%][v_ftp_user]" value="">
  554. <small class="hint"></small>
  555. </td>
  556. </tr>
  557. <tr>
  558. <td class="vst-text step-left input-label">
  559. <?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
  560. </td>
  561. </tr>
  562. <tr>
  563. <td class="step-left">
  564. <input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[%INDEX%][v_ftp_password]" value="">
  565. </td>
  566. </tr>
  567. <tr>
  568. <td class="vst-text step-left input-label">
  569. <?php print __('Path');?>
  570. </td>
  571. </tr>
  572. <tr>
  573. <td class="step-left">
  574. <input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="">
  575. <input type="text" class="vst-input v-ftp-path" name="v_ftp_user[%INDEX%][v_ftp_path]" value="">
  576. <br /><span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path_new_user, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
  577. </td>
  578. </tr>
  579. <tr>
  580. <td class="vst-text step-left input-label">
  581. <?php print __('Send FTP credentials to email');?>
  582. </td>
  583. </tr>
  584. <tr>
  585. <td class="step-left">
  586. <input type="text" class="vst-input vst-email-alert-on-psw" name="v_ftp_user[%INDEX%][v_ftp_email]" value="">
  587. </td>
  588. </tr>
  589. </table>
  590. </div>
  591. </div>
  592. <script>
  593. GLOBAL.FTP_USER_PREFIX = <?=json_encode($user.'_')?>;
  594. </script>