summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules-available/dnbd3/page.inc.php20
-rw-r--r--modules-available/dnbd3/templates/page-proxy-clients.html19
-rw-r--r--modules-available/dnbd3/templates/page-proxy-images.html10
3 files changed, 34 insertions, 15 deletions
diff --git a/modules-available/dnbd3/page.inc.php b/modules-available/dnbd3/page.inc.php
index 96f72c3b..7721dac1 100644
--- a/modules-available/dnbd3/page.inc.php
+++ b/modules-available/dnbd3/page.inc.php
@@ -276,15 +276,6 @@ class Page_Dnbd3 extends Page
$stats['tab_altservers'] = is_array($stats['altservers']);
Render::addTemplate('page-proxy-stats', $stats);
Render::openTag('div', ['class' => 'tab-content']);
- $ips = array();
- $sort = array();
- foreach ($stats['clients'] as &$c) {
- $c['bytesSent_s'] = Util::readableFileSize($c['bytesSent']);
- $sort[] = $c['bytesSent'];
- $ips[preg_replace('/:\d+$/', '', $c['address'])] = true;
- }
- $ips = array_keys($ips);
- array_multisort($sort, SORT_DESC, $stats['clients']);
// Config
if (is_string($stats['config'])) {
preg_match_all('/^((?<sec>\[.*\])|(?<key>[^=]+)=(?<val>.*)|(?<other>[^\[][^=]*))$/m', $stats['config'], $out, PREG_SET_ORDER);
@@ -333,6 +324,17 @@ class Page_Dnbd3 extends Page
unset($as);
Render::addTemplate('page-proxy-altservers', $stats);
}
+ // CLIENT TAB
+ $ips = array();
+ $sort = array();
+ foreach ($stats['clients'] as &$c) {
+ $c['bytesSent_s'] = Util::readableFileSize($c['bytesSent']);
+ $sort[] = $c['bytesSent'];
+ $c['ip'] = preg_replace('/:\d+$/', '', $c['address']);
+ $ips[$c['ip']] = true;
+ }
+ $ips = array_keys($ips);
+ array_multisort($sort, SORT_DESC, $stats['clients']);
// Count locations
$res = Database::simpleQuery("SELECT locationid, Count(*) AS cnt FROM machine
WHERE clientip IN (:ips) AND state IN ('IDLE', 'OCCUPIED') GROUP BY locationid", compact('ips'));
diff --git a/modules-available/dnbd3/templates/page-proxy-clients.html b/modules-available/dnbd3/templates/page-proxy-clients.html
index 660b52eb..6e2cece7 100644
--- a/modules-available/dnbd3/templates/page-proxy-clients.html
+++ b/modules-available/dnbd3/templates/page-proxy-clients.html
@@ -32,7 +32,7 @@
<div class="col-md-6">
<h2>{{lang_clientList}}</h2>
- <table class="table table-condensed">
+ <table id="client-table" class="table table-condensed">
<tr>
<th>{{lang_client}}</th>
<th></th>
@@ -44,10 +44,10 @@
{{#isServer}}
<span class="glyphicon glyphicon-hdd" title="{{lang_isProxy}}"></span>
{{/isServer}}
- {{address}}
+ <a href="?do=statistics&amp;show=list&amp;filter[clientip]=1&amp;op[clientip]=%3D&amp;arg[clientip]={{ip}}">{{address}}</a>
</td>
<td class="slx-smallcol">
- <a href="#tab-images" onclick="$('#img-table tr').removeClass('warning');$('#img-{{imageId}}').addClass('warning')[0].scrollIntoView()">
+ <a href="#tab-images" class="show-image" data-image-id="{{imageId}}">
<span class="glyphicon glyphicon-folder-open"></span>
</a>
</td>
@@ -59,4 +59,15 @@
</table>
</div>
</div>
-</div> \ No newline at end of file
+</div>
+
+<script>
+ document.addEventListener('DOMContentLoaded', function() {
+ $('.show-image').click(function () {
+ $('#client-table tr').removeClass('warning');
+ $('#img-table tr').removeClass('warning');
+ var x = $('#img-table a[data-image-id=' + $(this).data('image-id') + ']').closest('tr').addClass('warning')[0];
+ setTimeout(function() { if (x.scrollIntoViewIfNeeded) x.scrollIntoViewIfNeeded(true); else x.scrollIntoView({block: "center"}) }, 10);
+ });
+ });
+</script> \ No newline at end of file
diff --git a/modules-available/dnbd3/templates/page-proxy-images.html b/modules-available/dnbd3/templates/page-proxy-images.html
index 7f4f0332..e7fc2b3c 100644
--- a/modules-available/dnbd3/templates/page-proxy-images.html
+++ b/modules-available/dnbd3/templates/page-proxy-images.html
@@ -13,12 +13,12 @@
</thead>
<tbody>
{{#images}}
- <tr id="img-{{id}}">
+ <tr>
<td class="text-nowrap">
{{name}}:{{rid}}
</td>
<td class="text-right text-nowrap">
- {{users}}
+ <a href="#tab-clients" class="show-clients" data-image-id="{{id}}">{{users}}</a>
</td>
<td class="text-right text-nowrap" data-sort-value="{{size}}">
{{size_s}}
@@ -119,5 +119,11 @@
};
xhr.send();
});
+ $('.show-clients').click(function () {
+ $('#img-table tr').removeClass('warning');
+ $('#client-table tr').removeClass('warning');
+ var x = $('#client-table a[data-image-id=' + $(this).data('image-id') + ']').closest('tr').addClass('warning')[0];
+ setTimeout(function() { if (x.scrollIntoViewIfNeeded) x.scrollIntoViewIfNeeded(true); else x.scrollIntoView({block: "center"}) }, 10);
+ });
});
</script>