From d5d84d8a78e3cb2a20a0aa496e5f2911167cd11f Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 21 Feb 2019 21:47:38 +0100 Subject: [dnbd3] Show image idle time in proxy details --- inc/util.inc.php | 21 +++++++++++++++++++++ modules-available/dnbd3/lang/de/module.json | 1 + modules-available/dnbd3/lang/de/template-tags.json | 1 + modules-available/dnbd3/lang/en/module.json | 1 + modules-available/dnbd3/lang/en/template-tags.json | 1 + modules-available/dnbd3/page.inc.php | 11 ++++++++++- .../dnbd3/templates/page-proxy-images.html | 6 +++++- 7 files changed, 40 insertions(+), 2 deletions(-) diff --git a/inc/util.inc.php b/inc/util.inc.php index e459cc46..06cd8981 100644 --- a/inc/util.inc.php +++ b/inc/util.inc.php @@ -512,4 +512,25 @@ SADFACE; return date('d.m.Y', $ts); } + /** + * Format a duration, in seconds, into a readable string. + * @param int $seconds The number to format + * @param int $showSecs whether to show seconds, or rather cut after minutes + * @return string + */ + public static function formatDuration($seconds, $showSecs = true) + { + settype($seconds, 'int'); + static $UNITS = ['y' => 31536000, 'mon' => 2592000, 'd' => 86400]; + $parts = []; + foreach ($UNITS as $k => $v) { + if ($seconds < $v) + continue; + $n = floor($seconds / $v); + $seconds -= $n * $v; + $parts[] = $n. $k; + } + return implode(' ', $parts) . ' ' . gmdate($showSecs ? 'H:i:s' : 'H:i', $seconds); + } + } diff --git a/modules-available/dnbd3/lang/de/module.json b/modules-available/dnbd3/lang/de/module.json index cf748a49..e0f79451 100644 --- a/modules-available/dnbd3/lang/de/module.json +++ b/modules-available/dnbd3/lang/de/module.json @@ -1,4 +1,5 @@ { "module_name": "DNBD3", + "now": "jetzt", "page_title": "DNBD3-Verwaltung" } \ No newline at end of file diff --git a/modules-available/dnbd3/lang/de/template-tags.json b/modules-available/dnbd3/lang/de/template-tags.json index 22c74b7d..0c4a973f 100644 --- a/modules-available/dnbd3/lang/de/template-tags.json +++ b/modules-available/dnbd3/lang/de/template-tags.json @@ -62,6 +62,7 @@ "lang_storageSize": "Speichergr\u00f6\u00dfe", "lang_test": "Testen", "lang_txTotal": "Gesamt gesendet", + "lang_unusedFor": "Ungenutzt", "lang_uplink": "Uplink", "lang_uptime": "Aktuelle Laufzeit", "lang_wantToDelete": "Wollen Sie diesen Server wirklich entfernen? (Rebooten\/Ausschalten muss in diesem Fall manuell vorgenommen werden)" diff --git a/modules-available/dnbd3/lang/en/module.json b/modules-available/dnbd3/lang/en/module.json index d2bb6fd3..2c042af4 100644 --- a/modules-available/dnbd3/lang/en/module.json +++ b/modules-available/dnbd3/lang/en/module.json @@ -1,4 +1,5 @@ { "module_name": "DNBD3", + "now": "now", "page_title": "DNBD3 management" } \ No newline at end of file diff --git a/modules-available/dnbd3/lang/en/template-tags.json b/modules-available/dnbd3/lang/en/template-tags.json index 932b899a..e80f6e1b 100644 --- a/modules-available/dnbd3/lang/en/template-tags.json +++ b/modules-available/dnbd3/lang/en/template-tags.json @@ -62,6 +62,7 @@ "lang_storageSize": "Storage size", "lang_test": "Test", "lang_txTotal": "Total sent", + "lang_unusedFor": "Unused", "lang_uplink": "Uplink", "lang_uptime": "Uptime", "lang_wantToDelete": "Do you really want to delete this server? (Reboot\/Shutdown has to be done manually)" diff --git a/modules-available/dnbd3/page.inc.php b/modules-available/dnbd3/page.inc.php index d8dd6cb8..d2e8162b 100644 --- a/modules-available/dnbd3/page.inc.php +++ b/modules-available/dnbd3/page.inc.php @@ -197,7 +197,7 @@ class Page_Dnbd3 extends Page $server['uptime'] += ($NOW - $server['dnbd3lastseen']); } $server['dnbd3lastseen_s'] = $server['dnbd3lastseen'] ? Util::prettyTime($server['dnbd3lastseen']) : '-'; - $server['uptime_s'] = $server['uptime'] ? floor($server['uptime'] / 86400) . 'd ' . gmdate('H:i', $server['uptime']) : '-'; + $server['uptime_s'] = $server['uptime'] ? Util::formatDuration($server['uptime']) : '-'; $server['totalup_s'] = Util::readableFileSize($server['totalup']); $server['totaldown_s'] = Util::readableFileSize($server['totaldown']); if ($server['disktotal'] > 0) { @@ -362,6 +362,15 @@ class Page_Dnbd3 extends Page $sort1 = $sort2 = []; foreach ($stats['images'] as &$image) { $image['size_s'] = Util::readableFileSize($image['size']); + if (isset($image['idle'])) { + if ($image['idle'] < 90) { + $image['idle_s'] = Dictionary::translate('now'); + } elseif ($image['idle'] < $stats['uptime']) { + $image['idle_s'] = Util::formatDuration($image['idle'], false); + } else { + $image['idle_s'] = '∞'; + } + } $sort1[] = $image['users']; $sort2[] = $image['name']; } diff --git a/modules-available/dnbd3/templates/page-proxy-images.html b/modules-available/dnbd3/templates/page-proxy-images.html index 7e30de20..ff420ffd 100644 --- a/modules-available/dnbd3/templates/page-proxy-images.html +++ b/modules-available/dnbd3/templates/page-proxy-images.html @@ -6,6 +6,7 @@ {{lang_clients}} {{lang_size}} {{lang_complete}} + {{lang_unusedFor}} {{lang_uplink}} {{#images}} @@ -22,10 +23,13 @@ {{complete}} % + + {{idle_s}} + {{uplinkServer}} {{/images}} - \ No newline at end of file + -- cgit v1.2.3-55-g7522