Serghey Rodin 13 лет назад
Родитель
Сommit
fb8f65c9a0

+ 0 - 0
bin/v_add_mail_domain_cactchall → bin/v_add_mail_domain_catchall


+ 0 - 0
bin/v_change_mail_domain_cactchall → bin/v_change_mail_domain_catchall


+ 0 - 0
bin/v_delete_mail_domain_cactchall → bin/v_delete_mail_domain_catchall


+ 3 - 3
bin/v_list_mail_domain

@@ -31,9 +31,9 @@ json_list_domain() {
             echo -e "\t\"$value\": {"
         else
             if [ "$fileds_count" -eq "$i" ]; then
-                echo -e "\t\t\"${field//$/}\": \"$value\","
-            else
                 echo -e "\t\t\"${field//$/}\": \"$value\""
+            else
+                echo -e "\t\t\"${field//$/}\": \"$value\","
             fi
         fi
         (( ++i))
@@ -72,7 +72,7 @@ is_object_valid 'mail' 'DOMAIN' "$domain"
 # Defining fileds to select
 conf=$USER_DATA/mail.conf
 fields='$DOMAIN $ANTIVIRUS $ANTISPAM $DKIM $ACCOUNTS $U_DISK $CATCHALL
-$SUSPENDED $DATE'
+$SUSPENDED $TIME $DATE'
 
 # Listing domains
 case $format in 

+ 51 - 0
web/add/mail/index.php

@@ -86,7 +86,11 @@ if ($_SESSION['user'] == 'admin') {
         $v_account = escapeshellarg($_POST['v_account']);
         $v_password = escapeshellarg($_POST['v_password']);
         $v_quota = escapeshellarg($_POST['v_quota']);
+        $v_aliases = $_POST['v_aliases'];
+        $v_fwd = $_POST['v_fwd'];
+
         if (empty($_POST['v_quota'])) $v_quota = 0;
+        if ((!empty($_POST['v_quota'])) || (!empty($_POST['v_aliases'])) || (!empty($_POST['v_fwd'])) ) $v_adv = 'yes';
 
         // Check for errors
         if (!empty($errors[0])) {
@@ -106,11 +110,58 @@ if ($_SESSION['user'] == 'admin') {
                 if (empty($error)) $error = 'Error: vesta did not return any output.';
                 $_SESSION['error_msg'] = $error;
             }
+
+            // Add Aliases
+            if ((!empty($_POST['v_aliases'])) && (empty($_SESSION['error_msg']))) {
+                $valiases = preg_replace("/\n/", " ", $_POST['v_aliases']);
+                $valiases = preg_replace("/,/", " ", $valiases);
+                $valiases = preg_replace('/\s+/', ' ',$valiases);
+                $valiases = trim($valiases);
+                $aliases = explode(" ", $valiases);
+                foreach ($aliases as $alias) {
+                    $alias = escapeshellarg($alias);
+                    if (empty($_SESSION['error_msg'])) {
+                        exec (VESTA_CMD."v_add_mail_account_alias ".$user." ".$v_domain." ".$v_account." ".$alias, $output, $return_var);
+                        if ($return_var != 0) {
+                            $error = implode('<br>', $output);
+                            if (empty($error)) $error = 'Error: vesta did not return any output.';
+                            $_SESSION['error_msg'] = $error;
+                        }
+                    }
+                    unset($output);
+                }
+            }
+
+            // Add Forwads
+            if ((!empty($_POST['v_fwd'])) && (empty($_SESSION['error_msg']))) {
+                $vfwd = preg_replace("/\n/", " ", $_POST['v_fwd']);
+                $vfwd = preg_replace("/,/", " ", $vfwd);
+                $vfwd = preg_replace('/\s+/', ' ',$vfwd);
+                $vfwd = trim($vfwd);
+                $fwd = explode(" ", $vfwd);
+                foreach ($fwd as $forward) {
+                    $forward = escapeshellarg($forward);
+                    if (empty($_SESSION['error_msg'])) {
+                        exec (VESTA_CMD."v_add_mail_account_forward ".$user." ".$v_domain." ".$v_account." ".$forward, $output, $return_var);
+                        if ($return_var != 0) {
+                            $error = implode('<br>', $output);
+                            if (empty($error)) $error = 'Error: vesta did not return any output.';
+                            $_SESSION['error_msg'] = $error;
+                        }
+                    }
+                    unset($output);
+                }
+            }
+
             unset($output);
             if (empty($_SESSION['error_msg'])) {
                 $_SESSION['ok_msg'] = "OK: account <b>".$_POST['v_account']."</b> has been created successfully.";
                 unset($v_account);
                 unset($v_password);
+                unset($v_password);
+                unset($v_aliases);
+                unset($v_fwd);
+                unset($v_quota);
             }
         }
     }

+ 232 - 0
web/edit/mail/index.php

@@ -0,0 +1,232 @@
+<?php
+// Init
+//error_reporting(NULL);
+ob_start();
+session_start();
+
+$TAB = 'MAIL';
+include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
+
+// Header
+include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
+
+// Panel
+top_panel($user,$TAB);
+
+// Are you admin?
+if ($_SESSION['user'] == 'admin') {
+
+    // Check user argument?
+    if (empty($_GET['domain'])) {
+        header("Location: /list/mail/");
+    }
+
+    if (!empty($_POST['cancel'])) {
+        header("Location: /list/mail/");
+    }
+
+    // Check domain
+    if ((!empty($_GET['domain'])) && (empty($_GET['account'])))  {
+        $v_domain = escapeshellarg($_GET['domain']);
+        exec (VESTA_CMD."v_list_mail_domain ".$user." ".$v_domain." json", $output, $return_var);
+        if ($return_var != 0) {
+            $error = implode('<br>', $output);
+            if (empty($error)) $error = 'Error: vesta did not return any output.';
+            $_SESSION['error_msg'] = $error;
+        } else {
+            $data = json_decode(implode('', $output), true);
+            unset($output);
+            $v_username = $user;
+            $v_domain = $_GET['domain'];
+            $v_antispam = $data[$v_domain]['ANTISPAM'];
+            $v_antivirus = $data[$v_domain]['ANTIVIRUS'];
+            $v_dkim = $data[$v_domain]['DKIM'];
+            $v_catchall = $data[$v_domain]['CATCHALL'];
+            $v_date = $data[$v_domain]['DATE'];
+            $v_time = $data[$v_domain]['TIME'];
+            $v_suspended = $data[$v_domain]['SUSPENDED'];
+            if ( $v_suspended == 'yes' ) {
+                $v_status =  'suspended';
+            } else {
+                $v_status =  'active';
+            }
+        }
+
+        // Action
+        if (!empty($_POST['save'])) {
+            $v_domain = escapeshellarg($_POST['v_domain']);
+
+            // Antispam
+            if (($v_antispam == 'yes') && (empty($_POST['v_antispam'])) && (empty($_SESSION['error_msg']))) {
+                exec (VESTA_CMD."v_delete_mail_domain_antispam ".$v_username." ".$v_domain, $output, $return_var);
+                if ($return_var != 0) {
+                    $error = implode('<br>', $output);
+                    if (empty($error)) $error = 'Error: vesta did not return any output.';
+                    $_SESSION['error_msg'] = $error;
+                }
+                $v_antispam = 'no';
+                unset($output);
+            }
+            if (($v_antispam == 'no') && (!empty($_POST['v_antispam'])) && (empty($_SESSION['error_msg']))) {
+                exec (VESTA_CMD."v_add_mail_domain_antispam ".$v_username." ".$v_domain, $output, $return_var);
+                if ($return_var != 0) {
+                    $error = implode('<br>', $output);
+                    if (empty($error)) $error = 'Error: vesta did not return any output.';
+                    $_SESSION['error_msg'] = $error;
+                }
+                $v_antispam = 'yes';
+                unset($output);
+            }
+
+            // Antivirus
+            if (($v_antivirus == 'yes') && (empty($_POST['v_antivirus'])) && (empty($_SESSION['error_msg']))) {
+                exec (VESTA_CMD."v_delete_mail_domain_antivirus ".$v_username." ".$v_domain, $output, $return_var);
+                if ($return_var != 0) {
+                    $error = implode('<br>', $output);
+                    if (empty($error)) $error = 'Error: vesta did not return any output.';
+                    $_SESSION['error_msg'] = $error;
+                }
+                $v_antivirus = 'no';
+                unset($output);
+            }
+            if (($v_antivirus == 'no') && (!empty($_POST['v_antivirus'])) && (empty($_SESSION['error_msg']))) {
+                exec (VESTA_CMD."v_add_mail_domain_antivirus ".$v_username." ".$v_domain, $output, $return_var);
+                if ($return_var != 0) {
+                    $error = implode('<br>', $output);
+                    if (empty($error)) $error = 'Error: vesta did not return any output.';
+                    $_SESSION['error_msg'] = $error;
+                }
+                $v_antivirus = 'yes';
+                unset($output);
+            }
+
+            if (empty($_SESSION['error_msg'])) {
+                $_SESSION['ok_msg'] = "OK: changes has been saved.";
+            }
+
+            // DKIM
+            if (($v_dkim == 'yes') && (empty($_POST['v_dkim'])) && (empty($_SESSION['error_msg']))) {
+                exec (VESTA_CMD."v_delete_mail_domain_dkim ".$v_username." ".$v_domain, $output, $return_var);
+                if ($return_var != 0) {
+                    $error = implode('<br>', $output);
+                    if (empty($error)) $error = 'Error: vesta did not return any output.';
+                    $_SESSION['error_msg'] = $error;
+                }
+                $v_dkim = 'no';
+                unset($output);
+            }
+            if (($v_dkim == 'no') && (!empty($_POST['v_dkim'])) && (empty($_SESSION['error_msg']))) {
+                exec (VESTA_CMD."v_add_mail_domain_dkim ".$v_username." ".$v_domain, $output, $return_var);
+                if ($return_var != 0) {
+                    $error = implode('<br>', $output);
+                    if (empty($error)) $error = 'Error: vesta did not return any output.';
+                    $_SESSION['error_msg'] = $error;
+                }
+                $v_dkim = 'yes';
+                unset($output);
+            }
+
+            // Catchall
+            if ((!empty($v_catchall)) && (empty($_POST['v_catchall'])) && (empty($_SESSION['error_msg']))) {
+                exec (VESTA_CMD."v_delete_mail_domain_catchall ".$v_username." ".$v_domain, $output, $return_var);
+                if ($return_var != 0) {
+                    $error = implode('<br>', $output);
+                    if (empty($error)) $error = 'Error: vesta did not return any output.';
+                    $_SESSION['error_msg'] = $error;
+                }
+                $v_catchall = '';
+                unset($output);
+            }
+
+            if ((!empty($v_catchall)) && (!empty($_POST['v_catchall'])) && (empty($_SESSION['error_msg']))) {
+                if ($v_catchall != $_POST['v_catchall']) {
+                    $v_catchall = escapeshellarg($_POST['v_catchall']);
+                    exec (VESTA_CMD."v_change_mail_domain_catchall ".$v_username." ".$v_domain." ".$v_catchall, $output, $return_var);
+                    if ($return_var != 0) {
+                        $error = implode('<br>', $output);
+                        if (empty($error)) $error = 'Error: vesta did not return any output.';
+                        $_SESSION['error_msg'] = $error;
+                    }
+                    unset($output);
+                }
+            }
+
+            if ((empty($v_catchall)) && (!empty($_POST['v_catchall'])) && (empty($_SESSION['error_msg']))) {
+                $v_catchall = escapeshellarg($_POST['v_catchall']);
+                exec (VESTA_CMD."v_add_mail_domain_catchall ".$v_username." ".$v_domain." ".$v_catchall, $output, $return_var);
+                if ($return_var != 0) {
+                    $error = implode('<br>', $output);
+                    if (empty($error)) $error = 'Error: vesta did not return any output.';
+                    $_SESSION['error_msg'] = $error;
+                }
+                unset($output);
+            }
+
+            if (empty($_SESSION['error_msg'])) {
+                $_SESSION['ok_msg'] = "OK: changes has been saved.";
+            }
+        }
+        include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/menu_edit_mail.html');
+        include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_mail.html');
+        unset($_SESSION['error_msg']);
+        unset($_SESSION['ok_msg']);
+    } else {
+        $v_domain = escapeshellarg($_GET['domain']);
+        $v_record_id = escapeshellarg($_GET['record_id']);
+        exec (VESTA_CMD."v_list_dns_domain_records ".$user." ".$v_domain." 'json'", $output, $return_var);
+        if ($return_var != 0) {
+            $error = implode('<br>', $output);
+            if (empty($error)) $error = 'Error: vesta did not return any output.';
+            $_SESSION['error_msg'] = $error;
+        } else {
+            $data = json_decode(implode('', $output), true);
+            unset($output);
+            $v_username = $user;
+            $v_domain = $_GET['domain'];
+            $v_d = $_GET['record_id'];
+            $v_rec = $data[$v_record_id]['RECORD'];
+            $v_type = $data[$v_record_id]['TYPE'];
+            $v_val = $data[$v_record_id]['VALUE'];
+            $v_priority = $data[$v_record_id]['PRIORITY'];
+            $v_suspended = $data[$v_record_id]['SUSPENDED'];
+            if ( $v_suspended == 'yes' ) {
+                $v_status =  'suspended';
+            } else {
+                $v_status =  'active';
+            }
+            $v_date = $data[$v_record_id]['DATE'];
+            $v_time = $data[$v_record_id]['TIME'];
+        }
+
+        // Action
+        if (!empty($_POST['save'])) {
+            $v_domain = escapeshellarg($_POST['v_domain']);
+            $v_record_id = escapeshellarg($_POST['v_record_id']);
+
+            if (($v_val != $_POST['v_val']) || ($v_priority != $_POST['v_priority']) && (empty($_SESSION['error_msg']))) {
+                $v_val = escapeshellarg($_POST['v_val']);
+                $v_priority = escapeshellarg($_POST['v_priority']);
+                exec (VESTA_CMD."v_change_dns_domain_record ".$v_username." ".$v_domain." ".$v_record_id." ".$v_val." ".$v_priority, $output, $return_var);
+                if ($return_var != 0) {
+                    $error = implode('<br>', $output);
+                    if (empty($error)) $error = 'Error: vesta did not return any output.';
+                    $_SESSION['error_msg'] = $error;
+                }
+                $restart_dns = 'yes';
+                unset($output);
+            }
+    
+            if (empty($_SESSION['error_msg'])) {
+                $_SESSION['ok_msg'] = "OK: changes has been saved.";
+            }
+
+        }
+        include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/menu_edit_dns_rec.html');
+        include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_dns_rec.html');
+        unset($_SESSION['error_msg']);
+        unset($_SESSION['ok_msg']);
+    }
+}
+
+// Footer
+include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');

+ 1 - 1
web/list/mail/index.php

@@ -27,7 +27,7 @@ if ($_SESSION['user'] == 'admin') {
         exec (VESTA_CMD."v_list_mail_accounts '".$user."' '".$_GET['domain']."' 'json'", $output, $return_var);
         check_error($return_var);
         $data = json_decode(implode('', $output), true);
-        //$data = array_reverse($data);
+        $data = array_reverse($data);
         unset($output);
         include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/menu_mail_acc.html');
         include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/list_mail_acc.html');

+ 30 - 12
web/templates/admin/add_mail_acc.html

@@ -1,14 +1,23 @@
 <script type="text/javascript">
-function randomString() {
-var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
-var string_length = 10;
-var randomstring = '';
-for (var i=0; i<string_length; i++) {
-  var rnum = Math.floor(Math.random() * chars.length);
-  randomstring += chars.substring(rnum,rnum+1);
-}
-document.v_add_user.v_password.value = randomstring;
-}
+  function elementHideShow(elementToHideOrShow) {
+      var el = document.getElementById(elementToHideOrShow);
+      if (el.style.display == "block") {
+        el.style.display = "none";
+      } else {
+        el.style.display = "block";
+      }
+    }
+
+    function randomString() {
+      var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
+      var string_length = 10;
+      var randomstring = '';
+      for (var i=0; i<string_length; i++) {
+        var rnum = Math.floor(Math.random() * chars.length);
+        randomstring += chars.substring(rnum,rnum+1);
+      }
+      document.v_add_user.v_password.value = randomstring;
+    }
 </script>
 
 
@@ -31,8 +40,17 @@ document.v_add_user.v_password.value = randomstring;
             <tr><td><input type="text" size="20" class="add-input" name="v_account" <?php if (!empty($v_account)) echo "value=".$v_account; ?>></tr>
             <tr><td class="add-text" style="padding: 10px 0 0 2px;">Password <a href="javascript:randomString();" class="genpass">generate</a></td></tr>
             <tr><td><input type="text" size="20" class="add-input" name="v_password"</tr>
-            <tr><td class="add-text" style="padding: 10px 0 0 2px;">Quota <span style="padding:0 0 0 6px; font-size: 10pt; color:#555;">(optional)</span></td></tr>
-            <tr><td><input type="text" size="20" class="add-input" name="v_quota" <?php if (!empty($v_quota)) echo "value=".$v_quota; ?>></tr>
+            <tr><td class="add-text" style="padding: 10px 0 0 2px;"><a href="javascript:elementHideShow('advtable');" class="add-advanced">Advanced Options ⇢</a></td></tr>
+            <tr><td class="add-text" style="padding: 9px 0 0 0px;">
+                <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
+                    <tr><td class="add-text" style="padding: 0 0 0 2px;">Quota <span style="padding: 0pt 0pt 0pt 6px; font-size: 10pt; color: rgb(85, 85, 85);">(in megabytes)</span></td></tr>
+                    <tr><td><input type="text" size="20" class="add-input" name="v_quota" <?php if (!empty($v_quota)) echo "value=".$v_quota; ?>></tr>
+                    <tr><td class="add-text" style="padding: 10 0 0 2px;">Aliases <span style="padding: 0pt 0pt 0pt 6px; font-size: 10pt; color: rgb(85, 85, 85);">(local part only)</span></td></tr>
+                    <tr><td><textarea size="20" class="add-textinput" name="v_aliases"><?php if (!empty($v_aliases)) echo $v_aliases;  ?></textarea></td></tr>
+                    <tr><td class="add-text" style="padding: 10 0 0 2px;">Forward to <span style="padding: 0pt 0pt 0pt 6px; font-size: 10pt; color: rgb(85, 85, 85);">(email address or addresses)</span></td></tr>
+                    <tr><td><textarea size="20" class="add-textinput" name="v_fwd"><?php if (!empty($v_fwd)) echo $v_fwd;  ?></textarea></td></tr>
+                </table>
+            </td></tr>
             <tr><td style="padding: 24px 0 0 0;">
                 <input type="submit" name="ok_acc" value="OK" class="add-button"></form>
                 <input type="button" class="add-button" value="Cancel" onClick="location.href='/list/mail/<?php echo "?domain=".$v_domain;  ?>'">

+ 35 - 0
web/templates/admin/edit_mail.html

@@ -0,0 +1,35 @@
+<table class='data'>
+<tr class="data-add">
+    <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
+        <table class="data-col1">
+            <tr><td style="padding: 20px 0 4px 4px;"><a class="data-date" ?><?php echo date("d M Y", strtotime($v_date))?></a></td></tr>
+            <tr><td style="padding: 0 0 6px 4px;"><a class="data-date" ?><?php echo $v_time?></a></td></tr>
+            <tr><td style="padding: 0 0 0 24px;" class="data-<?php echo $v_status ?>"><b><?php echo $v_status ?></b></td></tr>
+        </table>
+    </td>
+    <td class="data-dotted" width="830px" style="vertical-align:top;">
+        <table width="830px"><tr>
+            <td></td>
+        </tr></table>
+        <form method="post" name="v_edit_user">
+        <table class="data-col2" width="830px">
+            <tr><td class="add-text" style="padding: 10 0 0 2px;">Domain</td></tr>
+            <tr><td><input type="text" size="20" class="add-input" name="v_domain" <?php if (!empty($v_domain)) echo "value=".$v_domain;  ?> disabled> <input type="hidden" name="v_domain" <?php if (!empty($v_domain)) echo "value=".$v_domain;  ?>></td></tr>
+            <tr><td class="add-text" style="padding: 10px 0 0 2px;">AntiSpam Support</td></tr>
+            <tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_antispam" <?php if ($v_antispam == 'yes') echo "checked=yes"; ?>></tr>
+            <tr><td class="add-text" style="padding: 10px 0 0 2px;">AntiVirus Support</td></tr>
+            <tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_antivirus" <?php if ($v_antivirus == 'yes') echo "checked=yes"; ?>></tr>
+            <tr><td class="add-text" style="padding: 10px 0 0 2px;">DKIM Support</td></tr>
+            <tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_dkim" <?php if ($v_dkim == 'yes') echo "checked=yes"; ?>></tr>
+            <tr><td class="add-text" style="padding: 10px 0 0 2px;">Catchall Email</td></tr>
+            <tr><td><input type="text" size="20" class="add-input" name="v_catchall" <?php if (!empty($v_catchall)) echo "value=".$v_catchall;  ?> ></td></tr>
+
+            <tr><td style="padding: 24px 0 0 0;">
+                <input type="submit" class="add-button" name="save" value="Save"></form>
+                <input type="button" class="add-button" value="Cancel" onClick="location.href='/list/mail/'">
+            </td></tr>
+            </form>
+        </table>
+    </td>
+</tr>
+</table>

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

@@ -29,8 +29,8 @@ foreach ($data as $key => $value) {
         <table width="830px"><tr>
             <td></td>
             <td class="data-controls" width="100px"><img src="/images/more.png" width="8px" height="8px"><a href="?domain=<?php echo $key ?>"> list accounts</a></td>
-            <td class="data-controls" width="98px"><img src="/images/add.png" width="8px" height="8px"><a href="?domain=<?php echo $key ?>"> add account</a></td>
-            <td class="data-controls" width="50px"><img src="/images/edit.png" width="8px" height="8px"><a href="#"> edit</a></td>
+            <td class="data-controls" width="98px"><img src="/images/add.png" width="8px" height="8px"><a href="/add/mail/?domain=<?php echo $key ?>"> add account</a></td>
+            <td class="data-controls" width="50px"><img src="/images/edit.png" width="8px" height="8px"><a href="/edit/mail/?domain=<?php echo $key ?>"> edit</a></td>
             <td class="data-controls" width="80px"><img src="/images/suspend.png" width="7px" height="8px"><a href="#"> <?php echo $spnd_action ?></a></td>
             <td class="data-controls" width="70px"><img src="/images/delete.png" width="7px" height="7px"><a href="#"> delete</a></td>
         </tr></table>

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

@@ -1,6 +1,6 @@
 <table class="sub-menu">
 <tr>
-    <td style="padding: 10px 2px 28px 0;" ><a class="add-name"><b>Editing Domain</b></a>
+    <td style="padding: 10px 2px 28px 0;" ><a class="add-name"><b>Editing DNS Domain</b></a>
     <?php 
         if (!empty($_SESSION['error_msg'])) {
             echo "<a class=\"add-error\"> → ".$_SESSION['error_msg']."</a>";

+ 15 - 0
web/templates/admin/menu_edit_mail.html

@@ -0,0 +1,15 @@
+<table class="sub-menu">
+<tr>
+    <td style="padding: 10px 2px 28px 0;" ><a class="add-name"><b>Editing Mail Domain</b></a>
+    <?php 
+        if (!empty($_SESSION['error_msg'])) {
+            echo "<a class=\"add-error\"> → ".$_SESSION['error_msg']."</a>";
+        } else {
+            if (!empty($_SESSION['ok_msg'])) {
+                echo "<a class=\"add-ok\"> → ".$_SESSION['ok_msg']."</a>";
+            }
+        }
+    ?>
+    </td>
+</tr>
+</table>

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

@@ -1,6 +1,6 @@
 <table class="sub-menu">
 <tr>
-    <td style="padding: 10px 2px 28px 0;" ><a class="add-name"><b>Editing Domain</b></a>
+    <td style="padding: 10px 2px 28px 0;" ><a class="add-name"><b>Editing Web Domain</b></a>
     <?php 
         if (!empty($_SESSION['error_msg'])) {
             echo "<a class=\"add-error\"> → ".$_SESSION['error_msg']."</a>";