Serghey Rodin 10 лет назад
Родитель
Сommit
2289b2d8bb
50 измененных файлов с 524 добавлено и 178 удалено
  1. 1 0
      web/templates/admin/add_cron.html
  2. 1 0
      web/templates/admin/add_db.html
  3. 1 0
      web/templates/admin/add_dns.html
  4. 1 0
      web/templates/admin/add_dns_rec.html
  5. 2 0
      web/templates/admin/add_firewall.html
  6. 1 0
      web/templates/admin/add_firewall_banlist.html
  7. 1 0
      web/templates/admin/add_ip.html
  8. 1 0
      web/templates/admin/add_mail.html
  9. 1 0
      web/templates/admin/add_mail_acc.html
  10. 1 0
      web/templates/admin/add_package.html
  11. 1 0
      web/templates/admin/add_user.html
  12. 2 0
      web/templates/admin/add_web.html
  13. 1 0
      web/templates/admin/edit_backup_exclusions.html
  14. 1 0
      web/templates/admin/edit_cron.html
  15. 1 0
      web/templates/admin/edit_db.html
  16. 1 1
      web/templates/admin/edit_dns.html
  17. 1 0
      web/templates/admin/edit_dns_rec.html
  18. 1 0
      web/templates/admin/edit_firewall.html
  19. 1 0
      web/templates/admin/edit_ip.html
  20. 1 0
      web/templates/admin/edit_mail.html
  21. 1 0
      web/templates/admin/edit_mail_acc.html
  22. 1 0
      web/templates/admin/edit_package.html
  23. 1 0
      web/templates/admin/edit_server.html
  24. 1 0
      web/templates/admin/edit_user.html
  25. 1 0
      web/templates/admin/edit_web.html
  26. 1 0
      web/templates/admin/generate_ssl.html
  27. 2 2
      web/templates/admin/list_cron.html
  28. 4 3
      web/templates/admin/list_db.html
  29. 2 1
      web/templates/admin/list_dns.html
  30. 2 1
      web/templates/admin/list_firewall.html
  31. 2 1
      web/templates/admin/list_ip.html
  32. 2 1
      web/templates/admin/list_mail.html
  33. 2 1
      web/templates/admin/list_mail_acc.html
  34. 2 1
      web/templates/admin/list_packages.html
  35. 17 8
      web/templates/admin/list_search.html
  36. 2 1
      web/templates/admin/list_user.html
  37. 5 1
      web/templates/admin/list_web.html
  38. 408 17
      web/templates/footer.html
  39. 14 125
      web/templates/header.html
  40. 1 0
      web/templates/user/edit_dns.html
  41. 1 0
      web/templates/user/edit_user.html
  42. 1 0
      web/templates/user/edit_web.html
  43. 2 1
      web/templates/user/list_cron.html
  44. 2 1
      web/templates/user/list_db.html
  45. 2 1
      web/templates/user/list_dns.html
  46. 2 1
      web/templates/user/list_mail.html
  47. 2 1
      web/templates/user/list_mail_acc.html
  48. 15 7
      web/templates/user/list_search.html
  49. 2 1
      web/templates/user/list_user.html
  50. 2 1
      web/templates/user/list_web.html

+ 1 - 0
web/templates/admin/add_cron.html

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_cron" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <table class="data mode-add">
                 <tr class="data-add">
                     <td class="data-dotted">

+ 1 - 0
web/templates/admin/add_db.html

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_db" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);

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

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_dns" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <script language="javascript">
                 function elementHideShow(elementToHideOrShow){
                     var el = document.getElementById(elementToHideOrShow);

+ 1 - 0
web/templates/admin/add_dns_rec.html

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_dns_rec" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <table class="data mode-add">
                 <tr class="data-add">
                     <td class="data-dotted">

+ 2 - 0
web/templates/admin/add_firewall.html

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_ip" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);
@@ -126,4 +127,5 @@
                 </tr>
             </table>
         </from>
+
     </div>

+ 1 - 0
web/templates/admin/add_firewall_banlist.html

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_ip" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);

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

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_ip" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);

+ 1 - 0
web/templates/admin/add_mail.html

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_mail" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <table class="data mode-add">
                 <tr class="data-add">
                     <td class="data-dotted">

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

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_mail_acc" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);

+ 1 - 0
web/templates/admin/add_package.html

@@ -31,6 +31,7 @@
         ?>
         <form id="vstobjects" name="v_add_package" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <table class="data mode-add">
                 <tr class="data-add">
                     <td class="data-dotted">

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

@@ -33,6 +33,7 @@
         ?>
         <form id="vstobjects" name="v_add_user" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <script type="text/javascript">
                 $(function() {
                     $("#v_email").change(function() {

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

@@ -29,8 +29,10 @@
           $back = "location.href='".$back."'";
         }
       ?>
+
         <form id="vstobjects" name="v_add_web" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="ok" value="Add" />
             <script type="text/javascript">
                 $(function() {
                     $("#v_domain").change(function() {

+ 1 - 0
web/templates/admin/edit_backup_exclusions.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_backup_exclusions" method="post" class="<?=__($v_status)?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <table class='data'>
                 <tr class="data-add">
                     <td class="data-dotted">

+ 1 - 0
web/templates/admin/edit_cron.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_cron" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <table class='data'>
                 <tr class="data-add">
                     <td class="data-dotted">

+ 1 - 0
web/templates/admin/edit_db.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_db" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);

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

@@ -31,7 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_dns" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
-
+            <input type="hidden" name="save" value="save" />
             <table class='data'>
                 <tr class="data-add">
                     <td class="data-dotted">

+ 1 - 0
web/templates/admin/edit_dns_rec.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_dns_rec" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <table class='data'>
                 <tr class="data-add">
                     <td class="data-dotted">

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

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_firewall" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);

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

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_ip" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);

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

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_mail" method="post" class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <table class='data'>
                 <tr class="data-add">
                     <td class="data-dotted">

+ 1 - 0
web/templates/admin/edit_mail_acc.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_mail_acc" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);

+ 1 - 0
web/templates/admin/edit_package.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_package" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <table class='data'>
                 <tr class="data-add">
                     <td class="data-dotted">

+ 1 - 0
web/templates/admin/edit_server.html

@@ -32,6 +32,7 @@
 
         <form id="vstobjects" name="v_configure_server" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <script type="text/javascript">
                 function elementHideShow(elementToHideOrShow) {
                     var el = document.getElementById(elementToHideOrShow);

+ 1 - 0
web/templates/admin/edit_user.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" method="post" name="v_edit_user" class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <script type="text/javascript">
                 function randomString() {
                     var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";

+ 1 - 0
web/templates/admin/edit_web.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_web" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <script language="javascript">
                 function WEBrandom() {
                     var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";

+ 1 - 0
web/templates/admin/generate_ssl.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_generate_csr" method="post">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="generate" value="generate" />
             <table class='data'>
                 <tr class="data-add">
                     <td class="data-dotted">

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

@@ -4,6 +4,7 @@
         <ul class="context-menu sort-order" style="display:none;">
           <li entity="sort-date" sort_as_int="1"><span class="name active"><?=__('Date')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-name"><span class="name"><?=__('Command')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -78,8 +79,7 @@
           }
       ?>
 
-
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['cron-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="cron-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['cron-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="cron-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>" sort-star="<? if($_COOKIE['cron-'.sha1($key)] == 1) echo '1'; else echo '0';  ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="job[]" value="<?php echo $key ?>">

+ 4 - 3
web/templates/admin/list_db.html

@@ -7,6 +7,7 @@
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-user"><span class="name"><?=__('User')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-server"><span class="name"><?=__('Host')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -22,13 +23,13 @@
                 if ($data[$key]['TYPE'] == 'mysql'){
                   $mysql = 1;
 
-                  $db_admin_link = "http://".$http_host."/phpmyadmin/";
+                  $db_myadmin_link = "http://".$http_host."/phpmyadmin/";
                   if (!empty($_SESSION['DB_PMA_URL']))
                     $db_myadmin_link = $_SESSION['DB_PMA_URL'];
                 }
                 if ($data[$key]['TYPE'] == 'pgsql'){
                   $pgsql = 1;
-                  $db_admin_link = "http://".$http_host."/phppgadmin/";
+                  $db_pgadmin_link = "http://".$http_host."/phppgadmin/";
                   if (!empty($_SESSION['DB_PGA_URL']))
                     $db_pgadmin_link = $_SESSION['DB_PGA_URL'];
                 }
@@ -108,7 +109,7 @@
       ?>
 
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['db-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="db-<?=sha1($key)?>"" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-user="<?=$data[$key]['DBUSER']?>" sort-server="<?=$data[$key]['HOST']?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['db-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="db-<?=sha1($key)?>"" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-user="<?=$data[$key]['DBUSER']?>" sort-server="<?=$data[$key]['HOST']?>" sort-star="<? if($_COOKIE['db-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="database[]" value="<?php echo $key ?>">

+ 2 - 1
web/templates/admin/list_dns.html

@@ -7,6 +7,7 @@
           <li entity="sort-name"><span class="name"><?=__('Domain')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-ip"><span class="name"><?=__('IP address')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-records"><span class="name"><?=__('Records')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -68,7 +69,7 @@
           }
       ?>
 
-      <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended'; if($_COOKIE['dns-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="dns-<?=sha1($key)?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-expire="<?=strtotime($data[$key]['EXP'])?>" sort-records="<?=(int)$data[$key]['RECORDS']?>" >
+      <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended'; if($_COOKIE['dns-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="dns-<?=sha1($key)?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-expire="<?=strtotime($data[$key]['EXP'])?>" sort-records="<?=(int)$data[$key]['RECORDS']?>" sort-star="<?if($_COOKIE['dns-'.sha1($key)] == 1) echo '1'; else echo '0';?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?php echo $key ?>">

+ 2 - 1
web/templates/admin/list_firewall.html

@@ -7,6 +7,7 @@
           <li entity="sort-port"><span class="name"><?=__('Port')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-ip" sort_as_int="1"><span class="name"><?=__('IP address')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-comment"><span class="name"><?=__('Comment')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -71,7 +72,7 @@
           }
       ?>
 
-      <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended'; if($_COOKIE['firewall-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="firewall-<?=sha1($key)?>" sort-action="<?=$data[$key]['ACTION']?>" sort-protocol="<?=$data[$key]['PROTOCOL']?>" sort-port="<?=$data[$key]['PORT']?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-comment="<?=$data[$key]['COMMENT']?>">
+      <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended'; if($_COOKIE['firewall-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="firewall-<?=sha1($key)?>" sort-action="<?=$data[$key]['ACTION']?>" sort-protocol="<?=$data[$key]['PROTOCOL']?>" sort-port="<?=$data[$key]['PORT']?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-comment="<?=$data[$key]['COMMENT']?>" sort-star="<? if($_COOKIE['firewall-'.sha1($key)] == 1) echo '1'; else echo '2'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="rule[]" value="<?php echo $key ?>">

+ 2 - 1
web/templates/admin/list_ip.html

@@ -8,6 +8,7 @@
           <li entity="sort-interface"><span class="name"><?=__('Interface')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-domains" sort_as_int="1"><span class="name"><?=__('Domains')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-owner"><span class="name"><?=__('Owner')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -59,7 +60,7 @@
            ++$i;
       ?>
 
-      <div class="l-unit <? if($data[$key]['SUSPENDED'] == 'yes') echo 'l-unit--suspended'; if($_COOKIE['ip-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="ip-<?=sha1($key)?>" sort-ip="<?=str_replace('.', '', $key)?>" sort-date="<?=strtotime($data[$key]['DATE'] .' '. $data[$key]['TIME'] )?>" sort-netmask="<?=str_replace('.', '', $data[$key]['NETMASK'])?>" sort-interface="<?=__($data[$key]['INTERFACE'])?>" sort-domains="<?=$data[$key]['U_WEB_DOMAINS']?>" sort-owner="<?=__($data[$key]['OWNER'])?>">
+      <div class="l-unit <? if($data[$key]['SUSPENDED'] == 'yes') echo 'l-unit--suspended'; if($_COOKIE['ip-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="ip-<?=sha1($key)?>" sort-ip="<?=str_replace('.', '', $key)?>" sort-date="<?=strtotime($data[$key]['DATE'] .' '. $data[$key]['TIME'] )?>" sort-netmask="<?=str_replace('.', '', $data[$key]['NETMASK'])?>" sort-interface="<?=__($data[$key]['INTERFACE'])?>" sort-domains="<?=$data[$key]['U_WEB_DOMAINS']?>" sort-owner="<?=__($data[$key]['OWNER'])?>" sort-star="<? if($_COOKIE['ip-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="ip[]" value="<?=$key?>">

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

@@ -6,6 +6,7 @@
           <li entity="sort-name"><span class="name"><?=__('Domain')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-accounts" sort_as_int="1"><span class="name"><?=__('Accounts')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -85,7 +86,7 @@
       ?>
 
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['mail-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="mail-<?=sha1($key)?>"  sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-accounts="<?=$data[$key]['ACCOUNTS']?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['mail-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="mail-<?=sha1($key)?>"  sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-accounts="<?=$data[$key]['ACCOUNTS']?>" sort-star="<? if($_COOKIE['mail-'.sha1($key)] == 1) echo "1"; else echo "0"; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?php echo $key ?>">

+ 2 - 1
web/templates/admin/list_mail_acc.html

@@ -5,6 +5,7 @@
           <li entity="sort-date" sort_as_int="1"><span class="name active"><?=__('Date')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-name"><span class="name"><?=__('Account')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -81,7 +82,7 @@
       ?>
 
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['mail-acc-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="mail-acc-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?$data[$key]['U_DISK']?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['mail-acc-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="mail-acc-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?$data[$key]['U_DISK']?>" sort-star="<? if($_COOKIE['mail-acc-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="account[]" value="<?php echo $key ?>">

+ 2 - 1
web/templates/admin/list_packages.html

@@ -4,6 +4,7 @@
         <ul class="context-menu sort-order" style="display:none;">
           <li entity="sort-date" sort_as_int="1"><span class="name active"><?=__('Date')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-name"><span class="name"><?=__('Package Name')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -55,7 +56,7 @@
       ?>
 
 
-      <div class="l-unit <? if($data[$key]['SUSPENDED'] == 'yes') echo 'l-unit--suspended'; if($_COOKIE['packages-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="packages-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>">
+      <div class="l-unit <? if($data[$key]['SUSPENDED'] == 'yes') echo 'l-unit--suspended'; if($_COOKIE['packages-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="packages-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-star="<?if($_COOKIE['packages-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="package[]" value="<?php echo $key ?>">

+ 17 - 8
web/templates/admin/list_search.html

@@ -1,9 +1,9 @@
     <div class="l-center">
       <div class="l-sort clearfix noselect">
         <ul class="context-menu sort-order" style="display:none;">
-          <li entity="date"><span class="name active">date</span><span class="up">&nbsp;</span></li>
-          <li entity="name"><span class="name">name</span><span class="up">&nbsp;</span></li>
-          <li entity="ip"><span class="name">ip</span><span class="up">&nbsp;</span></li>
+          <li entity="sort-date" sort_as_int="1"><span class="name active"><?=__('Date')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-name"><span class="name"><?=__('Name')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix width-100p">
           <span class="title edit display-inline-block float-left"><b><?=__('Search Results')?></b></span>
@@ -16,9 +16,9 @@
                   <input type="submit" value="" class="l-sort-toolbar__search" onClick="return doSearch('/search/')" />
                 </form>
               </td>
-              <!-- td class="sort-by">
+              <td class="sort-by">
                 <?=__('sort by');?>: <span><b><?=__('Date')?></b></span> <i class="l-icon-down-arrow media-top"></i>
-              </td -->
+              </td>
             </tr>
           </table>
         </div>
@@ -51,10 +51,16 @@
           } else {
             $object = strtolower($data[$key]['TYPE']." ".$data[$key]['KEY']);
           }
+
+          $uniq_id = $data[$key]['TYPE'].'-';
+          if($data[$key]['KEY'] == 'ACCOUNT'){
+            $uniq_id .= 'acc-';
+          }
+          $uniq_id .= sha1($data[$key]['RESULT']);
         ?>
 
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended';?>" id="web-unit-<?=$i?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE[$uniq_id] == 1) echo ' l-unit--starred'; ?>" id="web-unit-<?=$i?>" uniq-id="<?=$uniq_id?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$data[$key]['RESULT']?>">
         <div class="l-unit-toolbar clearfix">
           <!--div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?=$i?>" class="ch-toggle" type="checkbox" name="check" value="check<?=$i?>">
@@ -192,14 +198,17 @@
         <!-- /.l-unit-toolbar -->
 
         <div class="l-unit__col l-unit__col--left clearfix">
-          <div class="l-unit__date" u_date="<?=strtotime($data[$key]['DATE'])?>">
+          <div class="l-unit__date">
             <?=translate_date($data[$key]['DATE'])?>
           </div>
           <div class="l-unit__suspended""><?__('suspended')?></div>
+          <div class="text-center">
+            <i class="l-icon-star"></i>
+          </div>
         </div>
         <!-- /.l-unit__col -->
         <div class="l-unit__col l-unit__col--right">
-          <div class="l-unit__name separate" u_name="<?=$data[$key]['RESULT']?>">
+          <div class="l-unit__name separate">
             <?=$data[$key]['RESULT']?> <span><?=str_replace(',', ', ', $data[$key]['ALIAS'])?></span>
           </div>
           <!-- /.l-unit__name -->

+ 2 - 1
web/templates/admin/list_user.html

@@ -12,6 +12,7 @@
           <li entity="sort-name"><span class="name"><?=__('Username')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-bandwidth" sort_as_int="1"><span class="name"><?=__('Bandwidth')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -80,7 +81,7 @@
           }
       ?>
 
-      <div class="l-unit  <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['user-'.sha1($key)] == 1) echo ' l-unit--starred';?>" uniq-id="user-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>">
+      <div class="l-unit  <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['user-'.sha1($key)] == 1) echo ' l-unit--starred';?>" uniq-id="user-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-star="<? if($_COOKIE['user-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="user[]" value="<?php echo $key ?>">

+ 5 - 1
web/templates/admin/list_web.html

@@ -7,6 +7,7 @@
           <li entity="sort-ip" sort_as_int="1"><span class="name"><?=__('IP address')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-bandwidth" sort_as_int="1"><span class="name"><?=__('Bandwidth')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -114,7 +115,10 @@
                         }
                     ?>
 
-      <div class="l-unit <? if($data[$key]['SUSPENDED'] == 'yes') echo 'l-unit--suspended'; if($_COOKIE['web-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="web-<?=sha1($key)?>" id="web-unit-<?=$i?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>"  sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>">
+      <div class="l-unit <? if($data[$key]['SUSPENDED'] == 'yes') echo 'l-unit--suspended'; if($_COOKIE['web-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="web-<?=sha1($key)?>" 
+id="web-unit-<?=$i?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" 
+sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" 
+sort-name="<?=$key?>"  sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-star="<? if($_COOKIE['web-'.sha1($key)] == 1) echo '1'; else echo '0';?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?=$i?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?=$key?>">

+ 408 - 17
web/templates/footer.html

@@ -13,14 +13,74 @@
             });
 
 
+            // CREATE BUTTON
+
+            $('.l-sort__create-btn').hover(function(){
+              $(".l-sort__create-btn").append("<div id='add-icon'></div>");
+              $(".l-sort__create-btn").append("<div id='tooltip'>"+$('.l-sort__create-btn').attr('title').replace(' ','&nbsp;')+"</div>");
+            }, function(){
+              $("#add-icon").remove();
+              $("#tooltip").remove();
+            });
+
+
+            // SEARCH BOX
+
+            $('.l-sort-toolbar__search, .l-sort-toolbar__search-box .search-input').hover(function(){
+              clearTimeout(VE.tmp.search_display_interval);
+              clearTimeout(VE.tmp.search_hover_interval);
+              VE.tmp.search_display_interval = setTimeout(function(){$('.search-input').addClass('activated');}, 150);
+            }, function(){
+              clearTimeout(VE.tmp.search_display_interval);
+              clearTimeout(VE.tmp.search_hover_interval);
+              VE.tmp.search_hover_interval = setTimeout(function(){
+                if(!VE.tmp.search_activated && !$(".search-input").val().length){
+                  $(".search-input").removeClass('activated');
+                }
+              }, 600);
+            });
+
+            $('.search-input').focus(function(){
+              VE.tmp.search_activated = 1;
+              clearTimeout(VE.tmp.search_hover_interval);
+            });
+            $('.search-input').blur(function(){
+              VE.tmp.search_activated = 0;
+              clearTimeout(VE.tmp.search_hover_interval);
+              VE.tmp.search_hover_interval = setTimeout(function(){
+                if(!$(".search-input").val().length){
+                  $(".search-input").removeClass('activated');
+                }
+              }, 600);
+            });
+
+
+            // TIMER
+
+            if($('.movement.left').length){
+              VE.helpers.refresh_timer.right = $('.movement.right');
+              VE.helpers.refresh_timer.left = $('.movement.left');
+              VE.helpers.refresh_timer.start();
+
+              $('.pause').click(function(){
+                VE.helpers.refresh_timer.stop();
+                $('.pause').addClass('hidden');
+                $('.play').removeClass('hidden');
+                $('.refresh-timer').addClass('paused');
+              });
+
+              $('.play').click(function(){
+                VE.helpers.refresh_timer.start();
+                $('.pause').removeClass('hidden');
+                $('.play').addClass('hidden');
+                $('.refresh-timer').removeClass('paused');
+              });
+            }
+
 
             // SORTING
 
-            V = {
-              sort_par: 'sort-name',
-              sort_direction: -1,
-              sort_as_int: 0
-            };
+            $('#vstobjects input, #vstobjects select, #vstobjects textarea').change(function(){VE.tmp.form_changed=1});
 
             $('.sort-order span').click(function(){
               $('.context-menu.sort-order').toggle();
@@ -29,26 +89,26 @@
 
               $('.sort-order span').removeClass('active');
               $(this).addClass('active');
-              V.sort_par = $(this).parent('li').attr('entity');
-              V.sort_as_int = $(this).parent('li').attr('sort_as_int');
-              V.sort_direction = $(this).hasClass('up')*1 || -1;
+              VE.tmp.sort_par = $(this).parent('li').attr('entity');
+              VE.tmp.sort_as_int = $(this).parent('li').attr('sort_as_int');
+              VE.tmp.sort_direction = $(this).hasClass('up')*1 || -1;
 
               $('.l-sort .sort-by span b').html($(this).parent('li').find('.name').html());
               $('.l-sort .sort-by i').removeClass('l-icon-up-arrow l-icon-down-arrow');
               $(this).hasClass('up') ? $('.l-sort .sort-by i').addClass('l-icon-up-arrow') : $('.l-sort .sort-by i').addClass('l-icon-down-arrow');
 
 
-              $('.l-unit').sort(function (a, b) {
-                if(V.sort_as_int)
-                  return parseInt($(a).attr(V.sort_par)) >= parseInt($(b).attr(V.sort_par)) ? V.sort_direction : V.sort_direction * -1;
+              $('.units .l-unit').sort(function (a, b) {
+                if(VE.tmp.sort_as_int)
+                  return parseInt($(a).attr(VE.tmp.sort_par)) >= parseInt($(b).attr(VE.tmp.sort_par)) ? VE.tmp.sort_direction : VE.tmp.sort_direction * -1;
                 else
-                  return $(a).attr(V.sort_par) <= $(b).attr(V.sort_par) ? V.sort_direction : V.sort_direction * -1;
+                  return $(a).attr(VE.tmp.sort_par) <= $(b).attr(VE.tmp.sort_par) ? VE.tmp.sort_direction : VE.tmp.sort_direction * -1;
                 }).appendTo(".l-center.units");
               });
 
 
 
-              // STARS
+            // STARS
 
               $('.l-unit .l-icon-star').click(function(){
                 var l_unit = $(this).parents('.l-unit');
@@ -57,11 +117,304 @@
                   // removing star
                   $.removeCookie(l_unit.attr('uniq-id'));
                   l_unit.removeClass('l-unit--starred');
+                  l_unit.attr({'sort-star': 0});
                 }
                 else{
-                  $.cookie(l_unit.attr('uniq-id'), 1, {expires: 3650});
+                  $.cookie(l_unit.attr('uniq-id'), 1, {expires: 3650, path: '/'});
                   l_unit.addClass('l-unit--starred');
+                  l_unit.attr({'sort-star': 1});
+                }
+              });
+
+
+
+              // Shortcuts
+
+              shortcut.add("Ctrl+Enter", function(){ 
+                $('form#vstobjects').submit();
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': false,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("Ctrl+Backspace", function(){ 
+                if($('form#vstobjects button.cancel')[0]){
+                  location.href=$('form#vstobjects input.cancel').attr('onclick').replace("location.href='", "").replace("'","");
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': false,
+                  'target':           document
+                  }
+              );
+
+
+              shortcut.add("f", function(){
+                $('.search-input').addClass('activated').focus();
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("a", function(){
+                if($('.l-sort__create-btn')[0]){
+                  location.href=$('.l-sort__create-btn').attr('href');
+                }
+              }, {
+                  'type':             'keyup',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+
+
+              shortcut.add("a+1", function(){
+                  location.href='/add/user/';
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+
+
+
+              shortcut.add("1", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', $('.l-stat .l-stat__col:nth-of-type(1) a').attr('href'));
+                } else {
+                  location.href=$('.l-stat .l-stat__col:nth-of-type(1) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("2", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', $('.l-stat .l-stat__col:nth-of-type(2) a').attr('href'));
+                } else {
+                  location.href=$('.l-stat .l-stat__col:nth-of-type(2) a').attr('href');
                 }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("3", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', $('.l-stat .l-stat__col:nth-of-type(3) a').attr('href'));
+                } else {
+                  location.href=$('.l-stat .l-stat__col:nth-of-type(3) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("4", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', $('.l-stat .l-stat__col:nth-of-type(4) a').attr('href'));
+                } else {
+                  location.href=$('.l-stat .l-stat__col:nth-of-type(4) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("5", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', $('.l-stat .l-stat__col:nth-of-type(5) a').attr('href'));
+                } else {
+                  location.href=$('.l-stat .l-stat__col:nth-of-type(5) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("6", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', $('.l-stat .l-stat__col:nth-of-type(6) a').attr('href'));
+                } else {
+                  location.href=$('.l-stat .l-stat__col:nth-of-type(6) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("7", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', $('.l-stat .l-stat__col:nth-of-type(7) a').attr('href'));
+                } else {
+                  location.href=$('.l-stat .l-stat__col:nth-of-type(7) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+
+              shortcut.add("Ctrl+1", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', ('.l-menu .l-menu__item:nth-of-type(1) a').attr('href'));
+                } else {
+                  location.href=$('.l-menu .l-menu__item:nth-of-type(1) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("Ctrl+2", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', ('.l-menu .l-menu__item:nth-of-type(2) a').attr('href'));
+                } else {
+                  location.href=$('.l-menu .l-menu__item:nth-of-type(2) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("Ctrl+3", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', ('.l-menu .l-menu__item:nth-of-type(3) a').attr('href'));
+                } else {
+                  location.href=$('.l-menu .l-menu__item:nth-of-type(3) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("Ctrl+4", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', ('.l-menu .l-menu__item:nth-of-type(4) a').attr('href'));
+                } else {
+                  location.href=$('.l-menu .l-menu__item:nth-of-type(4) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("Ctrl+5", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', ('.l-menu .l-menu__item:nth-of-type(5) a').attr('href'));
+                } else {
+                  location.href=$('.l-menu .l-menu__item:nth-of-type(5) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("Ctrl+6", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', ('.l-menu .l-menu__item:nth-of-type(6) a').attr('href'));
+                } else {
+                  location.href=$('.l-menu .l-menu__item:nth-of-type(6) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("Ctrl+7", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', ('.l-menu .l-menu__item:nth-of-type(7) a').attr('href'));
+                } else {
+                  location.href=$('.l-menu .l-menu__item:nth-of-type(7) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+              shortcut.add("Ctrl+8", function(){
+                if(VE.tmp.form_changed){
+                  VE.helpers.createConfirmationDialog($('.confirmation-text-redirect'), '', ('.l-menu .l-menu__item:nth-of-type(8) a').attr('href'));
+                } else {
+                  location.href=$('.l-menu .l-menu__item:nth-of-type(8) a').attr('href');
+                }
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+
+              shortcut.add("h", function(){
+                $('.shortcuts').toggle();
+              }, {
+                  'type':             'keydown',
+                  'propagate':        false,
+                  'disable_in_input': true,
+                  'target':           document
+                  }
+              );
+
+
+              $('.shortcuts .close').click(function(){
+                $('.shortcuts').hide();
               });
 
 
@@ -78,12 +431,12 @@
                         /*var ref = $(evt.target);
                         $('.l-content').find('.l-unit .ch-toggle').attr('checked', false);
                         $('.l-content').find('.l-unit.selected .ch-toggle').attr('checked', true);
-                        
-                        
+
+
                         if ($('.l-content').find('.l-unit.selected').length == $('.l-content').find('.l-unit').length) {
                             $('.toggle-all').addClass('clicked-on');
                         }*/
-                        
+
                     },
                     'toggleAllHook': function() {
                         /*if ($('.l-unit').length == $('.ch-toggle:checked').length) {
@@ -105,5 +458,43 @@
             }
         });
     </script>
+
+    <div title="Confirmation" class="confirmation-text-redirect hidden">
+      <p class="confirmation"><?=__('LEAVE_PAGE_CONFIRMATION')?></p>
+    </div>
+
+    <div class="shortcuts" style="display:none">
+      <div class="header">
+        <div class="title">Shortcuts</div>
+        <div class="close"></div>
+      </div>
+      <ul>
+        <li><span class="key">a</span>Go to add form</li>
+        <li><span class="key">&lt;Ctrl&gt; + Enter</span>Save Form</li>
+        <li class="step-top"><span class="key">&lt;Ctrl&gt; + Backspace</span>Cancel saving form</li>
+
+        <li><span class="key">1</span>Go to USER list</li>
+        <li><span class="key">2</span>Go to WEB list</li>
+        <li><span class="key">3</span>Go to DNS list</li>
+        <li><span class="key">4</span>Go to MAIL list</li>
+        <li><span class="key">5</span>Go to DB list</li>
+        <li><span class="key">6</span>Go to CRON list</li>
+        <li class="step-top"><span class="key">7</span>Go to BACKUP list</li>
+      </ul>
+      <ul>
+        <li class="step-top"><span class="key">f</span>Focus on search</li>
+        <li class="step-top"><span class="key">h</span>Display/Close shortcuts</li>
+
+        <li><span class="key">&lt;Ctrl&gt; + 1</span>Go to Packages</li>
+        <li><span class="key">&lt;Ctrl&gt; + 2</span>Go to IP</li>
+        <li><span class="key">&lt;Ctrl&gt; + 3</span>Go to Graphs</li>
+        <li><span class="key">&lt;Ctrl&gt; + 4</span>Go to Statistics</li>
+        <li><span class="key">&lt;Ctrl&gt; + 5</span>Go to Log</li>
+        <li><span class="key">&lt;Ctrl&gt; + 6</span>Go to Updates</li>
+        <li><span class="key">&lt;Ctrl&gt; + 7</span>Go to Firewall</li>
+        <li><span class="key">&lt;Ctrl&gt; + 8</span>Go to Server</li>
+      </ul>
+
+    </div>
     </body>
 </html>

+ 14 - 125
web/templates/header.html

@@ -11,11 +11,14 @@
   <script type="text/javascript" src="/js/jquery-1.7.2.min.js"></script>
   <script type="text/javascript" src="/js/jquery.cookie.js"></script>
   <script type="text/javascript" src="/js/jquery-ui-1.8.20.custom.min.js"></script>
+  <script type="text/javascript" src="/js/hotkeys.js"></script>
+  <script type="text/javascript" src="/js/custom.js"></script>
   <script type="text/javascript" src="/js/events.js"></script>
 
-  <script type="text/javascript">
-    var checked=false;
-    var frmname='';
+  <script language="text/javascript" type="text/javascript">
+    var checked = false;
+    var frmname = '';
+
     function checkedAll(frmname) {
         if ($('.l-unit.selected').length > 0) {
             $('.l-unit').removeClass("selected");
@@ -28,137 +31,22 @@
             $('.toggle-all').addClass('clicked-on');
         }
     }
-    
+
     function doSearch(url) {
         var url = url || '/search/';
         var loc = url + '?q=' + $('.search-input').val();
-        
+
         location.href = loc;
-        
         return false;
     }
-  </script>
-  <script type="text/javascript">
-
-    var search_activated = 0;
-    var search_display_interval = 0;
-    var search_hover_interval = 0;
-
-    $(document).ready(function() {
-        $('.l-sort__create-btn').hover(function(){
-          $(".l-sort__create-btn").append("<div id='add-icon'></div>");
-          $(".l-sort__create-btn").append("<div id='tooltip'>"+$('.l-sort__create-btn').attr('title').replace(' ','&nbsp;')+"</div>");
-        }, function(){
-          $("#add-icon").remove();
-          $("#tooltip").remove();
-        });
-
-
-        $('.l-sort-toolbar__search').hover(function(){
-          clearTimeout(search_display_interval);
-          clearTimeout(search_hover_interval);
-          search_display_interval = setTimeout(function(){$('.search-input').addClass('activated');}, 150);
-        }, function(){
-          clearTimeout(search_display_interval);
-          clearTimeout(search_hover_interval);
-          search_hover_interval = setTimeout(function(){
-            if(!search_activated && !$(".search-input").val().length){
-              $(".search-input").removeClass('activated');
-            }
-          }, 600);
-        });
-
-        $('.search-input').focus(function(){
-          search_activated = 1;
-          clearTimeout(search_hover_interval);
-        });
-        $('.search-input').blur(function(){
-          search_activated = 0;
-          clearTimeout(search_hover_interval);
-          search_hover_interval = setTimeout(function(){
-            if(!$(".search-input").val().length){
-              $(".search-input").removeClass('activated');
-            }
-          }, 600);
-        });
-
-
-        if($('.movement.left').length){
-            refresh_timer.right = $('.movement.right');
-            refresh_timer.left = $('.movement.left');
-            refresh_timer.start();
 
-            $('.pause').click(function(){
-                refresh_timer.stop();
-                $('.pause').addClass('hidden');
-                $('.play').removeClass('hidden');
-                $('.refresh-timer').addClass('paused');
-            });
-
-            $('.play').click(function(){
-                refresh_timer.start();
-                $('.pause').removeClass('hidden');
-                $('.play').addClass('hidden');
-                $('.refresh-timer').removeClass('paused');
-            });
-        }
-    });
-
-    refresh_timer = {
-        speed: 50,
-        degr: 180,
-        right: 0,
-        left: 0,
-        periodical: 0,
-        first: 1,
-
-        start: function(){
-            this.periodical = setInterval(function(){refresh_timer.turn()}, this.speed);
-        },
-
-        stop: function(){
-            clearTimeout(this.periodical);
-        },
-
-        turn: function(){
-            this.degr += 1;
-
-            if (this.first && this.degr >= 361){
-                this.first = 0;
-                this.degr = 180;
-                this.left.css({'-webkit-transform': 'rotate(180deg)'});
-                this.left.css({'transform': 'rotate(180deg)'});
-                this.left.children('.loader-half').addClass('dark');
-            }
-            if (!this.first && this.degr >= 360){
-                this.first = 1;
-                this.degr = 180;
-                this.left.css({'-webkit-transform': 'rotate(0deg)'});
-                this.right.css({'-webkit-transform': 'rotate(180deg)'});
-                this.left.css({'transform': 'rotate(0deg)'});
-                this.right.css({'transform': 'rotate(180deg)'});
-                this.left.children('.loader-half').removeClass('dark');
-
-                this.stop();
-                location.reload();
-            }
-
-            if (this.first){
-                this.right.css({'-webkit-transform': 'rotate('+this.degr+'deg)'});
-                this.right.css({'transform': 'rotate('+this.degr+'deg)'});
-            }
-            else{
-                this.left.css({'-webkit-transform': 'rotate('+this.degr+'deg)'});
-                this.left.css({'transform': 'rotate('+this.degr+'deg)'});
-            }
+    $(document).ready(function(){
+        if($('.body-login')[0]){
+          $('input').first().focus();
         }
-    }
 
-  </script>
-  <script language="text/javascript">
-    $(document).ready(function(){
         $(".submenu-select-dropdown").each(function(){
-            $(this).wrap( "<span class='submenu-select-wrapper'></span>" );
+            $(this).wrap("<span class='submenu-select-wrapper'></span>");
             $(this).after("<span class='holder'></span>");
         });
         $(".submenu-select-dropdown").change(function(){
@@ -169,9 +57,10 @@
             $("html, body").animate({ scrollTop: 0 }, "normal");
         });
     })
+
   </script>
   <script type="text/javascript" src="/js/app.js"></script>
   <script type="text/javascript" src="/js/templates.js"></script>
   <script type="text/javascript" src="/js/i18n.js.php"></script>
 </head>
-<body class="body-<?=strtolower($TAB)?> lang-<?=$_SESSION['language']?>">
+<body class="body-<?=strtolower($TAB)?> lang-<?=$_SESSION['language']?>">

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

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_dns" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <table class='data'>
                 <tr class="data-add">
                     <td class="data-dotted">

+ 1 - 0
web/templates/user/edit_user.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" method="post" name="v_edit_user"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <script type="text/javascript">
                 function randomString() {
                     var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";

+ 1 - 0
web/templates/user/edit_web.html

@@ -31,6 +31,7 @@
       ?>
         <form id="vstobjects" name="v_edit_web" method="post"  class="<?=$v_status?>">
             <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+            <input type="hidden" name="save" value="save" />
             <script language="javascript">
                 function WEBrandom() {
                     var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";

+ 2 - 1
web/templates/user/list_cron.html

@@ -4,6 +4,7 @@
         <ul class="context-menu sort-order" style="display:none;">
           <li entity="sort-date" sort_as_int="1"><span class="name active"><?=__('Date')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-name"><span class="name"><?=__('Command')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -79,7 +80,7 @@
       ?>
 
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['cron-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="cron-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['cron-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="cron-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>" sort-star="<? if($_COOKIE['cron-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="job[]" value="<?php echo $key ?>">

+ 2 - 1
web/templates/user/list_db.html

@@ -7,6 +7,7 @@
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-user"><span class="name"><?=__('User')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-server"><span class="name"><?=__('Host')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -108,7 +109,7 @@
       ?>
 
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['db-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="db-<?=sha1($key)?>"" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-user="<?=$data[$key]['DBUSER']?>" sort-server="<?=$data[$key]['HOST']?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['db-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="db-<?=sha1($key)?>"" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-user="<?=$data[$key]['DBUSER']?>" sort-server="<?=$data[$key]['HOST']?>" sort-star="<? if($_COOKIE['db-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="database[]" value="<?php echo $key ?>">

+ 2 - 1
web/templates/user/list_dns.html

@@ -8,6 +8,7 @@
           <li entity="sort-name"><span class="name"><?=__('Domain')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-ip"><span class="name"><?=__('IP Address')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-records"><span class="name"><?=__('Records')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -69,7 +70,7 @@
           }
       ?>
 
-      <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended'; if($_COOKIE['dns-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="dns-<?=sha1($key)?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-expire="<?=strtotime($data[$key]['EXP'])?>" sort-records="<?=(int)$data[$key]['RECORDS']?>">
+      <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended'; if($_COOKIE['dns-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="dns-<?=sha1($key)?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-expire="<?=strtotime($data[$key]['EXP'])?>" sort-records="<?=(int)$data[$key]['RECORDS']?>" sort-star="<? if($_COOKIE['dns-'.sha1($key)] == 1) echo '1'; else echo '0';?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?php echo $key ?>">

+ 2 - 1
web/templates/user/list_mail.html

@@ -6,6 +6,7 @@
           <li entity="sort-name"><span class="name"><?=__('Domain')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-accounts" sort_as_int="1"><span class="name"><?=__('Accounts')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -85,7 +86,7 @@
       ?>
 
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['mail-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="mail-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-accounts="<?=$data[$key]['ACCOUNTS']?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['mail-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="mail-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-accounts="<?=$data[$key]['ACCOUNTS']?>" sort-star="<? if($_COOKIE['mail-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?php echo $key ?>">

+ 2 - 1
web/templates/user/list_mail_acc.html

@@ -5,6 +5,7 @@
           <li entity="sort-date" sort_as_int="1"><span class="name active"><?=__('Date')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-name"><span class="name"><?=__('Account')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -82,7 +83,7 @@
       ?>
 
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['mail-acc-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="mail-acc-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?$data[$key]['U_DISK']?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE['mail-acc-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="mail-acc-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-disk="<?$data[$key]['U_DISK']?>" sort-star="<? if($_COOKIE['mail-acc-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="check" value="check<?php echo $i ?>">

+ 15 - 7
web/templates/user/list_search.html

@@ -1,9 +1,9 @@
     <div class="l-center">
       <div class="l-sort clearfix noselect">
         <ul class="context-menu sort-order" style="display:none;">
-          <li entity="date"><span class="name active">date</span><span class="up">&nbsp;</span></li>
-          <li entity="name"><span class="name">name</span><span class="up">&nbsp;</span></li>
-          <li entity="ip"><span class="name">ip</span><span class="up">&nbsp;</span></li>
+          <li entity="sort-date" sort_as_int="1"><span class="name active"><?=__('Date')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-name"><span class="name"><?=__('Name')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix width-100p">
           <span class="title edit display-inline-block float-left"><b><?=__('Search Results')?></b></span>
@@ -16,9 +16,9 @@
                   <input type="submit" value="" class="l-sort-toolbar__search" onClick="return doSearch('/search/')" />
                 </form>
               </td>
-              <!-- td class="sort-by">
+              <td class="sort-by">
                 <?=__('sort by');?>: <span><b><?=__('Date')?></b></span> <i class="l-icon-down-arrow media-top"></i>
-              </td -->
+              </td>
             </tr>
           </table>
         </div>
@@ -51,10 +51,15 @@
           } else {
             $object = strtolower($data[$key]['TYPE']." ".$data[$key]['KEY']);
           }
-        ?>
 
+          $uniq_id = $data[$key]['TYPE'].'-';
+          if($data[$key]['KEY'] == 'ACCOUNT'){
+            $uniq_id .= 'acc-';
+          }
+          $uniq_id .= sha1($data[$key]['RESULT']);
+        ?>
 
-      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended';?>" id="web-unit-<?=$i?>">
+      <div class="l-unit <? if($status == 'suspended') echo 'l-unit--suspended'; if($_COOKIE[$uniq_id] == 1) echo ' l-unit--starred';?>" id="web-unit-<?=$i?>" uniq-id="<?=$uniq_id?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$data[$key]['RESULT']?>">
         <div class="l-unit-toolbar clearfix">
           <!--div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?=$i?>" class="ch-toggle" type="checkbox" name="check" value="check<?=$i?>">
@@ -196,6 +201,9 @@
             <?=translate_date($data[$key]['DATE'])?>
           </div>
           <div class="l-unit__suspended""><?__('suspended')?></div>
+          <div class="text-center">
+            <i class="l-icon-star"></i>
+          </div>
         </div>
         <!-- /.l-unit__col -->
         <div class="l-unit__col l-unit__col--right">

+ 2 - 1
web/templates/user/list_user.html

@@ -12,6 +12,7 @@
           <li entity="sort-name"><span class="name"><?=__('Username')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-bandwidth" sort_as_int="1"><span class="name"><?=__('Bandwidth')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -80,7 +81,7 @@
           }
       ?>
 
-      <div class="l-unit  <? if($status == 'suspended') echo 'l-unit--suspended';  if($_COOKIE['user-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="user-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>">
+      <div class="l-unit  <? if($status == 'suspended') echo 'l-unit--suspended';  if($_COOKIE['user-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="user-<?=sha1($key)?>" sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>" sort-name="<?=$key?>" sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-star="<?if($_COOKIE['user-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="user[]" value="<?=$key?>">

+ 2 - 1
web/templates/user/list_web.html

@@ -7,6 +7,7 @@
           <li entity="sort-ip" sort_as_int="1"><span class="name"><?=__('IP Address')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-disk" sort_as_int="1"><span class="name"><?=__('Disk')?></span><span class="up">&nbsp;</span></li>
           <li entity="sort-bandwidth" sort_as_int="1"><span class="name"><?=__('Bandwidth')?></span><span class="up">&nbsp;</span></li>
+          <li entity="sort-star" sort_as_int="1"><span class="name"><?=__('Starred')?></span><span class="up">&nbsp;</span></li>
         </ul>
         <div class="l-sort-toolbar clearfix">
           <table>
@@ -118,7 +119,7 @@
 
 
 
-      <div class="l-unit <? if($data[$key]['SUSPENDED'] == 'yes') echo 'l-unit--suspended'; if($_COOKIE['web-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="web-<?=sha1($key)?>" id="web-unit-<?=$i?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-date="<?=strtotime($data[$key]['DATE'])?>" sort-name="<?=$key?>"  sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>">
+      <div class="l-unit <? if($data[$key]['SUSPENDED'] == 'yes') echo 'l-unit--suspended'; if($_COOKIE['web-'.sha1($key)] == 1) echo ' l-unit--starred'; ?>" uniq-id="web-<?=sha1($key)?>" id="web-unit-<?=$i?>" sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>" sort-date="<?=strtotime($data[$key]['DATE'])?>" sort-name="<?=$key?>"  sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>" sort-disk="<?=$data[$key]['U_DISK']?>" sort-star="<? if($_COOKIE['web-'.sha1($key)] == 1) echo '1'; else echo '0'; ?>">
         <div class="l-unit-toolbar clearfix">
           <div class="l-unit-toolbar__col l-unit-toolbar__col--left">
             <input id="check<?=$i?>" class="ch-toggle" type="checkbox" name="domain[]" value="<?=$key?>">