diff options
author | Simon Rettberg | 2018-04-11 23:46:13 +0200 |
---|---|---|
committer | Simon Rettberg | 2018-04-11 23:46:13 +0200 |
commit | c226f585bf23c830cb98bcaa15394aec813e12bc (patch) | |
tree | 19a99a4f38da79edc3c5ed6fa7d822d8245ba06c | |
parent | [roomplanner] Add icon to PCs that opens machine details from statistics module (diff) | |
download | slx-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.php | 24 | ||||
-rw-r--r-- | modules-available/dnbd3/templates/page-proxy-config.html | 18 |
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> |