Ver Fonte

Merge branch 'staging/fixes' into main

Kristan Kenney há 5 anos atrás
pai
commit
0ac4911a3c

+ 10 - 2
CHANGELOG.md

@@ -6,8 +6,16 @@ All notable changes to this project will be documented in this file.
 
 ### Bugfixes
 - Create mailhelo.conf if it doesnt exist to prevent a error message during grep.
- 
-## [1.2.1] - Service Release 1 (beta)
+- Corrected the display of DNS record types to appear in alphabetical order.
+- Fixed an issue where the DNS record type field would reset if an error occurred while adding a new DNS record. (#992)
+- Fixed an issue where the DNS domain hint would not appear correctly when editing a DNS record. (#993)
+- Fixed an issue where a DNS record would become malformed if changed from A to CNAME. (#988)
+- Fixed an issue with the back button on the DNS records page. (#989)
+- Fixed an issue where phpMyAdmin/phpPgAdmin would not load correctly due to an incorrect vhost configuration. (#970)
+- Fixed an issue where malformed JSON output was returned when custom theme files are present. (#967)
+- Fixed an error that would occur when running `v-change-user-php-cli` for the first time if .bash_aliases did not exist. (#960)
+
+## [1.2.1] - Service Release 1
 ### Features
 - Consolidated First and Last Name fields to a singular name field to simply input.
     - v-change-user-name will now accept both "First Last" (single argument) and First Last (two arguments) for backward compatibility.

+ 6 - 2
bin/v-add-sys-filemanager

@@ -58,13 +58,17 @@ check_hestia_demo_mode
 line=$(grep "ID='$id'" $USER_DATA/dns/$domain.conf)
 parse_object_kv_list "$line"
 
+if [ -z $type ]; then
+    type=$TYPE
+fi
+
 # Null priority for none MX/SRV records
-if [ "$TYPE" != 'MX' ] && [ "$TYPE" != 'SRV' ]; then
+if [ "$type" != 'MX' ] && [ "$TYPE" != 'SRV' ]; then
     priority=''
 fi
 
 # Add trailing dot at the end of NS/CNAME/MX/PTR/SRV record
-if [[ $TYPE =~ NS|CNAME|MX|PTR|SRV ]]; then
+if [[ $type =~ NS|CNAME|MX|PTR|SRV ]]; then
     trailing_dot=$(echo $dvalue | grep "\.$")
     if [ -z $trailing_dot ]; then
         dvalue="$dvalue."

+ 1 - 1
bin/v-change-sys-db-alias

@@ -68,7 +68,7 @@ else
     $BIN/v-delete-mail-domain-ssl $user $domain $restart >/dev/null 2>&1
 fi
 cmdstatus="$?"
-if [ "$cmdstatus" -ne E_NOTEXIST ]; then
+if [ "$cmdstatus" -ne "$E_NOTEXIST" ]; then
     check_result "$cmdstatus" "SSL delete" >/dev/null
 fi
 

+ 1 - 1
bin/v-delete-sys-filemanager

@@ -109,7 +109,7 @@ else
 fi
 
 if [ ! -z "$2" ]; then
-    branch_check=$(curl -s --head -w %{http_code} https://raw.githubusercontent.com/hestiacp/hestiacp/$branch/src/deb/hestia/control -o /dev/null)
+    branch_check=$(curl -s --head -w %{http_code} https://raw.githubusercontent.com/$fork/hestiacp/$branch/src/deb/hestia/control -o /dev/null)
     if [ $branch_check -ne "200" ]; then
         echo "ERROR: invalid branch name specified."
         exit 1

+ 2 - 2
func/rebuild.sh

@@ -528,13 +528,13 @@ rebuild_mail_domain_conf() {
         if [ ! -z "$local_ip" ]; then
             IP_RDNS=$(is_ip_rdns_valid "$local_ip")
             if [ ! -z "$IP_RDNS" ]; then
-                if [ $(grep -s "^${domain}:" /etc/exim4/mailhelo.conf) ]; then
+                if [ -f /etc/exim4/mailhelo.conf ] && [ $(grep -s "^${domain}:" /etc/exim4/mailhelo.conf) ]; then
                     sed -i "/^${domain}:/c\\${domain}:${IP_RDNS}" /etc/exim4/mailhelo.conf
                 else
                     echo ${domain}:${IP_RDNS} >> /etc/exim4/mailhelo.conf
                 fi
             else
-                sed -i "/^${domain}:/d" /etc/exim4/mailhelo.conf
+                sed -i "/^${domain}:/d" /etc/exim4/mailhelo.conf >/dev/null 2>&1
             fi
         fi
 

+ 7 - 1
func/upgrade.sh

@@ -149,7 +149,13 @@ upgrade_init_backup() {
         fi
     fi
     if [ ! -z "$FTP_SYSTEM" ]; then
-        cp -f /etc/$FTP_SYSTEM.conf $HESTIA_BACKUP/conf/$FTP_SYSTEM/
+        if [ "$FTP_SYSTEM" = "vsftpd" ]; then
+            cp -f /etc/$FTP_SYSTEM.conf $HESTIA_BACKUP/conf/$FTP_SYSTEM/
+        fi
+
+        if [ "$FTP_SYSTEM" = "proftpd" ]; then
+            cp -f /etc/proftpd/proftpd.conf $HESTIA_BACKUP/conf/$FTP_SYSTEM/
+        fi
     fi
     if [ ! -z "$FIREWALL_EXTENSION" ]; then
         cp -f /etc/$FIREWALL_EXTENSION/*.conf $HESTIA_BACKUP/conf/$FIREWALL_EXTENSION/

+ 0 - 2
install/hst-install-debian.sh

@@ -918,8 +918,6 @@ rm -f /usr/sbin/policy-rc.d
 
 
 echo "[ * ] Configuring system settings..."
-# Enable SSH password authentication
-sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config
 
 # Enable SFTP subsystem for SSH
 sftp_subsys_enabled=$(grep -iE "^#?.*subsystem.+(sftp )?sftp-server" /etc/ssh/sshd_config)

+ 0 - 2
install/hst-install-ubuntu.sh

@@ -916,8 +916,6 @@ rm -f /usr/sbin/policy-rc.d
 #----------------------------------------------------------#
 
 echo "[ * ] Configuring system settings..."
-# Enable SSH password authentication
-sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config
 
 # Enable SFTP subsystem for SSH
 sftp_subsys_enabled=$(grep -iE "^#?.*subsystem.+(sftp )?sftp-server" /etc/ssh/sshd_config)

+ 6 - 4
web/add/dns/index.php

@@ -123,15 +123,15 @@ if (!empty($_POST['ok_rec'])) {
     $v_val = escapeshellarg($_POST['v_val']);
     $v_priority = escapeshellarg($_POST['v_priority']);
     $v_ttl = escapeshellarg($_POST['v_ttl']);
-
     // Add dns record
     if (empty($_SESSION['error_msg'])) {
         exec (HESTIA_CMD."v-add-dns-record ".$user." ".$v_domain." ".$v_rec." ".$v_type." ".$v_val." ".$v_priority." '' false ".$v_ttl, $output, $return_var);
         check_return_code($return_var,$output);
         unset($output);
-        $v_type = $_POST['v_type'];
+        
     }
-
+    $v_type = $_POST['v_type'];
+    
     // Flush field values on success
     if (empty($_SESSION['error_msg'])) {
         $_SESSION['ok_msg'] = __('DNS_RECORD_CREATED_OK',htmlentities($_POST['v_rec']),htmlentities($_POST['v_domain']));
@@ -179,8 +179,10 @@ if (empty($_GET['domain'])) {
     render_page($user, $TAB, 'add_dns');
 } else {
     // Display body for dns record
-
     $v_domain = $_GET['domain'];
+    if (empty($v_rec)){
+      $v_rec = '@';  
+    }
     render_page($user, $TAB, 'add_dns_rec');
 }
 

+ 49 - 0
web/js/pages/edit_dns_rec.js

@@ -0,0 +1,49 @@
+//
+//
+// Updates database dns record dynamically, showing its full domain path
+App.Actions.DB.update_dns_record_hint = function(elm, hint) {
+    // clean hint
+    if (hint.trim() == '') {
+        $(elm).parent().find('.hint').html('');
+    }
+
+    // set domain name without rec in case of @ entries
+    if (hint == '@') {
+        hint = '';
+    }
+
+    // dont show pregix if domain name = rec value
+    if (hint == GLOBAL.DNS_REC_PREFIX + '.') {
+        hint = '';
+    }
+
+    // add dot at the end if needed
+    if (hint != '' && hint.slice(-1) != '.') {
+        hint += '.';
+    }
+
+    $(elm).parent().find('.hint').text(hint + GLOBAL.DNS_REC_PREFIX);
+}
+
+//
+// listener that triggers dns record name hint updating
+App.Listeners.DB.keypress_dns_rec_entry = function() {
+    var ref = $('input[name="v_rec"]');
+    var current_rec = ref.val();
+    if (current_rec.trim() != '') {
+        App.Actions.DB.update_dns_record_hint(ref, current_rec);
+    }
+
+    ref.bind('keypress input', function(evt) {
+        clearTimeout(window.frp_usr_tmt);
+        window.frp_usr_tmt = setTimeout(function() {
+            var elm = $(evt.target);
+            App.Actions.DB.update_dns_record_hint(elm, $(elm).val());
+        }, 100);
+    });
+}
+
+//
+// Page entry point
+// Trigger listeners
+App.Listeners.DB.keypress_dns_rec_entry();

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

@@ -68,7 +68,7 @@
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" onchange="this.nextElementSibling.value=this.value">
+                                    <select class="vst-list" tabindex="-1" onchange="this.nextElementSibling.value=this.value">
                                         <option value="">clear</option>
                                         <?php
                                             foreach ($v_ips as $ip => $value) {

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

@@ -1,7 +1,7 @@
 <div class="l-center edit">
         <div class="l-sort clearfix">
           <div class="l-unit-toolbar__buttonstrip">
-            <a class="ui-button cancel" id="btn-back" href="javascript:window.history.back();"><i class="fas fa-arrow-left status-icon blue"></i> <?=__('Back')?></a>
+            <a class="ui-button cancel" id="btn-back" href="/list/dns/?domain=<?=htmlentities(trim($v_domain, "'"))?>&token=<?=$_SESSION['token']?>"><i class="fas fa-arrow-left status-icon blue"></i> <?=__('Back')?></a>
           </div>
           <div class="l-unit-toolbar__buttonstrip float-right">
             <a href="#" class="ui-button" title="<?=__('Save')?>" data-action="submit" data-id="vstobjects"><i class="fas fa-save status-icon purple"></i> <?=__('Save')?></a>
@@ -75,18 +75,18 @@
                                     <select class="vst-list" name="v_type">
                                         <option value="A" <?php if ($v_type == 'A') echo selected; ?>>A</option>
                                         <option value="AAAA" <?php if ($v_type == 'AAAA') echo selected; ?>>AAAA</option>
-                                        <option value="NS" <?php if ($v_type == 'NS') echo selected; ?>>NS</option>
+                                        <option value="CAA" <?php if ($v_type == 'CAA') echo selected; ?>>CAA</option>
                                         <option value="CNAME" <?php if ($v_type == 'CNAME') echo selected; ?>>CNAME</option>
-                                        <option value="MX" <?php if ($v_type == 'MX') echo selected; ?>>MX</option>
-                                        <option value="TXT" <?php if ($v_type == 'TXT') echo selected; ?>>TXT</option>
-                                        <option value="SRV" <?php if ($v_type == 'SRV') echo selected; ?>>SRV</option>
                                         <option value="DNSKEY" <?php if ($v_type == 'DNSKEY') echo selected; ?>>DNSKEY</option>
-                                        <option value="KEY" <?php if ($v_type == 'KEY') echo selected; ?>>KEY</option>
                                         <option value="IPSECKEY" <?php if ($v_type == 'IPSECKEY') echo selected; ?>>IPSECKEY</option>
+                                        <option value="KEY" <?php if ($v_type == 'KEY') echo selected; ?>>KEY</option>
+                                        <option value="MX" <?php if ($v_type == 'MX') echo selected; ?>>MX</option>
+                                        <option value="NS" <?php if ($v_type == 'NS') echo selected; ?>>NS</option>
                                         <option value="PTR" <?php if ($v_type == 'PTR') echo selected; ?>>PTR</option>
                                         <option value="SPF" <?php if ($v_type == 'SPF') echo selected; ?>>SPF</option>
+                                        <option value="SRV" <?php if ($v_type == 'SRV') echo selected; ?>>SRV</option>
                                         <option value="TLSA" <?php if ($v_type == 'TLSA') echo selected; ?>>TLSA</option>
-                                        <option value="CAA" <?php if ($v_type == 'CAA') echo selected; ?>>CAA</option>
+                                        <option value="TXT" <?php if ($v_type == 'TXT') echo selected; ?>>TXT</option>
                                     </select>
                                 </td>
                             </tr>
@@ -97,7 +97,7 @@
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" onchange="this.nextElementSibling.value=this.value">
+                                    <select class="vst-list" tabindex="-1" onchange="this.nextElementSibling.value=this.value">
                                         <option value="">clear</option>
                                         <?php
                                             foreach ($v_ips as $ip => $value) {

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

@@ -95,7 +95,7 @@
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" id="quickips_list" onchange="this.nextElementSibling.value=this.value">
+                                    <select class="vst-list" tabindex="-1" id="quickips_list" onchange="this.nextElementSibling.value=this.value">
                                         <option value="">clear</option>
                                     </select>
                                     <input type="text" size="20" class="vst-input vst-list-editor" name="v_ip" value="<?=htmlentities(trim($v_ip, "'"))?>">

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

@@ -68,7 +68,7 @@
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" id="datasource_list" onchange="this.nextElementSibling.value=this.value">
+                                    <select class="vst-list" tabindex="-1" id="datasource_list" onchange="this.nextElementSibling.value=this.value">
                                         <option value="">clear</option>
                                     </select>
                                     <input type="text" size="20" class="vst-input vst-list-editor" name="v_datasource" maxlength="255" value="<?=htmlentities(trim($v_datasource, "'"))?>">

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

@@ -1,7 +1,7 @@
 <div class="l-center edit">
         <div class="l-sort clearfix">
           <div class="l-unit-toolbar__buttonstrip">
-            <a class="ui-button cancel" id="btn-back" href="javascript:window.history.back();"><i class="fas fa-arrow-left status-icon blue"></i> <?=__('Back')?></a>
+            <a class="ui-button cancel" id="btn-back" href="/list/mail/?domain=<?=htmlentities(trim($v_domain, "'"))?>&token=<?=$_SESSION['token']?>"><i class="fas fa-arrow-left status-icon blue"></i> <?=__('Back')?></a>
           </div>
           <div class="l-unit-toolbar__buttonstrip float-right">
             <a href="#" class="ui-button" title="<?=__('Save')?>" data-action="submit" data-id="vstobjects"><i class="fas fa-save status-icon purple"></i> <?=__('Save')?></a>

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

@@ -71,7 +71,7 @@
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" onchange="this.nextElementSibling.value=this.value">
+                                    <select class="vst-list" tabindex="-1" onchange="this.nextElementSibling.value=this.value">
                                         <option value="">clear</option>
                                         <?php
                                             foreach ($v_ips as $ip => $value) {

+ 12 - 13
web/templates/admin/edit_dns_rec.html

@@ -73,6 +73,7 @@
                                 <td>
                                   <input type="text" size="20" class="vst-input" name="v_rec" value="<?=htmlentities(trim($v_rec, "'"))?>">
                                   <input type="hidden" name="v_record_id" value="<?=htmlentities($v_record_id)?>">
+                                  <small class="hint"></small>
                                 </td>
                             </tr>
                             <tr>
@@ -85,18 +86,18 @@
                                     <select class="vst-list" name="v_type">
                                         <option value="A" <?php if ($v_type == 'A') echo selected; ?>>A</option>
                                         <option value="AAAA" <?php if ($v_type == 'AAAA') echo selected; ?>>AAAA</option>
-                                        <option value="NS" <?php if ($v_type == 'NS') echo selected; ?>>NS</option>
+                                        <option value="CAA" <?php if ($v_type == 'CAA') echo selected; ?>>CAA</option>
                                         <option value="CNAME" <?php if ($v_type == 'CNAME') echo selected; ?>>CNAME</option>
-                                        <option value="MX" <?php if ($v_type == 'MX') echo selected; ?>>MX</option>
-                                        <option value="TXT" <?php if ($v_type == 'TXT') echo selected; ?>>TXT</option>
-                                        <option value="SRV" <?php if ($v_type == 'SRV') echo selected; ?>>SRV</option>
                                         <option value="DNSKEY" <?php if ($v_type == 'DNSKEY') echo selected; ?>>DNSKEY</option>
-                                        <option value="KEY" <?php if ($v_type == 'KEY') echo selected; ?>>KEY</option>
                                         <option value="IPSECKEY" <?php if ($v_type == 'IPSECKEY') echo selected; ?>>IPSECKEY</option>
+                                        <option value="KEY" <?php if ($v_type == 'KEY') echo selected; ?>>KEY</option>
+                                        <option value="MX" <?php if ($v_type == 'MX') echo selected; ?>>MX</option>
+                                        <option value="NS" <?php if ($v_type == 'NS') echo selected; ?>>NS</option>
                                         <option value="PTR" <?php if ($v_type == 'PTR') echo selected; ?>>PTR</option>
                                         <option value="SPF" <?php if ($v_type == 'SPF') echo selected; ?>>SPF</option>
+                                        <option value="SRV" <?php if ($v_type == 'SRV') echo selected; ?>>SRV</option>
                                         <option value="TLSA" <?php if ($v_type == 'TLSA') echo selected; ?>>TLSA</option>
-                                        <option value="CAA" <?php if ($v_type == 'CAA') echo selected; ?>>CAA</option>
+                                        <option value="TXT" <?php if ($v_type == 'TXT') echo selected; ?>>TXT</option>
                                     </select>
                                 </td>
                             </tr>
@@ -107,7 +108,7 @@
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" onchange="this.nextElementSibling.value=this.value">
+                                    <select class="vst-list" tabindex="-1" onchange="this.nextElementSibling.value=this.value">
                                         <option value="">clear</option>
                                         <?php
                                             foreach ($v_ips as $ip => $value) {
@@ -139,14 +140,9 @@
                                     <input type="text" size="20" class="vst-input" name="v_ttl" value="<?=htmlentities(trim($v_ttl, "'"))?>">
                                 </td>
                             </tr>                            
-                            <tr>
-                                <td class="vst-text input-label">
-                                    <?php print __('Record Number');?> <span class="optional">(<?=__('internal');?>)</span>
-                                </td>
-                            </tr>
                             <tr>
                                 <td>
-                                    <input type="text" size="20" class="vst-input" name="v_record_id" value="<?=htmlentities(trim($v_record_id, "'"))?>">
+                                    <input type="hidden" size="20" class="vst-input" name="v_record_id" value="<?=htmlentities(trim($v_record_id, "'"))?>">
                                 </td>
                             </tr>
                         </table>
@@ -156,3 +152,6 @@
             </table>
         </form>
     </div>
+    <script>
+        GLOBAL.DNS_REC_PREFIX = <?=json_encode($_GET['domain'])?>;
+    </script>    

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

@@ -98,7 +98,7 @@
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" id="quickips_list" onchange="this.nextElementSibling.value=this.value">
+                                    <select class="vst-list" tabindex="-1" id="quickips_list" onchange="this.nextElementSibling.value=this.value">
                                         <option value="">clear</option>
                                     </select>
                                     <input type="text" size="20" class="vst-input vst-list-editor" name="v_ip" value="<?=htmlentities(trim($v_ip, "'"))?>">

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

@@ -821,7 +821,7 @@
                                 <td class="vst-text input-label step-left">
                                     <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="hestia">
                                         <tr>
-                                            <td class="vst-text">
+                                            <td class="vst-text input-label">
                                                 <?php print __('Fm');?>
                                             </td>
                                         </tr>
@@ -835,7 +835,7 @@
                                             </td>
                                         </tr>
                                         <tr>
-                                            <td class="vst-text">
+                                            <td class="vst-text input-label">
                                                 <?php print __('FileSystem Disk Quota');?>
                                             </td>
                                         </tr>

+ 11 - 9
web/templates/admin/list_dns_rec.html

@@ -44,10 +44,11 @@
             <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
           </div>
           <div class="clearfix l-unit__stat-col--left small"><b><?php print __('Record');?></b></div>
-          <div class="clearfix l-unit__stat-col--left compact text-right"><b>&nbsp;</b></div>
-          <div class="clearfix l-unit__stat-col--left compact text-center"><b><?php print __('Type');?></b></div>
-          <div class="clearfix l-unit__stat-col--left compact"><b><?php print __('Priority');?></b></div>
-          <div class="clearfix l-unit__stat-col--left compact"><b><?php print __('TTL');?></b></div>
+          <div class="clearfix l-unit__stat-col--left super-compact text-right"><b>&nbsp;</b></div>
+          <div class="clearfix l-unit__stat-col--left compact text-center" style="padding-left: 32px;"><b><?php print __('Type');?></b></div>
+          <div class="clearfix l-unit__stat-col--left compact text-center"><b><?php print __('Priority');?></b></div>
+          <div class="clearfix l-unit__stat-col--left compact text-center"><b><?php print __('TTL');?></b></div>
+          <div class="clearfix l-unit__stat-col--left super-compact"><b>&nbsp;</b></div>
           <div class="clearfix l-unit__stat-col--left wide-6"><b><?php print __('IP or Value');?></b></div>
         </div>
     </div>
@@ -74,7 +75,7 @@ v_unit_id="<?=$key?>" v_section="dns_rec">
             </div>
             <div class="clearfix l-unit__stat-col--left small"><b><a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?=__('Editing DNS Record').': '.htmlspecialchars($data[$key]['RECORD'])?>"><? echo substr($data[$key]['RECORD'], 0, 12); if(strlen($data[$key]['RECORD']) > 12 ) echo '...'; ?></a></b></div>
             <!-- START QUICK ACTION TOOLBAR AREA -->
-            <div class="clearfix l-unit__stat-col--left compact text-right">
+            <div class="clearfix l-unit__stat-col--left super-compact text-right">
               <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
                 <div class="actions-panel clearfix">
                   <div class="actions-panel__col actions-panel__logs shortcut-enter" key-action="href"><a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?=__('Editing DNS Record')?>"><i class="fas fa-pencil-alt status-icon orange status-icon dim"></i></a></div>
@@ -91,10 +92,11 @@ v_unit_id="<?=$key?>" v_section="dns_rec">
               </div>
             </div>
             <!-- END QUICK ACTION TOOLBAR AREA -->
-            <div class="clearfix l-unit__stat-col--left compact text-center"><b><?=$data[$key]['TYPE']?></b></div>
-            <div class="clearfix l-unit__stat-col--left compact"><?=$data[$key]['PRIORITY']?>&nbsp;</div>
-            <div class="clearfix l-unit__stat-col--left compact"><?php if($data[$key]['TTL'] == ''){ echo __('Default'); }else{ echo $data[$key]['TTL'];} ?></div>
-            <div class="clearfix l-unit__stat-col--left wide-6"><?=htmlspecialchars($data[$key]['VALUE'], ENT_QUOTES, 'UTF-8')?></div>
+            <div class="clearfix l-unit__stat-col--left compact text-center" style="padding-left: 32px;"><b><?=$data[$key]['TYPE']?></b></div>
+            <div class="clearfix l-unit__stat-col--left compact text-center"><?=$data[$key]['PRIORITY']?>&nbsp;</div>
+            <div class="clearfix l-unit__stat-col--left compact text-center"><?php if($data[$key]['TTL'] == ''){ echo __('Default'); }else{ echo $data[$key]['TTL'];} ?></div>
+            <div class="clearfix l-unit__stat-col--left super-compact"><b>&nbsp;</b></div>
+            <div class="clearfix l-unit__stat-col--left wide-6" style="word-break: break-word;"><?=htmlspecialchars($data[$key]['VALUE'], ENT_QUOTES, 'UTF-8')?></div>
           </div>
         </div>
       <?}?>

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

@@ -55,12 +55,12 @@
                     <div class="l-unit__stat-col l-unit__stat-col--left wide"><b><?=__('Hestia Control Panel')?>:</b></div>
                     <div class="l-unit__stat-col l-unit__stat-col--right">
                       <? if($sys['sysinfo']['RELEASE'] != 'release') { ?>
-                        <i class="fas fa-flask icon-large status-icon red" title="Development release"></i>
+                        <i class="fas fa-flask icon-large status-icon red" title="<?php echo $sys['sysinfo']['RELEASE'];?>"></i>
                       <? } ?>
                       <? if($sys['sysinfo']['RELEASE'] == 'release') { ?>
-                        <i class="fas fa-cube icon-large status-icon" title="Official release"></i>
+                        <i class="fas fa-cube icon-large status-icon" title="<?=__('Production release')?>"></i>
                       <? } ?>
-                      &nbsp;v<?=$sys['sysinfo']['HESTIA']?>&nbsp;&nbsp;<? if($sys['sysinfo']['RELEASE'] != 'release') { ?><i class="fas fa-code-branch"></i> <?=$sys['sysinfo']['RELEASE']?><? } ?></div>
+                      &nbsp;v<?=$sys['sysinfo']['HESTIA']?></div>
                   </div>
                 </td>
                 <td>

+ 1 - 1
web/templates/user/edit_dns.html

@@ -71,7 +71,7 @@
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" onchange="this.nextElementSibling.value=this.value">
+                                    <select class="vst-list" tabindex="-1" onchange="this.nextElementSibling.value=this.value">
                                         <option value="">clear</option>
                                         <?php
                                             foreach ($v_ips as $ip => $value) {