diff options
author | Simon Rettberg | 2022-11-11 15:06:10 +0100 |
---|---|---|
committer | Simon Rettberg | 2022-11-11 15:06:10 +0100 |
commit | 6dd159b77442429ac0ac2a46ed8cd5152c1a8b24 (patch) | |
tree | b5a1ebffdb714fda21161058c2647527b798dd34 /modules-available/statistics | |
parent | [statistics] Add placeholder to filters (diff) | |
download | slx-admin-6dd159b77442429ac0ac2a46ed8cd5152c1a8b24.tar.gz slx-admin-6dd159b77442429ac0ac2a46ed8cd5152c1a8b24.tar.xz slx-admin-6dd159b77442429ac0ac2a46ed8cd5152c1a8b24.zip |
[statistics] Client list: Add option to hide columns
Diffstat (limited to 'modules-available/statistics')
6 files changed, 68 insertions, 3 deletions
diff --git a/modules-available/statistics/config.json b/modules-available/statistics/config.json index 11d3fba3..a683ab6a 100644 --- a/modules-available/statistics/config.json +++ b/modules-available/statistics/config.json @@ -1,7 +1,6 @@ { "category": "main.status", "dependencies": [ - "js_chart", "bootstrap_datepicker" ], "permission": "0" diff --git a/modules-available/statistics/lang/de/template-tags.json b/modules-available/statistics/lang/de/template-tags.json index 1f0bcdc8..9445e17a 100644 --- a/modules-available/statistics/lang/de/template-tags.json +++ b/modules-available/statistics/lang/de/template-tags.json @@ -118,6 +118,7 @@ "lang_runMode": "Betriebsmodus", "lang_runmodeMachines": "Mit besonderem Betriebsmodus", "lang_screens": "Bildschirme", + "lang_selectColumns": "Spalten ein\/ausblenden", "lang_serialNo": "Serien-Nr", "lang_showList": "Liste", "lang_showVisualization": "Visualisierung", diff --git a/modules-available/statistics/lang/en/template-tags.json b/modules-available/statistics/lang/en/template-tags.json index 58b85a40..295e34f6 100644 --- a/modules-available/statistics/lang/en/template-tags.json +++ b/modules-available/statistics/lang/en/template-tags.json @@ -118,6 +118,7 @@ "lang_runMode": "Mode of operation", "lang_runmodeMachines": "With special mode of operation", "lang_screens": "Screens", + "lang_selectColumns": "Show\/hide columns", "lang_serialNo": "Serial no", "lang_showList": "List", "lang_showVisualization": "Visualization", diff --git a/modules-available/statistics/pages/machine.inc.php b/modules-available/statistics/pages/machine.inc.php index 1e00b8f2..e72b96c8 100644 --- a/modules-available/statistics/pages/machine.inc.php +++ b/modules-available/statistics/pages/machine.inc.php @@ -5,7 +5,9 @@ class SubPage public static function doPreprocess() { - + if (!Module::isAvailable('js_chart')) { + ErrorHandler::traceError('js_chart not available'); + } } public static function doRender() diff --git a/modules-available/statistics/pages/summary.inc.php b/modules-available/statistics/pages/summary.inc.php index 1fa3adf2..cf3e745d 100644 --- a/modules-available/statistics/pages/summary.inc.php +++ b/modules-available/statistics/pages/summary.inc.php @@ -8,6 +8,9 @@ class SubPage public static function doPreprocess() { User::assertPermission('view.summary'); + if (!Module::isAvailable('js_chart')) { + ErrorHandler::traceError('js_chart not available'); + } } public static function doRender() diff --git a/modules-available/statistics/templates/clientlist.html b/modules-available/statistics/templates/clientlist.html index df271591..721617a9 100644 --- a/modules-available/statistics/templates/clientlist.html +++ b/modules-available/statistics/templates/clientlist.html @@ -1,10 +1,13 @@ +<button class="pull-right btn btn-default" type="button" data-toggle="modal" + data-target="#column-selector">{{lang_selectColumns}}</button> + <h2>{{lang_clientList}} ({{rowCount}})</h2> <form method="post" action="?do=statistics" id="list-form"> <input type="hidden" name="token" value="{{token}}"> <input type="hidden" name="redirect" value="?{{redirect}}"> -<table class="stupidtable table table-condensed table-striped"> +<table id="client-list" class="stupidtable table table-condensed table-striped"> <thead> <tr> <td></td> @@ -277,6 +280,21 @@ </div> </div> +<div class="modal" id="column-selector" tabindex="-1" role="dialog"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal">×</button> + </div> + <div class="modal-body"></div> + <div class="modal-footer"> + <button type="button" class="btn btn-default" + data-dismiss="modal">{{lang_close}}</button> + </div> + </div> + </div> +</div> + <script type="application/javascript"><!-- document.addEventListener("DOMContentLoaded", function () { @@ -335,6 +353,47 @@ document.addEventListener("DOMContentLoaded", function () { }).length; $el.text(result).prop('rows', Math.min(24, Math.max(5, num))); }); + // Generate list for column selection + var $cs = $('#column-selector .modal-body'); + var idx = 0; + $cs.empty(); + $('#client-list tr > th').each(function() { + idx++; + var $th = $(this); + $cs.append($('<div class="checkbox">') + .append($('<input id="shc-' + idx + '" type="checkbox" onclick="toggleColumn(' + idx + ')" checked="checked">')) + .append($('<label for="shc-' + idx + '">').text($th.text()))); + }); + // Load previous visibility settings + var colConf; + if (window.localStorage && (colConf = window.localStorage.getItem('cl-col-conf'))) { + colConf = JSON.parse(colConf); + if (colConf) { + for (var k in colConf) { + if (k.substring(0, 4) === 'shc-' && colConf[k]) { + var $cb = $('#' + k); + if ($cb.prop('checked')) { + $cb.click(); + } + } + } + } + } }); +function toggleColumn(idx) +{ + var $el = $(this); + $('#client-list tr > td:nth-child(' + idx + '), #client-list tr > th:nth-child(' + idx + ')') + .css('display', $el.is(':checked') ? '' : 'none'); + var data = {}; + $('#column-selector .modal-body .checkbox input').each(function() { + var $el = $(this); + if (!$el.is(':checked')) { + data[$el[0].id] = 1; + } + }); + window.localStorage.setItem('cl-col-conf', JSON.stringify(data)); +} + //--></script> |