diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php index 9fafb6ebf70cc8a7895d036a39114481065166f6..dae00f8169abba44fe85e7ee287cbbc10106aa9f 100644 --- a/interface/web/dashboard/dashboard.php +++ b/interface/web/dashboard/dashboard.php @@ -157,7 +157,7 @@ while ($file = @readdir ($handle)) { /* Which dashlets in which column */ /******************************************************************************/ -$leftcol_dashlets = array('modules','invoices','quota'); +$leftcol_dashlets = array('modules','invoices','quota','mailquota'); $rightcol_dashlets = array('limits'); /******************************************************************************/ diff --git a/interface/web/dashboard/dashlets/mailquota.php b/interface/web/dashboard/dashlets/mailquota.php new file mode 100644 index 0000000000000000000000000000000000000000..a65b06ddaa9b44baa86498bb38c2a0234b3c4e23 --- /dev/null +++ b/interface/web/dashboard/dashlets/mailquota.php @@ -0,0 +1,93 @@ +uses('tpl'); + + $tpl = new tpl; + $tpl->newTemplate("dashlets/templates/mailquota.htm"); + + $wb = array(); + $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_mailquota.lng'; + if(is_file($lng_file)) include($lng_file); + $tpl->setVar($wb); + + $tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'email_quota' ORDER BY created DESC"); + $monitor_data = array(); + if(is_array($tmp_rec)) { + foreach ($tmp_rec as $tmp_mon) { + //$monitor_data = array_merge_recursive($monitor_data,unserialize($app->db->unquote($tmp_mon['data']))); + $tmp_array = unserialize($app->db->unquote($tmp_mon['data'])); + if(is_array($tmp_array)) { + foreach($tmp_array as $username => $data) { + if(!$monitor_data[$username]['used']) $monitor_data[$username]['used'] = $data['used']; + } + } + } + } + //print_r($monitor_data); + if($_SESSION["s"]["user"]["typ"] != 'admin'){ + $sql_where = " AND sys_groupid = ".$_SESSION['s']['user']['default_group']; + } + + $has_mailquota = false; + // select email accounts belonging to client + $emails = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE 1".$sql_where); + //print_r($emails); + if(is_array($emails) && !empty($emails)){ + for($i=0;$i 0); + + if (!is_numeric($emails[$i]['used'])) $emails[$i]['used']=$emails[$i]['used'][1]; + + // colours + $emails[$i]['display_colour'] = '#000000'; + if($emails[$i]['quota'] > 0){ + $used_ratio = $emails[$i]['used']/$emails[$i]['quota']; + } else { + $used_ratio = 0; + } + if($used_ratio >= 0.8) $emails[$i]['display_colour'] = '#fd934f'; + if($used_ratio >= 1) $emails[$i]['display_colour'] = '#cc0000'; + + if($emails[$i]['quota'] == 0){ + $emails[$i]['quota'] = $app->lng('unlimited'); + } else { + $emails[$i]['quota'] = round($emails[$i]['quota'] / 1048576,4).' MB'; + } + + + if($emails[$i]['used'] < 1544000) { + $emails[$i]['used'] = round($emails[$i]['used'] / 1024,4).' KB'; + } else { + $emails[$i]['used'] = round($emails[$i]['used'] / 1048576,4).' MB'; + } + + } + $has_mailquota = true; + $tpl->setloop('mailquota', $emails); + } + //print_r($sites); + + $tpl->setVar('has_mailquota',$has_mailquota); + + return $tpl->grab(); + + + } +} + + + + + + + + +?> \ No newline at end of file diff --git a/interface/web/dashboard/dashlets/templates/mailquota.htm b/interface/web/dashboard/dashlets/templates/mailquota.htm new file mode 100644 index 0000000000000000000000000000000000000000..25ee9d7e1369ad3c3a9bafd01697e34ced409bcc --- /dev/null +++ b/interface/web/dashboard/dashlets/templates/mailquota.htm @@ -0,0 +1,29 @@ +
+

{tmpl_var name='mailquota_txt'}

+
+ + + + + + + + + + + + + + + + + + + + + + + +
{tmpl_var name='email_txt'}{tmpl_var name='name_txt'}{tmpl_var name='used_txt'}{tmpl_var name='quota_txt'}
{tmpl_var name='email'}{tmpl_var name='name'}{tmpl_var name='used'}{tmpl_var name='quota'}
{tmpl_var name='no_email_accounts_txt'}
+
+
\ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2fb3f6d44513ccf6963c353529f5447b04ad7d21 --- /dev/null +++ b/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/en_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/en_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/en_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/mail/user_quota_stats.php b/interface/web/mail/user_quota_stats.php index 5766ff778163d582b9913106b340bb322c60528d..493310326b7ad97a6b521bc94db0c9c18dcaced9 100644 --- a/interface/web/mail/user_quota_stats.php +++ b/interface/web/mail/user_quota_stats.php @@ -50,15 +50,18 @@ class list_action extends listform_actions { $rec['used'] = isset($monitor_data[$email]['used']) ? $monitor_data[$email]['used'] : array(1 => 0); if (!is_numeric($rec['used'])) $rec['used']=$rec['used'][1]; - - $rec['quota'] = round($rec['quota'] / 1048576,2).' MB'; - if($rec['quota'] == "0 MB") $rec['quota'] = $app->lng('unlimited'); + + if($rec['quota'] == 0){ + $rec['quota'] = $app->lng('unlimited'); + } else { + $rec['quota'] = round($rec['quota'] / 1048576,4).' MB'; + } if($rec['used'] < 1544000) { - $rec['used'] = round($rec['used'] / 1024,2).' KB'; + $rec['used'] = round($rec['used'] / 1024,4).' KB'; } else { - $rec['used'] = round($rec['used'] / 1048576,2).' MB'; + $rec['used'] = round($rec['used'] / 1048576,4).' MB'; } //* The variable "id" contains always the index variable