Explorar el Código

Set global box-sizing (#3002)

* Global box-sizing, better .u-side-by-side

* Updates
Alec Rust hace 3 años
padre
commit
10430bc48d
Se han modificado 54 ficheros con 699 adiciones y 679 borrados
  1. 6 2
      web/css/src/themes/dark.css
  2. 52 45
      web/css/src/themes/default.css
  3. 3 3
      web/css/src/themes/vestia.css
  4. 0 0
      web/css/themes/dark.min.css
  5. 0 0
      web/css/themes/default.min.css
  6. 0 0
      web/css/themes/vestia.min.css
  7. 11 11
      web/js/app.js
  8. 3 0
      web/js/init.js
  9. 4 4
      web/js/pages/edit_web.js
  10. 22 20
      web/templates/footer.html
  11. 2 2
      web/templates/pages/add_access_key.html
  12. 2 2
      web/templates/pages/add_cron.html
  13. 3 3
      web/templates/pages/add_db.html
  14. 3 3
      web/templates/pages/add_dns.html
  15. 2 2
      web/templates/pages/add_dns_rec.html
  16. 2 2
      web/templates/pages/add_firewall.html
  17. 2 2
      web/templates/pages/add_firewall_banlist.html
  18. 2 2
      web/templates/pages/add_firewall_ipset.html
  19. 2 2
      web/templates/pages/add_ip.html
  20. 2 2
      web/templates/pages/add_key.html
  21. 4 4
      web/templates/pages/add_mail.html
  22. 2 2
      web/templates/pages/add_mail_acc.html
  23. 2 2
      web/templates/pages/add_package.html
  24. 2 2
      web/templates/pages/add_user.html
  25. 3 3
      web/templates/pages/add_web.html
  26. 2 2
      web/templates/pages/edit_backup_exclusions.html
  27. 2 2
      web/templates/pages/edit_cron.html
  28. 2 2
      web/templates/pages/edit_db.html
  29. 2 2
      web/templates/pages/edit_dns.html
  30. 2 2
      web/templates/pages/edit_dns_rec.html
  31. 2 2
      web/templates/pages/edit_firewall.html
  32. 2 2
      web/templates/pages/edit_ip.html
  33. 4 4
      web/templates/pages/edit_mail.html
  34. 2 2
      web/templates/pages/edit_mail_acc.html
  35. 8 8
      web/templates/pages/edit_package.html
  36. 455 441
      web/templates/pages/edit_server.html
  37. 2 2
      web/templates/pages/edit_server_bind9.html
  38. 2 2
      web/templates/pages/edit_server_dovecot.html
  39. 2 2
      web/templates/pages/edit_server_httpd.html
  40. 2 2
      web/templates/pages/edit_server_mysql.html
  41. 2 2
      web/templates/pages/edit_server_nginx.html
  42. 2 2
      web/templates/pages/edit_server_pgsql.html
  43. 2 2
      web/templates/pages/edit_server_php.html
  44. 2 2
      web/templates/pages/edit_server_service.html
  45. 2 2
      web/templates/pages/edit_user.html
  46. 40 44
      web/templates/pages/edit_web.html
  47. 3 3
      web/templates/pages/generate_ssl.html
  48. 2 2
      web/templates/pages/list_access_key.html
  49. 2 2
      web/templates/pages/list_ssl.html
  50. 1 1
      web/templates/pages/list_webapps.html
  51. 4 6
      web/templates/pages/login/login_1.html
  52. 4 6
      web/templates/pages/login/login_2.html
  53. 4 6
      web/templates/pages/login/login_a.html
  54. 2 2
      web/templates/pages/setup_webapp.html

+ 6 - 2
web/css/src/themes/dark.css

@@ -602,6 +602,11 @@ div.l-content > div.l-separator:nth-of-type(4) {
   color: #d4d4d4;
   color: #d4d4d4;
 }
 }
 
 
+.form-label,
+.form-check label {
+  color: #d4d4d4;
+}
+
 .form-control {
 .form-control {
   background-color: #454545;
   background-color: #454545;
   border: 1px solid #606060;
   border: 1px solid #606060;
@@ -764,7 +769,6 @@ a.vst-text:active b {
   border-bottom: none;
   border-bottom: none;
   color: #326b9b;
   color: #326b9b;
   font-size: 0.85em !important;
   font-size: 0.85em !important;
-  padding: 2px 2px 0;
   text-decoration: none;
   text-decoration: none;
   text-transform: uppercase;
   text-transform: uppercase;
   border: none !important;
   border: none !important;
@@ -1038,7 +1042,7 @@ a.button.cancel {
   color: #fff !important;
   color: #fff !important;
 }
 }
 
 
-.page-title {
+.form-title {
   color: #e8e8e8;
   color: #e8e8e8;
 }
 }
 
 

+ 52 - 45
web/css/src/themes/default.css

@@ -142,8 +142,16 @@
 /* Base
 /* Base
    ========================================================================== */
    ========================================================================== */
 
 
-* {
-  -webkit-tap-highlight-color: transparent;
+html {
+  height: 100%;
+  box-sizing: border-box;
+  font-family: sans-serif;
+}
+
+*,
+*::before,
+*::after {
+  box-sizing: inherit;
 }
 }
 
 
 html,
 html,
@@ -155,12 +163,8 @@ button {
   -moz-osx-font-smoothing: grayscale;
   -moz-osx-font-smoothing: grayscale;
 }
 }
 
 
-html {
-  height: 100%;
-}
-
 body {
 body {
-  font-family: Exo, Arial, sans-serif;
+  font-family: Exo, Arial, Helvetica, sans-serif;
   font-size: 0.9rem;
   font-size: 0.9rem;
   height: 100%;
   height: 100%;
   color: #7c7c7c;
   color: #7c7c7c;
@@ -242,7 +246,7 @@ a {
   position: fixed;
   position: fixed;
   width: 100%;
   width: 100%;
   z-index: 900;
   z-index: 900;
-  height: 38px;
+  height: 39px;
   text-shadow: 1px 1px rgb(0 0 0 / 25%);
   text-shadow: 1px 1px rgb(0 0 0 / 25%);
   box-shadow: 0 4px 10px rgb(100 100 100 / 40%);
   box-shadow: 0 4px 10px rgb(100 100 100 / 40%);
   border-bottom: 1px solid #fff;
   border-bottom: 1px solid #fff;
@@ -507,7 +511,6 @@ a {
 }
 }
 
 
 .alert {
 .alert {
-  box-sizing: border-box;
   border-radius: 4px;
   border-radius: 4px;
   font-size: 0.8rem;
   font-size: 0.8rem;
   font-weight: 400;
   font-weight: 400;
@@ -578,17 +581,11 @@ a {
   justify-content: center;
   justify-content: center;
 }
 }
 
 
-.app-form {
-  padding: 2em 1em 2em 9rem;
-}
-
-.app-form label {
-  font-size: 0.85rem;
-  font-weight: 600;
+.form-container {
+  padding: 1em 1em 2em 9rem;
 }
 }
 
 
 .card {
 .card {
-  box-sizing: border-box;
   overflow: hidden;
   overflow: hidden;
   background-color: #f5f5f5;
   background-color: #f5f5f5;
   border: 1px solid #d3d3d3;
   border: 1px solid #d3d3d3;
@@ -629,7 +626,6 @@ a {
 }
 }
 
 
 .card .card-thumb {
 .card .card-thumb {
-  box-sizing: border-box;
   background-color: #fff;
   background-color: #fff;
   display: flex;
   display: flex;
   align-items: center;
   align-items: center;
@@ -666,7 +662,7 @@ a {
 .l-stat__col a {
 .l-stat__col a {
   display: inline-block;
   display: inline-block;
   padding-bottom: 36px;
   padding-bottom: 36px;
-  min-height: 70px;
+  min-height: 113px;
   width: 136px;
   width: 136px;
   border-bottom: 4px solid #fff;
   border-bottom: 4px solid #fff;
   overflow: hidden;
   overflow: hidden;
@@ -770,7 +766,7 @@ div.l-content > div.l-separator:nth-of-type(4) {
   background-color: #fff;
   background-color: #fff;
   z-index: 120;
   z-index: 120;
   margin-top: 181px;
   margin-top: 181px;
-  height: 44px;
+  height: 43px;
 }
 }
 
 
 .l-sort__create-btn {
 .l-sort__create-btn {
@@ -1584,6 +1580,7 @@ div.l-content > div.l-separator:nth-of-type(4) {
 
 
 .l-unit__stat-col--left.super-compact {
 .l-unit__stat-col--left.super-compact {
   width: 50px;
   width: 50px;
+  white-space: nowrap;
 }
 }
 
 
 .l-unit__stat-col--left.compact {
 .l-unit__stat-col--left.compact {
@@ -1926,8 +1923,8 @@ body.mobile .l-icon-shortcuts {
     0 2px 4px rgb(120 120 120 / 25%),
     0 2px 4px rgb(120 120 120 / 25%),
     inset 0 0 1px rgb(255 255 255 / 90%);
     inset 0 0 1px rgb(255 255 255 / 90%);
   z-index: 200;
   z-index: 200;
-  width: 16px;
-  height: 16px;
+  width: 34px;
+  height: 34px;
   text-align: center;
   text-align: center;
 }
 }
 
 
@@ -1945,8 +1942,8 @@ body.mobile .l-icon-shortcuts {
     0 2px 4px rgb(120 120 120 / 25%),
     0 2px 4px rgb(120 120 120 / 25%),
     inset 0 0 1px rgb(255 255 255 / 90%);
     inset 0 0 1px rgb(255 255 255 / 90%);
   z-index: 200;
   z-index: 200;
-  height: 16px;
-  width: 16px;
+  height: 34px;
+  width: 34px;
   text-align: center;
   text-align: center;
 }
 }
 
 
@@ -2181,9 +2178,15 @@ body.mobile .l-icon-shortcuts {
   display: inline-block;
   display: inline-block;
 }
 }
 
 
+.form-label,
+.form-check label {
+  color: #4b4b4b;
+  font-size: .85rem;
+  font-weight: 600;
+}
+
 .form-control {
 .form-control {
   background-color: #fff;
   background-color: #fff;
-  box-sizing: border-box;
   border: 1px solid #cfcfcf;
   border: 1px solid #cfcfcf;
   display: block;
   display: block;
   width: 100%;
   width: 100%;
@@ -2224,7 +2227,6 @@ body.mobile .l-icon-shortcuts {
 }
 }
 
 
 .form-select {
 .form-select {
-  box-sizing: border-box;
   display: block;
   display: block;
   width: 100%;
   width: 100%;
   font-weight: normal;
   font-weight: normal;
@@ -2384,13 +2386,15 @@ a.vst-text:active b {
 .login-box .vst-advanced {
 .login-box .vst-advanced {
   border-bottom: none;
   border-bottom: none;
   color: #326b9b;
   color: #326b9b;
-  padding: 2px !important;
   text-decoration: none;
   text-decoration: none;
   text-transform: uppercase;
   text-transform: uppercase;
   font-size: 0.85em !important;
   font-size: 0.85em !important;
   box-shadow: none !important;
   box-shadow: none !important;
   background: none !important;
   background: none !important;
   border: none !important;
   border: none !important;
+  height: auto !important;
+  padding: 0 !important;
+  min-width: 0 !important;
 }
 }
 
 
 .lets-encrypt-note {
 .lets-encrypt-note {
@@ -2759,14 +2763,9 @@ a.button.cancel {
   box-shadow:
   box-shadow:
     0 8px 25px rgb(0 0 0 / 30%),
     0 8px 25px rgb(0 0 0 / 30%),
     inset 0 0 2px rgb(255 255 255 / 100%);
     inset 0 0 2px rgb(255 255 255 / 100%);
-  font-family: Exo, Tahoma, Arial, Helvetica, sans-serif;
-  margin: 0;
-  padding: 0;
-  text-align: left;
   vertical-align: top;
   vertical-align: top;
   width: 500px;
   width: 500px;
   border-radius: 6px;
   border-radius: 6px;
-  cursor: default;
 }
 }
 
 
 .login .form-control {
 .login .form-control {
@@ -2783,10 +2782,10 @@ a.button.cancel {
   padding-bottom: 30px !important;
   padding-bottom: 30px !important;
 }
 }
 
 
-.page-title {
+.form-title {
   font-size: 1.4rem;
   font-size: 1.4rem;
   font-weight: 500;
   font-weight: 500;
-  padding-bottom: 20px;
+  padding-bottom: 30px;
   letter-spacing: -0.01em;
   letter-spacing: -0.01em;
 }
 }
 
 
@@ -2891,7 +2890,7 @@ div.l-content.collapsed .l-sort {
 .l-content > .units.l-center::before {
 .l-content > .units.l-center::before {
   content: "";
   content: "";
   display: block;
   display: block;
-  height: 225px;
+  height: 224px;
 }
 }
 
 
 .console-output {
 .console-output {
@@ -3170,11 +3169,11 @@ form#vstobjects.suspended {
 .search-input {
 .search-input {
   background-color: #fff;
   background-color: #fff;
   border: 1px solid #ddd;
   border: 1px solid #ddd;
-  height: 26px;
+  height: 30px;
   line-height: 28px;
   line-height: 28px;
   padding-left: 7px;
   padding-left: 7px;
   float: left;
   float: left;
-  width: 120px;
+  width: 130px;
   border-top-left-radius: 4px;
   border-top-left-radius: 4px;
   border-bottom-left-radius: 4px;
   border-bottom-left-radius: 4px;
   border-right: 0;
   border-right: 0;
@@ -3190,7 +3189,7 @@ form#vstobjects.suspended {
 }
 }
 
 
 .search-input.activated {
 .search-input.activated {
-  width: 120px;
+  width: 150px;
   visibility: visible;
   visibility: visible;
 }
 }
 
 
@@ -3322,7 +3321,6 @@ form#vstobjects.suspended {
   border-top-right-radius: 6px;
   border-top-right-radius: 6px;
   box-shadow: 0 4px 30px rgb(0 0 0 / 50%);
   box-shadow: 0 4px 30px rgb(0 0 0 / 50%);
   line-height: 0.9rem;
   line-height: 0.9rem;
-  cursor: default;
 }
 }
 
 
 .shortcuts .header {
 .shortcuts .header {
@@ -3360,10 +3358,14 @@ form#vstobjects.suspended {
   line-height: 1.4rem;
   line-height: 1.4rem;
 }
 }
 
 
+.shortcuts-inner {
+  display: flex;
+  width: 100%;
+}
+
 .shortcuts ul {
 .shortcuts ul {
+  flex-grow: 1;
   padding: 30px 20px;
   padding: 30px 20px;
-  float: left;
-  width: 360px;
 }
 }
 
 
 .shortcuts ul li {
 .shortcuts ul li {
@@ -3493,10 +3495,10 @@ form#vstobjects.suspended {
 .helper-container {
 .helper-container {
   float: right;
   float: right;
   margin-bottom: -450px;
   margin-bottom: -450px;
-  margin-top: 423px;
-  margin-right: 22px;
+  margin-top: 420px;
+  margin-right: 14px;
   padding-top: 0;
   padding-top: 0;
-  width: 600px;
+  width: 610px;
   box-shadow: 0 1px 4px rgb(0 0 0 / 15%);
   box-shadow: 0 1px 4px rgb(0 0 0 / 15%);
   border: 1px solid #cfcfcf;
   border: 1px solid #cfcfcf;
   border-radius: 4px;
   border-radius: 4px;
@@ -3558,7 +3560,7 @@ li[aria-expanded="true"] a {
 
 
 .cron-helper-tabs .form-label.first {
 .cron-helper-tabs .form-label.first {
   display: inline-block;
   display: inline-block;
-  width: 100px;
+  width: 120px;
   padding-left: 0;
   padding-left: 0;
 }
 }
 
 
@@ -3824,6 +3826,10 @@ li[aria-expanded="true"] a {
   padding-top: 30px !important;
   padding-top: 30px !important;
 }
 }
 
 
+.u-pl30 {
+  padding-left: 30px !important;
+}
+
 .u-pl50 {
 .u-pl50 {
   padding-left: 50px !important;
   padding-left: 50px !important;
 }
 }
@@ -3850,6 +3856,7 @@ li[aria-expanded="true"] a {
 
 
 .u-side-by-side {
 .u-side-by-side {
   display: flex !important;
   display: flex !important;
+  justify-content: space-between !important;
   align-items: center !important;
   align-items: center !important;
 }
 }
 
 

+ 3 - 3
web/css/src/themes/vestia.css

@@ -340,7 +340,7 @@ a.vst-text:hover b,
 
 
 .form-control:focus,
 .form-control:focus,
 .login .form-control:focus {
 .login .form-control:focus {
-  border: 1px solid #ff6701;
+  border-color: #ff6701;
   background-color: #fff4ed;
   background-color: #fff4ed;
   color: #333;
   color: #333;
 }
 }
@@ -363,7 +363,7 @@ a.vst-text:hover b,
   text-align: left;
   text-align: left;
 }
 }
 
 
-.page-title {
+.form-title {
   font-weight: 600;
   font-weight: 600;
   font-size: 1.2rem;
   font-size: 1.2rem;
 }
 }
@@ -698,7 +698,7 @@ a.vst-advanced:focus {
 }
 }
 
 
 .login .form-control {
 .login .form-control {
-  border: 1px solid #bbb;
+  border-color: #bbb;
 }
 }
 
 
 .body-login button.button,
 .body-login button.button,

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
web/css/themes/dark.min.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
web/css/themes/default.min.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
web/css/themes/vestia.min.css


+ 11 - 11
web/js/app.js

@@ -178,7 +178,7 @@ Date.prototype.format = function (mask, utc) {
 
 
 /*
 /*
  * http://code.google.com/p/flexible-js-formatting/
  * http://code.google.com/p/flexible-js-formatting/
- * 
+ *
  * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
  * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
  *
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -509,7 +509,7 @@ Date.today = function() {
     now.setHours(0);
     now.setHours(0);
     now.setMinutes(0);
     now.setMinutes(0);
     now.setSeconds(0);
     now.setSeconds(0);
-    
+
     return now;
     return now;
 }
 }
 
 
@@ -700,15 +700,15 @@ var lastScrollTop = 0;
 var App = {
 var App = {
     // Main namespases for page specific functions
     // Main namespases for page specific functions
     // Core namespaces
     // Core namespaces
-    Ajax: { 
-        Busy: {} 
+    Ajax: {
+        Busy: {}
     },
     },
     Core: {},
     Core: {},
     // CONSTANT VALUES
     // CONSTANT VALUES
     Constants: {
     Constants: {
         UNLIM_VALUE: 'unlimited', // overritten in i18n.js.php
         UNLIM_VALUE: 'unlimited', // overritten in i18n.js.php
         UNLIM_TRANSLATED_VALUE: 'unlimited' // overritten in i18n.js.php
         UNLIM_TRANSLATED_VALUE: 'unlimited' // overritten in i18n.js.php
-    }, 
+    },
     // Actions. More widly used funcs
     // Actions. More widly used funcs
     Actions: {
     Actions: {
         DB:      {},
         DB:      {},
@@ -751,8 +751,8 @@ var App = {
             }, delay*10);
             }, delay*10);
         }
         }
     },
     },
-    Settings: { 
-        GLOBAL:  {}, 
+    Settings: {
+        GLOBAL:  {},
         General: {}
         General: {}
     },
     },
     Templates: {
     Templates: {
@@ -1024,8 +1024,8 @@ hover_menu = function() {
     }
     }
 
 
     if(st == 0){
     if(st == 0){
-        nav_a.css({'min-height': '70px'});
-        nav_a.css({'height': '70px'});
+        nav_a.css({'min-height': '113px'});
+        nav_a.css({'height': '113px'});
     }
     }
 
 
     if(st < 109 ){
     if(st < 109 ){
@@ -1034,7 +1034,7 @@ hover_menu = function() {
     }
     }
 
 
     if (st <= 112 && st > 110 ) {
     if (st <= 112 && st > 110 ) {
-        nav_main.css({'padding-top': 36 - st + 109  + 'px'});
+        nav_main.css({'padding-top': 36 - st + 109 + 'px'});
     }
     }
 
 
     lastScrollTop = st;
     lastScrollTop = st;
@@ -1064,7 +1064,7 @@ function doSearch(url) {
 function elementHideShow(elementToHideOrShow,trigger){
 function elementHideShow(elementToHideOrShow,trigger){
     var el = document.getElementById(elementToHideOrShow);
     var el = document.getElementById(elementToHideOrShow);
     el.style.display = el.style.display === 'none' ? 'block' : 'none';
     el.style.display = el.style.display === 'none' ? 'block' : 'none';
-    
+
     if (typeof trigger !== 'undefined') {
     if (typeof trigger !== 'undefined') {
         trigger.querySelector('.section-hide-button').classList.toggle('fa-minus-square');
         trigger.querySelector('.section-hide-button').classList.toggle('fa-minus-square');
         trigger.querySelector('.section-hide-button').classList.toggle('fa-plus-square');
         trigger.querySelector('.section-hide-button').classList.toggle('fa-plus-square');

+ 3 - 0
web/js/init.js

@@ -617,6 +617,9 @@ $(document).ready(function(){
             $(".ui-button[data-id=vstobjects][data-action=submit]").on('click', function(ev){
             $(".ui-button[data-id=vstobjects][data-action=submit]").on('click', function(ev){
               let loadingAnimationEle = document.createElement("div");
               let loadingAnimationEle = document.createElement("div");
               loadingAnimationEle.innerHTML = '<div class="timer-container" style="float:right;"><div class="timer-button spinner"><div class="spinner-inner"></div><div class="spinner-mask"></div> <div class="spinner-mask-two"></div></div></div>';
               loadingAnimationEle.innerHTML = '<div class="timer-container" style="float:right;"><div class="timer-button spinner"><div class="spinner-inner"></div><div class="spinner-mask"></div> <div class="spinner-mask-two"></div></div></div>';
+              // improve alignment
+              var buttonStrip = this.closest(".l-unit-toolbar__buttonstrip");
+              buttonStrip.style.marginTop = "8px";
               // this both gives an indication that we've clicked and is loading, also prevents double-clicking/clicking-on-something-else while loading.
               // this both gives an indication that we've clicked and is loading, also prevents double-clicking/clicking-on-something-else while loading.
               $(".ui-button[data-id=vstobjects][data-action=submit]").replaceWith(loadingAnimationEle);
               $(".ui-button[data-id=vstobjects][data-action=submit]").replaceWith(loadingAnimationEle);
               $(".ui-button").replaceWith('');
               $(".ui-button").replaceWith('');

+ 4 - 4
web/js/pages/edit_web.js

@@ -107,7 +107,7 @@ App.Listeners.WEB.keypress_ftp_path = function() {
 //
 //
 App.Actions.WEB.add_ftp_user_form = function() {
 App.Actions.WEB.add_ftp_user_form = function() {
     var ref = $('#templates').find('.js-ftp-account-nrm').clone(true);
     var ref = $('#templates').find('.js-ftp-account-nrm').clone(true);
-    var index = $('.app-form .js-ftp-account').length + 1;
+    var index = $('.form-container .js-ftp-account').length + 1;
 
 
     ref.find('input').each(function(i, elm) {
     ref.find('input').each(function(i, elm) {
         var name = $(elm).attr('name');
         var name = $(elm).attr('name');
@@ -128,7 +128,7 @@ App.Actions.WEB.add_ftp_user_form = function() {
     $('#ftp_users').append(ref);
     $('#ftp_users').append(ref);
 
 
     var index = 1;
     var index = 1;
-    $('.app-form .ftp-user-number:visible').each(function(i, o) {
+    $('.form-container .ftp-user-number:visible').each(function(i, o) {
         $(o).text(index);
         $(o).text(index);
         index += 1;
         index += 1;
     });
     });
@@ -145,7 +145,7 @@ App.Actions.WEB.remove_ftp_user = function(elm) {
     ref.hide();
     ref.hide();
 
 
     var index = 1;
     var index = 1;
-    $('.app-form .ftp-user-number:visible').each(function(i, o) {
+    $('.form-container .ftp-user-number:visible').each(function(i, o) {
         $(o).text(index);
         $(o).text(index);
         index += 1;
         index += 1;
     });
     });
@@ -211,7 +211,7 @@ App.Actions.WEB.passwordChanged = function(elm) {
     if (ref.find('.vst-email-alert-on-psw').length == 0) {
     if (ref.find('.vst-email-alert-on-psw').length == 0) {
         var inp_name = ref.find('.v-ftp-user-is-new').prop('name');
         var inp_name = ref.find('.v-ftp-user-is-new').prop('name');
         inp_name = inp_name.replace('is_new', 'v_ftp_email');
         inp_name = inp_name.replace('is_new', 'v_ftp_email');
-        ref.find('div:last').after('<div class="u-pl50 u-mb10">\
+        ref.find('div:last').after('<div class="u-pl30 u-mb10">\
                                       <label for="' + inp_name + '" class="form-label">Send FTP credentials to email</label>\
                                       <label for="' + inp_name + '" class="form-label">Send FTP credentials to email</label>\
                                       <input type="email" class="form-control vst-email-alert-on-psw" value="" name="' + inp_name + '" id="' + inp_name + '">\
                                       <input type="email" class="form-control vst-email-alert-on-psw" value="" name="' + inp_name + '" id="' + inp_name + '">\
                                    </div>');
                                    </div>');

+ 22 - 20
web/templates/footer.html

@@ -24,29 +24,31 @@
         <i class="fas fa-times"></i>
         <i class="fas fa-times"></i>
       </div>
       </div>
     </div>
     </div>
-    <ul>
-      <li><span class="key">a</span><?=_('Add New object')?></li>
-      <li><span class="key">Ctrl + Enter</span><?=_('Save Form')?></li>
-      <li><span class="key">Ctrl + Backspace</span><?=_('Cancel saving form')?></li>
+    <div class="shortcuts-inner">
+      <ul>
+        <li><span class="key">a</span><?=_('Add New object')?></li>
+        <li><span class="key">Ctrl + Enter</span><?=_('Save Form')?></li>
+        <li><span class="key">Ctrl + Backspace</span><?=_('Cancel saving form')?></li>
 
 
-      <li class="u-pt30"><span class="key">1</span><?=_('Go to WEB list')?></li>
-      <li><span class="key">2</span><?=_('Go to DNS list')?></li>
-      <li><span class="key">3</span><?=_('Go to MAIL list')?></li>
-      <li><span class="key">4</span><?=_('Go to DB list')?></li>
-      <li><span class="key">5</span><?=_('Go to CRON list')?></li>
-      <li><span class="key">6</span><?=_('Go to BACKUP list')?></li>
-    </ul>
-    <ul>
-      <li><span class="key">f</span><?=_('Focus on search')?></li>
-      <li class="u-pt30"><span class="key">h</span><?=_('Display/Close shortcuts')?></li>
+        <li class="u-pt30"><span class="key">1</span><?=_('Go to WEB list')?></li>
+        <li><span class="key">2</span><?=_('Go to DNS list')?></li>
+        <li><span class="key">3</span><?=_('Go to MAIL list')?></li>
+        <li><span class="key">4</span><?=_('Go to DB list')?></li>
+        <li><span class="key">5</span><?=_('Go to CRON list')?></li>
+        <li><span class="key">6</span><?=_('Go to BACKUP list')?></li>
+      </ul>
+      <ul>
+        <li><span class="key">f</span><?=_('Focus on search')?></li>
+        <li class="u-pt30"><span class="key">h</span><?=_('Display/Close shortcuts')?></li>
 
 
-      <li class="u-pt30"><span class="key bigger">&larr;</span><?=_('Move backward through top menu')?></li>
-      <li><span class="key bigger">&rarr;</span><?=_('Move forward through top menu')?></li>
-      <li><span class="key">Enter</span><?=_('Enter focused element')?></li>
+        <li class="u-pt30"><span class="key bigger">&larr;</span><?=_('Move backward through top menu')?></li>
+        <li><span class="key bigger">&rarr;</span><?=_('Move forward through top menu')?></li>
+        <li><span class="key">Enter</span><?=_('Enter focused element')?></li>
 
 
-      <li class="u-pt30"><span class="key bigger">&uarr;</span><?=_('Move up through elements list')?></li>
-      <li><span class="key bigger">&darr;</span><?=_('Move down through elements list')?></li>
-    </ul>
+        <li class="u-pt30"><span class="key bigger">&uarr;</span><?=_('Move up through elements list')?></li>
+        <li><span class="key bigger">&darr;</span><?=_('Move down through elements list')?></li>
+      </ul>
+    </div>
   </div>
   </div>
 </body>
 </body>
 </html>
 </html>

+ 2 - 2
web/templates/pages/add_access_key.html

@@ -22,8 +22,8 @@
     <input type="hidden" name="token" value="<?= $_SESSION['token'] ?>">
     <input type="hidden" name="token" value="<?= $_SESSION['token'] ?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?= _('Adding Access Key'); ?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?= _('Adding Access Key'); ?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <p class="u-mb10"><?= _('Permissions'); ?></p>
         <p class="u-mb10"><?= _('Permissions'); ?></p>

+ 2 - 2
web/templates/pages/add_cron.html

@@ -332,8 +332,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding Cron Job');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding Cron Job');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-mb20">
       <div class="u-mb20">
         <label for="v_cmd" class="form-label"><?=_('Command');?></label>
         <label for="v_cmd" class="form-label"><?=_('Command');?></label>

+ 3 - 3
web/templates/pages/add_db.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding database');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding database');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <?php if (($user_plain == 'admin') && (($_GET['accept'] !== "true"))) {?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] !== "true"))) {?>
@@ -32,7 +32,7 @@
         <?php if (($user_plain == 'admin') && (empty($_GET['accept']))) {?>
         <?php if (($user_plain == 'admin') && (empty($_GET['accept']))) {?>
           <div class="u-side-by-side u-pt18">
           <div class="u-side-by-side u-pt18">
             <div><a href="/add/user/" class="vst-advanced admin-warning-button"><?=_('Add User');?></a></div>
             <div><a href="/add/user/" class="vst-advanced admin-warning-button"><?=_('Add User');?></a></div>
-            <div class="u-ml10"><a href="/add/db/?accept=true" class="vst-advanced button danger admin-warning-button"><?=_('Continue');?></a></div>
+            <div><a href="/add/db/?accept=true" class="vst-advanced button danger admin-warning-button"><?=_('Continue');?></a></div>
           </div>
           </div>
         <?php } ?>
         <?php } ?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] === "true")) || ($user_plain !== "admin")) {?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] === "true")) || ($user_plain !== "admin")) {?>

+ 3 - 3
web/templates/pages/add_dns.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding DNS Domain');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding DNS Domain');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <?php if (($user_plain == 'admin') && (($_GET['accept'] !== "true"))) {?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] !== "true"))) {?>
@@ -32,7 +32,7 @@
         <?php if (($user_plain == 'admin') && (empty($_GET['accept']))) {?>
         <?php if (($user_plain == 'admin') && (empty($_GET['accept']))) {?>
           <div class="u-side-by-side u-pt18">
           <div class="u-side-by-side u-pt18">
             <div><a href="/add/user/" class="vst-advanced admin-warning-button"><?=_('Add User');?></a></div>
             <div><a href="/add/user/" class="vst-advanced admin-warning-button"><?=_('Add User');?></a></div>
-            <div class="u-ml10"><a href="/add/dns/?accept=true" class="vst-advanced button danger admin-warning-button"><?=_('Continue');?></a></div>
+            <div><a href="/add/dns/?accept=true" class="vst-advanced button danger admin-warning-button"><?=_('Continue');?></a></div>
           </div>
           </div>
         <?php } ?>
         <?php } ?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] === "true")) || ($user_plain !== "admin")) {?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] === "true")) || ($user_plain !== "admin")) {?>

+ 2 - 2
web/templates/pages/add_dns_rec.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok_rec" value="add">
     <input type="hidden" name="ok_rec" value="add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding DNS Record');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding DNS Record');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/add_firewall.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding Firewall Rule');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding Firewall Rule');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/add_firewall_banlist.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding IP Address to Banlist');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding IP Address to Banlist');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb20">
         <div class="u-mb20">

+ 2 - 2
web/templates/pages/add_firewall_ipset.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding Firewall Ipset List');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding Firewall Ipset List');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/add_ip.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding IP address');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding IP address');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/add_key.html

@@ -23,8 +23,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Add SSH Key');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Add SSH Key');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-wide-input-width">
       <div class="u-wide-input-width">
         <label for="v_key" class="form-label"><?=_('SSH KEY') ?></label>
         <label for="v_key" class="form-label"><?=_('SSH KEY') ?></label>

+ 4 - 4
web/templates/pages/add_mail.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding Mail Domain');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding Mail Domain');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <?php if (($user_plain == 'admin') && (($_GET['accept'] !== "true"))) {?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] !== "true"))) {?>
@@ -32,7 +32,7 @@
         <?php if (($user_plain == 'admin') && (empty($_GET['accept']))) {?>
         <?php if (($user_plain == 'admin') && (empty($_GET['accept']))) {?>
           <div class="u-side-by-side u-pt18">
           <div class="u-side-by-side u-pt18">
             <div><a href="/add/user/" class="vst-advanced admin-warning-button"><?=_('Add User');?></a></div>
             <div><a href="/add/user/" class="vst-advanced admin-warning-button"><?=_('Add User');?></a></div>
-            <div class="u-ml10"><a href="/add/mail/?accept=true" class="vst-advanced button danger admin-warning-button"><?=_('Continue');?></a></div>
+            <div><a href="/add/mail/?accept=true" class="vst-advanced button danger admin-warning-button"><?=_('Continue');?></a></div>
           </div>
           </div>
         <?php } ?>
         <?php } ?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] === "true")) || ($user_plain !== "admin")) {?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] === "true")) || ($user_plain !== "admin")) {?>
@@ -90,7 +90,7 @@
               <?=_('SMTP Relay');?>
               <?=_('SMTP Relay');?>
             </label>
             </label>
           </div>
           </div>
-          <div id="smtp_relay_table" class="u-pl50" style="display:<?php if ($v_smtp_relay == 'true'){echo 'block';} else {echo 'none';} ?>;">
+          <div id="smtp_relay_table" class="u-pl30" style="display:<?php if ($v_smtp_relay == 'true'){echo 'block';} else {echo 'none';} ?>;">
             <div class="u-mb10">
             <div class="u-mb10">
               <label for="v_smtp_relay_host" class="form-label"><?=_('Host');?></label>
               <label for="v_smtp_relay_host" class="form-label"><?=_('Host');?></label>
               <input type="text" class="form-control" name="v_smtp_relay_host" id="v_smtp_relay_host" value="<?=htmlentities(trim($v_smtp_relay_host, "'"))?>">
               <input type="text" class="form-control" name="v_smtp_relay_host" id="v_smtp_relay_host" value="<?=htmlentities(trim($v_smtp_relay_host, "'"))?>">

+ 2 - 2
web/templates/pages/add_mail_acc.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok_acc" value="add">
     <input type="hidden" name="ok_acc" value="add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding Mail Account');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding Mail Account');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div style="display: flex; justify-content: space-between;">
       <div style="display: flex; justify-content: space-between;">
         <div class="u-input-width">
         <div class="u-input-width">

+ 2 - 2
web/templates/pages/add_package.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding Package');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding Package');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/add_user.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Adding User');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Adding User');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 3 - 3
web/templates/pages/add_web.html

@@ -21,8 +21,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="ok" value="Add">
     <input type="hidden" name="ok" value="Add">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Add Web Domain');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Add Web Domain');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <?php if (($user_plain == 'admin') && (($_GET['accept'] !== "true"))) {?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] !== "true"))) {?>
@@ -34,7 +34,7 @@
         <?php if (($user_plain == 'admin') && (empty($_GET['accept']))) {?>
         <?php if (($user_plain == 'admin') && (empty($_GET['accept']))) {?>
           <div class="u-side-by-side u-pt18">
           <div class="u-side-by-side u-pt18">
             <div><a href="/add/user/" class="vst-advanced admin-warning-button"><?=_('Add User');?></a></div>
             <div><a href="/add/user/" class="vst-advanced admin-warning-button"><?=_('Add User');?></a></div>
-            <div class="u-ml10"><a href="/add/web/?accept=true" class="vst-advanced button danger admin-warning-button"><?=_('Continue');?></a></div>
+            <div><a href="/add/web/?accept=true" class="vst-advanced button danger admin-warning-button"><?=_('Continue');?></a></div>
           </div>
           </div>
         <?php } ?>
         <?php } ?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] === "true")) || ($user_plain !== "admin")) {?>
         <?php if (($user_plain == 'admin') && (($_GET['accept'] === "true")) || ($user_plain !== "admin")) {?>

+ 2 - 2
web/templates/pages/edit_backup_exclusions.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing Backup Exclusions');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing Backup Exclusions');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-wide-input-width">
       <div class="u-wide-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/edit_cron.html

@@ -332,8 +332,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing Cron Job');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing Cron Job');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-mb20">
       <div class="u-mb20">
         <label for="v_cmd" class="form-label"><?=_('Command');?></label>
         <label for="v_cmd" class="form-label"><?=_('Command');?></label>

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

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing Database');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing Database');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/edit_dns.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing DNS Domain');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing DNS Domain');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/edit_dns_rec.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing DNS Record');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing DNS Record');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/edit_firewall.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing Firewall Rule');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing Firewall Rule');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/edit_ip.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing IP Address');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing IP Address');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 4 - 4
web/templates/pages/edit_mail.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing Mail Domain');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing Mail Domain');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb20">
         <div class="u-mb20">
@@ -88,7 +88,7 @@
             <?=_('SSL Support');?>
             <?=_('SSL Support');?>
           </label>
           </label>
         </div>
         </div>
-        <div id="ssltable" class="u-pl50" style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;">
+        <div id="ssltable" class="u-pl30" style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;">
           <div class="form-check u-mb10">
           <div class="form-check u-mb10">
             <input class="form-check-input" type="checkbox" name="v_letsencrypt" id="v_letsencrypt" onclick="javascript:elementHideShow('ssl-details');App.Actions.MAIL.toggle_letsencrypt(this);" <?php if($v_letsencrypt == 'yes' || $v_letsencrypt == 'on') echo 'checked' ?>">
             <input class="form-check-input" type="checkbox" name="v_letsencrypt" id="v_letsencrypt" onclick="javascript:elementHideShow('ssl-details');App.Actions.MAIL.toggle_letsencrypt(this);" <?php if($v_letsencrypt == 'yes' || $v_letsencrypt == 'on') echo 'checked' ?>">
             <label for="v_letsencrypt">
             <label for="v_letsencrypt">
@@ -190,7 +190,7 @@
             <?=_('SMTP Relay');?>
             <?=_('SMTP Relay');?>
           </label>
           </label>
         </div>
         </div>
-        <div id="smtp_relay_table" class="u-pl50" style="display:<?php if ($v_smtp_relay == 'true') {echo 'block';} else {echo 'none';} ?>;">
+        <div id="smtp_relay_table" class="u-pl30" style="display:<?php if ($v_smtp_relay == 'true') {echo 'block';} else {echo 'none';} ?>;">
           <div class="u-mb10">
           <div class="u-mb10">
             <label for="v_smtp_relay_host" class="form-label"><?=_('Host');?></label>
             <label for="v_smtp_relay_host" class="form-label"><?=_('Host');?></label>
             <input type="text" class="form-control" name="v_smtp_relay_host" id="v_smtp_relay_host" value="<?=htmlentities(trim($v_smtp_relay_host, "'"))?>">
             <input type="text" class="form-control" name="v_smtp_relay_host" id="v_smtp_relay_host" value="<?=htmlentities(trim($v_smtp_relay_host, "'"))?>">

+ 2 - 2
web/templates/pages/edit_mail_acc.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing Mail Account');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing Mail Account');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div style="display: flex; justify-content: space-between;">
       <div style="display: flex; justify-content: space-between;">
         <div class="u-input-width">
         <div class="u-input-width">

+ 8 - 8
web/templates/pages/edit_package.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing Package');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing Package');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">
@@ -177,37 +177,37 @@
                 echo '<div class="u-side-by-side u-mb5">
                 echo '<div class="u-side-by-side u-mb5">
                   <input type="text" class="form-control" name="v_ns3" value="'.htmlentities(trim($v_ns3, "'")).'">
                   <input type="text" class="form-control" name="v_ns3" value="'.htmlentities(trim($v_ns3, "'")).'">
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
-                </tr>';
+                </div>';
               }
               }
               if($v_ns4) {
               if($v_ns4) {
                 echo '<div class="u-side-by-side u-mb5">
                 echo '<div class="u-side-by-side u-mb5">
                   <input type="text" class="form-control" name="v_ns4" value="'.htmlentities(trim($v_ns4, "'")).'">
                   <input type="text" class="form-control" name="v_ns4" value="'.htmlentities(trim($v_ns4, "'")).'">
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
-                </tr>';
+                </div>';
               }
               }
               if($v_ns5) {
               if($v_ns5) {
                 echo '<div class="u-side-by-side u-mb5">
                 echo '<div class="u-side-by-side u-mb5">
                   <input type="text" class="form-control" name="v_ns5" value="'.htmlentities(trim($v_ns5, "'")).'">
                   <input type="text" class="form-control" name="v_ns5" value="'.htmlentities(trim($v_ns5, "'")).'">
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
-                </tr>';
+                </div>';
               }
               }
               if($v_ns6) {
               if($v_ns6) {
                 echo '<div class="u-side-by-side u-mb5">
                 echo '<div class="u-side-by-side u-mb5">
                   <input type="text" class="form-control" name="v_ns6" value="'.htmlentities(trim($v_ns6, "'")).'">
                   <input type="text" class="form-control" name="v_ns6" value="'.htmlentities(trim($v_ns6, "'")).'">
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
-                </tr>';
+                </div>';
               }
               }
               if($v_ns7) {
               if($v_ns7) {
                 echo '<div class="u-side-by-side u-mb5">
                 echo '<div class="u-side-by-side u-mb5">
                   <input type="text" class="form-control" name="v_ns7" value="'.htmlentities(trim($v_ns7, "'")).'">
                   <input type="text" class="form-control" name="v_ns7" value="'.htmlentities(trim($v_ns7, "'")).'">
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
-                </tr>';
+                </div>';
               }
               }
               if($v_ns8) {
               if($v_ns8) {
                 echo '<div class="u-side-by-side u-mb5">
                 echo '<div class="u-side-by-side u-mb5">
                   <input type="text" class="form-control" name="v_ns8" value="'.htmlentities(trim($v_ns8, "'")).'">
                   <input type="text" class="form-control" name="v_ns8" value="'.htmlentities(trim($v_ns8, "'")).'">
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
                   <span class="js-remove-ns u-ml10"><i class="fas fa-trash status-icon dim red"></i></span>
-                </tr>';
+                </div>';
               }
               }
             ?>
             ?>
             <div class="u-pt18 js-add-ns" <?php if ($v_ns8) echo 'style="display:none;"'; ?>>
             <div class="u-pt18 js-add-ns" <?php if ($v_ns8) echo 'style="display:none;"'; ?>>

+ 455 - 441
web/templates/pages/edit_server.html

@@ -23,8 +23,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Configuring Server');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Configuring Server');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-wide-input-width">
       <div class="u-wide-input-width">
 
 
@@ -34,69 +34,71 @@
             <i class="fas fa-cog"></i><b><?=_('Basic options');?> <img src="/images/arrow.png" alt=""></b>
             <i class="fas fa-cog"></i><b><?=_('Basic options');?> <img src="/images/arrow.png" alt=""></b>
           </a>
           </a>
         </h2>
         </h2>
-        <div id="basic" class="u-pl50 u-mb20 u-input-width" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
-          <div class="u-mb10">
-            <label for="v_hostname" class="form-label"><?=_('Hostname');?></label>
-            <input type="text" class="form-control" name="v_hostname" id="v_hostname" value="<?=htmlentities(trim($v_hostname, "'"))?>">
-          </div>
-          <div class="u-mb10">
-            <label for="v_timezone" class="form-label"><?=_('Time Zone');?></label>
-            <select class="form-select" name="v_timezone" id="v_timezone">
-              <?php
-                foreach ($v_timezones as $key => $value) {
-                  echo "\t\t\t\t<option value=\"".$key."\"";
-                  if ((!empty($v_timezone)) && ( $key == $v_timezone)){
-                    echo ' selected' ;
-                  }
-                  if($key == "UTC" && $v_timezone == "Etc/UTC"){
-                    echo ' selected' ;
-                  }
-                  echo ">".$value."</option>\n";
-                }
-              ?>
-            </select>
-          </div>
-          <div class="u-mb10">
-            <label for="v_theme" class="form-label"><?=_('Theme');?></label>
-            <select class="form-select" name="v_theme" id="v_theme">
-              <?php
-                foreach ($theme as $key => $value) {
-                  echo "\t\t\t\t<option value=\"".$value."\"";
-                  if (($value == $_SESSION['THEME'])){
-                    echo ' selected' ;
+        <div id="basic" class="u-pl50 u-mt20 u-mb20" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
+          <div class="u-input-width">
+            <div class="u-mb10">
+              <label for="v_hostname" class="form-label"><?=_('Hostname');?></label>
+              <input type="text" class="form-control" name="v_hostname" id="v_hostname" value="<?=htmlentities(trim($v_hostname, "'"))?>">
+            </div>
+            <div class="u-mb10">
+              <label for="v_timezone" class="form-label"><?=_('Time Zone');?></label>
+              <select class="form-select" name="v_timezone" id="v_timezone">
+                <?php
+                  foreach ($v_timezones as $key => $value) {
+                    echo "\t\t\t\t<option value=\"".$key."\"";
+                    if ((!empty($v_timezone)) && ( $key == $v_timezone)){
+                      echo ' selected' ;
+                    }
+                    if($key == "UTC" && $v_timezone == "Etc/UTC"){
+                      echo ' selected' ;
+                    }
+                    echo ">".$value."</option>\n";
                   }
                   }
-                  echo ">".$value."</option>\n";
-                }
-              ?>
-            </select>
-          </div>
-          <div class="form-check u-mb20">
-            <input class="form-check-input" type="checkbox" name="v_policy_user_change_theme" id="v_policy_user_change_theme" <?php if ((isset($_SESSION['POLICY_USER_CHANGE_THEME'])) && (!empty($_SESSION['POLICY_USER_CHANGE_THEME'])) && ($_SESSION['POLICY_USER_CHANGE_THEME'] == "no")) echo 'checked' ?>>
-            <label for="v_policy_user_change_theme">
-              <?=_('Set as selected theme for all users');?>
-            </label>
-          </div>
-          <div class="u-mb10">
-            <label for="v_language" class="form-label"><?=_('Default Language');?></label>
-            <select class="form-select" name="v_language" id="v_language">
-              <?php
-                foreach ($languages as $key => $value) {
-                  echo "\n\t\t\t\t\t\t\t\t\t<option value=\"".$key."\"";
-                  if (( $key == $_SESSION['LANGUAGE'] && (empty($v_language)) )) {
-                    echo 'selected' ;
+                ?>
+              </select>
+            </div>
+            <div class="u-mb10">
+              <label for="v_theme" class="form-label"><?=_('Theme');?></label>
+              <select class="form-select" name="v_theme" id="v_theme">
+                <?php
+                  foreach ($theme as $key => $value) {
+                    echo "\t\t\t\t<option value=\"".$value."\"";
+                    if (($value == $_SESSION['THEME'])){
+                      echo ' selected' ;
+                    }
+                    echo ">".$value."</option>\n";
                   }
                   }
-                  echo ">".htmlentities($value)."</option>\n";
-                }
-              ?>
-            </select>
-          </div>
-          <div class="u-mb10">
-            <div class="form-check">
-              <input class="form-check-input" type="checkbox" name="v_language_update" id="v_language_update">
-              <label for="v_language_update">
-                <?=_('Set as default language for all users');?>
+                ?>
+              </select>
+            </div>
+            <div class="form-check u-mb20">
+              <input class="form-check-input" type="checkbox" name="v_policy_user_change_theme" id="v_policy_user_change_theme" <?php if ((isset($_SESSION['POLICY_USER_CHANGE_THEME'])) && (!empty($_SESSION['POLICY_USER_CHANGE_THEME'])) && ($_SESSION['POLICY_USER_CHANGE_THEME'] == "no")) echo 'checked' ?>>
+              <label for="v_policy_user_change_theme">
+                <?=_('Set as selected theme for all users');?>
               </label>
               </label>
             </div>
             </div>
+            <div class="u-mb10">
+              <label for="v_language" class="form-label"><?=_('Default Language');?></label>
+              <select class="form-select" name="v_language" id="v_language">
+                <?php
+                  foreach ($languages as $key => $value) {
+                    echo "\n\t\t\t\t\t\t\t\t\t<option value=\"".$key."\"";
+                    if (( $key == $_SESSION['LANGUAGE'] && (empty($v_language)) )) {
+                      echo 'selected' ;
+                    }
+                    echo ">".htmlentities($value)."</option>\n";
+                  }
+                ?>
+              </select>
+            </div>
+            <div class="u-mb10">
+              <div class="form-check">
+                <input class="form-check-input" type="checkbox" name="v_language_update" id="v_language_update">
+                <label for="v_language_update">
+                  <?=_('Set as default language for all users');?>
+                </label>
+              </div>
+            </div>
           </div>
           </div>
         </div>
         </div>
 
 
@@ -106,14 +108,14 @@
             <i class="fas fa-code-branch"></i><b><?=_('Updates');?> <img src="/images/arrow.png" alt=""></b>
             <i class="fas fa-code-branch"></i><b><?=_('Updates');?> <img src="/images/arrow.png" alt=""></b>
           </a>
           </a>
         </h2>
         </h2>
-        <div id="version" class="u-pl50 u-mb20" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
+        <div id="version" class="u-pl50 u-mt20 u-mb20" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
           <p class="u-mb10">
           <p class="u-mb10">
             <?=_('Version'); ?>: <span class="optional"><?=$_SESSION['VERSION'];?></span>
             <?=_('Version'); ?>: <span class="optional"><?=$_SESSION['VERSION'];?></span>
           </p>
           </p>
           <?php if ($_SESSION['RELEASE_BRANCH'] !== 'release') {?>
           <?php if ($_SESSION['RELEASE_BRANCH'] !== 'release') {?>
             <p><?=_('Release'); ?>: <span class="optional"><?=$_SESSION['RELEASE_BRANCH'];?></span></p>
             <p><?=_('Release'); ?>: <span class="optional"><?=$_SESSION['RELEASE_BRANCH'];?></span></p>
           <?php } ?>
           <?php } ?>
-          <p class="u-mb10"><?=_('Options'); ?></p>
+          <p class="u-mb5"><?=_('Options'); ?></p>
           <div class="form-check">
           <div class="form-check">
             <input class="form-check-input" type="checkbox" name="v_debug_mode" id="v_debug_mode" <?php if ((isset($_SESSION['DEBUG_MODE'])) && (!empty($_SESSION['DEBUG_MODE'])) && ($_SESSION['DEBUG_MODE'] == "true")) echo 'checked' ?>>
             <input class="form-check-input" type="checkbox" name="v_debug_mode" id="v_debug_mode" <?php if ((isset($_SESSION['DEBUG_MODE'])) && (!empty($_SESSION['DEBUG_MODE'])) && ($_SESSION['DEBUG_MODE'] == "true")) echo 'checked' ?>>
             <label for="v_debug_mode">
             <label for="v_debug_mode">
@@ -147,75 +149,77 @@
             <i class="fas fa-globe-americas"></i><b><?=_('Web Server');?> <img src="/images/arrow.png" alt=""></b>
             <i class="fas fa-globe-americas"></i><b><?=_('Web Server');?> <img src="/images/arrow.png" alt=""></b>
           </a>
           </a>
         </h2>
         </h2>
-        <div id="web" class="u-pl50 u-mb20 u-input-width" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
-          <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
-            <p>
-              <?=_('Proxy Server');?>: <span class="optional"><?=$_SESSION['PROXY_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['PROXY_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
-            </p>
-          <?php } ?>
-          <?php if (!empty($_SESSION['WEB_SYSTEM'])) { ?>
-            <p>
-              <?=_('Web Server');?>: <span class="optional"><?=$_SESSION['WEB_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['WEB_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
-            </p>
-          <?php } ?>
-          <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
-            <p>
-              <?=_('Backend Server');?>: <span class="optional"><?=$_SESSION['WEB_BACKEND']; ?> <a href="/edit/server/<? echo $_SESSION['WEB_BACKEND'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
-            </p>
-          <?php } ?>
-          <?php if (!empty($_SESSION['WEB_BACKEND_POOL'])) { ?>
-            <p>
-              <?=_('Backend Pool Mode');?>: <span class="optional"><?=$_SESSION['WEB_BACKEND_POOL']; ?></span>
-            </p>
-          <?php } ?>
-          <?php if(count($v_php_versions)): ?>
-            <div class="u-pt18">
-              <p class="u-mb10"><?=_('Enabled multi PHP versions');?></p>
-              <div class="alert alert-info alert-with-icon u-mb10" role="alert">
-                <i class="fas fa-info"></i>
-                <p><?=_('Please wait while php is installed or removed');?></p>
-              </div>
-            </div>
-            <?php foreach($v_php_versions as $php_version): ?>
-              <div class="form-check">
-                <input class="form-check-input" type="checkbox"
-                  <?=$php_version->installed?'checked':''; ?>
-                  <?=$php_version->protected?'disabled':''; ?>
-                  id="<?=$php_version->name?>"
-                  name="v_php_versions[<?=$php_version->tpl?>]">
-                <label for="<?=$php_version->name?>">
-                  <?=$php_version->name?>
-                </label>
+        <div id="web" class="u-pl50 u-mt20 u-mb20" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
+          <div class="u-input-width">
+            <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
+              <p>
+                <?=_('Proxy Server');?>: <span class="optional"><?=$_SESSION['PROXY_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['PROXY_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
+              </p>
+            <?php } ?>
+            <?php if (!empty($_SESSION['WEB_SYSTEM'])) { ?>
+              <p>
+                <?=_('Web Server');?>: <span class="optional"><?=$_SESSION['WEB_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['WEB_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
+              </p>
+            <?php } ?>
+            <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
+              <p>
+                <?=_('Backend Server');?>: <span class="optional"><?=$_SESSION['WEB_BACKEND']; ?> <a href="/edit/server/<? echo $_SESSION['WEB_BACKEND'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
+              </p>
+            <?php } ?>
+            <?php if (!empty($_SESSION['WEB_BACKEND_POOL'])) { ?>
+              <p>
+                <?=_('Backend Pool Mode');?>: <span class="optional"><?=$_SESSION['WEB_BACKEND_POOL']; ?></span>
+              </p>
+            <?php } ?>
+            <?php if(count($v_php_versions)): ?>
+              <div class="u-mt15">
+                <p class="u-mb10"><?=_('Enabled multi PHP versions');?></p>
+                <div class="alert alert-info alert-with-icon u-mb10" role="alert">
+                  <i class="fas fa-info"></i>
+                  <p><?=_('Please wait while php is installed or removed');?></p>
+                </div>
               </div>
               </div>
-              <?php foreach($php_version->usedby as $wd_user => $wd_domains ): ?>
-                <?php foreach($wd_domains as $wd_domain ): ?>
-                  <p style="border: 1px lightgrey; padding:0 10px;">
-                    <span>
-                      <i class="fas fa-user"></i>
-                      <?=$wd_user;?>
-                    </span>
-                    <span class="optional" style="float:right"><?=$wd_domain;?></span>
-                  </p>
+              <?php foreach($v_php_versions as $php_version): ?>
+                <div class="form-check">
+                  <input class="form-check-input" type="checkbox"
+                    <?=$php_version->installed?'checked':''; ?>
+                    <?=$php_version->protected?'disabled':''; ?>
+                    id="<?=$php_version->name?>"
+                    name="v_php_versions[<?=$php_version->tpl?>]">
+                  <label for="<?=$php_version->name?>">
+                    <?=$php_version->name?>
+                  </label>
+                </div>
+                <?php foreach($php_version->usedby as $wd_user => $wd_domains ): ?>
+                  <?php foreach($wd_domains as $wd_domain ): ?>
+                    <p class="u-side-by-side" style="border: 1px lightgrey; padding:0 10px;">
+                      <span>
+                        <i class="fas fa-user"></i>
+                        <?=$wd_user;?>
+                      </span>
+                      <span class="optional"><?=$wd_domain;?></span>
+                    </p>
+                  <?php endforeach; ?>
                 <?php endforeach; ?>
                 <?php endforeach; ?>
               <?php endforeach; ?>
               <?php endforeach; ?>
-            <?php endforeach; ?>
-          <?php endif; ?>
-          <?php if(!empty($_SESSION['WEB_BACKEND'])){ ?>
-            <div class="u-pt6 u-mb10">
-              <label for="v_php_default_version" class="form-label"><?=_('System PHP version');?></label>
-              <select class="form-select" name="v_php_default_version" id="v_php_default_version">
-                <?php
-                  foreach ($v_php_versions as $php_version) {
-                  if ($php_version -> installed) {
-                ?>
-                <option value="<?=$php_version->version; ?>" <?php if($php_version->name == DEFAULT_PHP_VERSION){ echo "selected" ;}?> ><?=$php_version->name; ?></option>
-                <?php
-                }
-                }
-                ?>
-              </select>
-            </div>
-          <?php } ?>
+            <?php endif; ?>
+            <?php if(!empty($_SESSION['WEB_BACKEND'])){ ?>
+              <div class="u-pt6 u-mb10">
+                <label for="v_php_default_version" class="form-label"><?=_('System PHP version');?></label>
+                <select class="form-select" name="v_php_default_version" id="v_php_default_version">
+                  <?php
+                    foreach ($v_php_versions as $php_version) {
+                    if ($php_version -> installed) {
+                  ?>
+                  <option value="<?=$php_version->version; ?>" <?php if($php_version->name == DEFAULT_PHP_VERSION){ echo "selected" ;}?> ><?=$php_version->name; ?></option>
+                  <?php
+                  }
+                  }
+                  ?>
+                </select>
+              </div>
+            <?php } ?>
+          </div>
         </div>
         </div>
 
 
         <!-- DNS Server tab -->
         <!-- DNS Server tab -->
@@ -225,7 +229,7 @@
               <i class="fas fa-atlas"></i><b><?=_('DNS Server');?> <img src="/images/arrow.png" alt=""></b>
               <i class="fas fa-atlas"></i><b><?=_('DNS Server');?> <img src="/images/arrow.png" alt=""></b>
             </a>
             </a>
           </h2>
           </h2>
-          <div id="dns" class="u-pl50 u-mb20 u-input-width" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
+          <div id="dns" class="u-pl50 u-mt20 u-mb20" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
             <p>
             <p>
               <?=_('DNS Server');?>: <span class="optional"><?=$_SESSION['DNS_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['DNS_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
               <?=_('DNS Server');?>: <span class="optional"><?=$_SESSION['DNS_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['DNS_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
             </p>
             </p>
@@ -237,7 +241,7 @@
               foreach ($dns_cluster as $key => $value) {
               foreach ($dns_cluster as $key => $value) {
                 $i++;
                 $i++;
               ?>
               ?>
-              <div class="u-mb10">
+              <div class="u-input-width">
                 <label for="v_dns_remote_host" class="form-label"><?=_('Host'). ' #'.$i ?></label>
                 <label for="v_dns_remote_host" class="form-label"><?=_('Host'). ' #'.$i ?></label>
                 <input type="text" class="form-control" name="v_dns_remote_host" id="v_dns_remote_host" value="<?=$key; ?>" disabled>
                 <input type="text" class="form-control" name="v_dns_remote_host" id="v_dns_remote_host" value="<?=$key; ?>" disabled>
               </div>
               </div>
@@ -252,7 +256,7 @@
               <i class="fas fa-mail-bulk"></i><b><?=_('Mail Server');?> <img src="/images/arrow.png" alt=""></b>
               <i class="fas fa-mail-bulk"></i><b><?=_('Mail Server');?> <img src="/images/arrow.png" alt=""></b>
             </a>
             </a>
           </h2>
           </h2>
-          <div id="mail" class="u-pl50 u-mb20" style="display:<?php if (empty($v_mail_adv)) echo 'none';?> ;">
+          <div id="mail" class="u-pl50 u-mt20 u-mb20" style="display:<?php if (empty($v_mail_adv)) echo 'none';?> ;">
             <p>
             <p>
               <?=_('Mail Server');?>: <span class="optional"><?=$_SESSION['MAIL_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['MAIL_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
               <?=_('Mail Server');?>: <span class="optional"><?=$_SESSION['MAIL_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['MAIL_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
             </p>
             </p>
@@ -267,7 +271,7 @@
               </p>
               </p>
             <?php } ?>
             <?php } ?>
             <?php if($_SESSION['WEBMAIL_SYSTEM']){?>
             <?php if($_SESSION['WEBMAIL_SYSTEM']){?>
-              <div class="u-input-width u-mt20 u-mb10">
+              <div class="u-input-width u-mt15 u-mb10">
                 <label for="v_webmail_alias" class="form-label">
                 <label for="v_webmail_alias" class="form-label">
                   <?=_('Webmail URL');?> <span class="hint">(<?=$_SESSION['WEBMAIL_ALIAS'];?>.example.com)</span>
                   <?=_('Webmail URL');?> <span class="hint">(<?=$_SESSION['WEBMAIL_ALIAS'];?>.example.com)</span>
                 </label>
                 </label>
@@ -280,23 +284,25 @@
                 <?=_('Global SMTP Relay');?>
                 <?=_('Global SMTP Relay');?>
               </label>
               </label>
             </div>
             </div>
-            <div id="smtp_relay_table" class="u-pl50 u-input-width" style="display:<?php if ($v_smtp_relay == 'true') {echo 'block';} else {echo 'none';} ?>;">
-              <div class="u-mb10">
-                <label for="v_smtp_relay_host" class="form-label"><?=_('Host');?></label>
-                <input type="text" class="form-control" name="v_smtp_relay_host" id="v_smtp_relay_host" value="<?=htmlentities(trim($v_smtp_relay_host, "'"))?>">
-              </div>
-              <div class="u-mb10">
-                <label for="v_smtp_relay_port" class="form-label"><?=_('Port');?></label>
-                <input type="text" class="form-control" name="v_smtp_relay_port" id="v_smtp_relay_port" value="<?=htmlentities(trim($v_smtp_relay_port, "'"))?>">
-              </div>
-              <div class="u-mb10">
-                <label for="v_smtp_relay_user" class="form-label"><?=_('Username');?></label>
-                <input type="text" class="form-control" name="v_smtp_relay_user" id="v_smtp_relay_user" value="<?=htmlentities(trim($v_smtp_relay_user, "'"))?>">
-              </div>
-              <div class="u-mb10">
-                <label for="v_smtp_relay_pass" class="form-label"><?=_('Password');?></label>
-                <div class="u-pos-relative">
-                  <input type="text" class="form-control js-password-input" name="v_smtp_relay_pass" id="v_smtp_relay_pass">
+            <div id="smtp_relay_table" class="u-pl30" style="display:<?php if ($v_smtp_relay == 'true') {echo 'block';} else {echo 'none';} ?>;">
+              <div class="u-input-width">
+                <div class="u-mb10">
+                  <label for="v_smtp_relay_host" class="form-label"><?=_('Host');?></label>
+                  <input type="text" class="form-control" name="v_smtp_relay_host" id="v_smtp_relay_host" value="<?=htmlentities(trim($v_smtp_relay_host, "'"))?>">
+                </div>
+                <div class="u-mb10">
+                  <label for="v_smtp_relay_port" class="form-label"><?=_('Port');?></label>
+                  <input type="text" class="form-control" name="v_smtp_relay_port" id="v_smtp_relay_port" value="<?=htmlentities(trim($v_smtp_relay_port, "'"))?>">
+                </div>
+                <div class="u-mb10">
+                  <label for="v_smtp_relay_user" class="form-label"><?=_('Username');?></label>
+                  <input type="text" class="form-control" name="v_smtp_relay_user" id="v_smtp_relay_user" value="<?=htmlentities(trim($v_smtp_relay_user, "'"))?>">
+                </div>
+                <div class="u-mb10">
+                  <label for="v_smtp_relay_pass" class="form-label"><?=_('Password');?></label>
+                  <div class="u-pos-relative">
+                    <input type="text" class="form-control js-password-input" name="v_smtp_relay_pass" id="v_smtp_relay_pass">
+                  </div>
                 </div>
                 </div>
               </div>
               </div>
             </div>
             </div>
@@ -310,7 +316,7 @@
               <i class="fas fa-database"></i><b><?=_('Databases');?> <img src="/images/arrow.png" alt=""></b>
               <i class="fas fa-database"></i><b><?=_('Databases');?> <img src="/images/arrow.png" alt=""></b>
             </a>
             </a>
           </h2>
           </h2>
-          <div id="db" class="u-pl50 u-mb20" style="display:<?php if (empty($v_db_adv)) echo 'none';?> ;">
+          <div id="db" class="u-pl50 u-mt20 u-mb20" style="display:<?php if (empty($v_db_adv)) echo 'none';?> ;">
             <div class="u-input-width">
             <div class="u-input-width">
               <div class="u-mb10">
               <div class="u-mb10">
                 <label for="v_mysql" class="form-label">
                 <label for="v_mysql" class="form-label">
@@ -343,7 +349,7 @@
               foreach ($v_mysql_hosts as $value) {
               foreach ($v_mysql_hosts as $value) {
                 $i++;
                 $i++;
               ?>
               ?>
-              <div class="u-input-width u-pl50">
+              <div class="u-input-width u-pl30">
                 <div class="u-mb10">
                 <div class="u-mb10">
                   <label for="v_mysql_host" class="form-label"><?=_('Host'). ' #'.$i ?></label>
                   <label for="v_mysql_host" class="form-label"><?=_('Host'). ' #'.$i ?></label>
                   <input type="text" class="form-control" name="v_mysql_host" id="v_mysql_host" value="<?=$value['HOST']?>" disabled>
                   <input type="text" class="form-control" name="v_mysql_host" id="v_mysql_host" value="<?=$value['HOST']?>" disabled>
@@ -393,7 +399,7 @@
               foreach ($v_pgsql_hosts as $value) {
               foreach ($v_pgsql_hosts as $value) {
                 $i++;
                 $i++;
               ?>
               ?>
-              <div class="u-input-width u-pl50">
+              <div class="u-input-width u-pl30">
                 <div class="u-mb10">
                 <div class="u-mb10">
                   <label for="v_pgsql_host" class="form-label"><?=_('Host'). ' #'.$i ?></label>
                   <label for="v_pgsql_host" class="form-label"><?=_('Host'). ' #'.$i ?></label>
                   <input type="text" class="form-control" name="v_pgsql_host" id="v_pgsql_host" value="<?=$value['HOST']?>" disabled>
                   <input type="text" class="form-control" name="v_pgsql_host" id="v_pgsql_host" value="<?=$value['HOST']?>" disabled>
@@ -421,7 +427,7 @@
             <i class="fas fa-undo"></i><b><?=_('Backups');?> <img src="/images/arrow.png" alt=""></b>
             <i class="fas fa-undo"></i><b><?=_('Backups');?> <img src="/images/arrow.png" alt=""></b>
           </a>
           </a>
         </h2>
         </h2>
-        <div id="backup" class="u-pl50 u-mb20" style="<?php if (empty($v_backup_adv)) echo 'display:none';?> ;">
+        <div id="backup" class="u-pl50 u-mt20 u-mb20" style="<?php if (empty($v_backup_adv)) echo 'display:none';?> ;">
           <div class="u-input-width">
           <div class="u-input-width">
             <div class="u-mb10">
             <div class="u-mb10">
               <label for="v_backup" class="form-label"><?=_('Local backup');?></label>
               <label for="v_backup" class="form-label"><?=_('Local backup');?></label>
@@ -462,64 +468,66 @@
               </label>
               </label>
             </div>
             </div>
           </div>
           </div>
-          <div id="remote_backup" class="u-pl50 u-mb20 u-input-width" style="display:<?php if (empty($v_backup_remote_adv)) echo 'none';?> ;">
-            <div class="u-mb10">
-              <label for="backup_type" class="form-label">
-                <?=_('Protocol');?> <a target="_blank" href="http://docs.hestiacp.com/admin_docs/backups.html#what-kind-of-protocols-are-currently-supported"><i class="fas fa-question-circle"></i></a>
-              </label>
-              <select class="form-select" name="v_backup_type" id="backup_type">
-                <option value='ftp'><?=_('ftp'); ?></option>
-                <option value='sftp' <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'")  == 'sftp' )) echo 'selected="selected"'; ?>><?=_('sftp'); ?></option>
-                <option value="b2" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'")  == 'b2' )) echo 'selected="selected"'; ?>><?=_('Backblaze'); ?>
-                <option value="rclone" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'")  == 'rclone' )) echo 'selected="selected"'; ?>><?=_('Rclone'); ?>
-              </select>
-            </div>
-            <div id="backup_sftp" style="display: <?php if ((!empty($v_backup_type)) && !in_array(trim($v_backup_type, "'"),array('ftp','sftp'))){ echo 'none';} else {echo 'block';} ?>">
-              <div class="u-mb10">
-                <label for="v_backup_host" class="form-label"><?=_('Host');?></label>
-                <input type="text" class="form-control" name="v_backup_host" id="v_backup_host" value="<?=trim($v_backup_host, "'")?>">
-              </div>
-              <div class="u-mb20">
-                <label for="v_backup_port" class="form-label"><?=_('Port');?></label>
-                <input type="text" class="form-control" name="v_backup_port" id="v_backup_port" value="<?=trim($v_backup_port, "'")?>">
-              </div>
+          <div id="remote_backup" class="u-pl50 u-mt20 u-mb20" style="display:<?php if (empty($v_backup_remote_adv)) echo 'none';?> ;">
+            <div class="u-input-width">
               <div class="u-mb10">
               <div class="u-mb10">
-                <label for="v_backup_username" class="form-label"><?=_('Username');?></label>
-                <input type="text" class="form-control" name="v_backup_username" id="v_backup_username" value="<?=trim($v_backup_username, "'")?>">
+                <label for="backup_type" class="form-label">
+                  <?=_('Protocol');?> <a target="_blank" href="http://docs.hestiacp.com/admin_docs/backups.html#what-kind-of-protocols-are-currently-supported"><i class="fas fa-question-circle"></i></a>
+                </label>
+                <select class="form-select" name="v_backup_type" id="backup_type">
+                  <option value='ftp'><?=_('ftp'); ?></option>
+                  <option value='sftp' <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'")  == 'sftp' )) echo 'selected="selected"'; ?>><?=_('sftp'); ?></option>
+                  <option value="b2" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'")  == 'b2' )) echo 'selected="selected"'; ?>><?=_('Backblaze'); ?>
+                  <option value="rclone" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'")  == 'rclone' )) echo 'selected="selected"'; ?>><?=_('Rclone'); ?>
+                </select>
               </div>
               </div>
-              <div class="u-mb20">
-                <label for="v_backup_password" class="form-label"><?=_('Password');?></label>
-                <div class="u-pos-relative">
-                  <input type="text" class="form-control js-password-input" name="v_backup_password" id="v_backup_password" value="<?=trim($v_backup_password, "'")?>">
+              <div id="backup_sftp" style="display: <?php if ((!empty($v_backup_type)) && !in_array(trim($v_backup_type, "'"),array('ftp','sftp'))){ echo 'none';} else {echo 'block';} ?>">
+                <div class="u-mb10">
+                  <label for="v_backup_host" class="form-label"><?=_('Host');?></label>
+                  <input type="text" class="form-control" name="v_backup_host" id="v_backup_host" value="<?=trim($v_backup_host, "'")?>">
+                </div>
+                <div class="u-mb20">
+                  <label for="v_backup_port" class="form-label"><?=_('Port');?></label>
+                  <input type="text" class="form-control" name="v_backup_port" id="v_backup_port" value="<?=trim($v_backup_port, "'")?>">
+                </div>
+                <div class="u-mb10">
+                  <label for="v_backup_username" class="form-label"><?=_('Username');?></label>
+                  <input type="text" class="form-control" name="v_backup_username" id="v_backup_username" value="<?=trim($v_backup_username, "'")?>">
+                </div>
+                <div class="u-mb20">
+                  <label for="v_backup_password" class="form-label"><?=_('Password');?></label>
+                  <div class="u-pos-relative">
+                    <input type="text" class="form-control js-password-input" name="v_backup_password" id="v_backup_password" value="<?=trim($v_backup_password, "'")?>">
+                  </div>
+                </div>
+                <div class="u-mb10">
+                  <label for="v_backup_bpath" class="form-label"><?=_('Directory');?></label>
+                  <input type="text" class="form-control" name="v_backup_bpath" id="v_backup_bpath" value="<?=trim($v_backup_bpath, "'")?>">
                 </div>
                 </div>
               </div>
               </div>
-              <div class="u-mb10">
-                <label for="v_backup_bpath" class="form-label"><?=_('Directory');?></label>
-                <input type="text" class="form-control" name="v_backup_bpath" id="v_backup_bpath" value="<?=trim($v_backup_bpath, "'")?>">
-              </div>
-            </div>
-            <div id="backup_bucket" style="display: <?php if ((empty($v_backup_type)) || !in_array(trim($v_backup_type, "'"),array('b2'))){ echo 'none';} else {echo 'block';} ?>">
-              <div class="u-mb10">
-                <label for="v_backup_bucket" class="form-label"><?=_('Bucket');?></label>
-                <input type="text" class="form-control" name="v_backup_bucket" id="v_backup_bucket" value="<?=trim($v_backup_bucket, "'")?>">
-              </div>
-              <div class="u-mb10">
-                <label for="v_backup_application_id" class="form-label"><?=_('Key ID');?></label>
-                <input type="text" class="form-control" name="v_backup_application_id" id="v_backup_application_id" value="<?=trim($v_backup_application_id, "'")?>">
-              </div>
-              <div class="u-mb10">
-                <label for="v_backup_application_key" class="form-label"><?=_('Application Key');?></label>
-                <input type="text" class="form-control" name="v_backup_application_key" id="v_backup_application_key" value="<?=trim($v_backup_application_key, "'")?>">
-              </div>
-            </div>
-            <div id="backup_rclone" style="display: <?php if ((empty($v_backup_type)) || !in_array(trim($v_backup_type, "'"),array('rclone'))){ echo 'none';} else {echo 'block';} ?>">
-              <div class="u-mb10">
-                <label for="v_rclone_host" class="form-label"><?=_('Host');?></label>
-                <input type="text" class="form-control" name="v_rclone_host" id="v_rclone_host" value="<?=trim($v_rclone_host, "'")?>">
+              <div id="backup_bucket" style="display: <?php if ((empty($v_backup_type)) || !in_array(trim($v_backup_type, "'"),array('b2'))){ echo 'none';} else {echo 'block';} ?>">
+                <div class="u-mb10">
+                  <label for="v_backup_bucket" class="form-label"><?=_('Bucket');?></label>
+                  <input type="text" class="form-control" name="v_backup_bucket" id="v_backup_bucket" value="<?=trim($v_backup_bucket, "'")?>">
+                </div>
+                <div class="u-mb10">
+                  <label for="v_backup_application_id" class="form-label"><?=_('Key ID');?></label>
+                  <input type="text" class="form-control" name="v_backup_application_id" id="v_backup_application_id" value="<?=trim($v_backup_application_id, "'")?>">
+                </div>
+                <div class="u-mb10">
+                  <label for="v_backup_application_key" class="form-label"><?=_('Application Key');?></label>
+                  <input type="text" class="form-control" name="v_backup_application_key" id="v_backup_application_key" value="<?=trim($v_backup_application_key, "'")?>">
+                </div>
               </div>
               </div>
-              <div class="u-mb10">
-                <label for="v_rclone_path" class="form-label"><?=_('Directory');?></label>
-                <input type="text" class="form-control" name="v_rclone_path" id="v_rclone_path" value="<?=trim($v_rclone_path, "'")?>">
+              <div id="backup_rclone" style="display: <?php if ((empty($v_backup_type)) || !in_array(trim($v_backup_type, "'"),array('rclone'))){ echo 'none';} else {echo 'block';} ?>">
+                <div class="u-mb10">
+                  <label for="v_rclone_host" class="form-label"><?=_('Host');?></label>
+                  <input type="text" class="form-control" name="v_rclone_host" id="v_rclone_host" value="<?=trim($v_rclone_host, "'")?>">
+                </div>
+                <div class="u-mb10">
+                  <label for="v_rclone_path" class="form-label"><?=_('Directory');?></label>
+                  <input type="text" class="form-control" name="v_rclone_path" id="v_rclone_path" value="<?=trim($v_rclone_path, "'")?>">
+                </div>
               </div>
               </div>
             </div>
             </div>
           </div>
           </div>
@@ -531,78 +539,80 @@
             <i class="fas fa-lock"></i><b><?=_('SSL');?><img src="/images/arrow.png" alt=""></b>
             <i class="fas fa-lock"></i><b><?=_('SSL');?><img src="/images/arrow.png" alt=""></b>
           </a>
           </a>
         </h2>
         </h2>
-        <div id="ssl" class="u-pl50 u-mb20 u-input-width" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
-          <div class="u-mb20">
-            <label for="v_ssl_crt" class="form-label">
-              <?=_('SSL Certificate');?>
-              <span id="generate-csr"> / <a class="generate" target="_blank" href="/generate/ssl/?domain=<?=htmlentities(trim($v_hostname,'"'));?>"><?=_('Generate CSR');?></a></span>
-            </label>
-            <textarea class="form-control u-min-height100 u-console" name="v_ssl_crt" id="v_ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
-          </div>
-          <div class="u-mb20">
-            <label for="v_ssl_key" class="form-label"><?=_('SSL Key');?></label>
-            <textarea class="form-control u-min-height100 u-console" name="v_ssl_key" id="v_ssl_key"><?=htmlentities(trim($v_ssl_key, "'"))?></textarea>
-          </div>
-          <table class="additional-info">
-            <tr>
-              <td>
-                <b><?=_('SUBJECT');?>:</b>
-              </td>
-              <td class="details">
-                <?=$v_ssl_subject?>
-              </td>
-            </tr>
-            <?php if ($v_ssl_aliases){?>
+        <div id="ssl" class="u-pl50 u-mt20 u-mb20" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
+          <div class="u-input-width">
+            <div class="u-mb20">
+              <label for="v_ssl_crt" class="form-label">
+                <?=_('SSL Certificate');?>
+                <span id="generate-csr"> / <a class="generate" target="_blank" href="/generate/ssl/?domain=<?=htmlentities(trim($v_hostname,'"'));?>"><?=_('Generate CSR');?></a></span>
+              </label>
+              <textarea class="form-control u-min-height100 u-console" name="v_ssl_crt" id="v_ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
+            </div>
+            <div class="u-mb20">
+              <label for="v_ssl_key" class="form-label"><?=_('SSL Key');?></label>
+              <textarea class="form-control u-min-height100 u-console" name="v_ssl_key" id="v_ssl_key"><?=htmlentities(trim($v_ssl_key, "'"))?></textarea>
+            </div>
+            <table class="additional-info">
               <tr>
               <tr>
                 <td>
                 <td>
-                  <b><?=_('Aliases');?>:</b>
+                  <b><?=_('SUBJECT');?>:</b>
                 </td>
                 </td>
                 <td class="details">
                 <td class="details">
-                  <?=$v_ssl_aliases?>
+                  <?=$v_ssl_subject?>
                 </td>
                 </td>
               </tr>
               </tr>
-            <?php } ?>
-            <tr>
-              <td>
-                <b><?=_('NOT_BEFORE');?>:</b>
-              </td>
-              <td class="details">
-                <?=$v_ssl_not_before?>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b><?=_('NOT_AFTER');?>:</b>
-              </td>
-              <td class="details">
-                <?=$v_ssl_not_after?>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b><?=_('SIGNATURE');?>:</b>
-              </td>
-              <td class="details">
-                <?=$v_ssl_signature?>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b><?=_('PUB_KEY');?>:</b>
-              </td>
-              <td class="details">
-                <?=$v_ssl_pub_key?>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b><?=_('ISSUER');?>:</b>
-              </td>
-              <td class="details">
-                <?=$v_ssl_issuer?>
-              </td>
-            </tr>
-          </table>
+              <?php if ($v_ssl_aliases){?>
+                <tr>
+                  <td>
+                    <b><?=_('Aliases');?>:</b>
+                  </td>
+                  <td class="details">
+                    <?=$v_ssl_aliases?>
+                  </td>
+                </tr>
+              <?php } ?>
+              <tr>
+                <td>
+                  <b><?=_('NOT_BEFORE');?>:</b>
+                </td>
+                <td class="details">
+                  <?=$v_ssl_not_before?>
+                </td>
+              </tr>
+              <tr>
+                <td>
+                  <b><?=_('NOT_AFTER');?>:</b>
+                </td>
+                <td class="details">
+                  <?=$v_ssl_not_after?>
+                </td>
+              </tr>
+              <tr>
+                <td>
+                  <b><?=_('SIGNATURE');?>:</b>
+                </td>
+                <td class="details">
+                  <?=$v_ssl_signature?>
+                </td>
+              </tr>
+              <tr>
+                <td>
+                  <b><?=_('PUB_KEY');?>:</b>
+                </td>
+                <td class="details">
+                  <?=$v_ssl_pub_key?>
+                </td>
+              </tr>
+              <tr>
+                <td>
+                  <b><?=_('ISSUER');?>:</b>
+                </td>
+                <td class="details">
+                  <?=$v_ssl_issuer?>
+                </td>
+              </tr>
+            </table>
+          </div>
         </div>
         </div>
 
 
         <!-- Security tab -->
         <!-- Security tab -->
@@ -611,210 +621,214 @@
             <i class="fas fa-key"></i><b><?=_('Security');?> <img src="/images/arrow.png" alt=""></b>
             <i class="fas fa-key"></i><b><?=_('Security');?> <img src="/images/arrow.png" alt=""></b>
           </a>
           </a>
         </h2>
         </h2>
-        <div id="security" class="u-pl50 u-mb20 u-input-width" style="<?php if (empty($v_security_adv)) echo 'display:none;';?>">
-          <h3 class="section-title" onclick="javascript:elementHideShow('security-system-table',this);">
-            <?=_('System');?>
-            <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
-          </h3>
-          <div id="security-system-table" style="display: none;">
-            <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
-              <?=_('API');?>
-            </p>
-            <div class="u-mb10">
-              <label for="api" class="form-label"><?=_('Enable legacy API access');?></label>
-              <select class="form-select" name="v_api" id="api">
-                <option value="yes"><?=_('Yes'); ?></option>
-                <option value="no" <?php if($_SESSION['API'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
-              </select>
-            </div>
-            <div class="u-mb10">
-              <label for="api-system" class="form-label"><?=_('Enable API access');?></label>
-              <select class="form-select" name="v_api_system" id="api-system">
-                <option value='0' <?php if(empty($_SESSION['API_SYSTEM']) || $_SESSION['API_SYSTEM'] == '0') echo 'selected' ?>><?=_('Disabled'); ?></option>
-                <option value='1' <?php if($_SESSION['API_SYSTEM'] == '1') echo 'selected' ?>><?=_('Enabled for admin'); ?></option>
-                <option value='2' <?php if($_SESSION['API_SYSTEM'] == '2') echo 'selected' ?>><?=_('Enabled for all users'); ?></option>
-              </select>
-            </div>
-            <div id="security_ip" style="<?php if ($_SESSION['API'] == "no" && $_SESSION['API_SYSTEM'] == '0') echo 'display:none;';?>">
+        <div id="security" class="u-pl50 u-mb20" style="<?php if (empty($v_security_adv)) echo 'display:none;';?>">
+          <div class="u-input-width">
+            <h3 class="section-title" onclick="javascript:elementHideShow('security-system-table',this);">
+              <?=_('System');?>
+              <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
+            </h3>
+            <div id="security-system-table" style="display: none;">
+              <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
+                <?=_('API');?>
+              </p>
+              <div class="u-mb10">
+                <label for="api" class="form-label"><?=_('Enable legacy API access');?></label>
+                <select class="form-select" name="v_api" id="api">
+                  <option value="yes"><?=_('Yes'); ?></option>
+                  <option value="no" <?php if($_SESSION['API'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+                </select>
+              </div>
+              <div class="u-mb10">
+                <label for="api-system" class="form-label"><?=_('Enable API access');?></label>
+                <select class="form-select" name="v_api_system" id="api-system">
+                  <option value='0' <?php if(empty($_SESSION['API_SYSTEM']) || $_SESSION['API_SYSTEM'] == '0') echo 'selected' ?>><?=_('Disabled'); ?></option>
+                  <option value='1' <?php if($_SESSION['API_SYSTEM'] == '1') echo 'selected' ?>><?=_('Enabled for admin'); ?></option>
+                  <option value='2' <?php if($_SESSION['API_SYSTEM'] == '2') echo 'selected' ?>><?=_('Enabled for all users'); ?></option>
+                </select>
+              </div>
+              <div id="security_ip" style="<?php if ($_SESSION['API'] == "no" && $_SESSION['API_SYSTEM'] == '0') echo 'display:none;';?>">
+                <div class="u-mb10">
+                  <label for="v_api_allowed_ip" class="form-label u-side-by-side">
+                    <?=_('Allowed IP addresses for API');?> <span class="optional">1 IP address per line</span>
+                  </label>
+                  <textarea class="form-control" name="v_api_allowed_ip" id="v_api_allowed_ip"><?php
+                      foreach(explode(',',$_SESSION['API_ALLOWED_IP']) as $ip ){
+                        echo trim($ip)."\n";
+                      }
+                    ?></textarea>
+                </div>
+              </div>
+              <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
+                <?=_('Login');?>
+              </p>
               <div class="u-mb10">
               <div class="u-mb10">
-                <label for="v_api_allowed_ip" class="form-label" style="display: block">
-                  <?=_('Allowed IP addresses for API');?> <span class="optional" style="float: right">1 IP address per line</span>
+                <label for="v_login_style" class="form-label"><?=_('Login screen style');?></label>
+                <select class="form-select" name="v_login_style" id="v_login_style">
+                  <option value="default"><?=_('Default'); ?></option>
+                  <option value="old" <?php if($_SESSION['LOGIN_STYLE'] == 'old') echo 'selected' ?>><?=_('Old Style'); ?></option>
+                </select>
+              </div>
+              <div class="u-mb10">
+                <label for="v_policy_system_password_reset" class="form-label"><?=_('Allow users to reset their passwords');?></label>
+                <select class="form-select" name="v_policy_system_password_reset" id="v_policy_system_password_reset">
+                  <option value="yes"><?=_('Yes'); ?></option>
+                  <option value="no" <?php if($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+                </select>
+              </div>
+              <div class="u-mb20">
+                <label for="v_inactive_session_timeout" class="form-label">
+                  <?=_('Inactive session timeout');?> (<?=_('Minutes');?>)
                 </label>
                 </label>
-                <textarea class="form-control" name="v_api_allowed_ip" id="v_api_allowed_ip"><?php
-                    foreach(explode(',',$_SESSION['API_ALLOWED_IP']) as $ip ){
-                      echo trim($ip)."\n";
-                    }
-                  ?></textarea>
+                <input type="text" class="form-control" name="v_inactive_session_timeout" id="v_inactive_session_timeout" value="<?=trim($_SESSION['INACTIVE_SESSION_TIMEOUT'], "'")?>">
+              </div>
+              <div class="u-mb10">
+                <label for="v_policy_csrf_strictness" class="form-label"><?=_('Prevent CSRF');?></label>
+                <select class="form-select" name="v_policy_csrf_strictness" id="v_policy_csrf_strictness">
+                  <option value="0"  <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '0') echo 'selected' ?>><?=_('Disabled');?></option>
+                  <option value="1"  <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '1') echo 'selected' ?>><?=_('Enabled');?></option>
+                  <option value="2"  <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '2') echo 'selected' ?>><?=_('Strict');?></option>
+                </select>
               </div>
               </div>
             </div>
             </div>
-            <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
-              <?=_('Login');?>
-            </p>
-            <div class="u-mb10">
-              <label for="v_login_style" class="form-label"><?=_('Login screen style');?></label>
-              <select class="form-select" name="v_login_style" id="v_login_style">
-                <option value="default"><?=_('Default'); ?></option>
-                <option value="old" <?php if($_SESSION['LOGIN_STYLE'] == 'old') echo 'selected' ?>><?=_('Old Style'); ?></option>
-              </select>
-            </div>
-            <div class="u-mb10">
-              <label for="v_policy_system_password_reset" class="form-label"><?=_('Allow users to reset their passwords');?></label>
-              <select class="form-select" name="v_policy_system_password_reset" id="v_policy_system_password_reset">
-                <option value="yes"><?=_('Yes'); ?></option>
-                <option value="no" <?php if($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
-              </select>
-            </div>
-            <div class="u-mb20">
-              <label for="v_inactive_session_timeout" class="form-label">
-                <?=_('Inactive session timeout');?> (<?=_('Minutes');?>)
-              </label>
-              <input type="text" class="form-control" name="v_inactive_session_timeout" id="v_inactive_session_timeout" value="<?=trim($_SESSION['INACTIVE_SESSION_TIMEOUT'], "'")?>">
-            </div>
-            <div class="u-mb10">
-              <label for="v_policy_csrf_strictness" class="form-label"><?=_('Prevent CSRF');?></label>
-              <select class="form-select" name="v_policy_csrf_strictness" id="v_policy_csrf_strictness">
-                <option value="0"  <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '0') echo 'selected' ?>><?=_('Disabled');?></option>
-                <option value="1"  <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '1') echo 'selected' ?>><?=_('Enabled');?></option>
-                <option value="2"  <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '2') echo 'selected' ?>><?=_('Strict');?></option>
-              </select>
-            </div>
-          </div>
-          <?php if (($_SESSION['userContext'] === "admin") && ($_SESSION['user'] === 'admin')) {?>
-            <h3 class="section-title" onclick="javascript:elementHideShow('security-sysadminprotect-table',this);">
-              <?=_('System Protection');?>
+            <?php if (($_SESSION['userContext'] === "admin") && ($_SESSION['user'] === 'admin')) {?>
+              <h3 class="section-title" onclick="javascript:elementHideShow('security-sysadminprotect-table',this);">
+                <?=_('System Protection');?>
+                <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
+              </h3>
+              <div id="security-sysadminprotect-table" style="display: none;">
+                <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
+                  <?=_('System Administrator account');?>
+                </p>
+                <div class="u-mb10">
+                  <label for="v_policy_system_protected_admin" class="form-label"><?=_('Restrict access to read-only for other administrators');?></label>
+                  <select class="form-select" name="v_policy_system_protected_admin" id="v_policy_system_protected_admin">
+                    <option value="yes"><?=_('Yes'); ?></option>
+                    <option value="no" <?php if($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
+                  </select>
+                </div>
+                <div class="u-mb10">
+                  <label for="v_policy_system_hide_admin" class="form-label"><?=_('Hide account from other administrators');?></label>
+                  <select class="form-select" name="v_policy_system_hide_admin" id="v_policy_system_hide_admin">
+                    <option value="yes"><?=_('Yes'); ?></option>
+                    <option value="no" <?php if($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
+                  </select>
+                </div>
+                <div class="u-mb10">
+                  <label for="v_policy_system_hide_services" class="form-label"><?=_('Do not allow other administrators to access Server Settings');?></label>
+                  <select class="form-select" name="v_policy_system_hide_services" id="v_policy_system_hide_services">
+                    <option value="yes"><?=_('Yes'); ?></option>
+                    <option value="no" <?php if($_SESSION['POLICY_SYSTEM_HIDE_SERVICES'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
+                  </select>
+                </div>
+              </div>
+            <?php } ?>
+            <h3 class="section-title" onclick="javascript:elementHideShow('security-policies-table',this);">
+              <?=_('Policies');?>
               <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
               <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
             </h3>
             </h3>
-            <div id="security-sysadminprotect-table" style="display: none;">
+            <div id="security-policies-table" style="display: none;">
               <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
               <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
-                <?=_('System Administrator account');?>
+                <?=_('Users');?>
               </p>
               </p>
+              <?php if ($_SESSION['POLICY_SYSTEM_ENABLE_BACON'] === 'true') { ?>
+                <div class="u-mb10">
+                  <label for="v_policy_user_view_suspended" class="form-label">
+                    <?=_('Allow suspended users to log in with read-only access');?> <span class="hint">(<?=_('Preview');?>)</span>
+                  </label>
+                  <select class="form-select" name="v_policy_user_view_suspended" id="v_policy_user_view_suspended">
+                    <option value="yes" <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
+                    <option value="no" <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+                  </select>
+                </div>
+              <?php } ?>
               <div class="u-mb10">
               <div class="u-mb10">
-                <label for="v_policy_system_protected_admin" class="form-label"><?=_('Restrict access to read-only for other administrators');?></label>
-                <select class="form-select" name="v_policy_system_protected_admin" id="v_policy_system_protected_admin">
-                  <option value="yes"><?=_('Yes'); ?></option>
-                  <option value="no" <?php if($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
+                <label for="v_policy_user_edit_details" class="form-label"><?=_('Allow users to edit their account details');?></label>
+                <select class="form-select" name="v_policy_user_edit_details" id="v_policy_user_edit_details">
+                  <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
+                  <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
                 </select>
                 </select>
               </div>
               </div>
               <div class="u-mb10">
               <div class="u-mb10">
-                <label for="v_policy_system_hide_admin" class="form-label"><?=_('Hide account from other administrators');?></label>
-                <select class="form-select" name="v_policy_system_hide_admin" id="v_policy_system_hide_admin">
-                  <option value="yes"><?=_('Yes'); ?></option>
-                  <option value="no" <?php if($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
+                <label for="v_policy_user_edit_web_templates" class="form-label"><?=_('Allow users to change templates when editing web domains');?></label>
+                <select class="form-select" name="v_policy_user_edit_web_templates" id="v_policy_user_edit_web_templates">
+                  <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
+                  <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
                 </select>
                 </select>
               </div>
               </div>
               <div class="u-mb10">
               <div class="u-mb10">
-                <label for="v_policy_system_hide_services" class="form-label"><?=_('Do not allow other administrators to access Server Settings');?></label>
-                <select class="form-select" name="v_policy_system_hide_services" id="v_policy_system_hide_services">
-                  <option value="yes"><?=_('Yes'); ?></option>
-                  <option value="no" <?php if($_SESSION['POLICY_SYSTEM_HIDE_SERVICES'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
+                <label for="v_policy_user_edit_dns_templates" class="form-label"><?=_('Allow users to change templates when editing DNS zones');?></label>
+                <select class="form-select" name="v_policy_user_edit_dns_templates" id="v_policy_user_edit_dns_templates">
+                  <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
+                  <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
                 </select>
                 </select>
               </div>
               </div>
-            </div>
-          <?php } ?>
-          <h3 class="section-title" onclick="javascript:elementHideShow('security-policies-table',this);">
-            <?=_('Policies');?>
-            <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
-          </h3>
-          <div id="security-policies-table" style="display: none;">
-            <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
-              <?=_('Users');?>
-            </p>
-            <?php if ($_SESSION['POLICY_SYSTEM_ENABLE_BACON'] === 'true') { ?>
               <div class="u-mb10">
               <div class="u-mb10">
-                <label for="v_policy_user_view_suspended" class="form-label">
-                  <?=_('Allow suspended users to log in with read-only access');?> <span class="hint">(<?=_('Preview');?>)</span>
-                </label>
-                <select class="form-select" name="v_policy_user_view_suspended" id="v_policy_user_view_suspended">
-                  <option value="yes" <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
-                  <option value="no" <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+                <label for="v_policy_user_view_logs" class="form-label"><?=_('Allow users to view action and login history logs');?></label>
+                <select class="form-select" name="v_policy_user_view_logs" id="v_policy_user_view_logs">
+                  <option value="yes" <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
+                  <option value="no" <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+                </select>
+              </div>
+              <div class="u-mb10">
+                <label for="v_policy_user_delete_logs" class="form-label"><?=_('Allow users to delete log history');?></label>
+                <select class="form-select" name="v_policy_user_delete_logs" id="v_policy_user_delete_logs">
+                  <option value="yes" <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
+                  <option value="no" <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+                </select>
+              </div>
+              <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
+                <?=_('Domains');?>
+              </p>
+              <div class="u-mb10">
+                <label for="v_enforce_subdomain_ownership" class="form-label"><?=_('Enforce subdomain ownership');?></label>
+                <select class="form-select u-mb20" name="v_enforce_subdomain_ownership" id="v_enforce_subdomain_ownership">
+                  <option value="yes"><?=_('Yes'); ?></option>
+                  <option value="no" <?php if($_SESSION['ENFORCE_SUBDOMAIN_OWNERSHIP'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
                 </select>
                 </select>
               </div>
               </div>
-            <?php } ?>
-            <div class="u-mb10">
-              <label for="v_policy_user_edit_details" class="form-label"><?=_('Allow users to edit their account details');?></label>
-              <select class="form-select" name="v_policy_user_edit_details" id="v_policy_user_edit_details">
-                <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
-                <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
-              </select>
-            </div>
-            <div class="u-mb10">
-              <label for="v_policy_user_edit_web_templates" class="form-label"><?=_('Allow users to change templates when editing web domains');?></label>
-              <select class="form-select" name="v_policy_user_edit_web_templates" id="v_policy_user_edit_web_templates">
-                <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
-                <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
-              </select>
             </div>
             </div>
+          </div>
+        </div>
+
+        <!-- Plugins tab -->
+        <h2 class="advanced-options u-mb10">
+          <a href="javascript:elementHideShow('hestia');" class="vst-text">
+            <i class="fas fa-puzzle-piece"></i><b><?=_('Hestia Control Panel Plugins');?> <img src="/images/arrow.png" alt=""></b>
+          </a>
+        </h2>
+        <div id="hestia" class="u-pl50 u-mt20 u-mb20" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
+          <div class="u-input-width">
             <div class="u-mb10">
             <div class="u-mb10">
-              <label for="v_policy_user_edit_dns_templates" class="form-label"><?=_('Allow users to change templates when editing DNS zones');?></label>
-              <select class="form-select" name="v_policy_user_edit_dns_templates" id="v_policy_user_edit_dns_templates">
-                <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
-                <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+              <label for="v_plugin_app_installer" class="form-label"><?=_('Quick App Installer');?></label>
+              <select class="form-select" name="v_plugin_app_installer" id="v_plugin_app_installer">
+                <option value="false"><?=_('No'); ?></option>
+                <option value="true" <?php if($_SESSION['PLUGIN_APP_INSTALLER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
               </select>
               </select>
             </div>
             </div>
             <div class="u-mb10">
             <div class="u-mb10">
-              <label for="v_policy_user_view_logs" class="form-label"><?=_('Allow users to view action and login history logs');?></label>
-              <select class="form-select" name="v_policy_user_view_logs" id="v_policy_user_view_logs">
-                <option value="yes" <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
-                <option value="no" <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+              <label for="v_filemanager" class="form-label"><?=_('Filemanager');?></label>
+              <select class="form-select" name="v_filemanager" id="v_filemanager">
+                <option value="false"><?=_('No'); ?></option>
+                <option value="true" <?php if($_SESSION['FILE_MANAGER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
               </select>
               </select>
             </div>
             </div>
             <div class="u-mb10">
             <div class="u-mb10">
-              <label for="v_policy_user_delete_logs" class="form-label"><?=_('Allow users to delete log history');?></label>
-              <select class="form-select" name="v_policy_user_delete_logs" id="v_policy_user_delete_logs">
-                <option value="yes" <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
-                <option value="no" <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+              <label for="v_quota" class="form-label"><?=_('FileSystem Disk Quota');?></label>
+              <select class="form-select" name="v_quota" id="v_quota">
+                <option value="no"><?=_('No'); ?></option>
+                <option value="yes" <?php if($_SESSION['DISK_QUOTA'] == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
               </select>
               </select>
             </div>
             </div>
-            <p class="u-pt18" style="font-size:1rem;padding-bottom:12px;">
-              <?=_('Domains');?>
-            </p>
             <div class="u-mb10">
             <div class="u-mb10">
-              <label for="v_enforce_subdomain_ownership" class="form-label"><?=_('Enforce subdomain ownership');?></label>
-              <select class="form-select u-mb20" name="v_enforce_subdomain_ownership" id="v_enforce_subdomain_ownership">
-                <option value="yes"><?=_('Yes'); ?></option>
-                <option value="no" <?php if($_SESSION['ENFORCE_SUBDOMAIN_OWNERSHIP'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
+              <label for="v_firewall" class="form-label"><?=_('Firewall');?></label>
+              <select class="form-select u-mb20" name="v_firewall" id="v_firewall">
+                <option value="no"><?=_('No'); ?></option>
+                <option value="yes" <?php if($_SESSION['FIREWALL_SYSTEM'] == 'iptables') echo 'selected' ?>><?=_('Yes'); ?></option>
               </select>
               </select>
             </div>
             </div>
           </div>
           </div>
         </div>
         </div>
 
 
-        <!-- Plugins tab -->
-        <h2 class="advanced-options u-mb10">
-          <a href="javascript:elementHideShow('hestia');" class="vst-text">
-            <i class="fas fa-puzzle-piece"></i><b><?=_('Hestia Control Panel Plugins');?> <img src="/images/arrow.png" alt=""></b>
-          </a>
-        </h2>
-        <div id="hestia" class="u-pl50 u-mb20 u-input-width" style="display:<?php if (empty($v_adv)) echo 'none';?> ;">
-          <div class="u-mb10">
-            <label for="v_plugin_app_installer" class="form-label"><?=_('Quick App Installer');?></label>
-            <select class="form-select" name="v_plugin_app_installer" id="v_plugin_app_installer">
-              <option value="false"><?=_('No'); ?></option>
-              <option value="true" <?php if($_SESSION['PLUGIN_APP_INSTALLER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
-            </select>
-          </div>
-          <div class="u-mb10">
-            <label for="v_filemanager" class="form-label"><?=_('Filemanager');?></label>
-            <select class="form-select" name="v_filemanager" id="v_filemanager">
-              <option value="false"><?=_('No'); ?></option>
-              <option value="true" <?php if($_SESSION['FILE_MANAGER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
-            </select>
-          </div>
-          <div class="u-mb10">
-            <label for="v_quota" class="form-label"><?=_('FileSystem Disk Quota');?></label>
-            <select class="form-select" name="v_quota" id="v_quota">
-              <option value="no"><?=_('No'); ?></option>
-              <option value="yes" <?php if($_SESSION['DISK_QUOTA'] == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
-            </select>
-          </div>
-          <div class="u-mb10">
-            <label for="v_firewall" class="form-label"><?=_('Firewall');?></label>
-            <select class="form-select u-mb20" name="v_firewall" id="v_firewall">
-              <option value="no"><?=_('No'); ?></option>
-              <option value="yes" <?php if($_SESSION['FIREWALL_SYSTEM'] == 'iptables') echo 'selected' ?>><?=_('Yes'); ?></option>
-            </select>
-          </div>
-        </div>
-
       </div>
       </div>
     </div>
     </div>
 
 

+ 2 - 2
web/templates/pages/edit_server_bind9.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-wide-input-width">
       <div class="u-wide-input-width">
         <div class="u-mb20">
         <div class="u-mb20">

+ 2 - 2
web/templates/pages/edit_server_dovecot.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-wide-input-width">
       <div class="u-wide-input-width">
         <div class="u-mb20">
         <div class="u-mb20">

+ 2 - 2
web/templates/pages/edit_server_httpd.html

@@ -20,8 +20,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-wide-input-width">
       <div class="u-wide-input-width">
         <div class="u-mb20">
         <div class="u-mb20">

+ 2 - 2
web/templates/pages/edit_server_mysql.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div id="basic-options" class="u-input-width">
       <div id="basic-options" class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/edit_server_nginx.html

@@ -20,8 +20,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div id="basic-options" class="u-input-width">
       <div id="basic-options" class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/edit_server_pgsql.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-wide-input-width">
       <div class="u-wide-input-width">
         <div class="u-mb20">
         <div class="u-mb20">

+ 2 - 2
web/templates/pages/edit_server_php.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Configuring Server');?>: PHP</h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Configuring Server');?>: PHP</h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div id="basic-options" class="u-input-width">
       <div id="basic-options" class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 2 - 2
web/templates/pages/edit_server_service.html

@@ -19,8 +19,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Configuring Server');?>: <?=$v_service_name;?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-wide-input-width">
       <div class="u-wide-input-width">
         <div class="u-mb20">
         <div class="u-mb20">

+ 2 - 2
web/templates/pages/edit_user.html

@@ -52,8 +52,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing User');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing User');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">

+ 40 - 44
web/templates/pages/edit_web.html

@@ -27,8 +27,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="save" value="save">
     <input type="hidden" name="save" value="save">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Editing Domain');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Editing Domain');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">
@@ -85,7 +85,7 @@
           </div>
           </div>
         </div>
         </div>
         <div class="stats-auth">
         <div class="stats-auth">
-          <div class="u-pl50">
+          <div class="u-pl30">
             <div id="statstable" name="v-add-web-domain-stats-user" style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;">
             <div id="statstable" name="v-add-web-domain-stats-user" style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;">
               <div class="u-mb10">
               <div class="u-mb10">
                 <label for="v_stats_user" class="form-label"><?=_('Username');?></label>
                 <label for="v_stats_user" class="form-label"><?=_('Username');?></label>
@@ -108,7 +108,7 @@
             <?=_('Enable domain redirection');?>
             <?=_('Enable domain redirection');?>
           </label>
           </label>
         </div>
         </div>
-        <div id="v_redirect" class="u-pl50 u-mb20" style="display:<?php if (empty($v_redirect)) { echo 'none';} else {echo 'block';}?> ;">
+        <div id="v_redirect" class="u-pl30 u-mb10" style="display:<?php if (empty($v_redirect)) { echo 'none';} else {echo 'block';}?> ;">
           <div class="form-check">
           <div class="form-check">
             <input class="form-check-input v-redirect-custom-value" type="radio" name="v-redirect" id="v-redirect-radio-1" value="<?='www.'.htmlentities($v_domain);?>" <?php if ($v_redirect == "www.".$v_domain) echo 'checked'; ?>>
             <input class="form-check-input v-redirect-custom-value" type="radio" name="v-redirect" id="v-redirect-radio-1" value="<?='www.'.htmlentities($v_domain);?>" <?php if ($v_redirect == "www.".$v_domain) echo 'checked'; ?>>
             <label for="v-redirect-radio-1">
             <label for="v-redirect-radio-1">
@@ -151,7 +151,7 @@
             <?=_('SSL Support');?>
             <?=_('SSL Support');?>
           </label>
           </label>
         </div>
         </div>
-        <div id="ssltable" class="u-pl50" style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;">
+        <div id="ssltable" class="u-pl30" style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;">
           <div class="form-check u-mb10">
           <div class="form-check u-mb10">
             <input class="form-check-input" type="checkbox" name="v_letsencrypt" id="letsencrypt" <?php if($v_letsencrypt == 'yes' || $v_letsencrypt == 'on') echo 'checked' ?> onclick="elementHideShow('letsinfo');App.Actions.WEB.toggle_letsencrypt(this)">
             <input class="form-check-input" type="checkbox" name="v_letsencrypt" id="letsencrypt" <?php if($v_letsencrypt == 'yes' || $v_letsencrypt == 'on') echo 'checked' ?> onclick="elementHideShow('letsinfo');App.Actions.WEB.toggle_letsencrypt(this)">
             <label for="letsencrypt">
             <label for="letsencrypt">
@@ -287,15 +287,13 @@
                   </a>
                   </a>
                 </label>
                 </label>
               </div>
               </div>
-              <div class="u-pl50">
-                <div id="v_nginx_duration" style="display:<?php if ($v_nginx_cache != 'yes' ) { echo 'none';} else {echo 'block';}?> ;">
-                  <div class="u-pt6">
-                    <label for="v_nginx_cache_duration" class="form-label">
-                      <?=_('Cache Duration'); ?> <span class="optional"><?=_('For example: 30s, 10m or 1d');?>
-                    </label>
-                    <input type="text" class="form-control" name="v_nginx_cache_duration" id="v_nginx_cache_duration" value="<?=htmlentities(trim($v_nginx_cache_duration, "'"))?>">
-                  </div>
-                </table>
+              <div id="v_nginx_duration" class="u-pl30" style="display:<?php if ($v_nginx_cache != 'yes' ) { echo 'none';} else {echo 'block';}?> ;">
+                <div class="u-pt6">
+                  <label for="v_nginx_cache_duration" class="form-label">
+                    <?=_('Cache Duration'); ?> <span class="optional"><?=_('For example: 30s, 10m or 1d');?>
+                  </label>
+                  <input type="text" class="form-control" name="v_nginx_cache_duration" id="v_nginx_cache_duration" value="<?=htmlentities(trim($v_nginx_cache_duration, "'"))?>">
+                </div>
               </div>
               </div>
             <?php } ?>
             <?php } ?>
             <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
             <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
@@ -352,7 +350,7 @@
                   <label for="v_proxy_ext" class="form-label"><?=_('Proxy Extensions');?></label>
                   <label for="v_proxy_ext" class="form-label"><?=_('Proxy Extensions');?></label>
                   <textarea class="form-control u-min-height100" name="v_proxy_ext" id="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>
                   <textarea class="form-control u-min-height100" name="v_proxy_ext" id="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>
                 </div>
                 </div>
-              </table>
+              </div>
             <?php } ?>
             <?php } ?>
           <?php } ?>
           <?php } ?>
           <div class="form-check u-mb10">
           <div class="form-check u-mb10">
@@ -361,27 +359,25 @@
               <?=_('Custom document root');?>
               <?=_('Custom document root');?>
             </label>
             </label>
           </div>
           </div>
-          <div class="u-pl50">
-            <div id="v_custom_doc_root" style="display:<?php if (empty($v_custom_doc_root)) { echo 'none';} else {echo 'block';}?> ;">
-              <div class="u-mb10">
-                <label for="v-custom-doc-domain" class="form-label"><?=_('Point to');?></label>
-                <input type="hidden" name="v-custom-doc-root_prepath" value="<?=$v_custom_doc_root_prepath;?>">
-                <select class="form-select" name="v-custom-doc-domain" id="v-custom-doc-domain">
-                  <?php foreach ($user_domains as $domain): ?>
-                  <option value="<?=htmlentities($domain);?>"
-                    <?=($v_custom_doc_domain === $domain || (empty($v_custom_doc_domain) && $domain === $v_domain))?' selected="selected" ':''; ?>>
-                    <?=htmlentities($domain);?>
-                  </option>
-                  <?php endforeach; ?>
-                </select>
-              </div>
-              <div class="u-mb10">
-                <label for="v-custom-doc-folder" class="form-label">
-                  <?php print( _('Directory'));?> <span class="optional">(<?=_('optional');?>)</span>
-                </label>
-                <input type="text" class="form-control" name="v-custom-doc-folder" id="v-custom-doc-folder" value="<?=htmlentities(trim($v_custom_doc_folder, "'"))?>">
-                <small class="custom_docroot_hint"></small>
-              </div>
+          <div id="v_custom_doc_root" class="u-pl30" style="display:<?php if (empty($v_custom_doc_root)) { echo 'none';} else {echo 'block';}?> ;">
+            <div class="u-mb10">
+              <label for="v-custom-doc-domain" class="form-label"><?=_('Point to');?></label>
+              <input type="hidden" name="v-custom-doc-root_prepath" value="<?=$v_custom_doc_root_prepath;?>">
+              <select class="form-select" name="v-custom-doc-domain" id="v-custom-doc-domain">
+                <?php foreach ($user_domains as $domain): ?>
+                <option value="<?=htmlentities($domain);?>"
+                  <?=($v_custom_doc_domain === $domain || (empty($v_custom_doc_domain) && $domain === $v_domain))?' selected="selected" ':''; ?>>
+                  <?=htmlentities($domain);?>
+                </option>
+                <?php endforeach; ?>
+              </select>
+            </div>
+            <div class="u-mb10">
+              <label for="v-custom-doc-folder" class="form-label">
+                <?php print( _('Directory'));?> <span class="optional">(<?=_('optional');?>)</span>
+              </label>
+              <input type="text" class="form-control" name="v-custom-doc-folder" id="v-custom-doc-folder" value="<?=htmlentities(trim($v_custom_doc_folder, "'"))?>">
+              <small class="custom_docroot_hint"></small>
             </div>
             </div>
           </div>
           </div>
           <?php if (in_array($_SESSION['FTP_SYSTEM'], array('vsftpd', 'proftpd'))) { ?>
           <?php if (in_array($_SESSION['FTP_SYSTEM'], array('vsftpd', 'proftpd'))) { ?>
@@ -406,7 +402,7 @@
                   <input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?=$i ?>][delete]" value="0">
                   <input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?=$i ?>][delete]" value="0">
                   <input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[<?=$i ?>][is_new]" value="<?=htmlentities($ftp_user['is_new']) ?>">
                   <input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[<?=$i ?>][is_new]" value="<?=htmlentities($ftp_user['is_new']) ?>">
                 </div>
                 </div>
-                <div class="u-pl50 u-mb10">
+                <div class="u-pl30 u-mb10">
                   <label for="v_ftp_user[<?=$i ?>][v_ftp_user]" class="form-label">
                   <label for="v_ftp_user[<?=$i ?>][v_ftp_user]" class="form-label">
                     <?=_('Username');?><br>
                     <?=_('Username');?><br>
                     <span style="color:#777;"><?=sprintf(_('Prefix %s will be added to username automatically'),$user_plain."_");?></span>
                     <span style="color:#777;"><?=sprintf(_('Prefix %s will be added to username automatically'),$user_plain."_");?></span>
@@ -416,13 +412,13 @@
                   <input type="hidden" name="v_record_id" value="<?=htmlentities(trim($v_record_id, "'"))?>">
                   <input type="hidden" name="v_record_id" value="<?=htmlentities(trim($v_record_id, "'"))?>">
                   <small class="hint"></small>
                   <small class="hint"></small>
                 </div>
                 </div>
-                <div class="u-pl50 u-mb10">
+                <div class="u-pl30 u-mb10">
                   <label for="v_ftp_user[<?=$i ?>][v_ftp_password]" class="form-label">
                   <label for="v_ftp_user[<?=$i ?>][v_ftp_password]" class="form-label">
                     <?=_('Password');?> / <a href="javascript:void(0);" onclick="FTPrandom(this)" ; class="generate"><?=_('generate');?></a>
                     <?=_('Password');?> / <a href="javascript:void(0);" onclick="FTPrandom(this)" ; class="generate"><?=_('generate');?></a>
                   </label>
                   </label>
                   <input type="text" class="form-control v-ftp-user-psw" name="v_ftp_user[<?=$i ?>][v_ftp_password]" id="v_ftp_user[<?=$i ?>][v_ftp_password]" value="<?=htmlentities(trim($v_ftp_password, "'"))?>">
                   <input type="text" class="form-control v-ftp-user-psw" name="v_ftp_user[<?=$i ?>][v_ftp_password]" id="v_ftp_user[<?=$i ?>][v_ftp_password]" value="<?=htmlentities(trim($v_ftp_password, "'"))?>">
                 </div>
                 </div>
-                <div class="u-pl50 u-mb10">
+                <div class="u-pl30 u-mb10">
                   <label for="v_ftp_user[<?=$i ?>][v_ftp_path]" class="form-label"><?=_('Path');?></label>
                   <label for="v_ftp_user[<?=$i ?>][v_ftp_path]" class="form-label"><?=_('Path');?></label>
                   <input type="hidden" name="v_ftp_pre_path" value="<?=!empty($v_ftp_pre_path) ? htmlentities(trim($v_ftp_pre_path, "'")) : '/'; ?>">
                   <input type="hidden" name="v_ftp_pre_path" value="<?=!empty($v_ftp_pre_path) ? htmlentities(trim($v_ftp_pre_path, "'")) : '/'; ?>">
                   <input type="hidden" name="v_ftp_user[<?=$i ?>][v_ftp_path_prev]" value="<?php if (!empty($v_ftp_path)) echo ($v_ftp_path[0] != '/' ? '/' : '').htmlentities(trim($v_ftp_path, "'")) ?>">
                   <input type="hidden" name="v_ftp_user[<?=$i ?>][v_ftp_path_prev]" value="<?php if (!empty($v_ftp_path)) echo ($v_ftp_path[0] != '/' ? '/' : '').htmlentities(trim($v_ftp_path, "'")) ?>">
@@ -430,7 +426,7 @@
                   <span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
                   <span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
                 </div>
                 </div>
                 <?php if ($ftp_user['is_new'] == 1): ?>
                 <?php if ($ftp_user['is_new'] == 1): ?>
-                  <div class="u-pl50 u-mb10">
+                  <div class="u-pl30 u-mb10">
                     <label for="v_ftp_user[<?=$i ?>][v_ftp_email]" class="form-label"><?=_('Send FTP credentials to email');?></label>
                     <label for="v_ftp_user[<?=$i ?>][v_ftp_email]" class="form-label"><?=_('Send FTP credentials to email');?></label>
                     <input type="email" class="form-control vst-email-alert-on-psw" name="v_ftp_user[<?=$i ?>][v_ftp_email]" id="v_ftp_user[<?=$i ?>][v_ftp_email]" value="<?=htmlentities(trim($v_ftp_email, "'"))?>">
                     <input type="email" class="form-control vst-email-alert-on-psw" name="v_ftp_user[<?=$i ?>][v_ftp_email]" id="v_ftp_user[<?=$i ?>][v_ftp_email]" value="<?=htmlentities(trim($v_ftp_email, "'"))?>">
                   </div>
                   </div>
@@ -460,7 +456,7 @@
       <input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0">
       <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">
       <input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1">
     </div>
     </div>
-    <div class="u-pl50 u-mb10">
+    <div class="u-pl30 u-mb10">
       <label for="v_ftp_user[%INDEX%][v_ftp_user]" class="form-label">
       <label for="v_ftp_user[%INDEX%][v_ftp_user]" class="form-label">
         <?=_('Username');?><br>
         <?=_('Username');?><br>
         <span style="color:#777;"><?=sprintf(_('Prefix %s will be added to username automatically'),$user_plain."_");?></span>
         <span style="color:#777;"><?=sprintf(_('Prefix %s will be added to username automatically'),$user_plain."_");?></span>
@@ -468,19 +464,19 @@
       <input type="text" class="form-control v-ftp-user" name="v_ftp_user[%INDEX%][v_ftp_user]" id="v_ftp_user[%INDEX%][v_ftp_user]" value="">
       <input type="text" class="form-control v-ftp-user" name="v_ftp_user[%INDEX%][v_ftp_user]" id="v_ftp_user[%INDEX%][v_ftp_user]" value="">
       <small class="hint"></small>
       <small class="hint"></small>
     </div>
     </div>
-    <div class="u-pl50 u-mb10">
+    <div class="u-pl30 u-mb10">
       <label for="v_ftp_user[%INDEX%][v_ftp_password]" class="form-label">
       <label for="v_ftp_user[%INDEX%][v_ftp_password]" class="form-label">
         <?=_('Password');?> / <a href="javascript:void(0);" onclick="FTPrandom(this)" ; class="generate"><?=_('generate');?></a>
         <?=_('Password');?> / <a href="javascript:void(0);" onclick="FTPrandom(this)" ; class="generate"><?=_('generate');?></a>
       </label>
       </label>
       <input type="text" class="form-control v-ftp-user-psw" name="v_ftp_user[%INDEX%][v_ftp_password]" id="v_ftp_user[%INDEX%][v_ftp_password]">
       <input type="text" class="form-control v-ftp-user-psw" name="v_ftp_user[%INDEX%][v_ftp_password]" id="v_ftp_user[%INDEX%][v_ftp_password]">
     </div>
     </div>
-    <div class="u-pl50 u-mb10">
+    <div class="u-pl30 u-mb10">
       <label for="v_ftp_user[%INDEX%][v_ftp_path]" class="form-label"><?=_('Path');?></label>
       <label for="v_ftp_user[%INDEX%][v_ftp_path]" class="form-label"><?=_('Path');?></label>
       <input type="hidden" name="v_ftp_pre_path" value="">
       <input type="hidden" name="v_ftp_pre_path" value="">
       <input type="text" class="form-control v-ftp-path" name="v_ftp_user[%INDEX%][v_ftp_path]" id="v_ftp_user[%INDEX%][v_ftp_path]" value="">
       <input type="text" class="form-control v-ftp-path" name="v_ftp_user[%INDEX%][v_ftp_path]" id="v_ftp_user[%INDEX%][v_ftp_path]" value="">
       <span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path_new_user, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
       <span class="ftp-path-prefix"><?=htmlentities(trim($v_ftp_pre_path_new_user, "'"))?></span><span class="ftp-path-value v-ftp-path-hint"></span>
     </div>
     </div>
-    <div class="u-pl50 u-mb10">
+    <div class="u-pl30 u-mb10">
       <label for="v_ftp_user[%INDEX%][v_ftp_email]" class="form-label"><?=_('Send FTP credentials to email');?></label>
       <label for="v_ftp_user[%INDEX%][v_ftp_email]" class="form-label"><?=_('Send FTP credentials to email');?></label>
       <input type="email" class="form-control vst-email-alert-on-psw" name="v_ftp_user[%INDEX%][v_ftp_email]" id="v_ftp_user[%INDEX%][v_ftp_email]" value="">
       <input type="email" class="form-control vst-email-alert-on-psw" name="v_ftp_user[%INDEX%][v_ftp_email]" id="v_ftp_user[%INDEX%][v_ftp_email]" value="">
     </div>
     </div>

+ 3 - 3
web/templates/pages/generate_ssl.html

@@ -14,8 +14,8 @@
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="generate" value="generate">
     <input type="hidden" name="generate" value="generate">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Generating CSR');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Generating CSR');?></h1>
       <div class="u-input-width">
       <div class="u-input-width">
         <div class="u-mb10">
         <div class="u-mb10">
           <label for="v_domain" class="form-label"><?=_('Domain');?></label>
           <label for="v_domain" class="form-label"><?=_('Domain');?></label>
@@ -59,7 +59,7 @@
         </div>
         </div>
         <div class="u-side-by-side">
         <div class="u-side-by-side">
           <div><input type="submit" class="button" name="generate" value="<?=_('Ok');?>"></div>
           <div><input type="submit" class="button" name="generate" value="<?=_('Ok');?>"></div>
-          <div class="u-ml10"><input type="button" class="button cancel" value="<?=_('Back');?>" onclick="<?=$back?>"></div>
+          <div><input type="button" class="button cancel" value="<?=_('Back');?>" onclick="<?=$back?>"></div>
         </div>
         </div>
       </div>
       </div>
     </div>
     </div>

+ 2 - 2
web/templates/pages/list_access_key.html

@@ -26,8 +26,8 @@ if (!empty($_POST['ok'])) {
 <div class="l-center animated fadeIn">
 <div class="l-center animated fadeIn">
   <form id="vstobjects">
   <form id="vstobjects">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?= _("Access Key") ?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?= _("Access Key") ?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-input-width">
       <div class="u-input-width">
         <?php if (!empty($key_data['ACCESS_KEY_ID'])) { ?>
         <?php if (!empty($key_data['ACCESS_KEY_ID'])) { ?>

+ 2 - 2
web/templates/pages/list_ssl.html

@@ -15,8 +15,8 @@
   <form id="vstobjects" name="v_generate_csr" method="post">
   <form id="vstobjects" name="v_generate_csr" method="post">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
     <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
 
 
-    <div class="app-form">
-      <h1 class="page-title"><?=_('Generating CSR');?></h1>
+    <div class="form-container">
+      <h1 class="form-title"><?=_('Generating CSR');?></h1>
       <?php show_alert_message($_SESSION);?>
       <?php show_alert_message($_SESSION);?>
       <div class="u-wide-input-width">
       <div class="u-wide-input-width">
         <div class="u-mb20">
         <div class="u-mb20">

+ 1 - 1
web/templates/pages/list_webapps.html

@@ -15,7 +15,7 @@
 <div class="l-center animated fadeIn" style="padding-top:240px;">
 <div class="l-center animated fadeIn" style="padding-top:240px;">
 
 
   <div style="margin-left:68px; margin-top: 20px">
   <div style="margin-left:68px; margin-top: 20px">
-    <h1 class="page-title"><?=_('Quick Install App');?></h1>
+    <h1 class="form-title"><?=_('Quick Install App');?></h1>
     <div>
     <div>
       <span>
       <span>
         <?php
         <?php

+ 4 - 6
web/templates/pages/login/login_1.html

@@ -19,14 +19,12 @@
                   </tr>
                   </tr>
                   <tr>
                   <tr>
                     <td style="padding: 12px 0 0 2px;">
                     <td style="padding: 12px 0 0 2px;">
-                      <label for="password" class="form-label" style="display:block;">
+                      <label for="password" class="form-label u-side-by-side">
                         <?=_('Password');?>
                         <?=_('Password');?>
                         <?php if ($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] !== 'no' ) {?>
                         <?php if ($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] !== 'no' ) {?>
-                          <div style="padding:0 6px 0px 14px; float:right;">
-                            <a tabindex="5" class="vst-advanced" href="/reset/">
-                              <?=_('forgot password');?>
-                            </a>
-                          </div>
+                          <a tabindex="5" class="vst-advanced" href="/reset/">
+                            <?=_('forgot password');?>
+                          </a>
                         <?php } ?>
                         <?php } ?>
                       </label>
                       </label>
                       <input type="password" class="form-control" name="password" id="password" tabindex="2" style="width:260px;" autofocus>
                       <input type="password" class="form-control" name="password" id="password" tabindex="2" style="width:260px;" autofocus>

+ 4 - 6
web/templates/pages/login/login_2.html

@@ -19,13 +19,11 @@
                   </tr>
                   </tr>
                   <tr>
                   <tr>
                     <td style="padding-top: 12px; padding-left:2px;">
                     <td style="padding-top: 12px; padding-left:2px;">
-                      <label for="twofa" class="form-label" style="display:block;">
+                      <label for="twofa" class="form-label u-side-by-side">
                         <?=_('2FA Token');?>
                         <?=_('2FA Token');?>
-                        <div style="padding:0 6px 0px 14px; float:right;">
-                          <a tabindex="5" class="vst-advanced" href="/reset2fa/">
-                            <?=_('Forgot token');?>
-                          </a>
-                        </div>
+                        <a tabindex="5" class="vst-advanced" href="/reset2fa/">
+                          <?=_('Forgot token');?>
+                        </a>
                       </label>
                       </label>
                       <input type="text" class="form-control" name="twofa" id="twofa" tabindex="2" style="width:260px;" autofocus>
                       <input type="text" class="form-control" name="twofa" id="twofa" tabindex="2" style="width:260px;" autofocus>
                     </td>
                     </td>

+ 4 - 6
web/templates/pages/login/login_a.html

@@ -25,14 +25,12 @@
                   </tr>
                   </tr>
                   <tr>
                   <tr>
                     <td style="padding: 12px 0 0 2px;">
                     <td style="padding: 12px 0 0 2px;">
-                      <label for="password" class="form-label" style="display:block;">
+                      <label for="password" class="form-label u-side-by-side">
                         <?=_('Password');?>
                         <?=_('Password');?>
                         <?php if ($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] !== 'no' ) {?>
                         <?php if ($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] !== 'no' ) {?>
-                          <div style="padding:0 6px 0px 14px; float:right;">
-                            <a tabindex="5" class="vst-advanced" href="/reset/">
-                              <?=_('forgot password');?>
-                            </a>
-                          </div>
+                          <a tabindex="5" class="vst-advanced" href="/reset/">
+                            <?=_('forgot password');?>
+                          </a>
                         <?php } ?>
                         <?php } ?>
                       </label>
                       </label>
                       <input type="password" class="form-control" name="password" id="password" tabindex="2" style="width:260px;" autofocus>
                       <input type="password" class="form-control" name="password" id="password" tabindex="2" style="width:260px;" autofocus>

+ 2 - 2
web/templates/pages/setup_webapp.html

@@ -29,7 +29,7 @@
       <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
       <input type="hidden" name="token" value="<?=$_SESSION['token']?>">
       <input type="hidden" name="ok" value="true">
       <input type="hidden" name="ok" value="true">
 
 
-      <div class="app-form">
+      <div class="form-container">
         <?php if( !$WebappInstaller->isDomainRootClean()): ?>
         <?php if( !$WebappInstaller->isDomainRootClean()): ?>
           <div class="alert alert-info alert-with-icon u-input-width" role="alert">
           <div class="alert alert-info alert-with-icon u-input-width" role="alert">
             <i class="fas fa-info"></i>
             <i class="fas fa-info"></i>
@@ -38,7 +38,7 @@
             <p><?php echo sprintf(_('Please make sure ~/web/%s/public_html is empty!'),$v_domain);?></p>
             <p><?php echo sprintf(_('Please make sure ~/web/%s/public_html is empty!'),$v_domain);?></p>
           </div>
           </div>
         <?php endif; ?>
         <?php endif; ?>
-        <div class="u-input-width u-pt18">
+        <div class="u-input-width u-mt20">
           <?php foreach ($WebappInstaller->getOptions() as $form_name => $form_control):?>
           <?php foreach ($WebappInstaller->getOptions() as $form_name => $form_control):?>
             <?php
             <?php
               $f_name = $WebappInstaller->formNs() . '_' . $form_name;
               $f_name = $WebappInstaller->formNs() . '_' . $form_name;

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio