Просмотр исходного кода

User Interface clean-up for v1.4.0

Kristan Kenney 5 лет назад
Родитель
Сommit
905330754d
57 измененных файлов с 1198 добавлено и 1097 удалено
  1. 1 1
      web/css/src/themes/dark.css
  2. 50 23
      web/css/src/themes/default.css
  3. 0 0
      web/css/themes/dark.min.css
  4. 0 0
      web/css/themes/default.min.css
  5. 4 4
      web/templates/admin/add_db.html
  6. 2 2
      web/templates/admin/add_dns.html
  7. 1 1
      web/templates/admin/add_ip.html
  8. 2 2
      web/templates/admin/add_mail.html
  9. 3 3
      web/templates/admin/add_mail_acc.html
  10. 10 10
      web/templates/admin/add_package.html
  11. 1 1
      web/templates/admin/add_user.html
  12. 3 0
      web/templates/admin/add_web.html
  13. 2 2
      web/templates/admin/edit_db.html
  14. 1 1
      web/templates/admin/edit_ip.html
  15. 13 13
      web/templates/admin/edit_mail.html
  16. 3 3
      web/templates/admin/edit_mail_acc.html
  17. 10 10
      web/templates/admin/edit_package.html
  18. 21 22
      web/templates/admin/edit_server.html
  19. 52 51
      web/templates/admin/edit_user.html
  20. 250 236
      web/templates/admin/edit_web.html
  21. 5 5
      web/templates/admin/list_backup.html
  22. 2 2
      web/templates/admin/list_backup_exclusions.html
  23. 7 7
      web/templates/admin/list_cron.html
  24. 7 7
      web/templates/admin/list_db.html
  25. 6 6
      web/templates/admin/list_dns.html
  26. 5 5
      web/templates/admin/list_dns_rec.html
  27. 4 4
      web/templates/admin/list_firewall.html
  28. 3 3
      web/templates/admin/list_firewall_banlist.html
  29. 3 3
      web/templates/admin/list_firewall_ipset.html
  30. 4 4
      web/templates/admin/list_ip.html
  31. 6 6
      web/templates/admin/list_mail.html
  32. 6 6
      web/templates/admin/list_mail_acc.html
  33. 1 1
      web/templates/admin/list_mail_dns.html
  34. 4 4
      web/templates/admin/list_packages.html
  35. 3 3
      web/templates/admin/list_search.html
  36. 1 1
      web/templates/admin/list_server_info.html
  37. 3 3
      web/templates/admin/list_services.html
  38. 3 3
      web/templates/admin/list_stats.html
  39. 3 3
      web/templates/admin/list_updates.html
  40. 6 6
      web/templates/admin/list_user.html
  41. 8 8
      web/templates/admin/list_web.html
  42. 1 1
      web/templates/admin/list_weblog.html
  43. 3 3
      web/templates/admin/panel.html
  44. 7 7
      web/templates/header.html
  45. 22 22
      web/templates/user/edit_user.html
  46. 302 250
      web/templates/user/edit_web.html
  47. 7 7
      web/templates/user/list_cron.html
  48. 7 7
      web/templates/user/list_db.html
  49. 6 6
      web/templates/user/list_dns.html
  50. 95 91
      web/templates/user/list_dns_rec.html
  51. 199 198
      web/templates/user/list_mail.html
  52. 6 6
      web/templates/user/list_mail_acc.html
  53. 3 3
      web/templates/user/list_search.html
  54. 2 2
      web/templates/user/list_stats.html
  55. 6 6
      web/templates/user/list_user.html
  56. 8 8
      web/templates/user/list_web.html
  57. 5 5
      web/templates/user/panel.html

+ 1 - 1
web/css/src/themes/dark.css

@@ -1097,7 +1097,7 @@ a.button.cancel {
 }
 
 .page-title {
-  color: #dbdbdb !important;
+  color: #e8e8e8 !important;
 }
 
 .qr-code {

+ 50 - 23
web/css/src/themes/default.css

@@ -10,6 +10,7 @@
   src: local('Exo Light'), local('Exo-Light'),
        url('../../webfonts/exo-v8-latin-ext_latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* exo-300italic - latin-ext_latin */
@@ -20,6 +21,7 @@
   src: local('Exo Light Italic'), local('Exo-LightItalic'),
        url('../../webfonts/exo-v8-latin-ext_latin-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-300italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* exo-regular - latin-ext_latin */
@@ -30,6 +32,7 @@
   src: local('Exo Regular'), local('Exo-Regular'),
        url('../../webfonts/exo-v8-latin-ext_latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* exo-italic - latin-ext_latin */
@@ -40,6 +43,7 @@
   src: local('Exo Italic'), local('Exo-Italic'),
        url('../../webfonts/exo-v8-latin-ext_latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* exo-500 - latin-ext_latin */
@@ -50,6 +54,7 @@
   src: local('Exo Medium'), local('Exo-Medium'),
        url('../../webfonts/exo-v8-latin-ext_latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* exo-500italic - latin-ext_latin */
@@ -60,6 +65,7 @@
   src: local('Exo Medium Italic'), local('Exo-MediumItalic'),
        url('../../webfonts/exo-v8-latin-ext_latin-500italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-500italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* exo-600 - latin-ext_latin */
@@ -70,6 +76,7 @@
   src: local('Exo SemiBold'), local('Exo-SemiBold'),
        url('../../webfonts/exo-v8-latin-ext_latin-600.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-600.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* exo-600italic - latin-ext_latin */
@@ -80,6 +87,7 @@
   src: local('Exo SemiBold Italic'), local('Exo-SemiBoldItalic'),
        url('../../webfonts/exo-v8-latin-ext_latin-600italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-600italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* exo-700 - latin-ext_latin */
@@ -90,6 +98,7 @@
   src: local('Exo Bold'), local('Exo-Bold'),
        url('../../webfonts/exo-v8-latin-ext_latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* exo-700italic - latin-ext_latin */
@@ -100,6 +109,7 @@
   src: local('Exo Bold Italic'), local('Exo-BoldItalic'),
        url('../../webfonts/exo-v8-latin-ext_latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../webfonts/exo-v8-latin-ext_latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+  font-display: swap;
 }
 
 /* ==========================================================================
@@ -115,6 +125,7 @@
       url('../../webfonts/Inconsolata-Bold.woff') format('woff');
   font-weight: bold;
   font-style: normal;
+  font-display: swap;
 }
 
 /* Inconsolata - latin */
@@ -125,6 +136,7 @@
       url('../../webfonts/Inconsolata-Regular.woff') format('woff');
   font-weight: normal;
   font-style: normal;
+  font-display: swap;
 }
 
 /* Base
@@ -453,7 +465,7 @@ input[type="radio"] {
   /* 2 */
   margin-left: 0px;
   margin-right: 8px;
-  margin-top: 6px;
+  margin-top: 2px;
 }
 
 /**
@@ -930,7 +942,6 @@ a {
   display: block;
   font-size: 0.8rem;
   font-weight: 400;
-  margin-top: 1rem;
   padding: 0.8rem;
   position: relative;
   text-align: left;
@@ -1143,7 +1154,7 @@ form#vstobjects .alert {
 }
 
 .l-stat__col li {
-  color: #a0a0a0;
+  color: #7b7b7b;
   margin-bottom: 8px;
   text-transform: lowercase;
 }
@@ -1488,7 +1499,7 @@ div.l-content > div.l-separator:nth-of-type(4) {
 }
 
 .l-unit-toolbar__buttonstrip .fas {
-  padding-right: 4px;
+  padding-right: 6px;
 }
 
 .subtitle {
@@ -1629,7 +1640,7 @@ div.l-content > div.l-separator:nth-of-type(4) {
   border-bottom: 1px solid #d0d0d0 !important;
   border-top: 1px solid #d0d0d0 !important;
   text-shadow: 0px 1px rgba(255,255,255,1);
-  box-shadow: inset 0px 1px 1px rgba(255,255,255,1), inset 0px 0px 1px rgba(255,255,255,1), inset 0px 0px 4px rgba(255,255,255,0.8), 0px 2px 6px rgba(140,140,140,0.35) !important;
+  box-shadow: inset 0 1px 1px rgba(255,255,255,1),inset 0 0 1px rgba(255,255,255,1),inset 0 0 4px rgba(255,255,255,.8),0 1px 4px rgba(140,140,140,.35)!important;
   border-top-left-radius: 0px;
   border-top-right-radius: 0px;
   border-bottom-left-radius: 6px;
@@ -1643,6 +1654,8 @@ div.l-content > div.l-separator:nth-of-type(4) {
   position: sticky;
   top: 145px;
   z-index: 100;
+  padding-top: 4px;
+  padding-bottom: 4px;
 }
 
 .table-header:hover {
@@ -1800,9 +1813,9 @@ div.l-content > div.l-separator:nth-of-type(4) {
 
 .l-unit__col {
   display: table-cell;
-  padding-top: 15px;
+  padding-top: 12px;
   vertical-align: top;
-  padding-bottom: 15px;
+  padding-bottom: 10px;
   cursor: default;
 }
 
@@ -2129,7 +2142,7 @@ body.mobile .l-unit-toolbar__col--right {
 }
 
 .actions-panel {
-  line-height: 1rem;
+  line-height: 1.1rem;
 }
 
 .actions-panel__col {
@@ -2169,8 +2182,11 @@ body.mobile .l-unit-toolbar__col--right {
   display: inline-block;
 }
 
+.icon-pad-left {
+  margin-right: 6px;
+}
 .icon-pad-right {
-  margin-right: 5px;
+  margin-right: 6px;
 }
 
 .l-icon-up-arrow, .l-icon-down-arrow, .l-icon-star, .l-icon-to-top, .l-icon-shortcuts, .l-icon-star-orange, .l-icon-star-blue {
@@ -2503,12 +2519,12 @@ body.mobile .l-icon-shortcuts {
 .data td {
   color: #4b4b4b;
   font-size: 0.85rem;
-  padding-bottom: 3px;
+  padding-bottom: 6px;
   font-weight: 600;
 }
 
 .input-label {
-  padding-top: 8px;
+  padding-top: 6px;
 }
 
 .data input[type="checkbox"] {
@@ -2516,6 +2532,9 @@ body.mobile .l-icon-shortcuts {
   cursor: pointer;
 }
 
+input[type=radio] {
+  margin-top: 10px;
+}
 .step-top {
   padding-top: 18px;
 }
@@ -2791,6 +2810,10 @@ a.vst-text:active b{
   text-transform: none;
 }
 
+.body-web .vst-advanced:focus {
+  background: none !inportant;
+}
+
 .login-box .vst-advanced:hover {
   color: #cc3366;
   background-color: transparent;
@@ -2929,7 +2952,7 @@ a.vst-text:active b{
 .hint,
 td.hint {
   color: #777;
-  font-size: 0.85rem;
+  font-size: 0.8rem;
   font-style: italic;
   font-weight: normal;
 }
@@ -3175,9 +3198,10 @@ a.button.cancel {
 }
 
 .additional-info td {
-    font-size: 0.8rem;
-    height: 22px;
+    font-size: 0.75rem;
+    height: 20px;
     font-weight: normal;
+    line-height: 0.95rem;
 }
 
 .additional-info td.details {
@@ -3217,9 +3241,9 @@ a.button.cancel {
 }
 
 .page-title {
-  font-size: 1.3rem !important;
-  font-weight: 400 !important;
-  padding-bottom: 30px !important;
+  font-size: 1.4rem!important;
+  font-weight: 500!important;
+  padding-bottom: 30px!important;
   letter-spacing: -0.01em;
   cursor: default;
 }
@@ -3840,10 +3864,10 @@ form#vstobjects.suspended {
 .helper-container {
   float: right;
   margin-bottom: -450px;
-  margin-top: 410px;
+  margin-top: 420px;
   margin-right: 22px;
-  padding-top: 3px;
-  width: 563px;
+  padding-top: 0px;
+  width: 600px;
   box-shadow: 0px 1px 4px rgba(0,0,0,0.15);
   border: 1px solid #cfcfcf;
   border-radius: 4px;
@@ -3967,8 +3991,9 @@ form#vstobjects.suspended {
 }
 
 .server-info-name {
-  margin-top: 5px;
-  margin-bottom: 30px;
+  margin-top: 8px;
+  margin-bottom: 24px;
+  font-weight: 400;
 }
 
 .server-info-output {
@@ -3991,7 +4016,9 @@ form#vstobjects.suspended {
 }
 
 .userlist-username {
-  font-size: 1.05em;
+  font-size: 1.0em;
+  margin-top: -2px;
+  line-height: 1.2rem;
 }
 
 .lang-es .userlist-email {

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/css/themes/dark.min.css


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/css/themes/default.min.css


+ 4 - 4
web/templates/admin/add_db.html

@@ -51,13 +51,13 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="step-top hint">
+                                <td class="hint">
                                     <?php print sprintf(_('Prefix %s will be automatically added to database name and database user'),'<b>'.$user.'_</b>'); ?>
                                 </td>
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text input-label">
+                                <td class="vst-text step-top input-label">
                                     <?php print _('Database');?>
                                 </td>
                             </tr>
@@ -83,7 +83,7 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label">
-                                    <?php print _('Password');?> / <a href="javascript:randomString();" class="generate"><?php print _('generate');?></a>
+                                    <?php print _('Password');?> <a href="javascript:randomString();" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                                 </td>
                             </tr>
                             <tr>
@@ -94,7 +94,7 @@
                             </tr>
                             <tr>
                                 <td class="vst-text">
-                                    <?php print _('Your password must have at least');?>
+                                    <?php print _('Your password must have at least');?>:
                                     <ul>
                                         <li><?php print _('8 characters long');?></li>
                                         <li><?php print _('1 uppercase & 1 lowercase character');?></li>

+ 2 - 2
web/templates/admin/add_dns.html

@@ -81,12 +81,12 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text input-label">
+                                <td class="vst-text input-label step-top">
                                     <a href="javascript:elementHideShow('advtable');" class="vst-advanced"><?php print _('Advanced options');?>&nbsp;<i class="fas fa-arrow-circle-right"></i></a>
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text">
+                                <td class="vst-text step-top">
                                   <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
                                         <tr>
                                             <td class="vst-text input-label">

+ 1 - 1
web/templates/admin/add_ip.html

@@ -95,7 +95,7 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="step-left">
+                                <td>
                                     <table style="display:<?php if (empty($v_dedicated)) { echo 'none';} else {echo 'block';}?> ;" id="usrtable">
                                         <tr>
                                             <td class="vst-text input-label">

+ 2 - 2
web/templates/admin/add_mail.html

@@ -84,7 +84,7 @@
                                 </tr>
                             <?php } ?>
                             <tr>
-                                <td class="vst-text input-label">
+                                <td class="vst-text input-label step-top">
                                     <label><input type="checkbox" size="20" class="vst-checkbox" name="v_antispam" <?php if ((empty($v_antispam)) || ($v_antispam == 'yes')) echo "checked=yes"; ?>><?php print _('AntiSpam Support');?></label>
                                 </td>
                             </tr>
@@ -99,7 +99,7 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text step-top">
+                                <td class="vst-text input-label">
                                     <label><input type="checkbox" size="20" class="vst-checkbox" name="v_smtp_relay" <?php if ($v_smtp_relay == 'true') echo "checked=yes"; ?> onclick="javascript:elementHideShow('smtp_relay_table');"><?php print _('SMTP Relay');?></label>
                                 </td>
                             </tr>

+ 3 - 3
web/templates/admin/add_mail_acc.html

@@ -67,7 +67,7 @@
                         </tr>
                         <tr>
                             <td class="vst-text input-label">
-                                <?php print _('Password');?> / <a href="javascript:randomString();" class="generate"><?php print _('generate');?></a>
+                                <?php print _('Password');?> <a href="javascript:randomString();" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                             </td>
                         </tr>
                         <tr>
@@ -78,7 +78,7 @@
                         </tr>
                         <tr>
                             <td class="vst-text">
-                                <?php print _('Your password must have at least');?>
+                                <?php print _('Your password must have at least');?>:
                                 <ul>
                                     <li><?php print _('8 characters long');?></li>
                                     <li><?php print _('1 uppercase & 1 lowercase character');?></li>
@@ -102,7 +102,7 @@
                                     <tr>
                                         <td>
                                             <input type="text" size="20" class="vst-input" name="v_quota" value="<?=htmlentities(trim($v_quota, "'"))?>">
-                                            <i class="unlim-trigger fas fa-infinity" id="unlim-quota" /</i>
+                                            <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-quota" /</i>
                                         </td>
                                     </tr>
                                 <tr>

+ 10 - 10
web/templates/admin/add_package.html

@@ -189,7 +189,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_web_domains" value="<?=htmlentities(trim($v_web_domains, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-web-domains"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-web-domains"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -200,7 +200,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_web_aliases" value="<?=htmlentities(trim($v_web_aliases, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-web-aliases"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-web-aliases"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -211,7 +211,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_dns_domains" value="<?=htmlentities(trim($v_dns_domains, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-dns-domain"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-dns-domain"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -222,7 +222,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_dns_records" value="<?=htmlentities(trim($v_dns_records, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-dns-records"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-dns-records"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -233,7 +233,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_mail_domains" value="<?=htmlentities(trim($v_mail_domains, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-mail-domains"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-mail-domains"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -244,7 +244,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_mail_accounts" value="<?=htmlentities(trim($v_mail_accounts, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-mail-accounts"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-mail-accounts"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -255,7 +255,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_databases" value="<?=htmlentities(trim($v_databases, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-databases"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-databases"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -266,7 +266,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_cron_jobs" value="<?=htmlentities(trim($v_cron_jobs, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-cron-jobs"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-cron-jobs"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -287,7 +287,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_disk_quota" value="<?=htmlentities(trim($v_disk_quota, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-disk-quota"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-disk-quota"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -298,7 +298,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_bandwidth" value="<?=htmlentities(trim($v_bandwidth, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-bandwidth"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-bandwidth"></i>
                                 </td>
                             </tr>
                             <?php if ((isset($_SESSION['DNS_SYSTEM'])) && (!empty($_SESSION['DNS_SYSTEM']))) {?>

+ 1 - 1
web/templates/admin/add_user.html

@@ -74,7 +74,7 @@
                             </tr>
                             <tr>
                                 <td class="vst-text">
-                                    <?php print _('Your password must have at least');?>
+                                    <?php print _('Your password must have at least');?>:
                                     <ul>
                                         <li><?php print _('8 characters long');?></li>
                                         <li><?php print _('1 uppercase & 1 lowercase character');?></li>

+ 3 - 0
web/templates/admin/add_web.html

@@ -87,6 +87,7 @@
                                 </select>
                             </td>
                         </tr>
+                        <tr><td class="input-label"></td></tr>
                         <?php if ((isset($_SESSION['DNS_SYSTEM'])) && (!empty($_SESSION['DNS_SYSTEM']))) {?>	
                             <?php if($panel[$user]['DNS_DOMAINS'] != "0") { ?><tr>
                                 <td class="vst-text input-label">
@@ -101,11 +102,13 @@
                                 </td>
                             </tr><?php } ?>
                         <?php } ?>
+                        <!--
                         <tr>
                             <td class="step-top vst-text" style="/*padding: 32px 0 20px 0;*/">
                                 <a href="javascript:elementHideShow('advtable');" class="vst-advanced"><?php print _('Advanced options');?>&nbsp;<i class="fas fa-arrow-circle-right"></i></a>
                             </td>
                         </tr>
+                        -->
                     </table>
                     <table class="data-col2" width="600px" style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
                         <tr>

+ 2 - 2
web/templates/admin/edit_db.html

@@ -81,7 +81,7 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label">
-                                    <?php print _('Password');?> / <a href="javascript:randomString();" class="generate"><?=_('generate')?></a>
+                                    <?php print _('Password');?> <a href="javascript:randomString();" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                                 </td>
                             </tr>
                             <tr>
@@ -92,7 +92,7 @@
                             </tr>
                             <tr>
                                 <td class="vst-text">
-                                    <?php print _('Your password must have at least');?>
+                                    <?php print _('Your password must have at least');?>:
                                     <ul>
                                         <li><?php print _('8 characters long');?></li>
                                         <li><?php print _('1 uppercase & 1 lowercase character');?></li>

+ 1 - 1
web/templates/admin/edit_ip.html

@@ -91,7 +91,7 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="step-left">
+                                <td>
                                     <table style="display:<?php if (empty($v_dedicated)) { echo 'none';} else {echo 'block';}?> ;" id="usrtable">
                                         <tr>
                                             <td class="vst-text input-label">

+ 13 - 13
web/templates/admin/edit_mail.html

@@ -97,7 +97,7 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text input-label">
+                                <td class="vst-text input-label step-top">
                                     <label><input type="checkbox" size="20" class="vst-checkbox" name="v_antispam" <?php if ($v_antispam == 'yes') echo "checked=yes"; ?>><?php print _('AntiSpam Support');?></label>
                                 </td>
                             </tr>
@@ -112,7 +112,7 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text step-top">
+                                <td class="vst-text input-label">
                                     <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>
                                 </td>
                             </tr>
@@ -140,7 +140,7 @@
                                         </tr>
                                         <tr>
                                             <td>
-                                                <textarea size="20" class="vst-textinput" <?php if ($v_letsencrypt == 'yes') echo 'disabled' ?> name="v_ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
+                                                <textarea size="20" class="vst-textinput short" <?php if ($v_letsencrypt == 'yes') echo 'disabled' ?> name="v_ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
                                             </td>
                                         </tr>
                                         <tr>
@@ -150,7 +150,7 @@
                                         </tr>
                                         <tr>
                                             <td>
-                                                <textarea size="20" class="vst-textinput" <?php if ($v_letsencrypt == 'yes') echo 'disabled' ?> name="v_ssl_key"><?=htmlentities(trim($v_ssl_key, "'"))?></textarea>
+                                                <textarea size="20" class="vst-textinput short" <?php if ($v_letsencrypt == 'yes') echo 'disabled' ?> name="v_ssl_key"><?=htmlentities(trim($v_ssl_key, "'"))?></textarea>
                                             </td>
                                         </tr>
                                         <tr>
@@ -160,7 +160,7 @@
                                         </tr>
                                         <tr>
                                             <td>
-                                                <textarea size="20" class="vst-textinput" <?php if ($v_letsencrypt == 'yes') echo 'disabled' ?> name="v_ssl_ca"><?=htmlentities(trim($v_ssl_ca, "'"))?></textarea>
+                                                <textarea size="20" class="vst-textinput short" <?php if ($v_letsencrypt == 'yes') echo 'disabled' ?> name="v_ssl_ca"><?=htmlentities(trim($v_ssl_ca, "'"))?></textarea>
                                             </td>
                                         </tr>
                                         <?
@@ -170,7 +170,7 @@
                                                     <table class="additional-info">
                                                         <tr>
                                                             <td>
-                                                                <?=_('SUBJECT')?>:
+                                                                <b><?=_('SUBJECT')?>:</b>
                                                             </td>
                                                             <td class="details">
                                                                 <?=$v_ssl_subject?>
@@ -179,7 +179,7 @@
                                                         <? if($v_ssl_aliases){?>
                                                             <tr>
                                                                 <td>
-                                                                    <?=_('ALIASES')?>:
+                                                                    <b><?=_('Aliases')?>:</b>
                                                                 </td>
                                                                 <td class="details">
                                                                     <?=$v_ssl_aliases?>
@@ -188,7 +188,7 @@
                                                         <? } ?>
                                                         <tr>
                                                             <td>
-                                                                <?=_('NOT_BEFORE')?>:
+                                                                <b><?=_('NOT_BEFORE')?>:</b>
                                                             </td>
                                                             <td class="details">
                                                                 <?=$v_ssl_not_before?>
@@ -196,7 +196,7 @@
                                                         </tr>
                                                         <tr>
                                                             <td>
-                                                                <?=_('NOT_AFTER')?>:
+                                                                <b><?=_('NOT_AFTER')?>:</b>
                                                             </td>
                                                             <td class="details">
                                                                 <?=$v_ssl_not_after?>
@@ -204,7 +204,7 @@
                                                         </tr>
                                                         <tr>
                                                             <td>
-                                                                <?=_('SIGNATURE')?>:
+                                                                <b><?=_('SIGNATURE')?>:</b>
                                                             </td>
                                                             <td class="details">
                                                                 <?=$v_ssl_signature?>
@@ -212,7 +212,7 @@
                                                         </tr>
                                                         <tr>
                                                             <td>
-                                                                <?=_('PUB_KEY')?>:
+                                                                <b><?=_('PUB_KEY')?>:</b>
                                                             </td>
                                                             <td class="details">
                                                                 <?=$v_ssl_pub_key?>
@@ -220,7 +220,7 @@
                                                         </tr>
                                                         <tr>
                                                             <td>
-                                                                <?=_('ISSUER')?>
+                                                                <b><?=_('ISSUER')?>:</b>
                                                             </td>
                                                             <td class="details">
                                                                 <?=$v_ssl_issuer?>
@@ -234,7 +234,7 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text step-top">
+                                <td class="vst-text">
                                     <label>
                                         <input type="checkbox" size="20" class="vst-checkbox" name="v_smtp_relay" <?php if ($v_smtp_relay == 'true') echo "checked=yes"; ?> onclick="javascript:elementHideShow('smtp_relay_table');"><?php print _('SMTP Relay');?>
                                     </label>

+ 3 - 3
web/templates/admin/edit_mail_acc.html

@@ -68,7 +68,7 @@
                         </tr>
                         <tr>
                             <td class="vst-text input-type input-label">
-                                <?php print _('Password');?> / <a href="javascript:randomString();" class="generate"><?=_('generate')?></a>
+                                <?php print _('Password');?> <a href="javascript:randomString();" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                             </td>
                         </tr>
                         <tr>
@@ -79,7 +79,7 @@
                         </tr>
                         <tr>
                             <td class="vst-text">
-                                <?php print _('Your password must have at least');?>
+                                <?php print _('Your password must have at least');?>:
                                 <ul>
                                     <li><?php print _('8 characters long');?></li>
                                     <li><?php print _('1 uppercase & 1 lowercase character');?></li>
@@ -95,7 +95,7 @@
                         <tr>
                           <td>
                                 <input type="text" size="20" class="vst-input" name="v_quota" value="<? if (!empty($v_quota)) {echo htmlentities(trim($v_quota, "'"));} else { echo "0"; } ?>">
-                                <i class="unlim-trigger fas fa-infinity" id="unlim-quota"></i>
+                                <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-quota"></i>
                             </td>
                         </tr>
                         <tr>

+ 10 - 10
web/templates/admin/edit_package.html

@@ -186,7 +186,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_web_domains" value="<?=htmlentities(trim($v_web_domains, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-web-domains"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-web-domains"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -197,7 +197,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_web_aliases" value="<?=htmlentities(trim($v_web_aliases, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-web-aliases"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-web-aliases"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -208,7 +208,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_dns_domains" value="<?=htmlentities(trim($v_dns_domains, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-dns-domain"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-dns-domain"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -219,7 +219,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_dns_records" value="<?=htmlentities(trim($v_dns_records, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-dns-records"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-dns-records"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -230,7 +230,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_mail_domains" value="<?=htmlentities(trim($v_mail_domains, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-mail-domains"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-mail-domains"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -241,7 +241,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_mail_accounts" value="<?=htmlentities(trim($v_mail_accounts, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-mail-accounts"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-mail-accounts"></i>
                                 <td>
                             </tr>
                             <tr>
@@ -252,7 +252,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_databases" value="<?=htmlentities(trim($v_databases, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-databases"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-databases"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -263,7 +263,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_cron_jobs" value="<?=htmlentities(trim($v_cron_jobs, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-cron-jobs"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-cron-jobs"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -284,7 +284,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_disk_quota" value="<?=htmlentities(trim($v_disk_quota, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-disk-quota"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-disk-quota"></i>
                                 </td>
                             </tr>
                             <tr>
@@ -295,7 +295,7 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_bandwidth" value="<?=htmlentities(trim($v_bandwidth, "'"))?>">
-                                    <i class="unlim-trigger fas fa-infinity" id="unlim-bandwidth"></i>
+                                    <i class="unlim-trigger fas fa-infinity" title="<?=_('Unlimited')?>" id="unlim-bandwidth"></i>
                                 </td>
                             </tr>
                         <?php if ((isset($_SESSION['DNS_SYSTEM'])) && (!empty($_SESSION['DNS_SYSTEM']))) {?>

+ 21 - 22
web/templates/admin/edit_server.html

@@ -63,7 +63,7 @@
                             <tr>
                                 <td class="vst-text input-label step-left">
                                      <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="basic">
-                                            <td class="vst-text">
+                                            <td class="vst-text step-top">
                                                 <?php print _('Hostname') ?>
                                             </td>
                                         </tr>
@@ -163,7 +163,7 @@
                             <td class="vst-text input-label step-left">
                                     <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="version">
                                         <tr>
-                                            <td class="vst-text">
+                                            <td class="vst-text step-top">
                                                 <?php print _('Version'); ?>
                                             </td>
                                         </tr>
@@ -216,7 +216,7 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label step-left">
-                                    <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="web">
+                                    <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="web" class="step-top">
                                         <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
                                         <tr>
                                             <td class="vst-text">
@@ -303,6 +303,7 @@
                                             <?php endforeach; ?>
                                         <?php endforeach; ?>
                                         <?php endif; ?>
+                                        <tr><td><br /></td></tr>
                                     </table>
                                 </td>
                             </tr>
@@ -317,7 +318,7 @@
                                 <td class="vst-text input-label step-left">
                                     <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="dns">
                                         <tr>
-                                            <td class="vst-text">
+                                            <td class="vst-text step-top">
                                                 <?php print _('DNS Server') ?> / <a class="generate" href="/edit/server/<? echo $_SESSION['DNS_SYSTEM'] ?>/"><?=_('configure')?></a>
                                             </td>
                                         </tr>
@@ -339,7 +340,7 @@
                                                     <option value='no'><?php print _('no'); ?></option>
                                                     <option value='yes' <?php if($v_dns_cluster == 'yes') echo 'selected' ?> ><?php print _('yes'); ?></option>
                                                 </select>
-                                                <br><br><br>
+                                                <br><br>
                                             </td>
                                         </tr>
                                         <?php if ($v_dns_cluster = 'yes') {
@@ -375,7 +376,7 @@
                                 <td class="vst-text input-label step-left">
                                     <table style="display:<?php if (empty($v_mail_adv)) echo 'none';?> ;" id="mail">
                                         <tr>
-                                            <td class="vst-text">
+                                            <td class="vst-text step-top">
                                                 <?php print _('Mail Server') ?> / <a class="generate" href="/edit/server/<? echo $_SESSION['MAIL_SYSTEM'] ?>/"><?=_('configure')?></a>
                                             </td>
                                         </tr>
@@ -422,13 +423,13 @@
                                                 <br><br>
                                             </td>
                                         </tr>
-					<tr>
-                                            <td class="vst-text step-top">
-						<label>
-						    <input type="checkbox" size="20" class="vst-checkbox" name="v_smtp_relay" <?php if ($v_smtp_relay == 'true') echo "checked=yes"; ?> onclick="javascript:elementHideShow('smtp_relay_table');"><?php print _('Global SMTP Relay');?>
-						</label>
-					    </td>
-					</tr>
+					                    <tr>
+                                                <td class="vst-text">
+                                                <label>
+                                                    <input type="checkbox" size="20" class="vst-checkbox" name="v_smtp_relay" <?php if ($v_smtp_relay == 'true') echo "checked=yes"; ?> onclick="javascript:elementHideShow('smtp_relay_table');"><?php print _('Global SMTP Relay');?>
+                                                </label>
+					                        </td>
+					                    </tr>
 					<tr>
 					    <td class="step-left">
 					        <table style="display:<?php if ($v_smtp_relay == 'true') {echo 'block';} else {echo 'none';} ?>;" id="smtp_relay_table">
@@ -497,7 +498,7 @@
                                 <td class="vst-text input-label step-left">
                                     <table style="display:<?php if (empty($v_db_adv)) echo 'none';?> ;" id="db">
                                         <tr>
-                                            <td class="vst-text input-label">
+                                            <td class="vst-text step-top">
                                                 <?php print _('MySQL Support');?> / <a class="generate" href="/edit/server/mysql/"><?=_('configure')?></a>
                                             </td>
                                         </tr>
@@ -585,12 +586,10 @@
                                         <tr>
                                             <td class="step-left">
                                                 <input type="text" size="20" class="vst-input" name="v_mysql_max" value="<?php echo $value['U_DB_BASES']; ?>" disabled>
-                                                <br><br><br><br>
+                                                <br><br>
                                             </td>
                                         </tr>
                                         <?php }} ?>
-
-
                                         <tr>
                                             <td class="vst-text input-label">
                                                 <?php print _('PostgreSQL Support');?> / <a class="generate" href="/edit/server/postgresql/"><?=_('configure')?></a>
@@ -671,7 +670,7 @@
                                 <td class="vst-text input-label step-left">
                                     <table style="<?php if (empty($v_backup_adv)) echo 'display:none';?> ;" id="backup">
                                         <tr>
-                                            <td class="vst-text">
+                                            <td class="vst-text step-top">
                                                 <?php print _('Local backup') ?>
                                             </td>
                                         </tr>
@@ -867,7 +866,7 @@
                                 <td class="vst-text input-label step-left">
                                     <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="ssl">
                                         <tr>
-                                            <td class="vst-text input-label">
+                                            <td class="vst-text step-top">
                                                 <?php print _('SSL Certificate');?>
                                                 <span id="generate-csr"> / <a class="generate" target="_blank" href="/generate/ssl/?domain=<?=$v_hostname?>"><?=_('Generate CSR')?></a></span>
                                             </td>
@@ -901,7 +900,7 @@
                                                     <? if($v_ssl_aliases){?>
                                                     <tr>
                                                         <td>
-                                                            <b><?=_('ALIASES')?>:</b>
+                                                            <b><?=_('Aliases')?>:</b>
                                                         </td>
                                                         <td class="details">
                                                             <?=$v_ssl_aliases?>
@@ -966,7 +965,7 @@
                                 <td class="vst-text input-label step-left">
                                     <table style="<?php if (empty($v_security_adv)) echo 'display:none;';?>" id="security">
                                         <tr>
-                                            <td class="vst-text input-label">
+                                            <td class="vst-text step-top">
                                                 <?php print _('Enable API access');?>
                                             </td>
                                         </tr>
@@ -1053,7 +1052,7 @@
                                 <td class="vst-text input-label step-left">
                                     <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="hestia">
                                         <tr>
-                                            <td class="vst-text input-label">
+                                            <td class="vst-text step-top">
                                                 <?php print _('Filemanager');?>
                                             </td>
                                         </tr>

+ 52 - 51
web/templates/admin/edit_user.html

@@ -69,7 +69,27 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label">
-                                    <?php print _('Password');?> / <a href="javascript:randomString();" class="generate"><?php print _('generate');?></a>
+                                    <?php print _('Contact');?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <input type="text" size="20" class="vst-input" name="v_name" value="<?=htmlentities(trim($v_name, "'"))?>">
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Email');?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <input type="text" size="20" class="vst-input" name="v_email" value="<?=htmlentities(trim($v_email, "'"))?>">
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Password');?> <a href="javascript:randomString();" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                                 </td>
                             </tr>
                             <tr>
@@ -80,7 +100,7 @@
                             </tr>
                             <tr>
                                 <td class="vst-text">
-                                    <?php print _('Your password must have at least');?>
+                                    <?php print _('Your password must have at least');?>:
                                     <ul>
                                         <li><?php print _('8 characters long');?></li>
                                         <li><?php print _('1 uppercase & 1 lowercase character');?></li>
@@ -100,35 +120,40 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label">
-                                    <?php print _('Role');?>
+                                    <?php print _('Language');?>
                                 </td>
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" name="v_role">
-                                        <option value="user"><?php print _('User');?>
-                                        <option value="admin" <?php if($v_role == "admin" ){ echo "selected"; } ?> ><?php print _('Administrator');?>
+                                    <select class="vst-list" name="v_language">
+                                        <?php
+                                            foreach ($languages as $key => $value) {
+                                                echo "\n\t\t\t\t\t\t\t\t\t<option value=\"".$key."\"";
+                                                $skey = "'".$key."'";
+                                                if (( $key == $v_language ) || ( $skey == $v_language)){
+                                                    echo 'selected' ;
+                                                }
+                                                if (( $key == detect_user_language() ) && (empty($v_language))){
+                                                    echo 'selected' ;
+                                                }
+                                                echo ">".htmlentities($value)."</option>\n";
+                                            }
+                                        ?>
                                     </select>
                                 </td>
                             </tr>
+
                             <tr>
                                 <td class="vst-text input-label">
-                                    <?php print _('Contact');?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <input type="text" size="20" class="vst-input" name="v_name" value="<?=htmlentities(trim($v_name, "'"))?>">
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Email');?>
+                                    <?php print _('Role');?>
                                 </td>
                             </tr>
                             <tr>
                                 <td>
-                                    <input type="text" size="20" class="vst-input" name="v_email" value="<?=htmlentities(trim($v_email, "'"))?>">
+                                    <select class="vst-list" name="v_role">
+                                        <option value="user"><?php print _('User');?>
+                                        <option value="admin" <?php if($v_role == "admin" ){ echo "selected"; } ?> ><?php print _('Administrator');?>
+                                    </select>
                                 </td>
                             </tr>
                             <tr>
@@ -152,30 +177,6 @@
                                     </select>
                                 </td>
                             </tr>
-                            <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Language');?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <select class="vst-list" name="v_language">
-                                        <?php
-                                            foreach ($languages as $key => $value) {
-                                                echo "\n\t\t\t\t\t\t\t\t\t<option value=\"".$key."\"";
-                                                $skey = "'".$key."'";
-                                                if (( $key == $v_language ) || ( $skey == $v_language)){
-                                                    echo 'selected' ;
-                                                }
-                                                if (( $key == detect_user_language() ) && (empty($v_language))){
-                                                    echo 'selected' ;
-                                                }
-                                                echo ">".htmlentities($value)."</option>\n";
-                                            }
-                                        ?>
-                                    </select>
-                                </td>
-                            </tr>
                             <tr>
                                 <td class="vst-text input-label">
                                     <?php print _('SSH Access');?>
@@ -231,20 +232,20 @@
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_ns1" value="<?=htmlentities(trim($v_ns1, "'"))?>">
-                                    <span class="remove-ns additional-control delete"><?=_('delete')?></span>
+                                    <span class="remove-ns additional-control delete vst-advanced button danger"><?=_('delete')?></span>
                                 </td>
                             </tr>
                             <tr>
                                 <td>
                                     <input type="text" size="20" class="vst-input" name="v_ns2" value="<?=htmlentities(trim($v_ns2, "'"))?>">
-                                    <span class="remove-ns additional-control delete"><?=_('delete')?></span>
+                                    <span class="remove-ns additional-control delete vst-advanced button danger"><?=_('delete')?></span>
                                 </td>
                             </tr>
                             <?  if($v_ns3)
                                   echo '<tr>
                                     <td>
                                         <input type="text" size="20" class="vst-input" name="v_ns3" value="'.htmlentities(trim($v_ns3, "'")).'">
-                                        <span class="remove-ns additional-control delete">'._('delete').'</span>
+                                        <span class="remove-ns additional-control delete vst-advanced button danger">'._('delete').'</span>
                                     </td>
                                 </tr>';
 
@@ -252,7 +253,7 @@
                                   echo '<tr>
                                     <td>
                                         <input type="text" size="20" class="vst-input" name="v_ns4" value="'.htmlentities(trim($v_ns4, "'")).'">
-                                        <span class="remove-ns additional-control delete">'._('delete').'</span>
+                                        <span class="remove-ns additional-control delete vst-advanced button danger">'._('delete').'</span>
                                     </td>
                                 </tr>';
 
@@ -260,7 +261,7 @@
                                   echo '<tr>
                                     <td>
                                         <input type="text" size="20" class="vst-input" name="v_ns5" value="'.htmlentities(trim($v_ns5, "'")).'">
-                                        <span class="remove-ns additional-control delete">'._('delete').'</span>
+                                        <span class="remove-ns additional-control delete vst-advanced button danger">'._('delete').'</span>
                                     </td>
                                 </tr>';
 
@@ -268,7 +269,7 @@
                                   echo '<tr>
                                     <td>
                                         <input type="text" size="20" class="vst-input" name="v_ns6" value="'.htmlentities(trim($v_ns6, "'")).'">
-                                        <span class="remove-ns additional-control delete">'._('delete').'</span>
+                                        <span class="remove-ns additional-control delete vst-advanced button danger">'._('delete').'</span>
                                     </td>
                                 </tr>';
 
@@ -276,7 +277,7 @@
                                   echo '<tr>
                                     <td>
                                         <input type="text" size="20" class="vst-input" name="v_ns7" value="'.htmlentities(trim($v_ns7, "'")).'">
-                                        <span class="remove-ns additional-control delete">'._('delete').'</span>
+                                        <span class="remove-ns additional-control delete vst-advanced button danger">'._('delete').'</span>
                                     </td>
                                 </tr>';
 
@@ -284,14 +285,14 @@
                                   echo '<tr>
                                     <td>
                                         <input type="text" size="20" class="vst-input" name="v_ns8" value="'.htmlentities(trim($v_ns8, "'")).'">
-                                        <span class="remove-ns additional-control delete">'._('delete').'</span>
+                                        <span class="remove-ns additional-control delete vst-advanced button danger">'._('delete').'</span>
                                     </td>
                                 </tr>';
                             ?>
 
                                 <tr class="add-ns" <? if($v_ns8) echo 'style="display:none;"'; ?> >
                                     <td class="step-top-small">
-                                      <span class="add-ns-button additional-control add"><?=_('Add one more Name Server')?></span>
+                                      <span class="add-ns-button vst-advanced button"><?=_('Add one more Name Server')?></span>
                                     </td>
                                 </tr>
                             <?php } ?>

+ 250 - 236
web/templates/admin/edit_web.html

@@ -5,7 +5,7 @@
         </div>
         <div class="l-unit-toolbar__buttonstrip float-right">
             <a href="/delete/web/cache/?domain=<?=$_GET['domain'];?>&token=<?=$_SESSION['token'];?>" class="ui-button cancel <?php if ( $v_nginx_cache == 'yes' || ($v_proxy_template == 'caching' && $_SESSION['PROXY_SYSTEM'] == 'nginx')) { echo "block"; } else{ echo "hidden"; }?>" id="v-clear-cache">
-                <i class="fas fa-trash status-icon red"></i><?=_('Purge Nginx Cache');?>
+                <i class="fas fa-trash status-icon red"></i><?=_('Purge Cache');?>
             </a>
 
             <a href="/add/webapp/?domain=<?=$v_domain?>" class="ui-button cancel" dir="ltr">
@@ -73,6 +73,24 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label">
+                                    <?php print _('Aliases');?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <textarea size="20" class="vst-textinput short" name="v_aliases"><?=htmlentities(trim($v_aliases, "'"))?></textarea>
+                                </td>
+                            </tr>
+			                <tr>
+                                <td>
+                                    <span class="alert alert-info alert-with-icon">
+                                                    <i class="fas fa-exclamation"></i>
+                                                    <?php print _('Changes to Aliases will cause Lets Encrypt to obtain a new SSL certificate if enabled.');?>
+                                                </span>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="vst-text input-label step-top">
                                     <?php print _('IP Address');?>
                                 </td>
                             </tr>
@@ -91,24 +109,6 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label">
-                                    <?php print _('Aliases');?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <textarea size="20" class="vst-textinput short" name="v_aliases"><?=htmlentities(trim($v_aliases, "'"))?></textarea>
-                                </td>
-                            </tr>
-			    <tr>
-                                <td>
-                                    <span class="alert alert-info alert-with-icon">
-                                                    <i class="fas fa-exclamation"></i>
-                                                    <?php print _('Changes to Aliases will cause Lets Encrypt to obtain a new SSL certificate if enabled.');?>
-                                                </span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="vst-text step-top">
                                     <?php print _('Web Statistics');?>
                                 </td>
                             </tr>
@@ -127,14 +127,19 @@
                                             }
                                     ?>
                                     </select>
+                                    <br>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="input-label">
                                 </td>
                             </tr>
                             <tr  class="stats-auth" style="<? if ($v_stats == 'none') { ?>display:none<? } ?>">
-                                <td class="vst-text input-label step-left">
+                                <td class="vst-text input-label">
                                     <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>
                                 </td>
                             </tr>
-                            <tr class="stats-auth">
+                            <tr class="stats-auth step-top">
                                 <td class="step-left">
                                     <table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user">
                                         <tr>
@@ -149,7 +154,7 @@
                                         </tr>
                                         <tr>
                                             <td class="vst-text input-label">
-                                                <?php print _('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print _('generate');?></a>
+                                                <?php print _('Password');?> <a href="javascript:WEBrandom();" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                                             </td>
                                         </tr>
                                         <tr>
@@ -161,162 +166,7 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Web Template')  . "<span class='optional'>" .strtoupper($_SESSION['WEB_SYSTEM']) . "</span>";?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <select class="vst-list" name="v_template">
-                                        <?php
-                                            foreach ($templates as $key => $value) {
-                                                echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
-                                                $svalue = "'".$value."'";
-                                                if ((!empty($v_template)) && ( $value == $v_template ) || ($svalue == $v_template)){
-                                                    echo ' selected' ;
-                                                }
-                                                echo ">".htmlentities($value)."</option>\n";
-                                            }
-                                        ?>
-                                    </select>
-                                </td>
-                            </tr>
-                            <?php if($_SESSION['WEB_SYSTEM'] == 'nginx'){?>
-                            <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Enable Fast CGI Cache'); ?> <a href="https://docs.hestiacp.com/admin_docs/nginx_caching.html" target="_blank"><i class="fas fa-question-circle"></i></a>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <select class="vst-list" name="v_nginx_cache">
-                                        <option value="no"><?php echo _('No');?></option>
-                                        <option value="yes" <?php if ( $v_nginx_cache == "yes") { echo 'selected'; }?>><?php echo _('Yes');?></option>
-                                    </select>
-                                </td>
-                            </tr>
-                             <?php } ?>                          
-                            <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
-                            <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Backend Template') . " <span class='optional'>" . strtoupper($_SESSION['WEB_BACKEND']) . "</span>";?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <select class="vst-list" name="v_backend_template">
-                                        <?php
-                                            foreach ($backend_templates as $key => $value) {
-                                                echo "\t\t\t\t<option value=\"".$value."\"";
-                                                $svalue = "'".$value."'";
-                                                if ((!empty($v_backend_template)) && ( $value == $v_backend_template ) || ($svalue == $v_backend_template)){
-                                                    echo ' selected' ;
-                                                }
-                                                if ((empty($v_backend_template)) && ($value == 'default')){
-                                                    echo ' selected' ;
-                                                }
-                                                echo ">".htmlentities($value)."</option>\n";
-                                            }
-                                        ?>
-                                    </select>
-                                </td>
-                            </tr>
-                            <?php }?>
-                            <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
-                            <tr>
-                                <td class="vst-text step-top">
-                                    <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>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="step-left">
-                                    <table style="display:<?php if (empty($v_proxy)) { echo 'none';} else {echo 'block';}?> ;" id="proxytable">
-                                        <tr>
-                                            <td class="vst-text input-label">
-                                                <?php print _('Proxy Template');?>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td>
-                                                <select class="vst-list" name="v_proxy_template">
-                                                    <?php
-                                                        foreach ($proxy_templates as $key => $value) {
-                                                            echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
-                                                            $svalue = "'".$value."'";
-                                                            if ((!empty($v_proxy_template)) && ( $value == $v_proxy_template ) || ($svalue == $v_proxy_template)){
-                                                                echo ' selected' ;
-                                                            }
-                                                            if ((empty($v_proxy_template)) && ($value == 'default')){
-                                                                echo ' selected' ;
-                                                            }
-                                                            echo ">".htmlentities($value)."</option>\n";
-                                                        }
-                                                    ?>
-                                                </select>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td class="vst-text input-label">
-                                                <?php print _('Proxy Extensions');?>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td>
-                                                <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>
-                                            </td>
-                                        </tr>
-                                    </table>
-                                </td>
-                            </tr>
-                            <?php } ?>
-                            <tr>
-                                <td class="vst-text step-top">
-                                    <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>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="step-left">
-                                    <table style="display:<?php if (empty($v_custom_doc_root)) { echo 'none';} else {echo 'block';}?> ;" id="v_custom_doc_root">
-                                        <tr>
-                                            <td class="vst-text input-label">
-                                                <?php print _('Point to');?>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td>
-                                                <input type="hidden" name="v-custom-doc-root_prepath" value="<?php echo $v_custom_doc_root_prepath;?>">
-                                                <select class="vst-list" name="v-custom-doc-domain">
-                                                <?php foreach ($user_domains as $domain): ?>
-                                                    <option value="<?php echo $domain;?>"
-                                                        <?=($v_custom_doc_domain === $domain || (empty($v_custom_doc_domain) && $domain === $v_domain))?' selected="selected" ':''; ?>>
-                                                        <?php echo $domain;?>
-                                                    </option>
-                                                <?php endforeach; ?>
-                                                </select>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td class="vst-text input-label">
-                                                <?php print( _('Directory'));?> <span class="optional">(<?php print _('optional');?>)</span>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td>
-                                                <input type="text" size="20" class="vst-input"
-                                                name="v-custom-doc-folder" value="<?=htmlentities(trim($v_custom_doc_folder, "'"))?>">
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td>
-                                                <small class="custom_docroot_hint"></small>
-                                            </td>
-                                        </tr>
-
-                                    </table>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="vst-text step-top">
+                                <td class="vst-text">
                                     <label><input type="checkbox" size="20" class="vst-checkbox" name="v-redirect-checkbox" <?php if (!empty($v_redirect)) echo "checked=yes" ?> onclick="javascript:elementHideShow('v_redirect');"><?php print _('Enable domain redirection');?></label>
                                 </td>
                             </tr>
@@ -324,15 +174,15 @@
                                 <td class="step-left">
                                     <table style="display:<?php if (empty($v_redirect)) { echo 'none';} else {echo 'block';}?> ;" id="v_redirect">
                                         <tr>
-                                            <td class="step-top">
-                                                <input type="radio" name="v-redirect" value="<?php echo 'www.'.$v_domain;?>" <?php if ($v_redirect == "www.".$v_domain) echo "checked"; ?> class="v-redirect-custom-value"/><?=sprintf(_('Redirect visitors to %s'),"www.".$v_domain);?><br />
-                                                <input type="radio" name="v-redirect" value="<?php echo $v_domain;?>" <?php if( $v_redirect == $v_domain) echo "checked";?> class="v-redirect-custom-value"/><?=sprintf(_('Redirect visitors to %s'),$v_domain);?><br />
-                                                <input type="radio" name="v-redirect" value="custom" <?php if( !empty($v_redirect_custom)) echo "checked";?> class="v-redirect-custom-value"/><?=_("Redirect visitors to a custom domain or web address");?>
+                                            <td>
+                                                <label><input type="radio" name="v-redirect" value="<?php echo 'www.'.$v_domain;?>" <?php if ($v_redirect == "www.".$v_domain) echo "checked"; ?> class="v-redirect-custom-value"><?=sprintf(_('Redirect visitors to %s'),"www.".$v_domain);?></input></label><br />
+                                                <label><input type="radio" name="v-redirect" value="<?php echo $v_domain;?>" <?php if( $v_redirect == $v_domain) echo "checked";?> class="v-redirect-custom-value"><?=sprintf(_('Redirect visitors to %s'),$v_domain);?></input></label><br />
+                                                <label><input type="radio" name="v-redirect" value="custom" <?php if( !empty($v_redirect_custom)) echo "checked";?> class="v-redirect-custom-value"><?=_("Redirect visitors to a custom domain or web address");?></input></label>
                                             </td>
                                         </tr>
                                         <tr>
                                             <td>
-                                                <table id="custom_redirect" style="display:<?php if (empty($v_redirect_custom)) { echo 'none';} else {echo 'block';}?> ;">
+                                                <table id="custom_redirect" style="margin-left: 22px; display:<?php if (empty($v_redirect_custom)) { echo 'none';} else {echo 'block';}?> ;">
                                                     <tr>
                                                         <td class="vst-text input-label">
                                                             <?=_('Target domain or URL');?>:
@@ -367,7 +217,7 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text step-top">
+                                <td class="vst-text">
                                     <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:App.Actions.WEB.toggle_ssl(this);"><?php print _('SSL Support');?></label>
                                 </td>
                             </tr>
@@ -450,7 +300,7 @@
                                                     <? if($v_ssl_aliases){?>
                                                     <tr>
                                                         <td>
-                                                            <b><?=_('ALIASES')?>:</b>
+                                                            <b><?=_('Aliases')?>:</b>
                                                         </td>
                                                         <td class="details">
                                                             <?=$v_ssl_aliases?>
@@ -505,90 +355,254 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text step-top">
-                                    <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>
+                                <td class="step-top vst-text " style="/*padding: 32px 0 20px 0;*/">
+                                    <a href="javascript:elementHideShow('advanced-options-table');" class="vst-advanced"><i class="fas fa-eye status-icon lightblue icon-pad-right"></i><?php print _('Advanced options');?></a>
                                 </td>
                             </tr>
                             <tr>
                                 <td>
-
-                                    <?php foreach ($v_ftp_users as $i => $ftp_user): ?>
-                                    <?php
-                                        $v_ftp_user     = $ftp_user['v_ftp_user'];
-                                        $v_ftp_password = $ftp_user['v_ftp_password'];
-                                        $v_ftp_path     = $ftp_user['v_ftp_path'];
-                                        $v_ftp_email    = $ftp_user['v_ftp_email'];
-                                        $v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
-                                    ?>
-                                    <table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" class="ftptable ftptable-nrm" name="v_add_domain_ftp">
+                                        <table id="advanced-options-table" style="display: none;" class="step-top">
+                                            
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Web Template')  . "<span class='optional'>" .strtoupper($_SESSION['WEB_SYSTEM']) . "</span>";?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <select class="vst-list" name="v_template">
+                                        <?php
+                                            foreach ($templates as $key => $value) {
+                                                echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
+                                                $svalue = "'".$value."'";
+                                                if ((!empty($v_template)) && ( $value == $v_template ) || ($svalue == $v_template)){
+                                                    echo ' selected' ;
+                                                }
+                                                echo ">".htmlentities($value)."</option>\n";
+                                            }
+                                        ?>
+                                    </select>
+                                </td>
+                            </tr>
+                            <?php if($_SESSION['WEB_SYSTEM'] == 'nginx'){?>
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Enable Fast CGI Cache'); ?> <a href="https://docs.hestiacp.com/admin_docs/nginx_caching.html" target="_blank"><i class="fas fa-question-circle"></i></a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <select class="vst-list" name="v_nginx_cache">
+                                        <option value="no"><?php echo _('No');?></option>
+                                        <option value="yes" <?php if ( $v_nginx_cache == "yes") { echo 'selected'; }?>><?php echo _('Yes');?></option>
+                                    </select>
+                                </td>
+                            </tr>
+                             <?php } ?>                          
+                            <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Backend Template') . " <span class='optional'>" . strtoupper($_SESSION['WEB_BACKEND']) . "</span>";?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <select class="vst-list" name="v_backend_template">
+                                        <?php
+                                            foreach ($backend_templates as $key => $value) {
+                                                echo "\t\t\t\t<option value=\"".$value."\"";
+                                                $svalue = "'".$value."'";
+                                                if ((!empty($v_backend_template)) && ( $value == $v_backend_template ) || ($svalue == $v_backend_template)){
+                                                    echo ' selected' ;
+                                                }
+                                                if ((empty($v_backend_template)) && ($value == 'default')){
+                                                    echo ' selected' ;
+                                                }
+                                                echo ">".htmlentities($value)."</option>\n";
+                                            }
+                                        ?>
+                                    </select>
+                                </td>
+                            </tr>
+                            <?php }?>
+                            <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
+                            <!-- <tr>
+                                <td class="vst-text step-top">
+                                    <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>
+                                </td>
+                            </tr>-->
+                            <tr>
+                                <td>
+                                    <table id="proxytable">
                                         <tr>
                                             <td class="vst-text input-label">
-                                                <?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>
-                                                <input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
-                                                <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']) ?>" />
+                                                <?php print _('Proxy Template');?> <span class='optional'><?php echo strtoupper($_SESSION['PROXY_SYSTEM']) ?></span>
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="vst-text step-left input-label">
-                                                <?php print _('Username');?><br>
-                                                <span style="font-size: 10pt; color:#777;"><?php print sprintf(_('Prefix %s will be added to username automatically'),$user."_");?></span>
+                                            <td>
+                                                <select class="vst-list" name="v_proxy_template">
+                                                    <?php
+                                                        foreach ($proxy_templates as $key => $value) {
+                                                            echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
+                                                            $svalue = "'".$value."'";
+                                                            if ((!empty($v_proxy_template)) && ( $value == $v_proxy_template ) || ($svalue == $v_proxy_template)){
+                                                                echo ' selected' ;
+                                                            }
+                                                            if ((empty($v_proxy_template)) && ($value == 'default')){
+                                                                echo ' selected' ;
+                                                            }
+                                                            echo ">".htmlentities($value)."</option>\n";
+                                                        }
+                                                    ?>
+                                                </select>
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="step-left">
-                                                <input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?>
-                                                name="v_ftp_user[<?php print $i ?>][v_ftp_user]" value="<?=htmlentities(trim($v_ftp_user, "'"))?>">
-                                                <small class="hint"></small>
+                                            <td class="vst-text input-label">
+                                                <?php print _('Proxy Extensions');?>
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="vst-text step-left  input-label">
-                                                <?php print _('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print _('generate');?></a>
+                                            <td>
+                                                <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>
                                             </td>
                                         </tr>
+                                    </table>
+                                </td>
+                            </tr>
+                            <?php } ?>
+                            <tr>
+                                <td class="vst-text">
+                                    <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>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="step-left">
+                                    <table style="display:<?php if (empty($v_custom_doc_root)) { echo 'none';} else {echo 'block';}?> ;" id="v_custom_doc_root">
                                         <tr>
-                                            <td class="step-left">
-                                                <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, "'"))?>">
+                                            <td class="vst-text input-label">
+                                                <?php print _('Point to');?>
                                             </td>
                                         </tr>
-
                                         <tr>
-                                            <td class="vst-text step-left input-label">
-                                                 <?php print _('Path');?>
+                                            <td>
+                                                <input type="hidden" name="v-custom-doc-root_prepath" value="<?php echo $v_custom_doc_root_prepath;?>">
+                                                <select class="vst-list" name="v-custom-doc-domain">
+                                                <?php foreach ($user_domains as $domain): ?>
+                                                    <option value="<?php echo $domain;?>"
+                                                        <?=($v_custom_doc_domain === $domain || (empty($v_custom_doc_domain) && $domain === $v_domain))?' selected="selected" ':''; ?>>
+                                                        <?php echo $domain;?>
+                                                    </option>
+                                                <?php endforeach; ?>
+                                                </select>
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="step-left">
-                                                <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, "'")) : '/'; ?>">
-                                                <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, "'")) ?>">
-                                                <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, "'")); ?>">
-                                                <br /><span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
+                                            <td class="vst-text input-label">
+                                                <?php print( _('Directory'));?> <span class="optional">(<?php print _('optional');?>)</span>
                                             </td>
                                         </tr>
-                                        <?php if ($ftp_user['is_new'] == 1): ?>
                                         <tr>
-                                            <td class="vst-text step-left input-label">
-                                                 <?php print _('Send FTP credentials to email');?>
+                                            <td>
+                                                <input type="text" size="20" class="vst-input"
+                                                name="v-custom-doc-folder" value="<?=htmlentities(trim($v_custom_doc_folder, "'"))?>">
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="step-left">
-                                                <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, "'"))?>">
+                                            <td>
+                                                <small class="custom_docroot_hint"></small>
                                             </td>
                                         </tr>
-                                        <?php endif; ?>
-                                </table>
-                                    <?php endforeach; ?>
-                                </td>
-                            </tr>
 
-                            <tr class="add-new-ftp-user-button" style="<?php print !empty($v_ftp_user) ? '' : 'display:none;' ?>">
-                                <td class="vst-text step-top v-add-new-user step-bottom">
-                                    <a class="additional-control" onClick="App.Actions.WEB.add_ftp_user_form()"><?php print _('Add one more FTP Account');?></a>
+                                    </table>
                                 </td>
                             </tr>
-                        </table>
-                        <table class="data-col2">
+                            
+                            <?php foreach ($v_ftp_users as $i => $ftp_user): ?>
+                            <?php
+                                $v_ftp_user     = $ftp_user['v_ftp_user'];
+                                $v_ftp_password = $ftp_user['v_ftp_password'];
+                                $v_ftp_path     = $ftp_user['v_ftp_path'];
+                                $v_ftp_email    = $ftp_user['v_ftp_email'];
+                                $v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
+                            ?>
+                                            <tr>
+                                                <td>
+                                                    <tr>
+                                                        <td class="vst-text">
+                                                            <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>
+                                                        </td>
+                                                    </tr>
+                                        <table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" class="ftptable ftptable-nrm" name="v_add_domain_ftp">
+                                            <tr>
+                                                <td class="vst-text input-label">
+                                                    <?php print _('FTP') ?> #<span class="ftp-user-number"><?php print $i + 1; ?></span> <a class="ftp-remove-user additional-control vst-advanced button danger" onCLick="App.Actions.WEB.remove_ftp_user(this)"><i class="fas fa-user-times icon-pad-right" title="<?=_('delete')?>"></i><?=_('delete')?></a>
+                                                    <input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
+                                                    <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']) ?>" />
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="vst-text step-left input-label">
+                                                    <?php print _('Username');?><br>
+                                                    <span style="font-size: 10pt; color:#777;"><?php print sprintf(_('Prefix %s will be added to username automatically'),$user."_");?></span>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="step-left">
+                                                    <input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?>
+                                                    name="v_ftp_user[<?php print $i ?>][v_ftp_user]" value="<?=htmlentities(trim($v_ftp_user, "'"))?>">
+                                                    <small class="hint"></small>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="vst-text step-left  input-label">
+                                                    <?php print _('Password');?> <a href="javascript:void(0);"" onClick="FTPrandom(this)"title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="step-left">
+                                                    <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, "'"))?>">
+                                                </td>
+                                            </tr>
+
+                                            <tr>
+                                                <td class="vst-text step-left input-label">
+                                                    <?php print _('Path');?>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="step-left">
+                                                    <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, "'")) : '/'; ?>">
+                                                    <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, "'")) ?>">
+                                                    <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, "'")); ?>">
+                                                    <br /><span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
+                                                </td>
+                                            </tr>
+                                            <?php if ($ftp_user['is_new'] == 1): ?>
+                                            <tr>
+                                                <td class="vst-text step-left input-label">
+                                                    <?php print _('Send FTP credentials to email');?>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="step-left">
+                                                    <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, "'"))?>">
+                                                </td>
+                                            </tr>
+                                            <?php endif; ?>
+                                        </table>                          
+                                    </td>
+                                </tr>
+                                <tr class="add-new-ftp-user-button" style="<?php print !empty($v_ftp_user) ? '' : 'display:none;' ?>">
+                                    <td class="vst-text step-top v-add-new-user step-bottom">
+                                        <a class="additional-control vst-advanced" onClick="App.Actions.WEB.add_ftp_user_form()"><i class="fas fa-plus-circle status-icon green icon-pad-right" title="<?php print _('Add one more FTP Account');?>"></i><?php print _('Add one more FTP Account');?></a>
+                                    </td>
+                                </tr>
+                                        <?php endforeach; ?>
+                                    </td>
+                                </tr>
+                            </table>
                         </table>
                     </td>
                 </tr>
@@ -599,7 +613,7 @@
             <table class="ftptable ftptable-nrm" name="v_add_domain_ftp">
                 <tr>
                     <td class="vst-text input-label">
-                        <?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>
+                        <?php print _('FTP') ?> #<span class="ftp-user-number"></span> <a class="ftp-remove-user additional-control vst-advanced button danger" onCLick="App.Actions.WEB.remove_ftp_user(this)"><i class="fas fa-user-times icon-pad-right" title="<?=_('delete')?>"></i><?=_('delete')?></a>
                         <input type="hidden"  class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0" />
                         <input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1" />
                     </td>
@@ -618,7 +632,7 @@
                 </tr>
                 <tr>
                     <td class="vst-text step-left  input-label">
-                        <?php print _('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print _('generate');?></a>
+                        <?php print _('Password');?> <a href="javascript:void(0);" onClick="FTPrandom(this)" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                     </td>
                 </tr>
                 <tr>

+ 5 - 5
web/templates/admin/list_backup.html

@@ -10,8 +10,8 @@
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -23,7 +23,7 @@
                     <option value="delete"><?php print _('delete') ?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -38,7 +38,7 @@
             <div class="l-unit__col l-unit__col--right">
               <div>
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('File Name');?></b></div>
                   <div class="clearfix l-unit__stat-col--left compact-4 text-right"><b>&nbsp;</b></div>
@@ -72,7 +72,7 @@
             <div class="l-unit__col l-unit__col--right">
               <div>
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                    <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="backup[]" value="<?php echo $key ?>">
+                    <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="backup[]" value="<?php echo $key ?>">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="/list/backup/?backup=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('restore')?>"><?=$key?></a></b></div>
                   <!-- START QUICK ACTION TOOLBAR AREA -->

+ 2 - 2
web/templates/admin/list_backup_exclusions.html

@@ -10,8 +10,8 @@
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
             </tr>

+ 7 - 7
web/templates/admin/list_cron.html

@@ -17,14 +17,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                 <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>"/>
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td class="">
@@ -40,7 +40,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -54,7 +54,7 @@
       <div class="header table-header">
         <div class="l-unit__col l-unit__col--right">
           <div class="clearfix l-unit__stat-col--left super-compact">
-            <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+            <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
           </div>
           <div class="clearfix l-unit__stat-col--left wide-5"><b><?php print _('Cron Job');?></b></div>
           <div class="clearfix l-unit__stat-col--left compact-2 text-right"><b>&nbsp;</b></div>
@@ -86,9 +86,9 @@ sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-nam
 sort-star="<? if($_SESSION['favourites']['CRON'][$key] == 1) echo '1'; else echo '0';  ?>">
       <div class="l-unit__col l-unit__col--right">
         <div class="clearfix l-unit__stat-col--left super-compact">
-          <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="job[]" value="<?php echo $key ?>">
+          <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="job[]" value="<?php echo $key ?>">
         </div>
-        <div class="clearfix l-unit__stat-col--left wide-5 truncate"><b><a href="/edit/cron/?job=<?=$data[$key]['JOB']?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Cron Job')?>"><?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?></a></b></div>
+        <div class="clearfix l-unit__stat-col--left wide-5 truncate"><b><a href="/edit/cron/?job=<?=$data[$key]['JOB']?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Cron Job')?>: <?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>"><?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?></a></b></div>
         <!-- START QUICK ACTION TOOLBAR AREA -->
         <div class="clearfix l-unit__stat-col--left compact-2 text-right">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">

+ 7 - 7
web/templates/admin/list_db.html

@@ -32,14 +32,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                 <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -54,7 +54,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -68,7 +68,7 @@
         <div class="header table-header">
             <div class="l-unit__col l-unit__col--right">
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Database');?></b></div>
                   <div class="clearfix l-unit__stat-col--left text-right compact-3"><b>&nbsp;</b></div>
@@ -111,9 +111,9 @@ sort-user="<?=$data[$key]['DBUSER']?>" sort-server="<?=$data[$key]['HOST']?>" so
             <div class="l-unit__col l-unit__col--right">
               <div>
                 <div class="clearfix l-unit__stat-col--left super-compact">
-                  <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="database[]" value="<?php echo $key ?>">
+                  <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="database[]" value="<?php echo $key ?>">
                 </div>
-                <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="/edit/db/?database=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Database')?>"><?=$key?></a></b></div>
+                <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="/edit/db/?database=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Database')?>: <?=$key?>"><?=$key?></a></b></div>
                 <!-- START QUICK ACTION TOOLBAR AREA -->
                 <div class="clearfix l-unit__stat-col--left text-right compact-3">
                       <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">

+ 6 - 6
web/templates/admin/list_dns.html

@@ -13,14 +13,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
 		            <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -35,7 +35,7 @@
                     <option value="delete"><?php print _('delete');?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -49,7 +49,7 @@
         <div class="header table-header">
             <div class="l-unit__col l-unit__col--right">
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Domain');?></b></div>
                   <div class="clearfix l-unit__stat-col--left text-right"><b>&nbsp;</b></div>
@@ -82,7 +82,7 @@ v_section="dns" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-date
 sort-expire="<?=strtotime($data[$key]['EXP'])?>" sort-records="<?=(int)$data[$key]['RECORDS']?>" sort-star="<?if($_SESSION['favourites']['DNS'][$key] == 1) echo '1'; else echo '0';?>">
             <div class="l-unit__col l-unit__col--right">
               <div class="clearfix l-unit__stat-col--left super-compact">
-                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?php echo $key ?>">
+                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="domain[]" value="<?php echo $key ?>">
               </div>
               <div class="clearfix l-unit__stat-col--left wide-3 truncate">
                 <b><a href="/list/dns/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('DNS records')?>: <?=$key?>"><?=$key?></a></b>

+ 5 - 5
web/templates/admin/list_dns_rec.html

@@ -11,8 +11,8 @@
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -27,7 +27,7 @@
                     <option value="delete"><?php print _('delete');?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -41,7 +41,7 @@
       <div class="header table-header">
         <div class="l-unit__col l-unit__col--right">
           <div class="clearfix l-unit__stat-col--left super-compact">
-            <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+            <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
           </div>
           <div class="clearfix l-unit__stat-col--left small"><b><?php print _('Record');?></b></div>
           <div class="clearfix l-unit__stat-col--left super-compact text-right"><b>&nbsp;</b></div>
@@ -62,7 +62,7 @@
 v_unit_id="<?=$key?>" v_section="dns_rec">
         <div class="l-unit__col l-unit__col--right">
             <div class="clearfix l-unit__stat-col--left super-compact">
-              <input id="check<?=$data[$key]['ID']?>" class="ch-toggle" type="checkbox" name="record[]" value="<?=$data[$key]['ID']?>">
+              <input id="check<?=$data[$key]['ID']?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="record[]" value="<?=$data[$key]['ID']?>">
             </div>
             <div class="clearfix l-unit__stat-col--left small truncate"><b><a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing DNS Record').': '.htmlspecialchars($data[$key]['RECORD'])?>"><? echo substr($data[$key]['RECORD'], 0, 12); if(strlen($data[$key]['RECORD']) > 12 ) echo '...'; ?></a></b></div>
             <!-- START QUICK ACTION TOOLBAR AREA -->

+ 4 - 4
web/templates/admin/list_firewall.html

@@ -18,7 +18,7 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                   <?=_('sort by');?>: <span><b><?=_('Action')?> <i class="fas fa-sort-amount-up"></i></b></span>
               </td>
               <td>
@@ -30,7 +30,7 @@
                     <option value="delete"><?php print _('delete') ?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -44,7 +44,7 @@
           <div class="header table-header">     
             <div class="l-unit__col l-unit__col--right">
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-2"><b><?php print _('Action');?></b></div>
                   <div class="clearfix l-unit__stat-col--left compact-2 text-right"><b>&nbsp;</b></div>
@@ -77,7 +77,7 @@ sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-comment="<?=$data[$k
         <div class="l-unit__col l-unit__col--right">
           <div>
               <div class="clearfix l-unit__stat-col--left super-compact">
-                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="rule[]" value="<?php echo $key ?>">
+                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="rule[]" value="<?php echo $key ?>">
               </div>
             <div class="clearfix l-unit__stat-col--left wide-2"><b><a href="/edit/firewall/?rule=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Firewall Rule')?>">
                 <? if($data[$key]['SUSPENDED'] == 'no'){ ?>

+ 3 - 3
web/templates/admin/list_firewall_banlist.html

@@ -16,7 +16,7 @@
                     <option value="delete"><?php print _('delete') ?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -30,7 +30,7 @@
           <div class="header table-header">
               <div class="l-unit__col l-unit__col--right">
                     <div class="clearfix l-unit__stat-col--left super-compact">
-                        <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                        <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                     </div>
                     <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('IP address');?></b></div>
                     <div class="clearfix l-unit__stat-col--left compact-4"><b>&nbsp;</b></div>  
@@ -50,7 +50,7 @@
       <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended';?> animated fadeIn">
         <div class="l-unit__col l-unit__col--right">
               <div class="clearfix l-unit__stat-col--left super-compact">
-                  <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="ipchain[]" value="<?php echo $ip . ':' . $value['CHAIN'] ?>">
+                  <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="ipchain[]" value="<?php echo $ip . ':' . $value['CHAIN'] ?>">
                 </div>
               <div class="clearfix l-unit__stat-col--left wide-3"><b><?=$ip?></b></div>
               <!-- START QUICK ACTION TOOLBAR AREA -->

+ 3 - 3
web/templates/admin/list_firewall_ipset.html

@@ -16,7 +16,7 @@
                     <option value="delete"><?php print _('delete') ?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -30,7 +30,7 @@
           <div class="header table-header">
               <div class="l-unit__col l-unit__col--right">
                     <div class="clearfix l-unit__stat-col--left super-compact">
-                        <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                        <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                     </div>
                     <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Ip List Name');?></b></div>
                     <div class="clearfix l-unit__stat-col--left compact-4"><b>&nbsp;</b></div>  
@@ -57,7 +57,7 @@
       <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended';?> animated fadeIn">
         <div class="l-unit__col l-unit__col--right">
               <div class="clearfix l-unit__stat-col--left super-compact">
-                  <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="setname[]" value="<?php echo $listname ?>">
+                  <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="setname[]" value="<?php echo $listname ?>">
                 </div>
               <div class="clearfix l-unit__stat-col--left wide-3"><b><?=$listname?></b></div>
               <!-- START QUICK ACTION TOOLBAR AREA -->

+ 4 - 4
web/templates/admin/list_ip.html

@@ -15,7 +15,7 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                   <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
                 </td>
               <td>
@@ -28,7 +28,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -43,7 +43,7 @@
         <div class="l-unit__col l-unit__col--right">
           <div>
             <div class="clearfix l-unit__stat-col--left super-compact">
-              <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+              <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
             </div>           
             <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('IP Address');?></b></div>
             <div class="clearfix l-unit__stat-col--left compact text-right"><b>&nbsp;</b></div>
@@ -68,7 +68,7 @@ sort-owner="<?=$data[$key]['OWNER']?>" sort-star="<? if($_SESSION['favourites'][
 
           <div class="l-unit__col l-unit__col--right">
               <div class="clearfix l-unit__stat-col--left super-compact">
-                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="ip[]" value="<?=$key?>">
+                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="ip[]" value="<?=$key?>">
               </div>
               <div class="clearfix l-unit__stat-col--left wide-3"><b><a href="/edit/ip/?ip=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing IP Address')?>"><?=$key?> <?php if (!empty($data[$key]['NAT'])) echo ' → ' . $data[$key]['NAT'] . ''; ?></a></b>
               </div>

+ 6 - 6
web/templates/admin/list_mail.html

@@ -12,14 +12,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                     <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -34,7 +34,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
 
             </tr>
@@ -49,7 +49,7 @@
       <div class="header table-header">
         <div class="l-unit__col l-unit__col--right">
             <div class="clearfix l-unit__stat-col--left super-compact">
-              <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+              <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
             </div>
             <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Domain');?></b></div>
             <div class="clearfix l-unit__stat-col--left text-right compact-5"><b>&nbsp;</b></div>
@@ -92,7 +92,7 @@ sort-accounts="<?=$data[$key]['ACCOUNTS']?>" sort-star="<? if($_SESSION['favouri
             <div class="l-unit__col l-unit__col--right">
               <div>
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                    <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?php echo $key ?>">
+                    <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="domain[]" value="<?php echo $key ?>">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('mail accounts')?>: <?=$key?>"><?=$key?></a></b></div>
                   <!-- START QUICK ACTION TOOLBAR AREA -->

+ 6 - 6
web/templates/admin/list_mail_acc.html

@@ -17,14 +17,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                   <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -38,7 +38,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -53,7 +53,7 @@
             <div class="l-unit__col l-unit__col--right">
               <div>
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Username');?></b></div>
                   <div class="clearfix l-unit__stat-col--left text-right compact-4"><b>&nbsp;</b></div>
@@ -88,7 +88,7 @@
 sort-star="<? if($_SESSION['favourites']['MAIL_ACC'][$key."@".$_GET['domain']] == 1) echo '1'; else echo '0'; ?>">
             <div class="l-unit__col l-unit__col--right">
               <div class="clearfix l-unit__stat-col--left super-compact">
-                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="account[]" value="<?php echo $key ?>">
+                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="account[]" value="<?php echo $key ?>">
                 <input type="hidden" value="<?php echo $_GET['domain'] ?>" name="domain" />
               </div>
               <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="/edit/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Mail Account')?>: <?=$key?>@<?=htmlspecialchars($_GET['domain'])?>"><?=$key."@".$_GET['domain']?></a></b></div>

+ 1 - 1
web/templates/admin/list_mail_dns.html

@@ -10,7 +10,7 @@ if (!empty($_SESSION['WEBMAIL_ALIAS'])) $v_webmail_alias = $_SESSION['WEBMAIL_AL
     <div class="l-sort-toolbar clearfix">
       <table>
         <tr>
-          <td class="sort-by">
+          <td class="sort-by" title="<?=_('Sort items');?>">
              
           </td>
           <td class="l-sort-toolbar__search-box">

+ 4 - 4
web/templates/admin/list_packages.html

@@ -11,7 +11,7 @@
       <div class="l-sort-toolbar clearfix">
         <table>
           <tr>
-            <td class="sort-by">
+            <td class="sort-by" title="<?=_('Sort items');?>">
                 <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
             </td>
             <td>
@@ -23,7 +23,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
             </td>
           </tr>
         </table>
@@ -37,7 +37,7 @@
       <div class="table-header"> 
           <div class="l-unit__col l-unit__col--right">
                 <div class="clearfix l-unit__stat-col--left super-compact">
-                  <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                  <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                 </div>
                 <div class="clearfix l-unit__stat-col--left wide-2"><b><?php print _('Package');?></b></div>
                 <div class="clearfix l-unit__stat-col--left compact-3 text-right"><b>&nbsp;</b></div>
@@ -66,7 +66,7 @@ v_unit_id="<?=$key?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key
 sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-star="<? if($_SESSION['favourites']['USER'][$key] == 1) echo '1'; else echo '0'; ?>">
       <div class="l-unit__col l-unit__col--right">
         <div class="clearfix l-unit__stat-col--left super-compact">
-          <input id="check<?=$i?>" class="ch-toggle" type="checkbox" name="user[]" value="<?=$key?>">
+          <input id="check<?=$i?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="user[]" value="<?=$key?>">
         </div>
             <div class="clearfix l-unit__stat-col--left wide-2 truncate"><b><a href="/edit/package/?package=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Package')?>: <?=$key?>"><?=$key?></b></a></div>
             <!-- START QUICK ACTION TOOLBAR AREA -->

+ 3 - 3
web/templates/admin/list_search.html

@@ -11,14 +11,14 @@
       <div class="l-sort-toolbar clearfix">
         <table>
           <tr>
-            <td class="sort-by">
+            <td class="sort-by" title="<?=_('Sort items');?>">
               <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
             </td>
             <td class="l-sort-toolbar__search-box">
               <form action="/search/" method="get">
                 <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
               </form>
             </td>
           </tr>

+ 1 - 1
web/templates/admin/list_server_info.html

@@ -22,7 +22,7 @@
   <script type="text/javascript" src="/js/events.js"></script>
 </head>
 <body>
-  <a href="#" class="to-top">
+  <a href="#" class="to-top" title="<?=_('Top')?>">
     <i class="fas fa-arrow-up"></i>
   </a>
   <div class="l-header">

+ 3 - 3
web/templates/admin/list_services.html

@@ -30,7 +30,7 @@
                       <option value="restart"><?php print _('restart');?></option>
                     </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -89,7 +89,7 @@
       <div class="table-header"> 
         <div class="l-unit__col l-unit__col--right">
         <div class="clearfix l-unit__stat-col--left super-compact">
-          <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+          <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
         </div>
                     
         <div class="clearfix l-unit__stat-col--left wide-2"><b><?php print _('Service');?></b></div>
@@ -122,7 +122,7 @@
         <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended';?> animated fadeIn">
           <div class="l-unit__col l-unit__col--right">
           <div class="clearfix l-unit__stat-col--left super-compact">
-            <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="service[]" value="<?php echo $key ?>">
+            <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="service[]" value="<?php echo $key ?>">
           </div>
           <div class="clearfix l-unit__stat-col--left wide-2">
             <? if($data[$key]['STATE'] == 'running'){ ?>

+ 3 - 3
web/templates/admin/list_stats.html

@@ -9,8 +9,8 @@
                 <td class="l-sort-toolbar__search-box">
                     <form action="/search/" method="get">
                       <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                      <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                      <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                      <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                      <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                     </form>
                   </td>
             </tr>
@@ -34,7 +34,7 @@
                           ?>
                     </select>
                   </div>
-                  <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                  <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
                 </form>
               </td>
             </tr>

+ 3 - 3
web/templates/admin/list_updates.html

@@ -21,7 +21,7 @@
                     <option value="update"><?php print _('update') ?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -38,7 +38,7 @@
               <div>
                   <div class="clearfix l-unit__stat-col--left super-compact center">
                     &nbsp;
-                    <!-- <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');"> -->
+                    <!-- <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');"> -->
                     </div>
                   <div class="clearfix l-unit__stat-col--left wide"><b><?php print _('Package');?></b></div>
                   <div class="clearfix l-unit__stat-col--left wide-5"><b><?php print _('Description');?></b></div>
@@ -70,7 +70,7 @@
             <div>
                 <div class="clearfix l-unit__stat-col--left super-compact center">
                   <i class="fas fa-box-open status-icon dim"></i>
-                  <!-- <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="pkg[]" value="<?php echo $key ?>"> -->
+                  <!-- <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="pkg[]" value="<?php echo $key ?>"> -->
                 </div>
               <div class="clearfix l-unit__stat-col--left wide"><b><?=$key?></b></div>
               <div class="clearfix l-unit__stat-col--left wide-5"><?=_($data[$key]['DESCR'])?></div>

+ 6 - 6
web/templates/admin/list_user.html

@@ -19,14 +19,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                   <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                   <form action="/search/" method="get">
                     <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                    <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                    <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                    <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                    <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                   </form>
                 </td>
               <td>
@@ -48,7 +48,7 @@
                       <option value="delete"><?=_('delete')?></option>
                     </select>
                   </div>
-                  <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                  <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -62,7 +62,7 @@
         <div class="table-header"> 
             <div class="l-unit__col l-unit__col--right">
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                    <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                    <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Name');?></b></div>
                   <div class="clearfix l-unit__stat-col--left compact-3"><b>&nbsp;</b></div>
@@ -99,7 +99,7 @@ v_unit_id="<?=$key?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key
 sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-star="<? if($_SESSION['favourites']['USER'][$key] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit__col l-unit__col--right">
           <div class="clearfix l-unit__stat-col--left super-compact">
-            <input id="check<?=$i?>" class="ch-toggle" type="checkbox" name="user[]" value="<?=$key?>">
+            <input id="check<?=$i?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="user[]" value="<?=$key?>">
           </div>
               <div class="clearfix l-unit__stat-col--left wide-3 userlist-username"><b><a href="/login/?loginas=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('login as')?> <?=$key?>"><?=$key?> <span style="font-weight: normal !important;">(<?php echo $data[$key]['NAME'];?>)</span></b></a>
                 <br />

+ 8 - 8
web/templates/admin/list_web.html

@@ -13,14 +13,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                 <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -35,7 +35,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -49,7 +49,7 @@
         <div class="header table-header">      
             <div class="l-unit__col l-unit__col--right">
                 <div class="clearfix l-unit__stat-col--left super-compact">
-                  <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                  <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                 </div>
                 <div class="clearfix l-unit__stat-col--left wide-4"><b><?php print _('Domain');?></b></div>
                 <div class="clearfix l-unit__stat-col--left compact-4 text-right"><b>&nbsp;</b></div>
@@ -129,7 +129,7 @@ sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
 sort-name="<?=$key?>"  sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-star="<? if($_SESSION['WEB'][$key] == 1) echo '1'; else echo '0';?>">
       <div class="l-unit__col l-unit__col--right">
           <div class="clearfix l-unit__stat-col--left super-compact">
-              <input id="check<?=$i?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?=$key?>">
+              <input id="check<?=$i?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="domain[]" value="<?=$key?>">
           </div>
           <div class="clearfix l-unit__stat-col--left wide-4 truncate"><b><a href="/edit/web/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Domain')?>: <?=$key?>"><?=$key?></a></b></div>
           <!-- START QUICK ACTION TOOLBAR AREA -->
@@ -137,9 +137,9 @@ sort-name="<?=$key?>"  sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-dis
             <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
               <div class="actions-panel clearfix">
                 <? if (!empty($data[$key]['STATS'])) { ?>
-                  <div class="actions-panel__col actions-panel__logs shortcut-w" key-action="href"><a href="http://<?=$key?>/vstats/"  target="_blank" title="<?=_('Statistics')?>"><i class="fas fa-chart-bar status-icon maroon status-icon dim"></i></a></div>
+                  <div class="actions-panel__col actions-panel__logs shortcut-w" key-action="href"><a href="http://<?=$key?>/vstats/"  target="_blank" rel="noopener" title="<?=_('Statistics')?>"><i class="fas fa-chart-bar status-icon maroon status-icon dim"></i></a></div>
                 <? } ?>
-                <div class="actions-panel__col actions-panel__view" key-action="href"><a href="http://<?=$key?>/" target="_blank"><i class="fas fa-external-link-square-alt status-icon lightblue status-icon dim"></i></a></div>
+                <div class="actions-panel__col actions-panel__view" key-action="href"><a href="http://<?=$key?>/" target="_blank" rel="noopener"><i class="fas fa-external-link-square-alt status-icon lightblue status-icon dim" title="<?=_('Visit Web Domain')?>"></i></a></div>
                 <div class="actions-panel__col actions-panel__edit shortcut-enter" key-action="href"><a href="/edit/web/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Domain')?>"><i class="fas fa-pencil-alt status-icon orange status-icon dim"></i></a></div>
                 <div class="actions-panel__col actions-panel__logs shortcut-l" key-action="href"><a href="/list/web-log/?domain=<?php echo $key ?>&type=access#" title="<?=_('AccessLog')?>"><i class="fas fa-binoculars status-icon purple status-icon dim"></i></a></div>
                 <div class="actions-panel__col actions-panel__suspend shortcut-s" key-action="js">

+ 1 - 1
web/templates/admin/list_weblog.html

@@ -22,7 +22,7 @@
   <script type="text/javascript" src="/js/events.js"></script>
 </head>
 <body>
-  <a href="#" class="to-top">
+  <a href="#" class="to-top" title="<?=_('Top')?>">
     <i class="fas fa-arrow-up"></i>
   </a>
   <div class="l-header">

+ 3 - 3
web/templates/admin/panel.html

@@ -8,7 +8,7 @@
 
 <div class="l-header">
 	<div class="l-center">
-		<a href="/list/user/" class="l-logo"></a>
+		<a href="/list/user/" class="l-logo" title="<?=_('Hestia Control Panel');?>"></a>
 		<div class="l-menu clearfix noselect">
 			<div class="l-menu__item <?php if($TAB == 'WEB' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'DNS' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'MAIL' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'DB' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'BACKUP' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'CRON' ) echo 'l-menu__item--active' ?><?php if($TAB == 'PACKAGE' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'USER' ) echo 'l-menu__item--active' ?>"><a href="/list/user/"><i class="fas fa-tasks panel-icon"></i><?=_('Records')?></a></div>
 			<?php if ((isset($_SESSION['FILE_MANAGER'])) && (!empty($_SESSION['FILE_MANAGER'])) && ($_SESSION['FILE_MANAGER'] == "true")) {?>
@@ -31,8 +31,8 @@
 			</div>
 			<div class="l-menu__item <?php if($TAB == 'SERVER' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'UPDATES' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'IP' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'RRD' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'FIREWALL' ) echo 'l-menu__item--active' ?>"><a href="/list/server/" class="l-profile__serversettings" title="<?=_('Server')?>"><i class="fas fa-cog"></i></a></div>
 			<div class="l-menu__item"><a href="/edit/user/?user=<?php echo $user; ?>" title="<?=htmlspecialchars($user)?> (<?=htmlspecialchars($panel[$user]['NAME'])?>)" class="l-profile__username"><i class="fas fa-user-edit"></i></a></div>
-			<div class="l-menu__item"><a href="https://github.com/hestiacp/hestiacp/issues/" target="_new" title="<?=_('Submit an issue report')?>" class="l-profile__help"><i class="fas fa-exclamation-triangle"></i></a></div>
-			<div class="l-menu__item"><a href="https://docs.hestiacp.com/" title="<?=_('Help')?>" class="l-profile__help" target="_blank"><i class="fas fa-question-circle"></i></a></div>
+			<div class="l-menu__item"><a href="https://github.com/hestiacp/hestiacp/issues/" target="_new" rel="noopener" title="<?=_('Submit an issue report')?>" class="l-profile__help"><i class="fas fa-exclamation-triangle"></i></a></div>
+			<div class="l-menu__item"><a href="https://docs.hestiacp.com/" title="<?=_('Help')?>" class="l-profile__help" rel="noopener" target="_blank"><i class="fas fa-question-circle"></i></a></div>
 			<div class="l-menu__item"><a href="/logout/" title="<?=_('Log out')?>" class="l-profile__logout"><i class="fas fa-sign-out-alt"></i></a></div>
 		</div>
 	</div>

+ 7 - 7
web/templates/header.html

@@ -1,20 +1,20 @@
 <!doctype html>
-<html>
+<html lang="<?php echo $_SESSION['LANGUAGE'];?>">
 <head>
   <meta charset="utf-8">
   <link rel="icon" href="/images/favicon.ico" type="image/x-icon">
   <title><?php echo $_SERVER['HTTP_HOST']; ?> - <?=_($TAB)?> - <?=_('Hestia Control Panel');?></title>
   <!-- Load base theme-->
-  <link type="text/css" rel="stylesheet" href="/css/themes/default.min.css?<?=JS_LATEST_UPDATE?>" />
+  <link type="text/css" rel="stylesheet" href="/css/themes/default.min.css?<?=JS_LATEST_UPDATE?>" rel="preload" />
   <? if ($_SESSION['THEME'] !== 'default') {?>
     <!-- Load provided theme -->
-    <link type="text/css" rel="stylesheet" href="/css/themes/<?php echo $_SESSION['THEME']; ?>.min.css?<?php echo rand(); ?>" />
+    <link type="text/css" rel="stylesheet" href="/css/themes/<?php echo $_SESSION['THEME']; ?>.min.css?<?php echo rand(); ?>" rel="preload" />
     <!-- Load custom theme -->
-    <link type="text/css" rel="stylesheet" href="/css/themes/custom/<?php echo $_SESSION['THEME']; ?>.css?<?php echo rand(); ?>" />
+    <link type="text/css" rel="stylesheet" href="/css/themes/custom/<?php echo $_SESSION['THEME']; ?>.css?<?php echo rand(); ?>" rel="preload" />
   <? } ?>
-  <link type="text/css" href="/css/dependencies/animate.min.css?<?=JS_LATEST_UPDATE?>" rel="stylesheet" />
-  <link type="text/css" href="/css/dependencies/jquery-custom-dialogs.css?<?=JS_LATEST_UPDATE?>" rel="stylesheet" />
-  <link type="text/css" href="/css/dependencies/fontawesome.min.css?<?=JS_LATEST_UPDATE?>" rel="stylesheet" />
+  <link type="text/css" href="/css/dependencies/animate.min.css?<?=JS_LATEST_UPDATE?>" rel="stylesheet" rel="preload" />
+  <link type="text/css" href="/css/dependencies/jquery-custom-dialogs.css?<?=JS_LATEST_UPDATE?>" rel="stylesheet" rel="preload" />
+  <link type="text/css" href="/css/dependencies/fontawesome.min.css?<?=JS_LATEST_UPDATE?>" rel="stylesheet" rel="preload" />
   <script type="text/javascript" src="/inc/jquery/jquery-3.5.1.min.js"></script> 
   <script>
     //

+ 22 - 22
web/templates/user/edit_user.html

@@ -69,7 +69,27 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label">
-                                    <?php print _('Password');?> / <a href="javascript:randomString();" class="generate"><?php print _('generate');?></a>
+                                    <?php print _('Contact');?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <input type="text" size="20" class="vst-input" name="v_name" value="<?=htmlentities(trim($v_name, "'"))?>">
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Email');?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <input type="text" size="20" class="vst-input" name="v_email" value="<?=htmlentities(trim($v_email, "'"))?>">
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Password');?> <a href="javascript:randomString();" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                                 </td>
                             </tr>
                             <tr>
@@ -80,7 +100,7 @@
                             </tr>
                             <tr>
                                 <td class="vst-text">
-                                    <?php print _('Your password must have at least');?>
+                                    <?php print _('Your password must have at least');?>:
                                     <ul>
                                         <li><?php print _('8 characters long');?></li>
                                         <li><?php print _('1 uppercase & 1 lowercase character');?></li>
@@ -98,26 +118,6 @@
                                     <?php } ?>
                                 </td>
                             </tr>
-                            <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Contact');?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <input type="text" size="20" class="vst-input" name="v_name" value="<?=htmlentities(trim($v_name, "'"))?>">
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Email');?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <input type="text" size="20" class="vst-input" name="v_email" value="<?=htmlentities(trim($v_email, "'"))?>">
-                                </td>
-                            </tr>
                             <tr>
                                 <td class="vst-text input-label">
                                     <?php print _('Language');?>

+ 302 - 250
web/templates/user/edit_web.html

@@ -1,31 +1,31 @@
 <div class="l-center edit">
-        <div class="l-sort clearfix">
-          <div class="l-unit-toolbar__buttonstrip">
+    <div class="l-sort clearfix">
+        <div class="l-unit-toolbar__buttonstrip">
             <a class="ui-button cancel" dir="ltr" id="btn-back" href="/list/web/"><i class="fas fa-arrow-left status-icon blue"></i><?=_('Back')?></a>
-          </div>
-          <div class="l-unit-toolbar__buttonstrip float-right">
-            <a href="/delete/web/cache/?domain=<?=$_GET['domain'];?>&token=<?=$_SESSION['token'];?>" class="ui-button cancel <?php if ( $v_nginx_cache == 'yes' || ($v_proxy_template == 'caching' && $_SESSION['PROXY'] == 'nginx')) { echo "block"; } else{ echo "hidden"; }?>" id="v-clear-cache">
-                <i class="fas fa-trash status-icon red"></i><?=_('Purge Nginx Cache');?>
+        </div>
+        <div class="l-unit-toolbar__buttonstrip float-right">
+            <a href="/delete/web/cache/?domain=<?=$_GET['domain'];?>&token=<?=$_SESSION['token'];?>" class="ui-button cancel <?php if ( $v_nginx_cache == 'yes' || ($v_proxy_template == 'caching' && $_SESSION['PROXY_SYSTEM'] == 'nginx')) { echo "block"; } else{ echo "hidden"; }?>" id="v-clear-cache">
+                <i class="fas fa-trash status-icon red"></i><?=_('Purge Cache');?>
             </a>
+
             <a href="/add/webapp/?domain=<?=$v_domain?>" class="ui-button cancel" dir="ltr">
                 <i class="fas fa-magic status-icon blue"></i> <?=_('Quick Install App')?>
             </a>
             <a href="#" class="ui-button" data-action="submit" data-id="vstobjects"><i class="fas fa-save status-icon purple"></i><?=_('Save')?></a>
-          </div>
         </div>
-      </div>
-
+    </div>
+    </div>
     <div class="l-separator"></div>
 
     <div class="l-center animated fadeIn">
-      <?php
-        $back = $_SESSION['back'];
-        if (empty($back)) {
-          $back = "location.href='/list/web/'";
-        } else {
-          $back = "location.href='".$back."'";
-        }
-      ?>
+        <?php
+            $back = $_SESSION['back'];
+            if (empty($back)) {
+                $back = "location.href='/list/web/'";
+            } else {
+                $back = "location.href='".$back."'";
+            }
+        ?>
         <form id="vstobjects" name="v_edit_web" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
             <input type="hidden" name="save" value="save" />
@@ -73,6 +73,24 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label">
+                                    <?php print _('Aliases');?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <textarea size="20" class="vst-textinput short" name="v_aliases"><?=htmlentities(trim($v_aliases, "'"))?></textarea>
+                                </td>
+                            </tr>
+			                <tr>
+                                <td>
+                                    <span class="alert alert-info alert-with-icon">
+                                                    <i class="fas fa-exclamation"></i>
+                                                    <?php print _('Changes to Aliases will cause Lets Encrypt to obtain a new SSL certificate if enabled.');?>
+                                                </span>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="vst-text input-label step-top">
                                     <?php print _('IP Address');?>
                                 </td>
                             </tr>
@@ -91,24 +109,6 @@
                             </tr>
                             <tr>
                                 <td class="vst-text input-label">
-                                    <?php print _('Aliases');?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <textarea size="20" class="vst-textinput short" name="v_aliases"><?=htmlentities(trim($v_aliases, "'"))?></textarea>
-                                </td>
-                            </tr>
-			    <tr>
-                                <td>
-                                    <span class="alert alert-info alert-with-icon">
-                                                    <i class="fas fa-exclamation"></i>
-                                                    <?php print _('Changes to Aliases will cause Lets Encrypt to obtain a new SSL certificate if enabled.');?>
-                                                </span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="vst-text step-top">
                                     <?php print _('Web Statistics');?>
                                 </td>
                             </tr>
@@ -127,14 +127,19 @@
                                             }
                                     ?>
                                     </select>
+                                    <br>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="input-label">
                                 </td>
                             </tr>
                             <tr  class="stats-auth" style="<? if ($v_stats == 'none') { ?>display:none<? } ?>">
-                                <td class="vst-text input-label step-left">
+                                <td class="vst-text input-label">
                                     <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>
                                 </td>
                             </tr>
-                            <tr class="stats-auth">
+                            <tr class="stats-auth step-top">
                                 <td class="step-left">
                                     <table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user">
                                         <tr>
@@ -149,7 +154,7 @@
                                         </tr>
                                         <tr>
                                             <td class="vst-text input-label">
-                                                <?php print _('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print _('generate');?></a>
+                                                <?php print _('Password');?> <a href="javascript:WEBrandom();" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                                             </td>
                                         </tr>
                                         <tr>
@@ -161,196 +166,79 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Web Template')  . "<span class='optional'>" .strtoupper($_SESSION['WEB_SYSTEM']) . "</span>";?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <select class="vst-list" name="v_template">
-                                        <?php
-                                            foreach ($templates as $key => $value) {
-                                                echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
-                                                $svalue = "'".$value."'";
-                                                if ((!empty($v_template)) && ( $value == $v_template ) || ($svalue == $v_template)){
-                                                    echo ' selected' ;
-                                                }
-                                                echo ">".htmlentities($value)."</option>\n";
-                                            }
-                                        ?>
-                                    </select>
-                                </td>
-                            </tr>
-                            <?php if($_SESSION['WEB_SYSTEM'] == 'nginx'){?>
-                            <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Enable Fast CGI Cache'); ?> <a href="https://docs.hestiacp.com/admin_docs/nginx_caching.html" target="_blank"><i class="fas fa-question-circle"></i></a>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <select class="vst-list" name="v_nginx_cache">
-                                        <option value="no"><?php echo _('No');?></option>
-                                        <option value="yes" <?php if ( $v_nginx_cache == "yes") { echo 'selected'; }?>><?php echo _('Yes');?></option>
-                                    </select>
-                                </td>
-                            </tr>
-                            <?php } ?>  
-                            <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
-                            <tr>
-                                <td class="vst-text input-label">
-                                    <?php print _('Backend Template') . " <span class='optional'>" . strtoupper($_SESSION['WEB_BACKEND']) . "</span>";?>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <select class="vst-list" name="v_backend_template">
-                                        <?php
-                                            foreach ($backend_templates as $key => $value) {
-                                                echo "\t\t\t\t<option value=\"".$value."\"";
-                                                $svalue = "'".$value."'";
-                                                if ((!empty($v_backend_template)) && ( $value == $v_backend_template ) || ($svalue == $v_backend_template)){
-                                                    echo ' selected' ;
-                                                }
-                                                if ((empty($v_backend_template)) && ($value == 'default')){
-                                                    echo ' selected' ;
-                                                }
-                                                echo ">".htmlentities($value)."</option>\n";
-                                            }
-                                        ?>
-                                    </select>
-                                </td>
-                            </tr>
-                            <?php }?>
-                            
-                            <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
-                            <tr>
-                                <td class="vst-text step-top">
-                                    <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>
+                                <td class="vst-text">
+                                    <label><input type="checkbox" size="20" class="vst-checkbox" name="v-redirect-checkbox" <?php if (!empty($v_redirect)) echo "checked=yes" ?> onclick="javascript:elementHideShow('v_redirect');"><?php print _('Enable domain redirection');?></label>
                                 </td>
                             </tr>
                             <tr>
                                 <td class="step-left">
-                                    <table style="display:<?php if (empty($v_proxy)) { echo 'none';} else {echo 'block';}?> ;" id="proxytable">
-                                        <tr>
-                                            <td class="vst-text input-label">
-                                                <?php print _('Proxy Template');?>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td>
-                                                <select class="vst-list" name="v_proxy_template">
-                                                    <?php
-                                                        foreach ($proxy_templates as $key => $value) {
-                                                            echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
-                                                            $svalue = "'".$value."'";
-                                                            if ((!empty($v_proxy_template)) && ( $value == $v_proxy_template ) || ($svalue == $v_proxy_template)){
-                                                                echo ' selected' ;
-                                                            }
-                                                            if ((empty($v_proxy_template)) && ($value == 'default')){
-                                                                echo ' selected' ;
-                                                            }
-                                                            echo ">".htmlentities($value)."</option>\n";
-                                                        }
-                                                    ?>
-                                                </select>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td class="vst-text input-label">
-                                                <?php print _('Proxy Extensions');?>
-                                            </td>
-                                        </tr>
+                                    <table style="display:<?php if (empty($v_redirect)) { echo 'none';} else {echo 'block';}?> ;" id="v_redirect">
                                         <tr>
                                             <td>
-                                                <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>
-                                            </td>
-                                        </tr>
-                                    </table>
-                                </td>
-                            </tr>
-                            <?php } ?>
-                            <tr>
-                                <td class="vst-text step-top">
-                                    <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>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="step-left">
-                                    <table style="display:<?php if (empty($v_custom_doc_root)) { echo 'none';} else {echo 'block';}?> ;" id="v_custom_doc_root">
-                                        <tr>
-                                            <td class="vst-text input-label">
-                                                <?php print _('Point to');?>
+                                                <label><input type="radio" name="v-redirect" value="<?php echo 'www.'.$v_domain;?>" <?php if ($v_redirect == "www.".$v_domain) echo "checked"; ?> class="v-redirect-custom-value"><?=sprintf(_('Redirect visitors to %s'),"www.".$v_domain);?></input></label><br />
+                                                <label><input type="radio" name="v-redirect" value="<?php echo $v_domain;?>" <?php if( $v_redirect == $v_domain) echo "checked";?> class="v-redirect-custom-value"><?=sprintf(_('Redirect visitors to %s'),$v_domain);?></input></label><br />
+                                                <label><input type="radio" name="v-redirect" value="custom" <?php if( !empty($v_redirect_custom)) echo "checked";?> class="v-redirect-custom-value"><?=_("Redirect visitors to a custom domain or web address");?></input></label>
                                             </td>
                                         </tr>
                                         <tr>
                                             <td>
-                                                <input type="hidden" name="v-custom-doc-root_prepath"" value="<?php echo $v_custom_doc_root_prepath;?>">
-                                                <select class="vst-list" name="v-custom-doc-domain">
-                                                    <option value="<?php echo $v_domain;?>"><?php echo $v_domain;?></option>
-                                                    <?php
-                                                    foreach ($user_domains  as $domain) {
-                                                        if($domain != $v_domain ){
-                                                        if($v_custom_doc_domain == $domain){
-                                                    ?>
-                                                            <option value="<?php echo $domain;?>" selected="selected"><?php echo $domain;?></option>
-                                                    <?php
-                                                        }else{
-                                                     ?>
-                                                            <option value="<?php echo $domain;?>"><?php echo $domain;?></option>
-                                                    <?php
-                                                        }
-                                                        }
-                                                    }
-                                                    ?>
-                                                </select>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td class="vst-text input-label">
-                                                <?php print( _('Directory'));?> <span class="optional">(<?php print _('optional');?>)</span>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td>
-                                                <input type="text" size="20" class="vst-input"
-                                                name="v-custom-doc-folder" value="<?=htmlentities(trim($v_custom_doc_folder, "'"))?>">
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td>
-                                                <small class="custom_docroot_hint"></small>
+                                                <table id="custom_redirect" style="margin-left: 22px; display:<?php if (empty($v_redirect_custom)) { echo 'none';} else {echo 'block';}?> ;">
+                                                    <tr>
+                                                        <td class="vst-text input-label">
+                                                            <?=_('Target domain or URL');?>:
+                                                        </td>
+                                                    </tr>
+                                                    <tr>
+                                                        <td class="vst-text input-label">
+                                                            <input type="text" name="v-redirect-custom" class="vst-input" value="<?=$v_redirect_custom;?>" />
+                                                        </td>
+                                                    </tr>
+                                                    <tr>
+                                                        <td class="vst-text input-label">
+                                                           <?=_('Status code');?>:
+                                                        </td>
+                                                    </tr>
+                                                    <tr>
+                                                        <td class="vst-text input-label">
+                                                            <select  class="vst-list" name="v-redirect-code">
+                                                                <?php foreach ($redirect_code_options as $status_code): ?>
+                                                                    <option value="<?php echo $status_code;?>"
+                                                                        <?=($v_redirect_code === $status_code || (empty($v_redirect_code) && $status_code === $v_redirect_code))?' selected="selected" ':''; ?>>
+                                                                        <?php echo $status_code;?>
+                                                                    </option>
+                                                                <?php endforeach; ?>
+                                                            </select>
+                                                        </td>
+                                                    </tr>
+                                                </table>   
                                             </td>
                                         </tr>
-
                                     </table>
                                 </td>
                             </tr>
-
                             <tr>
-                                <td class="vst-text step-top">
-                                    <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>
+                                <td class="vst-text">
+                                    <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:App.Actions.WEB.toggle_ssl(this);"><?php print _('SSL Support');?></label>
                                 </td>
                             </tr>
                             <tr>
                                 <td class="step-left">
                                     <table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable">
-                                      <tr>
+                                     <tr>
                                           <td class="input-label vst-text">
-                                              <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>
+                                              <label><input type="checkbox" size="20" class="vst-checkbox" name="v_letsencrypt" id="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>
                                           </td>
                                       </tr>
                                       <tr>
                                           <td class="input-label vst-text">
-                                              <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>
+                                              <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl_forcessl" id="v_ssl_forcessl" <?php if($v_ssl_forcessl == 'yes') echo "checked=yes" ?> onclick=""><?php print _('Force SSL/HTTPS');?></label>
                                           </td>
                                       </tr>
                                       <tr>
                                           <td class="input-label vst-text">
-                                              <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>
+                                              <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl_hsts" id="ssl_hsts" <?php if($v_ssl_hsts == 'yes') echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_hsts(this)"><?php print _('Enable SSL HSTS');?></label>
                                           </td>
                                       </tr>
-
                                       <tr style="display: none;">
                                             <td class="vst-text input-label">
                                                 <?php print _('Home Directory');?>
@@ -373,7 +261,7 @@
                                         </tr>
                                         <tr>
                                             <td>
-                                                <textarea size="20" class="vst-textinput short" name="v_ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
+                                                <textarea size="20" class="vst-textinput short" name="v_ssl_crt" id="ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
                                             </td>
                                         </tr>
                                         <tr>
@@ -412,7 +300,7 @@
                                                     <? if($v_ssl_aliases){?>
                                                     <tr>
                                                         <td>
-                                                            <b><?=_('ALIASES')?>:</b>
+                                                            <b><?=_('Aliases')?>:</b>
                                                         </td>
                                                         <td class="details">
                                                             <?=$v_ssl_aliases?>
@@ -467,90 +355,254 @@
                                 </td>
                             </tr>
                             <tr>
-                                <td class="vst-text step-top">
-                                    <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>
+                                <td class="step-top vst-text " style="/*padding: 32px 0 20px 0;*/">
+                                    <a href="javascript:elementHideShow('advanced-options-table');" class="vst-advanced"><i class="fas fa-eye status-icon lightblue icon-pad-right"></i><?php print _('Advanced options');?></a>
                                 </td>
                             </tr>
                             <tr>
                                 <td>
-
-                                    <?php foreach ($v_ftp_users as $i => $ftp_user): ?>
-                                    <?php
-                                        $v_ftp_user     = $ftp_user['v_ftp_user'];
-                                        $v_ftp_password = $ftp_user['v_ftp_password'];
-                                        $v_ftp_path     = $ftp_user['v_ftp_path'];
-                                        $v_ftp_email    = $ftp_user['v_ftp_email'];
-                                        $v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
-                                    ?>
-                                    <table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" class="ftptable ftptable-nrm" name="v_add_domain_ftp">
+                                        <table id="advanced-options-table" style="display: none;" class="step-top">
+                                            
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Web Template')  . "<span class='optional'>" .strtoupper($_SESSION['WEB_SYSTEM']) . "</span>";?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <select class="vst-list" name="v_template">
+                                        <?php
+                                            foreach ($templates as $key => $value) {
+                                                echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
+                                                $svalue = "'".$value."'";
+                                                if ((!empty($v_template)) && ( $value == $v_template ) || ($svalue == $v_template)){
+                                                    echo ' selected' ;
+                                                }
+                                                echo ">".htmlentities($value)."</option>\n";
+                                            }
+                                        ?>
+                                    </select>
+                                </td>
+                            </tr>
+                            <?php if($_SESSION['WEB_SYSTEM'] == 'nginx'){?>
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Enable Fast CGI Cache'); ?> <a href="https://docs.hestiacp.com/admin_docs/nginx_caching.html" target="_blank"><i class="fas fa-question-circle"></i></a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <select class="vst-list" name="v_nginx_cache">
+                                        <option value="no"><?php echo _('No');?></option>
+                                        <option value="yes" <?php if ( $v_nginx_cache == "yes") { echo 'selected'; }?>><?php echo _('Yes');?></option>
+                                    </select>
+                                </td>
+                            </tr>
+                             <?php } ?>                          
+                            <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
+                            <tr>
+                                <td class="vst-text input-label">
+                                    <?php print _('Backend Template') . " <span class='optional'>" . strtoupper($_SESSION['WEB_BACKEND']) . "</span>";?>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <select class="vst-list" name="v_backend_template">
+                                        <?php
+                                            foreach ($backend_templates as $key => $value) {
+                                                echo "\t\t\t\t<option value=\"".$value."\"";
+                                                $svalue = "'".$value."'";
+                                                if ((!empty($v_backend_template)) && ( $value == $v_backend_template ) || ($svalue == $v_backend_template)){
+                                                    echo ' selected' ;
+                                                }
+                                                if ((empty($v_backend_template)) && ($value == 'default')){
+                                                    echo ' selected' ;
+                                                }
+                                                echo ">".htmlentities($value)."</option>\n";
+                                            }
+                                        ?>
+                                    </select>
+                                </td>
+                            </tr>
+                            <?php }?>
+                            <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
+                            <!-- <tr>
+                                <td class="vst-text step-top">
+                                    <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>
+                                </td>
+                            </tr>-->
+                            <tr>
+                                <td>
+                                    <table id="proxytable">
                                         <tr>
                                             <td class="vst-text input-label">
-                                                <?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>
-                                                <input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
-                                                <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']) ?>" />
+                                                <?php print _('Proxy Template');?> <span class='optional'><?php echo strtoupper($_SESSION['PROXY_SYSTEM']) ?></span>
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="vst-text step-left input-label">
-                                                <?php print _('Username');?><br>
-                                                <span style="font-size: 10pt; color:#777;"><?php print sprintf(_('Prefix %s will be added to username automatically'),$user."_");?></span>
+                                            <td>
+                                                <select class="vst-list" name="v_proxy_template">
+                                                    <?php
+                                                        foreach ($proxy_templates as $key => $value) {
+                                                            echo "\t\t\t\t<option value=\"".htmlentities($value)."\"";
+                                                            $svalue = "'".$value."'";
+                                                            if ((!empty($v_proxy_template)) && ( $value == $v_proxy_template ) || ($svalue == $v_proxy_template)){
+                                                                echo ' selected' ;
+                                                            }
+                                                            if ((empty($v_proxy_template)) && ($value == 'default')){
+                                                                echo ' selected' ;
+                                                            }
+                                                            echo ">".htmlentities($value)."</option>\n";
+                                                        }
+                                                    ?>
+                                                </select>
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="step-left">
-                                                <input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?>
-                                                name="v_ftp_user[<?php print $i ?>][v_ftp_user]" value="<?=htmlentities(trim($v_ftp_user, "'"))?>">
-                                                <small class="hint"></small>
+                                            <td class="vst-text input-label">
+                                                <?php print _('Proxy Extensions');?>
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="vst-text step-left  input-label">
-                                                <?php print _('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print _('generate');?></a>
+                                            <td>
+                                                <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>
                                             </td>
                                         </tr>
+                                    </table>
+                                </td>
+                            </tr>
+                            <?php } ?>
+                            <tr>
+                                <td class="vst-text">
+                                    <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>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="step-left">
+                                    <table style="display:<?php if (empty($v_custom_doc_root)) { echo 'none';} else {echo 'block';}?> ;" id="v_custom_doc_root">
                                         <tr>
-                                            <td class="step-left">
-                                                <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, "'"))?>">
+                                            <td class="vst-text input-label">
+                                                <?php print _('Point to');?>
                                             </td>
                                         </tr>
-
                                         <tr>
-                                            <td class="vst-text step-left input-label">
-                                                 <?php print _('Path');?>
+                                            <td>
+                                                <input type="hidden" name="v-custom-doc-root_prepath" value="<?php echo $v_custom_doc_root_prepath;?>">
+                                                <select class="vst-list" name="v-custom-doc-domain">
+                                                <?php foreach ($user_domains as $domain): ?>
+                                                    <option value="<?php echo $domain;?>"
+                                                        <?=($v_custom_doc_domain === $domain || (empty($v_custom_doc_domain) && $domain === $v_domain))?' selected="selected" ':''; ?>>
+                                                        <?php echo $domain;?>
+                                                    </option>
+                                                <?php endforeach; ?>
+                                                </select>
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="step-left">
-                                                <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, "'")) : '/'; ?>">
-                                                <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, "'")) ?>">
-                                                <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, "'")); ?>">
-                                                <br /><span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
+                                            <td class="vst-text input-label">
+                                                <?php print( _('Directory'));?> <span class="optional">(<?php print _('optional');?>)</span>
                                             </td>
                                         </tr>
-                                        <?php if ($ftp_user['is_new'] == 1): ?>
                                         <tr>
-                                            <td class="vst-text step-left input-label">
-                                                 <?php print _('Send FTP credentials to email');?>
+                                            <td>
+                                                <input type="text" size="20" class="vst-input"
+                                                name="v-custom-doc-folder" value="<?=htmlentities(trim($v_custom_doc_folder, "'"))?>">
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="step-left">
-                                                <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, "'"))?>">
+                                            <td>
+                                                <small class="custom_docroot_hint"></small>
                                             </td>
                                         </tr>
-                                        <?php endif; ?>
-                                </table>
-                                    <?php endforeach; ?>
-                                </td>
-                            </tr>
 
-                            <tr class="add-new-ftp-user-button" style="<?php print !empty($v_ftp_user) ? '' : 'display:none;' ?>">
-                                <td class="vst-text step-top v-add-new-user step-bottom">
-                                    <a class="additional-control" onClick="App.Actions.WEB.add_ftp_user_form()"><?php print _('Add one more FTP Account');?></a>
+                                    </table>
                                 </td>
                             </tr>
-                        </table>
-                        <table class="data-col2">
+                            
+                            <?php foreach ($v_ftp_users as $i => $ftp_user): ?>
+                            <?php
+                                $v_ftp_user     = $ftp_user['v_ftp_user'];
+                                $v_ftp_password = $ftp_user['v_ftp_password'];
+                                $v_ftp_path     = $ftp_user['v_ftp_path'];
+                                $v_ftp_email    = $ftp_user['v_ftp_email'];
+                                $v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
+                            ?>
+                                            <tr>
+                                                <td>
+                                                    <tr>
+                                                        <td class="vst-text">
+                                                            <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>
+                                                        </td>
+                                                    </tr>
+                                        <table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" class="ftptable ftptable-nrm" name="v_add_domain_ftp">
+                                            <tr>
+                                                <td class="vst-text input-label">
+                                                    <?php print _('FTP') ?> #<span class="ftp-user-number"><?php print $i + 1; ?></span> <a class="ftp-remove-user additional-control vst-advanced button danger" onCLick="App.Actions.WEB.remove_ftp_user(this)"><i class="fas fa-user-times icon-pad-right" title="<?=_('delete')?>"></i><?=_('delete')?></a>
+                                                    <input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
+                                                    <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']) ?>" />
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="vst-text step-left input-label">
+                                                    <?php print _('Username');?><br>
+                                                    <span style="font-size: 10pt; color:#777;"><?php print sprintf(_('Prefix %s will be added to username automatically'),$user."_");?></span>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="step-left">
+                                                    <input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?>
+                                                    name="v_ftp_user[<?php print $i ?>][v_ftp_user]" value="<?=htmlentities(trim($v_ftp_user, "'"))?>">
+                                                    <small class="hint"></small>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="vst-text step-left  input-label">
+                                                    <?php print _('Password');?> <a href="javascript:void(0);"" onClick="FTPrandom(this)"title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="step-left">
+                                                    <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, "'"))?>">
+                                                </td>
+                                            </tr>
+
+                                            <tr>
+                                                <td class="vst-text step-left input-label">
+                                                    <?php print _('Path');?>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="step-left">
+                                                    <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, "'")) : '/'; ?>">
+                                                    <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, "'")) ?>">
+                                                    <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, "'")); ?>">
+                                                    <br /><span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
+                                                </td>
+                                            </tr>
+                                            <?php if ($ftp_user['is_new'] == 1): ?>
+                                            <tr>
+                                                <td class="vst-text step-left input-label">
+                                                    <?php print _('Send FTP credentials to email');?>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td class="step-left">
+                                                    <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, "'"))?>">
+                                                </td>
+                                            </tr>
+                                            <?php endif; ?>
+                                        </table>                          
+                                    </td>
+                                </tr>
+                                <tr class="add-new-ftp-user-button" style="<?php print !empty($v_ftp_user) ? '' : 'display:none;' ?>">
+                                    <td class="vst-text step-top v-add-new-user step-bottom">
+                                        <a class="additional-control vst-advanced" onClick="App.Actions.WEB.add_ftp_user_form()"><i class="fas fa-plus-circle status-icon green icon-pad-right" title="<?php print _('Add one more FTP Account');?>"></i><?php print _('Add one more FTP Account');?></a>
+                                    </td>
+                                </tr>
+                                        <?php endforeach; ?>
+                                    </td>
+                                </tr>
+                            </table>
                         </table>
                     </td>
                 </tr>
@@ -561,7 +613,7 @@
             <table class="ftptable ftptable-nrm" name="v_add_domain_ftp">
                 <tr>
                     <td class="vst-text input-label">
-                        <?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>
+                        <?php print _('FTP') ?> #<span class="ftp-user-number"></span> <a class="ftp-remove-user additional-control vst-advanced button danger" onCLick="App.Actions.WEB.remove_ftp_user(this)"><i class="fas fa-user-times icon-pad-right" title="<?=_('delete')?>"></i><?=_('delete')?></a>
                         <input type="hidden"  class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0" />
                         <input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1" />
                     </td>
@@ -580,7 +632,7 @@
                 </tr>
                 <tr>
                     <td class="vst-text step-left  input-label">
-                        <?php print _('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print _('generate');?></a>
+                        <?php print _('Password');?> <a href="javascript:void(0);" onClick="FTPrandom(this)" title="<?php print _('generate');?>"><i class="fas fa-sync status-icon green icon-large"></i></a>
                     </td>
                 </tr>
                 <tr>
@@ -615,5 +667,5 @@
         </div>
     </div>
     <script>
-        GLOBAL.FTP_USER_PREFIX = <?=json_encode($user.'_')?>;
+      GLOBAL.FTP_USER_PREFIX = <?=json_encode($user.'_')?>;
     </script>

+ 7 - 7
web/templates/user/list_cron.html

@@ -17,14 +17,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                 <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td class="">
@@ -40,7 +40,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -54,7 +54,7 @@
         <div class="header table-header">
             <div class="l-unit__col l-unit__col--right">
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-5"><b><?php print _('Cron Job');?></b></div>
                   <div class="clearfix l-unit__stat-col--left compact-2 text-right"><b>&nbsp;</b></div>
@@ -86,9 +86,9 @@ sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-nam
 sort-star="<? if($_SESSION['favourites']['CRON'][$key] == 1) echo '1'; else echo '0';  ?>">
       <div class="l-unit__col l-unit__col--right">
         <div class="clearfix l-unit__stat-col--left super-compact">
-          <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="job[]" value="<?php echo $key ?>">
+          <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="job[]" value="<?php echo $key ?>">
         </div>
-        <div class="clearfix l-unit__stat-col--left wide-5 truncate"><b><a href="/edit/cron/?job=<?=$data[$key]['JOB']?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Cron Job')?>"><?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?></a></b></div>
+        <div class="clearfix l-unit__stat-col--left wide-5 truncate"><b><a href="/edit/cron/?job=<?=$data[$key]['JOB']?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Cron Job')?>: <?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>"><?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?></a></b></div>
         <!-- START QUICK ACTION TOOLBAR AREA -->
         <div class="clearfix l-unit__stat-col--left compact-2 text-right">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">

+ 7 - 7
web/templates/user/list_db.html

@@ -32,14 +32,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                 <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -53,7 +53,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -67,7 +67,7 @@
         <div class="header table-header">
             <div class="l-unit__col l-unit__col--right">
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Database');?></b></div>
                   <div class="clearfix l-unit__stat-col--left text-right compact-2"><b>&nbsp;</b></div>
@@ -110,9 +110,9 @@ sort-user="<?=$data[$key]['DBUSER']?>" sort-server="<?=$data[$key]['HOST']?>" so
             <div class="l-unit__col l-unit__col--right">
               <div>
                 <div class="clearfix l-unit__stat-col--left super-compact">
-                  <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="database[]" value="<?php echo $key ?>">
+                  <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="database[]" value="<?php echo $key ?>">
                 </div>
-                <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="/edit/db/?database=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Database')?>"><?=$key?></a></b></div>
+                <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="/edit/db/?database=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Database')?>: <?=$key?>"><?=$key?></a></b></div>
                 <!-- START QUICK ACTION TOOLBAR AREA -->
                 <div class="clearfix l-unit__stat-col--left text-right compact-2">
                       <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">

+ 6 - 6
web/templates/user/list_dns.html

@@ -13,14 +13,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
 		            <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -34,7 +34,7 @@
                     <option value="delete"><?php print _('delete');?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -48,7 +48,7 @@
         <div class="header table-header">
             <div class="l-unit__col l-unit__col--right">
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Domain');?></b></div>
                   <div class="clearfix l-unit__stat-col--left text-right"><b>&nbsp;</b></div>
@@ -81,7 +81,7 @@ v_section="dns" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-date
 sort-expire="<?=strtotime($data[$key]['EXP'])?>" sort-records="<?=(int)$data[$key]['RECORDS']?>" sort-star="<?if($_SESSION['favourites']['DNS'][$key] == 1) echo '1'; else echo '0';?>">
             <div class="l-unit__col l-unit__col--right">
               <div class="clearfix l-unit__stat-col--left super-compact">
-                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?php echo $key ?>">
+                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="domain[]" value="<?php echo $key ?>">
               </div>
               <div class="clearfix l-unit__stat-col--left wide-3 truncate">
                 <b><a href="/list/dns/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('DNS records')?>: <?=$key?>"><?=$key?></a></b>

+ 95 - 91
web/templates/user/list_dns_rec.html

@@ -1,107 +1,111 @@
-    <div class="l-center">
-      <div class="l-sort clearfix noselect">
-        <div class="l-unit-toolbar__buttonstrip">
-          <a class="ui-button cancel" dir="ltr" id="btn-back" href="/list/dns/"><i class="fas fa-arrow-left status-icon blue"></i><?=_('Back')?></a>
-          <a href="/add/dns/?domain=<?=htmlentities($_GET['domain'])?>" id="btn-create" class="ui-button cancel" dir="ltr"><i class="fas fa-plus-circle status-icon green"></i><?=_('Add Record')?></a>
-          <a href="/edit/dns/?domain=<?=htmlentities($_GET['domain'])?>" id="btn-create" class="ui-button cancel" dir="ltr"><i class="fas fa-pencil-alt status-icon blue"></i><?=_('Editing DNS Domain')?></a>
-        </div>
-        <div class="l-sort-toolbar clearfix">
-          <table>
-            <tr>
-              <td class="l-sort-toolbar__search-box">
-                <form action="/search/" method="get">
-                  <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
-                </form>
-              </td>
-              <td>
-                <form action="/bulk/dns/" method="post" id="objects">
-                <input type="hidden" name="domain" value="<?=htmlentities($_GET['domain'])?>" />
-                <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                <div class="l-select">
-                  <select name="action" id="">
-                    <option value=""><?=_('apply to selected')?></option>
-                    <option value="suspend"><?php print _('suspend');?></option>
-                    <option value="unsuspend"><?php print _('unsuspend');?></option>
-                    <option value="delete"><?php print _('delete');?></option>
-                  </select>
-                </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
-              </td>
-            </tr>
-          </table>
-        </div>
-      </div>
+<div class="l-center">
+  <div class="l-sort clearfix noselect">
+    <div class="l-unit-toolbar__buttonstrip">
+      <a class="ui-button cancel" dir="ltr" id="btn-back" href="/list/dns/"><i class="fas fa-arrow-left status-icon blue"></i><?=_('Back')?></a>
+      <a href="/add/dns/?domain=<?=htmlentities($_GET['domain'])?>" id="btn-create" class="ui-button cancel" dir="ltr"><i class="fas fa-plus-circle status-icon green"></i> <?=_('Add Record')?></a>
+      <a href="/edit/dns/?domain=<?=htmlentities($_GET['domain'])?>" id="btn-create" class="ui-button cancel" dir="ltr"><i class="fas fa-pencil-alt status-icon blue"></i> <?=_('Editing DNS Domain')?></a>
     </div>
+    <div class="l-sort-toolbar clearfix">
+      <table>
+        <tr>
+          <td class="l-sort-toolbar__search-box">
+            <form action="/search/" method="get">
+              <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+              <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+              <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
+            </form>
+          </td>
+          <td>
+            <form action="/bulk/dns/" method="post" id="objects">
+            <input type="hidden" name="domain" value="<?=htmlentities($_GET['domain'])?>" />
+            <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <div class="l-select">
+              <select name="action" id="">
+                <option value=""><?=_('apply to selected')?></option>
+                <option value="suspend"><?php print _('suspend');?></option>
+                <option value="unsuspend"><?php print _('unsuspend');?></option>
+                <option value="delete"><?php print _('delete');?></option>
+              </select>
+            </div>
+            <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </div>
+</div>
 
-    <div class="l-separator"></div>
+<div class="l-separator"></div>
 
-    <div class="l-center units">
-      <div class="header table-header">
-        <div class="l-unit__col l-unit__col--right">
-          <div class="clearfix l-unit__stat-col--left super-compact">
-            <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
-          </div>
-          <div class="clearfix l-unit__stat-col--left small"><b><?php print _('Record');?></b></div>
-          <div class="clearfix l-unit__stat-col--left compact text-right"><b>&nbsp;</b></div>
-          <div class="clearfix l-unit__stat-col--left compact text-center"><b><?php print _('Type');?></b></div>
-          <div class="clearfix l-unit__stat-col--left compact"><b><?php print _('Priority');?></b></div>
-          <div class="clearfix l-unit__stat-col--left wide-7"><b><?php print _('IP or Value');?></b></div>
-        </div>
+<div class="l-center units">
+  <div class="header table-header">
+    <div class="l-unit__col l-unit__col--right">
+      <div class="clearfix l-unit__stat-col--left super-compact">
+        <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
+      </div>
+      <div class="clearfix l-unit__stat-col--left small"><b><?php print _('Record');?></b></div>
+      <div class="clearfix l-unit__stat-col--left super-compact text-right"><b>&nbsp;</b></div>
+      <div class="clearfix l-unit__stat-col--left compact text-center" style="padding-left: 32px;"><b><?php print _('Type');?></b></div>
+      <div class="clearfix l-unit__stat-col--left compact text-center"><b><?php print _('Priority');?></b></div>
+      <div class="clearfix l-unit__stat-col--left compact text-center"><b><?php print _('TTL');?></b></div>
+      <div class="clearfix l-unit__stat-col--left super-compact"><b>&nbsp;</b></div>
+      <div class="clearfix l-unit__stat-col--left wide-6"><b><?php print _('IP or Value');?></b></div>
     </div>
+</div>
 
-      <?php
-        foreach ($data as $key => $value) {
-          ++$i;
-        ?>
+  <?php
+    foreach ($data as $key => $value) {
+      ++$i;
+  ?>
 
-      <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended'; if($_SESSION['favourites']['DNS_REC'][$key] == 1) echo ' l-unit--starred';?> animated fadeIn"
+  <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended'; if($_SESSION['favourites']['DNS_REC'][$key] == 1) echo ' l-unit--starred';?> animated fadeIn"
 v_unit_id="<?=$key?>" v_section="dns_rec">
-        <div class="l-unit__col l-unit__col--right">
-            <div class="clearfix l-unit__stat-col--left super-compact">
-              <input id="check<?=$data[$key]['ID']?>" class="ch-toggle" type="checkbox" name="record[]" value="<?=$data[$key]['ID']?>">
-            </div>
-            <div class="clearfix l-unit__stat-col--left small truncate"><b><a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing DNS Record').': '.htmlspecialchars($data[$key]['RECORD'])?>"><? echo substr($data[$key]['RECORD'], 0, 12); if(strlen($data[$key]['RECORD']) > 12 ) echo '...'; ?></a></b></div>
-            <!-- START QUICK ACTION TOOLBAR AREA -->
-            <div class="clearfix l-unit__stat-col--left compact text-right">
-              <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
-                <div class="actions-panel clearfix">
-                  <div class="actions-panel__col actions-panel__logs shortcut-enter" key-action="href"><a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing DNS Record')?>"><i class="fas fa-pencil-alt status-icon orange status-icon dim"></i></a></div>
-                  <div class="actions-panel__col actions-panel__delete shortcut-delete" key-action="js">
-                    <a id="delete_link_<?=$i?>" class="data-controls do_delete" title="<?=_('delete')?>">
-                      <i class="fas fa-trash status-icon red status-icon dim do_delete"></i>
-                      <input type="hidden" name="delete_url" value="/delete/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" />
-                      <div id="delete_dialog_<?=$i?>" class="confirmation-text-delete hidden" title="<?=_('Confirmation')?>">
-                        <p class="confirmation"><?=sprintf(_('DELETE_DOMAIN_CONFIRMATION'),$key)?></p>
-                      </div>
-                    </a>
+    <div class="l-unit__col l-unit__col--right">
+        <div class="clearfix l-unit__stat-col--left super-compact">
+          <input id="check<?=$data[$key]['ID']?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="record[]" value="<?=$data[$key]['ID']?>">
+        </div>
+        <div class="clearfix l-unit__stat-col--left small truncate"><b><a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing DNS Record').': '.htmlspecialchars($data[$key]['RECORD'])?>"><? echo substr($data[$key]['RECORD'], 0, 12); if(strlen($data[$key]['RECORD']) > 12 ) echo '...'; ?></a></b></div>
+        <!-- START QUICK ACTION TOOLBAR AREA -->
+        <div class="clearfix l-unit__stat-col--left super-compact text-right">
+          <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
+            <div class="actions-panel clearfix">
+              <div class="actions-panel__col actions-panel__logs shortcut-enter" key-action="href"><a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing DNS Record')?>"><i class="fas fa-pencil-alt status-icon orange status-icon dim"></i></a></div>
+              <div class="actions-panel__col actions-panel__delete shortcut-delete" key-action="js">
+                <a id="delete_link_<?=$i?>" class="data-controls do_delete" title="<?=_('delete')?>">
+                  <i class="fas fa-trash status-icon red status-icon dim do_delete"></i>
+                  <input type="hidden" name="delete_url" value="/delete/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" />
+                  <div id="delete_dialog_<?=$i?>" class="confirmation-text-delete hidden" title="<?=_('Confirmation')?>">
+                    <p class="confirmation"><?=sprintf(_('DELETE_RECORD_CONFIRMATION'),$key)?></p>
                   </div>
-                </div>
+                </a>
               </div>
             </div>
-            <!-- END QUICK ACTION TOOLBAR AREA -->
-            <div class="clearfix l-unit__stat-col--left compact text-center"><b><?=$data[$key]['TYPE']?></b></div>
-            <div class="clearfix l-unit__stat-col--left compact"><?=$data[$key]['PRIORITY']?>&nbsp;</div>
-            <div class="clearfix l-unit__stat-col--left wide-7" style="font-family: 'Inconsolata', monospace;"><?=htmlspecialchars($data[$key]['VALUE'], ENT_QUOTES, 'UTF-8')?></div>
           </div>
         </div>
-      <?}?>
-
+        <!-- END QUICK ACTION TOOLBAR AREA -->
+        <div class="clearfix l-unit__stat-col--left compact text-center" style="padding-left: 32px;"><b><?=$data[$key]['TYPE']?></b></div>
+        <div class="clearfix l-unit__stat-col--left compact text-center"><?=$data[$key]['PRIORITY']?>&nbsp;</div>
+        <div class="clearfix l-unit__stat-col--left compact text-center"><?php if($data[$key]['TTL'] == ''){ echo _('Default'); }else{ echo $data[$key]['TTL'];} ?></div>
+        <div class="clearfix l-unit__stat-col--left super-compact"><b>&nbsp;</b></div>
+        <div class="clearfix l-unit__stat-col--left wide-6 truncate" style="word-break: break-word;"><?=htmlspecialchars($data[$key]['VALUE'], ENT_QUOTES, 'UTF-8')?></div>
+      </div>
     </div>
+  <?}?>
 
-    <div id="vstobjects">
-        <div class="l-separator"></div>
-    <div class="l-center">
-        <div class="l-unit-ft">
-          <table class='data'></table>
-          <div class="data-count l-unit__col l-unit__col--right total clearfix">
-            <?php
-            printf(ngettext('%d DNS record', '%d DNS records', $i),$i);
-            ?>
-          </div>
-          <div class="data-count l-unit__col l-unit__col--right back clearfix">
-          </div>
+</div>
+
+<div id="vstobjects">
+    <div class="l-separator"></div>
+<div class="l-center">
+    <div class="l-unit-ft">
+      <table class='data'></table>
+      <div class="data-count l-unit__col l-unit__col--right total clearfix">
+        <?php
+        printf(ngettext('%d DNS record', '%d DNS records', $i),$i);
+        ?>
+      </div>
+      <div class="data-count l-unit__col l-unit__col--right back clearfix">
       </div>
-    </div>
   </div>
+</div>
+</div>

+ 199 - 198
web/templates/user/list_mail.html

@@ -1,221 +1,222 @@
-    <div class="l-center">
-      <div class="l-sort clearfix noselect">
-        <div class="l-unit-toolbar__buttonstrip">
-          <a href="/add/mail/" id="btn-create" class="ui-button cancel" dir="ltr"><i class="fas fa-plus-circle status-icon green"></i><?=_('Add Mail Domain')?></a>
-        </div>
-        <ul class="context-menu sort-order animated fadeIn" style="display:none;">
-          <li entity="sort-date" sort_as_int="1"><span class="name active"><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></span><span class="up"><i class="fas fa-sort-amount-up"></i></span></li>
-          <li entity="sort-name"><span class="name"><?=_('Domain')?> <i class="fas fa-sort-amount-down"></i></span><span class="up"><i class="fas fa-sort-amount-up"></i></span></li>
-          <li entity="sort-accounts" sort_as_int="1"><span class="name"><?=_('Accounts')?> <i class="fas fa-sort-amount-down"></i></span><span class="up"><i class="fas fa-sort-amount-up"></i></span></li>
-          <li entity="sort-disk" sort_as_int="1"><span class="name"><?=_('Disk')?> <i class="fas fa-sort-amount-down"></i></span><span class="up"><i class="fas fa-sort-amount-up"></i></span></li>
-        </ul>
-        <div class="l-sort-toolbar clearfix">
-          <table>
-            <tr>
-              <td class="sort-by">
-                    <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
-              </td>
-              <td class="l-sort-toolbar__search-box">
-                <form action="/search/" method="get">
-                  <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
-                </form>
-              </td>
-              <td>
-                <form action="/bulk/mail/" method="post" id="objects">
-                <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                <div class="l-select">
-                  <select name="action" id="">
-                    <option value=""><?=_('apply to selected')?></option>
-                    <option value="suspend"><?=_('suspend')?></option>
-                    <option value="unsuspend"><?=_('unsuspend')?></option>
-                    <option value="delete"><?=_('delete')?></option>
-                  </select>
-                </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
-              </td>
+<div class="l-center">
+  <div class="l-sort clearfix noselect">
+    <div class="l-unit-toolbar__buttonstrip">
+      <a href="/add/mail/" id="btn-create" class="ui-button cancel" dir="ltr"><i class="fas fa-plus-circle status-icon green"></i><?=_('Add Mail Domain')?></a>
+    </div>
+    <ul class="context-menu sort-order animated fadeIn" style="display:none;">
+      <li entity="sort-date" sort_as_int="1"><span class="name active"><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></span><span class="up"><i class="fas fa-sort-amount-up"></i></span></li>
+      <li entity="sort-name"><span class="name"><?=_('Domain')?> <i class="fas fa-sort-amount-down"></i></span><span class="up"><i class="fas fa-sort-amount-up"></i></span></li>
+      <li entity="sort-accounts" sort_as_int="1"><span class="name"><?=_('Accounts')?> <i class="fas fa-sort-amount-down"></i></span><span class="up"><i class="fas fa-sort-amount-up"></i></span></li>
+      <li entity="sort-disk" sort_as_int="1"><span class="name"><?=_('Disk')?> <i class="fas fa-sort-amount-down"></i></span><span class="up"><i class="fas fa-sort-amount-up"></i></span></li>
+    </ul>
+    <div class="l-sort-toolbar clearfix">
+      <table>
+        <tr>
+          <td class="sort-by" title="<?=_('Sort items');?>">
+                <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
+          </td>
+          <td class="l-sort-toolbar__search-box">
+            <form action="/search/" method="get">
+              <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+              <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+              <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
+            </form>
+          </td>
+          <td>
+            <form action="/bulk/mail/" method="post" id="objects">
+            <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <div class="l-select">
+              <select name="action" id="">
+                <option value=""><?=_('apply to selected')?></option>
+                <option value="suspend"><?=_('suspend')?></option>
+                <option value="unsuspend"><?=_('unsuspend')?></option>
+                <option value="delete"><?=_('delete')?></option>
+              </select>
+            </div>
+            <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
+          </td>
 
-            </tr>
-          </table>
-        </div>
-      </div>
+        </tr>
+      </table>
     </div>
+  </div>
+</div>
 
-    <div class="l-separator"></div>
+<div class="l-separator"></div>
 
-    <div class="l-center units">
-      <div class="header table-header">
-        <div class="l-unit__col l-unit__col--right">
-            <div class="clearfix l-unit__stat-col--left super-compact">
-              <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
-            </div>
-            <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Domain');?></b></div>
-            <div class="clearfix l-unit__stat-col--left text-right compact-4"><b>&nbsp;</b></div>
-            <div class="clearfix l-unit__stat-col--left text-center compact-2"><b><?php print _('Accounts');?></b></div>
-            <div class="clearfix l-unit__stat-col--left text-center compact-2"><b><?php print _('Disk');?></b></div>
-            <div class="clearfix l-unit__stat-col--left text-center compact-3"><b><?php print _('Antivirus');?></b></div>
-            <div class="clearfix l-unit__stat-col--left text-center compact-3"><b><?php print _('AntiSpam');?></b></div>
-            <div class="clearfix l-unit__stat-col--left text-center compact-3"><b><?php print _('DKIM');?></b></div>
-            <div class="clearfix l-unit__stat-col--left text-center compact-3"><b><?php print _('SSL');?></b></div>
-          </div>
+<div class="l-center units">
+  <div class="header table-header">
+    <div class="l-unit__col l-unit__col--right">
+        <div class="clearfix l-unit__stat-col--left super-compact">
+          <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
         </div>
+        <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Domain');?></b></div>
+        <div class="clearfix l-unit__stat-col--left text-right compact-5"><b>&nbsp;</b></div>
+        <div class="clearfix l-unit__stat-col--left text-center compact-2"><b><?php print _('Accounts');?></b></div>
+        <div class="clearfix l-unit__stat-col--left text-center compact-2"><b><?php print _('Disk');?></b></div>
+        <div class="clearfix l-unit__stat-col--left text-center compact-3"><b><?php print _('Antivirus');?></b></div>
+        <div class="clearfix l-unit__stat-col--left text-center compact-3"><b><?php print _('AntiSpam');?></b></div>
+        <div class="clearfix l-unit__stat-col--left text-center compact-3"><b><?php print _('DKIM');?></b></div>
+        <div class="clearfix l-unit__stat-col--left text-center compact-3"><b><?php print _('SSL');?></b></div>
+      </div>
+    </div>
 
-      <?
-        list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"].":");
-        $webmail = "webmail";
-        if (!empty($_SESSION['WEBMAIL_ALIAS'])) $webmail = $_SESSION['WEBMAIL_ALIAS'];
+  <?
+    list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"].":");
+    $webmail = "webmail";
+    if (!empty($_SESSION['WEBMAIL_ALIAS'])) $webmail = $_SESSION['WEBMAIL_ALIAS'];
 
-        foreach ($data as $key => $value) {
-          ++$i;
-          if ($data[$key]['SUSPENDED'] == 'yes') {
-            $status = 'suspended';
-            $spnd_action = 'unsuspend';
-            $spnd_icon = 'fa-play';
-            $spnd_confirmation = _('SUSPEND_DOMAIN_CONFIRMATION') ;
-          } else {
-            $status = 'active';
-            $spnd_action = 'suspend';
-            $spnd_icon = 'fa-pause';
-            $spnd_confirmation = _('SUSPEND_DOMAIN_CONFIRMATION') ;
-          }
-          if (empty($data[$key]['CATCHALL'])) {
-            $data[$key]['CATCHALL'] = '/dev/null';
-          }
-      ?>
+    foreach ($data as $key => $value) {
+      ++$i;
+      if ($data[$key]['SUSPENDED'] == 'yes') {
+        $status = 'suspended';
+        $spnd_action = 'unsuspend';
+        $spnd_icon = 'fa-play';
+        $spnd_confirmation = _('SUSPEND_DOMAIN_CONFIRMATION');
+      } else {
+        $status = 'active';
+        $spnd_action = 'suspend';
+        $spnd_icon = 'fa-pause';
+        $spnd_confirmation = _('SUSPEND_DOMAIN_CONFIRMATION');
+      }
+      if (empty($data[$key]['CATCHALL'])) {
+        $data[$key]['CATCHALL'] = '/dev/null';
+      }
+  ?>
 
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_SESSION['favourites']['MAIL'][$key] == 1) echo ' l-unit--starred'; ?> animated fadeIn" v_unit_id="<?=$key?>" v_section="mail"
+  <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_SESSION['favourites']['MAIL'][$key] == 1) echo ' l-unit--starred'; ?> animated fadeIn" v_unit_id="<?=$key?>" v_section="mail"
 sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?=$data[$key]['U_DISK']?>"
 sort-accounts="<?=$data[$key]['ACCOUNTS']?>" sort-star="<? if($_SESSION['favourites']['MAIL'][$key] == 1) echo "1"; else echo "0"; ?>">
-            <div class="l-unit__col l-unit__col--right">
-              <div>
-                  <div class="clearfix l-unit__stat-col--left super-compact">
-                    <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?php echo $key ?>">
-                  </div>
-                  <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('mail accounts')?>: <?=$key?>"><?=$key?></a></b></div>
-                  <!-- START QUICK ACTION TOOLBAR AREA -->
-                  <div class="clearfix l-unit__stat-col--left text-right compact-4">
-                      <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
-                          <div class="actions-panel clearfix">
-                            <div class="actions-panel__col actions-panel__logs shortcut-n" key-action="href"><a href="/add/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Add Mail Account')?>"><i class="fas fa-plus-circle status-icon green status-icon dim"></i></a></div>
-                            <div class="actions-panel__col actions-panel__edit shortcut-l" key-action="href"><a href="?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('mail accounts')?>"><i class="fas fa-users status-icon blue status-icon dim"></i></a></div>
-                            <div class="actions-panel__col actions-panel__edit" key-action="href"><a href="http://<?=$webmail;?>.<?=$key?>/" target="_blank" title="<?=_('open webmail')?>"><i class="fas fa-paper-plane status-icon lightblue status-icon dim"></i></a></div>
-                            <div class="actions-panel__col actions-panel__logs shortcut-enter" key-action="href"><a href="/edit/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Mail Domain')?>"><i class="fas fa-pencil-alt status-icon orange status-icon dim"></i></a></div>
+        <div class="l-unit__col l-unit__col--right">
+          <div>
+              <div class="clearfix l-unit__stat-col--left super-compact">
+                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="domain[]" value="<?php echo $key ?>">
+              </div>
+              <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('mail accounts')?>: <?=$key?>"><?=$key?></a></b></div>
+              <!-- START QUICK ACTION TOOLBAR AREA -->
+              <div class="clearfix l-unit__stat-col--left text-right compact-5">
+                  <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
+                      <div class="actions-panel clearfix">
+                        <div class="actions-panel__col actions-panel__logs shortcut-n" key-action="href"><a href="/add/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Add Mail Account')?>"><i class="fas fa-plus-circle status-icon green status-icon dim"></i></a></div>
+                        <div class="actions-panel__col actions-panel__edit shortcut-l" key-action="href"><a href="?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('mail accounts')?>"><i class="fas fa-users status-icon blue status-icon dim"></i></a></div>
+                        <div class="actions-panel__col actions-panel__edit shortcut-l" key-action="href"><a href="?domain=<?=$key?>&dns=1&token=<?=$_SESSION['token']?>" title="<?=_('DNS records mail')?>"><i class="fas fa-atlas status-icon blue status-icon dim"></i></a></div>
+                        <div class="actions-panel__col actions-panel__edit" key-action="href"><a href="http://<?=$webmail;?>.<?=$key?>/" target="_blank" title="<?=_('open webmail')?>"><i class="fas fa-paper-plane status-icon lightblue status-icon dim"></i></a></div>
+                        <div class="actions-panel__col actions-panel__logs shortcut-enter" key-action="href"><a href="/edit/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Mail Domain')?>"><i class="fas fa-pencil-alt status-icon orange status-icon dim"></i></a></div>
 
-                            <div class="actions-panel__col actions-panel__suspend shortcut-s" key-action="js">
-                              <a id="<?=$spnd_action ?>_link_<?=$i?>" class="data-controls do_<?=$spnd_action?>" title="<?=_($spnd_action)?>">
-                                <i class="fas <?=$spnd_icon?> status-icon highlight status-icon dim do_<?=$spnd_action?>"></i>
-                                <input type="hidden" name="<?=$spnd_action?>_url" value="/<?=$spnd_action?>/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" />
-                                <div id="<?=$spnd_action?>_dialog_<?=$i?>" class="confirmation-text-suspention hidden" title="<?=_('Confirmation')?>">
-                                  <p class="confirmation"><?=sprintf($spnd_confirmation,$key)?></p>
-                                </div>
-                              </a>
+                        <div class="actions-panel__col actions-panel__suspend shortcut-s" key-action="js">
+                          <a id="<?=$spnd_action ?>_link_<?=$i?>" class="data-controls do_<?=$spnd_action?>" title="<?=_($spnd_action)?>">
+                            <i class="fas <?=$spnd_icon?> status-icon highlight status-icon dim do_<?=$spnd_action?>"></i>
+                            <input type="hidden" name="<?=$spnd_action?>_url" value="/<?=$spnd_action?>/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" />
+                            <div id="<?=$spnd_action?>_dialog_<?=$i?>" class="confirmation-text-suspention hidden" title="<?=_('Confirmation')?>">
+                              <p class="confirmation"><?=sprintf($spnd_confirmation,$key)?></p>
                             </div>
-                            <div class="actions-panel__col actions-panel__delete shortcut-delete" key-action="js">
-                              <a id="delete_link_<?=$i?>" class="data-controls do_delete" title="<?=_('delete')?>">
-                                <i class="fas fa-trash status-icon red status-icon dim do_delete"></i>
-                                <input type="hidden" name="delete_url" value="/delete/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" />
-                                <div id="delete_dialog_<?=$i?>" class="confirmation-text-delete hidden" title="<?=_('Confirmation')?>">
-                                  <p class="confirmation"><?=sprintf(_('DELETE_DOMAIN_CONFIRMATION'),$key)?></p>
-                                </div>
-                              </a>
+                          </a>
+                        </div>
+                        <div class="actions-panel__col actions-panel__delete shortcut-delete" key-action="js">
+                          <a id="delete_link_<?=$i?>" class="data-controls do_delete" title="<?=_('delete')?>">
+                            <i class="fas fa-trash status-icon red status-icon dim do_delete"></i>
+                            <input type="hidden" name="delete_url" value="/delete/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" />
+                            <div id="delete_dialog_<?=$i?>" class="confirmation-text-delete hidden" title="<?=_('Confirmation')?>">
+                              <p class="confirmation"><?=sprintf(_('DELETE_DOMAIN_CONFIRMATION'),$key)?></p>
                             </div>
-                          </div>
+                          </a>
                         </div>
-                  </div>
-                  <!-- END QUICK ACTION TOOLBAR AREA -->
-                  <div class="clearfix l-unit__stat-col--left text-center compact-2"><b>
-                    <? if($data[$key]['ACCOUNTS']) { echo '<span>'.$data[$key]['ACCOUNTS'].'</span>'; ?>
+                      </div>
+                    </div>
+              </div>
+              <!-- END QUICK ACTION TOOLBAR AREA -->
+              <div class="clearfix l-unit__stat-col--left text-center compact-2"><b>
+                <? if($data[$key]['ACCOUNTS']) { echo '<span>'.$data[$key]['ACCOUNTS'].'</span>'; ?>
+                <? } else {?>
+                  <span>0</span>
+                <? } ?>
+                </b>
+              </div>
+              <div class="clearfix l-unit__stat-col--left text-center compact-2"><b>
+                <?=humanize_usage_size($data[$key]['U_DISK'])?></b> <span class="text-small"><?=humanize_usage_measure($data[$key]['U_DISK'])?></span>
+              </div>
+              <div class="clearfix l-unit__stat-col--left text-center compact-3"><b>
+                  <? if($data[$key]['SUSPENDED'] == 'no'){ ?>
+                    <? if($data[$key]['ANTIVIRUS'] == 'no'){ ?>
+                      <i class="fas fa-times-circle status-icon red"></i>
+                    <? } else {?>
+                      <i class="fas fa-check-circle status-icon green"></i>
+                    <? } ?>
+                  <? } else {?>
+                    <? if($data[$key]['ANTIVIRUS'] == 'no'){ ?>
+                      <i class="fas fa-times-circle"></i>
                     <? } else {?>
-                      <span>0</span>
+                      <i class="fas fa-check-circle"></i>
                     <? } ?>
-                    </b>
-                  </div>
-                  <div class="clearfix l-unit__stat-col--left text-center compact-2"><b>
-                    <?=humanize_usage_size($data[$key]['U_DISK'])?></b> <span class="text-small"><?=humanize_usage_measure($data[$key]['U_DISK'])?></span>
-                  </div>
-                  <div class="clearfix l-unit__stat-col--left text-center compact-3"><b>
-                      <? if($data[$key]['SUSPENDED'] == 'no'){ ?>
-                        <? if($data[$key]['ANTIVIRUS'] == 'no'){ ?>
-                          <i class="fas fa-times-circle status-icon red"></i>
-                        <? } else {?>
-                          <i class="fas fa-check-circle status-icon green"></i>
-                        <? } ?>
-                      <? } else {?>
-                        <? if($data[$key]['ANTIVIRUS'] == 'no'){ ?>
-                          <i class="fas fa-times-circle"></i>
-                        <? } else {?>
-                          <i class="fas fa-check-circle"></i>
-                        <? } ?>
-                      <? } ?>
-                    </b>
-                  </div>
-                  <div class="clearfix l-unit__stat-col--left text-center compact-3"><b>
-                      <? if($data[$key]['SUSPENDED'] == 'no'){ ?>
-                        <? if($data[$key]['ANTISPAM'] == 'no'){ ?>
-                          <i class="fas fa-times-circle status-icon red"></i>
-                        <? } else {?>
-                          <i class="fas fa-check-circle status-icon green"></i>
-                        <? } ?>
-                      <? } else {?>
-                        <? if($data[$key]['ANTISPAM'] == 'no'){ ?>
-                          <i class="fas fa-times-circle"></i>
-                        <? } else {?>
-                          <i class="fas fa-check-circle"></i>
-                        <? } ?>
-                      <? } ?>
-                    </b>
-                  </div>
-                  <div class="clearfix l-unit__stat-col--left text-center compact-3"><b>
-                      <? if($data[$key]['SUSPENDED'] == 'no'){ ?>
-                        <? if($data[$key]['DKIM'] == 'no'){ ?>
-                          <i class="fas fa-times-circle status-icon red"></i>
-                        <? } else {?>
-                          <i class="fas fa-check-circle status-icon green"></i>
-                        <? } ?>
-                      <? } else {?>
-                        <? if($data[$key]['DKIM'] == 'no'){ ?>
-                          <i class="fas fa-times-circle"></i>
-                        <? } else {?>
-                          <i class="fas fa-check-circle"></i>
-                        <? } ?>
-                      <? } ?>
-                    </b>
-                  </div>
-                  <div class="clearfix l-unit__stat-col--left text-center compact-3"><b>
-                      <? if($data[$key]['SUSPENDED'] == 'no'){ ?>
-                        <? if($data[$key]['SSL'] == 'no'){ ?>
-                          <i class="fas fa-times-circle status-icon red"></i>
-                        <? } else {?>
-                          <i class="fas fa-check-circle status-icon green"></i>
-                        <? } ?>
-                      <? } else {?>
-                        <? if($data[$key]['SSL'] == 'no'){ ?>
-                          <i class="fas fa-times-circle"></i>
-                        <? } else {?>
-                          <i class="fas fa-check-circle"></i>
-                        <? } ?>
-                      <? } ?>
-                    </b>
-                  </div>
+                  <? } ?>
+                </b>
               </div>
-            </div>
-      </div>
-      <?}?>
-    </div>
+              <div class="clearfix l-unit__stat-col--left text-center compact-3"><b>
+                  <? if($data[$key]['SUSPENDED'] == 'no'){ ?>
+                    <? if($data[$key]['ANTISPAM'] == 'no'){ ?>
+                      <i class="fas fa-times-circle status-icon red"></i>
+                    <? } else {?>
+                      <i class="fas fa-check-circle status-icon green"></i>
+                    <? } ?>
+                  <? } else {?>
+                    <? if($data[$key]['ANTISPAM'] == 'no'){ ?>
+                      <i class="fas fa-times-circle"></i>
+                    <? } else {?>
+                      <i class="fas fa-check-circle"></i>
+                    <? } ?>
+                  <? } ?>
+                </b>
+              </div>
+              <div class="clearfix l-unit__stat-col--left text-center compact-3"><b>
+                  <? if($data[$key]['SUSPENDED'] == 'no'){ ?>
+                    <? if($data[$key]['DKIM'] == 'no'){ ?>
+                      <i class="fas fa-times-circle status-icon red"></i>
+                    <? } else {?>
+                      <i class="fas fa-check-circle status-icon green"></i>
+                    <? } ?>
+                  <? } else {?>
+                    <? if($data[$key]['DKIM'] == 'no'){ ?>
+                      <i class="fas fa-times-circle"></i>
+                    <? } else {?>
+                      <i class="fas fa-check-circle"></i>
+                    <? } ?>
+                  <? } ?>
+                </b>
+              </div>
+              <div class="clearfix l-unit__stat-col--left text-center compact-3"><b>
+                  <? if($data[$key]['SUSPENDED'] == 'no'){ ?>
+                    <? if($data[$key]['SSL'] == 'no'){ ?>
+                      <i class="fas fa-times-circle status-icon red"></i>
+                    <? } else {?>
+                      <i class="fas fa-check-circle status-icon green"></i>
+                    <? } ?>
+                  <? } else {?>
+                    <? if($data[$key]['SSL'] == 'no'){ ?>
+                      <i class="fas fa-times-circle"></i>
+                    <? } else {?>
+                      <i class="fas fa-check-circle"></i>
+                    <? } ?>
+                  <? } ?>
+                </b>
+              </div>
+          </div>
+        </div>
+  </div>
+  <?}?>
+</div>
 
 
-    <div id="vstobjects">
-      <div class="l-separator"></div>
-      <div class="l-center">
-        <div class="l-unit-ft">
-          <table class='data'></table>
-          <div class="data-count l-unit__col l-unit__col--right clearfix">
-            <?php
+<div id="vstobjects">
+  <div class="l-separator"></div>
+  <div class="l-center">
+    <div class="l-unit-ft">
+      <table class='data'></table>
+      <div class="data-count l-unit__col l-unit__col--right clearfix">
+          <?php
              printf(ngettext('%d mail domain', '%d mail domains', $i),$i);
-            ?>
-          </div>
-        </div>
+          ?>
       </div>
     </div>
+  </div>
+</div>

+ 6 - 6
web/templates/user/list_mail_acc.html

@@ -17,14 +17,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                   <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -38,7 +38,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -53,7 +53,7 @@
             <div class="l-unit__col l-unit__col--right">
               <div>
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                      <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Username');?></b></div>
                   <div class="clearfix l-unit__stat-col--left text-right compact-4"><b>&nbsp;</b></div>
@@ -88,7 +88,7 @@
 sort-star="<? if($_SESSION['favourites']['MAIL_ACC'][$key."@".$_GET['domain']] == 1) echo '1'; else echo '0'; ?>">
             <div class="l-unit__col l-unit__col--right">
               <div class="clearfix l-unit__stat-col--left super-compact">
-                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="account[]" value="<?php echo $key ?>">
+                <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="account[]" value="<?php echo $key ?>">
                 <input type="hidden" value="<?php echo $_GET['domain'] ?>" name="domain" />
               </div>
               <div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="/edit/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Mail Account')?>: <?=$key?>@<?=htmlspecialchars($_GET['domain'])?>"><?=$key."@".$_GET['domain']?></a></b></div>

+ 3 - 3
web/templates/user/list_search.html

@@ -11,14 +11,14 @@
       <div class="l-sort-toolbar clearfix">
         <table>
           <tr>
-            <td class="sort-by">
+            <td class="sort-by" title="<?=_('Sort items');?>">
               <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
             </td>
             <td class="l-sort-toolbar__search-box">
               <form action="/search/" method="get">
                 <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
               </form>
             </td>
           </tr>

+ 2 - 2
web/templates/user/list_stats.html

@@ -9,8 +9,8 @@
                 <td class="l-sort-toolbar__search-box">
                     <form action="/search/" method="get">
                       <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                      <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                      <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                      <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                      <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                     </form>
                   </td>
             </tr>

+ 6 - 6
web/templates/user/list_user.html

@@ -23,14 +23,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                   <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                   <form action="/search/" method="get">
                     <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                    <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                    <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                    <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                    <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                   </form>
                 </td>
               <td>
@@ -51,7 +51,7 @@
                       <option value="delete"><?=_('delete')?></option>
                     </select>
                   </div>
-                  <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                  <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -65,7 +65,7 @@
         <div class="table-header"> 
             <div class="l-unit__col l-unit__col--right">
                   <div class="clearfix l-unit__stat-col--left super-compact">
-                    <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                    <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                   </div>
                   <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print _('Name');?></b></div>
                   <div class="clearfix l-unit__stat-col--left compact-3"><b>&nbsp;</b></div>
@@ -92,7 +92,7 @@ v_unit_id="<?=$key?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key
 sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-star="<? if($_SESSION['favourites']['USER'][$key] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit__col l-unit__col--right">
           <div class="clearfix l-unit__stat-col--left super-compact">
-            <input id="check<?=$i?>" class="ch-toggle" type="checkbox" name="user[]" value="<?=$key?>">
+            <input id="check<?=$i?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="user[]" value="<?=$key?>">
           </div>
           <div class="clearfix l-unit__stat-col--left wide-3 userlist-username"><b><a href="/login/?loginas=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('login as')?> <?=$key?>"><?=$key?> <span style="font-weight: normal !important;">(<?php echo $data[$key]['NAME'];?>)</span></b></a>
                 <br />

+ 8 - 8
web/templates/user/list_web.html

@@ -19,14 +19,14 @@
         <div class="l-sort-toolbar clearfix">
           <table>
             <tr>
-              <td class="sort-by">
+              <td class="sort-by" title="<?=_('Sort items');?>">
                 <?=_('sort by');?>: <span><b><?=_('Date')?> <i class="fas fa-sort-amount-down"></i></b></span>
               </td>
               <td class="l-sort-toolbar__search-box">
                 <form action="/search/" method="get">
                   <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" />
-                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value=""><i class="fas fa-search"></i></button>
+                  <input type="text" name="q" class="search-input" value="<? echo isset($_POST['q']) ? htmlspecialchars($_POST['q']) : '' ?>" title="<?=_('Search')?>" />
+                  <button type="submit" class="l-sort-toolbar__filter-apply" onclick="return doSearch('/search/')" value="" title="<?=_('Search')?>"><i class="fas fa-search"></i></button>
                 </form>
               </td>
               <td>
@@ -40,7 +40,7 @@
                     <option value="delete"><?=_('delete')?></option>
                   </select>
                 </div>
-                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value="" title="<?=_('apply to selected')?>"><i class="fas fa-arrow-right"></i></button>
               </td>
             </tr>
           </table>
@@ -54,7 +54,7 @@
         <div class="header table-header">      
             <div class="l-unit__col l-unit__col--right">
                 <div class="clearfix l-unit__stat-col--left super-compact">
-                  <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                  <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" title="<?=_('Select all')?>" onChange="checkedAll('objects');">
                 </div>
                 <div class="clearfix l-unit__stat-col--left wide-4"><b><?php print _('Domain');?></b></div>
                 <div class="clearfix l-unit__stat-col--left compact-4 text-right"><b>&nbsp;</b></div>
@@ -134,7 +134,7 @@ sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
 sort-name="<?=$key?>"  sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-star="<? if($_SESSION['WEB'][$key] == 1) echo '1'; else echo '0';?>">
       <div class="l-unit__col l-unit__col--right">
           <div class="clearfix l-unit__stat-col--left super-compact">
-              <input id="check<?=$i?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?=$key?>">
+              <input id="check<?=$i?>" class="ch-toggle" type="checkbox" title="<?=_('Select')?>" name="domain[]" value="<?=$key?>">
           </div>
           <div class="clearfix l-unit__stat-col--left wide-4 truncate"><b><a href="/edit/web/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Domain')?>: <?=$key?>"><?=$key?></a></b></div>
           <!-- START QUICK ACTION TOOLBAR AREA -->
@@ -142,9 +142,9 @@ sort-name="<?=$key?>"  sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-dis
             <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
               <div class="actions-panel clearfix">
                 <? if (!empty($data[$key]['STATS'])) { ?>
-                  <div class="actions-panel__col actions-panel__logs shortcut-w" key-action="href"><a href="http://<?=$key?>/vstats/"  target="_blank" title="<?=_('Statistics')?>"><i class="fas fa-chart-bar status-icon maroon status-icon dim"></i></a></div>
+                  <div class="actions-panel__col actions-panel__logs shortcut-w" key-action="href"><a href="http://<?=$key?>/vstats/" rel="noopener" target="_blank" title="<?=_('Statistics')?>"><i class="fas fa-chart-bar status-icon maroon status-icon dim"></i></a></div>
                 <? } ?>
-                <div class="actions-panel__col actions-panel__view" key-action="href"><a href="http://<?=$key?>/" target="_blank"><i class="fas fa-external-link-square-alt status-icon lightblue status-icon dim"></i></a></div>
+                <div class="actions-panel__col actions-panel__view" key-action="href"><a href="http://<?=$key?>/" target="_blank" rel="noopener"><i class="fas fa-external-link-square-alt status-icon lightblue status-icon dim"></i></a></div>
                 <div class="actions-panel__col actions-panel__edit shortcut-enter" key-action="href"><a href="/edit/web/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?=_('Editing Domain')?>" ><i class="fas fa-pencil-alt status-icon orange status-icon dim"></i></a></div>
                 <div class="actions-panel__col actions-panel__logs shortcut-l" key-action="href"><a href="/list/web-log/?domain=<?php echo $key ?>&type=access#" title="<?=_('AccessLog')?>"><i class="fas fa-binoculars status-icon purple status-icon dim"></i></a></div>
                 <div class="actions-panel__col actions-panel__suspend shortcut-s" key-action="js">

+ 5 - 5
web/templates/user/panel.html

@@ -1,14 +1,14 @@
 <div class="hidden" id="token" token="<?=$_SESSION['token']?>"></div>
-<a href="#" class="to-top">
+<a href="#" class="to-top" title="<?=_('top')?>">
 	<i class="fas fa-arrow-up"></i>
 </a>
-<a href="#" class="to-shortcuts">
+<a href="#" class="to-shortcuts" title="Shortcuts">
 	<i class="fas fa-keyboard"></i>
 </a>
 
 <div class="l-header">
 	<div class="l-center">
-		<a href="/list/web/" class="l-logo"></a>
+		<a href="/list/web/" class="l-logo" title="<?=_('Hestia Control Panel');?>"></a>
 		<div class="l-menu clearfix noselect">
 			<div class="l-menu__item <?php if($TAB == 'WEB' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'DNS' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'MAIL' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'DB' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'BACKUP' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'CRON' ) echo 'l-menu__item--active' ?>"><a href="/list/web/"><i class="fas fa-tasks panel-icon"></i><?=_('Records')?></a></div>
 			<?php if ((isset($_SESSION['FILE_MANAGER'])) && (!empty($_SESSION['FILE_MANAGER'])) && ($_SESSION['FILE_MANAGER'] == "true")) {?>
@@ -26,8 +26,8 @@
 			</div>
 			<div class="l-menu__item"><a title="<?=_('Notifications')?>" class="l-profile__notifications <? if($panel[$user]['NOTIFICATIONS'] == 'yes') echo " updates"; ?>"><i class="fas fa-bell <?if($panel[$user]['NOTIFICATIONS'] == 'yes') echo " status-icon orange"; ?>"></i></a></div>
 			<div class="l-menu__item"><a href="/edit/user/?user=<?php echo $user; ?>" title="<?=htmlspecialchars($user)?> (<?=htmlspecialchars($panel[$user]['NAME'])?>)" class="l-profile__username"><i class="fas fa-user-edit"></i></a></div>
-			<div class="l-menu__item"><a href="https://github.com/hestiacp/hestiacp/issues/" target="_new" title="Submit a bug report" class="l-profile__help"><i class="fas fa-exclamation-triangle"></i></a></div>
-			<div class="l-menu__item"><a href="https://docs.hestiacp.com/" title="<?=_('Help')?>" class="l-profile__help" target="_blank"><i class="fas fa-question-circle"></i></a></div>
+			<div class="l-menu__item"><a href="https://github.com/hestiacp/hestiacp/issues/" target="_new" rel="noopener" title="Submit a bug report" class="l-profile__help"><i class="fas fa-exclamation-triangle"></i></a></div>
+			<div class="l-menu__item"><a href="https://docs.hestiacp.com/" title="<?=_('Help')?>" rel="noopener" class="l-profile__help" target="_blank"><i class="fas fa-question-circle"></i></a></div>
 			<div class="l-menu__item"><a href="/logout/" title="<?=_('Log out')?>" class="l-profile__logout"><i class="fas fa-sign-out-alt"></i></a></div>
 		</div>
 	</div>

Некоторые файлы не были показаны из-за большого количества измененных файлов