From 1f70327112bdf80fee7f067a51a31d5aac09667d Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Sun, 6 Nov 2022 11:27:32 +0100 Subject: [PATCH] show traffic details in admin and customer listings with the info-icon Signed-off-by: Michael Kaufmann --- lib/Froxlor/UI/Callbacks/ProgressBar.php | 25 ++++++++++++++++++- .../admin/tablelisting.admins.php | 2 +- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/Froxlor/UI/Callbacks/ProgressBar.php b/lib/Froxlor/UI/Callbacks/ProgressBar.php index f1c216c3..490b0118 100644 --- a/lib/Froxlor/UI/Callbacks/ProgressBar.php +++ b/lib/Froxlor/UI/Callbacks/ProgressBar.php @@ -25,6 +25,7 @@ namespace Froxlor\UI\Callbacks; +use Froxlor\Traffic\Traffic; use Froxlor\PhpHelper; use Froxlor\Settings; @@ -89,6 +90,28 @@ class ProgressBar */ public static function traffic(array $attributes): array { - return self::pbData('traffic', $attributes['fields'], 1024, (int)Settings::Get('system.report_trafficmax')); + $result = Traffic::getCustomerStats($attributes['fields'], 'currentmonth'); + $infotext = null; + if (isset($result['metrics']['http'])) { + $infotext = lng('panel.used') . ':' . PHP_EOL; + $infotext .= 'http: ' . PhpHelper::sizeReadable($result['metrics']['http'], null, 'bi') . PHP_EOL; + $infotext .= 'ftp: ' . PhpHelper::sizeReadable($result['metrics']['ftp'], null, 'bi') . PHP_EOL; + $infotext .= 'mail: ' . PhpHelper::sizeReadable($result['metrics']['mail'], null, 'bi'); + } + return self::pbData('traffic', $attributes['fields'], 1024, (int)Settings::Get('system.report_trafficmax'), $infotext); + } + + /** + * get progressbar data for traffic for the admin overview + * (key is to set 'adminsession' for the admin-users so the traffic-API selects + * the correct customer data for the corresponsing admin/reseller) + * + * @param array $attributes ['fields'] + * @return array + */ + public static function traffic_admins(array $attributes): array + { + $attributes['fields']['adminsession'] = 1; + return self::traffic($attributes); } } diff --git a/lib/tablelisting/admin/tablelisting.admins.php b/lib/tablelisting/admin/tablelisting.admins.php index 81a1ab58..aaa82126 100644 --- a/lib/tablelisting/admin/tablelisting.admins.php +++ b/lib/tablelisting/admin/tablelisting.admins.php @@ -74,7 +74,7 @@ return [ 'traffic' => [ 'label' => lng('customer.traffic'), 'field' => 'traffic', - 'callback' => [ProgressBar::class, 'traffic'], + 'callback' => [ProgressBar::class, 'traffic_admins'], ], 'caneditphpsettings' => [ 'label' => lng('admin.caneditphpsettings'),