summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2018-04-11 23:46:13 +0200
committerSimon Rettberg2018-04-11 23:46:13 +0200
commitc226f585bf23c830cb98bcaa15394aec813e12bc (patch)
tree19a99a4f38da79edc3c5ed6fa7d822d8245ba06c
parent[roomplanner] Add icon to PCs that opens machine details from statistics module (diff)
downloadslx-admin-c226f585bf23c830cb98bcaa15394aec813e12bc.tar.gz
slx-admin-c226f585bf23c830cb98bcaa15394aec813e12bc.tar.xz
slx-admin-c226f585bf23c830cb98bcaa15394aec813e12bc.zip
[dnbd3] Colorful config formatting
-rw-r--r--modules-available/dnbd3/page.inc.php24
-rw-r--r--modules-available/dnbd3/templates/page-proxy-config.html18
2 files changed, 40 insertions, 2 deletions
diff --git a/modules-available/dnbd3/page.inc.php b/modules-available/dnbd3/page.inc.php
index f30abfe1..84007797 100644
--- a/modules-available/dnbd3/page.inc.php
+++ b/modules-available/dnbd3/page.inc.php
@@ -292,6 +292,30 @@ class Page_Dnbd3 extends Page
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);
+ $stats['config'] = [];
+ foreach ($out as $line) {
+ if (!empty($line['sec'])) {
+ $stats['config'][] = ['class1' => 'text-primary', 'text1' => $line['sec']];
+ } elseif (!empty($line['other'])) {
+ $stats['config'][] = ['class1' => 'text-muted', 'text1' => $line['other']];
+ } else {
+ $extra = '';
+ $class2 = 'slx-bold';
+ if (in_array($line['key'], ['serverPenalty', 'clientPenalty'])) {
+ $extra = round($line['val'] / 1000, 1) . 'ms';
+ } elseif (in_array($line['key'], ['uplinkTimeout', 'clientTimeout'])) {
+ $extra = round($line['val'] / 1000, 1) . 's';
+ } elseif (in_array($line['key'], ['maxPayload', 'maxReplicationSize'])) {
+ $extra = Util::readableFilesize($line['val']);
+ } elseif ($line['val'] === 'true') {
+ $class2 .= ' text-success';
+ } elseif ($line['val'] === 'false') {
+ $class2 .= ' text-danger';
+ }
+ $stats['config'][] = ['text1' => $line['key'], 'class2' => $class2, 'text2' => $line['val'] . ' ', 'extra' => $extra];
+ }
+ }
Render::addTemplate('page-proxy-config', $stats);
}
if (is_array($stats['altservers'])) {
diff --git a/modules-available/dnbd3/templates/page-proxy-config.html b/modules-available/dnbd3/templates/page-proxy-config.html
index 79f56015..f258e030 100644
--- a/modules-available/dnbd3/templates/page-proxy-config.html
+++ b/modules-available/dnbd3/templates/page-proxy-config.html
@@ -1,4 +1,18 @@
+<style>
+.tt { font-family:monospace }
+.tt .eq { margin:0 1ex }
+.tt .usel { user-select:none }
+.tt .usel::before { content: attr(data-con) }
+</style>
<div role="tabpanel" class="tab-pane" id="tab-config">
<h2>{{lang_proxyConfig}}</h2>
- <pre>{{config}}</pre>
-</div> \ No newline at end of file
+ <div class="well tt" style="font-family:monospace">
+ {{#config}}
+ <span class="{{class1}}">{{text1}}</span>{{#text2}}<span class="eq">=</span>{{/text2}}<span class="{{class2}}">{{text2}}</span>
+ {{#extra}}
+ <span class="text-muted usel" data-con=" ; {{extra}}"></span>
+ {{/extra}}
+ <br>
+ {{/config}}
+ </div>
+</div>