diff options
author | Simon Rettberg | 2017-02-02 16:06:40 +0100 |
---|---|---|
committer | Simon Rettberg | 2017-02-02 16:06:40 +0100 |
commit | 452a0a49d0e9bef75667e488b37580dd5688a923 (patch) | |
tree | ef0f040898be2e50dff38d73f487f537e6bab9d2 /modules-available/statistics_reporting/templates | |
parent | [statistics_reporting] Show hand-cursor for sortable columns (diff) | |
download | slx-admin-452a0a49d0e9bef75667e488b37580dd5688a923.tar.gz slx-admin-452a0a49d0e9bef75667e488b37580dd5688a923.tar.xz slx-admin-452a0a49d0e9bef75667e488b37580dd5688a923.zip |
[statistics_reporting] Move logic js -> php (for export feature)
Diffstat (limited to 'modules-available/statistics_reporting/templates')
7 files changed, 169 insertions, 222 deletions
diff --git a/modules-available/statistics_reporting/templates/_page.html b/modules-available/statistics_reporting/templates/_page.html deleted file mode 100644 index 1f4ac52c..00000000 --- a/modules-available/statistics_reporting/templates/_page.html +++ /dev/null @@ -1,111 +0,0 @@ -<table id="table-total" class="table table-condensed table-striped"> - <thead> - <tr> - <th class="text-left col-md-2"></th> - <th class="text-left column-totaltime">{{lang_totalTime}}</th> - <th class="text-left column-mediantime">{{lang_medianSessionLength}}</th> - <th class="text-left column-longsessions">{{lang_longSessions}}</th> - <th class="text-left column-shortsessions">{{lang_shortSessions}}</th> - <th class="text-left column-timeoffline">{{lang_overallOfftime}}</th> - </tr> - </thead> - <tbody> - <tr> - <th class="text-left">{{lang_total}}</th> - <td class="text-left column-totaltime">{{time_s}}</td> - <td class="text-left column-mediantime">{{medianTime_s}}</td> - <td class="text-left column-longsessions">{{sessions}}</td> - <td class="text-left column-shortsessions">{{shortSessions}}</td> - <td class="text-left column-timeoffline">{{totalOfftime_s}}</td> - </tr> - </tbody> -</table> -<table id="table-perlocation" class="table table-condensed table-striped"> - <thead> - <tr> - <th data-sort="string" class="text-left col-md-2">{{lang_location}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-totaltime">{{lang_totalTime}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-mediantime">{{lang_medianSessionLength}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-longsessions">{{lang_longSessions}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-shortsessions">{{lang_shortSessions}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-timeoffline">{{lang_totalOffTime}}</th> - </tr> - </thead> - <tbody> - {{#perLocation}} - <tr> - <td class="locationName text-left">{{location}}</td> - <td data-sort-value="{{time}}" class="text-left column-totaltime">{{time_s}}</td> - <td data-sort-value="{{medianTime}}" class="text-left column-mediantime">{{medianTime_s}}</td> - <td class="text-left column-longsessions">{{sessions}}</td> - <td class="text-left column-shortsessions">{{shortSessions}}</td> - <td data-sort-value="{{offTime}}" class="text-left column-timeoffline">{{offTime_s}}</td> - </tr> - {{/perLocation}} - </tbody> -</table> -<table id="table-perclient" class="table table-condensed table-striped"> - <thead> - <tr> - <th data-sort="string" class="text-left col-md-4">{{lang_hostname}}</th> - <th data-sort="string" class="text-left column-location">{{lang_location}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-totaltime">{{lang_totalTime}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-mediantime">{{lang_medianSessionLength}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-longsessions">{{lang_longSessions}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-shortsessions">{{lang_shortSessions}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-timeoffline">{{lang_totalOffTime}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-lastlogout">{{lang_clientLogout}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-laststart">{{lang_clientStart}}</th> - </tr> - </thead> - <tbody> - {{#perClient}} - <tr> - <td class="text-left">{{hostname}}</td> - <td class="text-left column-location"><a class="locationLink" href="#">{{location}}</a></td> - <td data-sort-value="{{time}}" class="text-left column-totaltime">{{time_s}}</td> - <td data-sort-value="{{medianTime}}" class="text-left column-mediantime">{{medianTime_s}}</td> - <td class="text-left column-longsessions">{{sessions}}</td> - <td class="text-left column-shortsessions">{{shortSessions}}</td> - <td data-sort-value="{{offTime}}" class="text-left column-timeoffline">{{offTime_s}}</td> - <td data-sort-value="{{lastLogout}}" class="text-left column-lastlogout">{{lastLogout_s}}</td> - <td data-sort-value="{{lastStart}}" class="text-left column-laststart">{{lastStart_s}}</td> - </tr> - {{/perClient}} - </tbody> -</table> -<table id="table-peruser" class="table table-condensed table-striped"> - <thead> - <tr> - <th data-sort="string" class="text-left col-md-4">{{lang_user}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-sessions">{{lang_sessions}}</th> - </tr> - </thead> - <tbody> - {{#perUser}} - <tr> - <td class="text-left">{{user}}</td> - <td class="text-left column-sessions">{{sessions}}</td> - </tr> - {{/perUser}} - </tbody> -</table> -<table id="table-pervm" class="table table-condensed table-striped"> - <thead> - <tr> - <th data-sort="string" class="text-left col-md-4">{{lang_vm}}</th> - <th data-sort="int" data-sort-default="desc" class="text-left column-sessions">{{lang_sessions}}</th> - </tr> - </thead> - <tbody> - {{#perVM}} - <tr> - <td class="text-left">{{vm}}</td> - <td class="text-left column-sessions">{{sessions}}</td> - </tr> - {{/perVM}} - </tbody> -</table> - - - diff --git a/modules-available/statistics_reporting/templates/columnChooser.html b/modules-available/statistics_reporting/templates/columnChooser.html index c51250bd..b5cf4ec8 100644 --- a/modules-available/statistics_reporting/templates/columnChooser.html +++ b/modules-available/statistics_reporting/templates/columnChooser.html @@ -1,41 +1,39 @@ <div class="container-fluid"> - <div class="row form-inline"> - <div class="col-md-12 top-row"> - <select id="select-table" onchange="chooseTable(this.value)" class="form-control"> - <option value="total">{{lang_total}}</option> - <option value="perlocation">{{lang_perlocation}}</option> - <option value="perclient">{{lang_perclient}}</option> - <option value="peruser">{{lang_peruser}}</option> - <option value="pervm">{{lang_pervm}}</option> - </select> - <select id="select-cutoff" onchange="reloadPage()" class="form-control"> - <option value="1">{{lang_last1}}</option> - <option value="2">{{lang_last2}}</option> - <option value="7">{{lang_last7}}</option> - <option value="14">{{lang_last14}}</option> - <option value="30">{{lang_last30}}</option> - <option value="90">{{lang_last90}}</option> - </select> - - <div id="slider"> - <div id="lower-handle" class="ui-slider-handle"></div> - <div id="upper-handle" class="ui-slider-handle"></div> + <form method="get"> + <input type="hidden" name="do" value="statistics_reporting"> + <div class="row form-inline"> + <div class="col-md-12 top-row"> + <select name="type" id="select-table" class="form-control"> + {{#tables}} + <option value="{{value}}" {{selected}}>{{name}}</option> + {{/tables}} + </select> + <select name="cutoff" id="select-cutoff" class="form-control"> + {{#days}} + <option value="{{days}}" {{selected}}>{{lang_days}}: {{days}}</option> + {{/days}} + </select> + + <div id="slider"> + <div id="lower-handle" class="ui-slider-handle"></div> + <div id="upper-handle" class="ui-slider-handle"></div> + <input type="hidden" id="lower-field" name="lower" value="{{lower}}"> + <input type="hidden" id="upper-field" name="upper" value="{{upper}}"> + </div> + <button type="submit" class="btn btn-sm btn-primary">{{lang_apply}}</button> + <button id="button-settings" type="button" class="pull-right btn btn-default" data-toggle="modal" data-target="#modal-settings" onclick="loadSettings()"><span class="glyphicon glyphicon-cog"></span></button> + </div> + <div class="col-md-12"> + {{#columns}} + <input type="hidden" name="{{id}}" value="off"> + <div class="checkbox"> + <input id="{{id}}" name="{{id}}" type="checkbox" class="column-toggle form-control" {{checked}}> + <label for="{{id}}">{{name}}</label> + </div> + {{/columns}} </div> - <button id="applybound" type="button" class="btn btn-sm btn-primary collapse" onclick="reloadPage()">{{lang_apply}}</button> - <button id="button-settings" type="button" class="pull-right btn btn-default" data-toggle="modal" data-target="#modal-settings" onclick="loadSettings()"><span class="glyphicon glyphicon-cog"></span></button> - </div> - <div class="col-md-12 buttonbar"> - <button id="button-location" type="button" class="column-toggle btn btn-primary" onclick="toggleButton('location')">{{lang_location}}</button> - <button id="button-totaltime" type="button" class="column-toggle btn btn-primary" onclick="toggleButton('totaltime')">{{lang_totalTime}}</button> - <button id="button-mediantime" type="button" class="column-toggle btn btn-primary" onclick="toggleButton('mediantime')">{{lang_medianSessionLength}}</button> - <button id="button-sessions" type="button" class="column-toggle btn btn-primary" onclick="toggleButton('sessions')">{{lang_sessions}}</button> - <button id="button-longsessions" type="button" class="column-toggle btn btn-primary" onclick="toggleButton('longsessions')">{{lang_longSessions}}</button> - <button id="button-shortsessions" type="button" class="column-toggle btn btn-primary" onclick="toggleButton('shortsessions')">{{lang_shortSessions}}</button> - <button id="button-timeoffline" type="button" class="column-toggle btn btn-primary" onclick="toggleButton('timeoffline')">{{lang_totalOffTime}}</button> - <button id="button-lastlogout" type="button" class="column-toggle btn btn-primary" onclick="toggleButton('lastlogout')">{{lang_clientLogout}}</button> - <button id="button-laststart" type="button" class="column-toggle btn btn-primary" onclick="toggleButton('laststart')">{{lang_clientStart}}</button> </div> - </div> + </form> </div> <div id="modal-settings" class="modal fade" role="dialog"> @@ -62,31 +60,29 @@ </div> <script type="application/javascript"> + document.addEventListener("DOMContentLoaded", function () { var lowerHandle = $("#lower-handle"); var upperHandle = $("#upper-handle"); - var lower = getQueryVariable("lower"); - var upper = getQueryVariable("upper"); + var lower = $('#lower-field').val(); + var upper = $('#upper-field').val(); $( "#slider" ).slider({ range: true, min: 0, max: 24, - values: [ lower ? lower : 8, upper ? upper : 22 ], + values: [ lower, upper ], create: function() { - lowerHandle.text( $(this).slider("values")[0]+":00" ); - upperHandle.text( $(this).slider("values")[1]+":00" ); + lowerHandle.text( lower+":00" ); + upperHandle.text( upper+":00" ); }, slide: function(event, ui) { lowerHandle.text(ui.values[0]+":00"); upperHandle.text(ui.values[1]+":00"); + $('#lower-field').val(ui.values[0]); + $('#upper-field').val(ui.values[1]); }, - change: function(event, ui) { - $("#applybound").show() - } }); - loadForm(); - var table = $("table").stupidtable(); table.on("aftertablesort", function (event, data) { var th = $(this).find("th"); @@ -105,76 +101,27 @@ target.parent().css( "background-color", "#f8ff99" ); return false; }); - }); - - function chooseTable(v) { - $("tr").removeAttr('style'); - $("[id^=table-]").hide(); - $('#table-'+v).show(); - $('.buttonbar').find("[id^=button-]").hide(); - var re = /column-(\w+)/g; - var match; - while (match = re.exec($('thead', '#table-'+v).html())) { - $('#button-'+match[1]).show(); - } - } - - function reloadPage() { - saveForm(); - var cutoff = $("#select-cutoff").val(); - var lower = $("#lower-handle").text().split(":")[0]; - var upper = $("#upper-handle").text().split(":")[0]; - window.location.replace("?do=statistics_reporting&cutoff="+cutoff+"&lower="+lower+"&upper="+upper); - } - - function toggleButton(v) { - var button = $('#button-'+v); - if(button.hasClass('btn-default')) { - button.removeClass('btn-default'); - button.addClass('btn-primary'); - $('.column-'+v).show() - } else { - button.removeClass('btn-primary'); - button.addClass('btn-default'); - $('.column-'+v).hide() - } - } - function saveForm() { - sessionStorage.setItem("select-table", $("#select-table").val()); - sessionStorage.setItem("buttons", $('.buttonbar').find(".btn-default").map(function() { return this.id; }).get().join(" ")); - } + $('.column-toggle').change(function () { + updateColumn($(this)); + }); + $('.column-toggle').each(function () { + var box = $(this); + if ($('.' + box.attr('name')).length === 0) { + box.parent().hide(); + } else { + updateColumn(box); + } + }); + }); - function loadForm() { - var selectTable = sessionStorage.getItem("select-table"); - if (selectTable) { - $("#select-table").val(selectTable); - chooseTable(selectTable); + function updateColumn(checkbox) { + var cols = $('.' + checkbox.attr('name')); + if (checkbox.is(':checked')) { + cols.show(); } else { - $("#select-table").val("total"); - chooseTable("total"); - } - - var cutoff = getQueryVariable("cutoff"); - $('#select-cutoff').val(cutoff ? cutoff : 7); - - var buttons = sessionStorage.getItem("buttons"); - if (buttons) { - buttons.split(" ").forEach(function (button) { - toggleButton(button.substr(7)); - }); - } - } - - function getQueryVariable(variable) - { - var query = window.location.search.substring(1); - var vars = query.split("&"); - for (var i=0;i<vars.length;i++) { - var pair = vars[i].split("="); - if(pair[0] == variable){return pair[1];} + cols.hide(); } - return(false); } function loadSettings() { diff --git a/modules-available/statistics_reporting/templates/table-client.html b/modules-available/statistics_reporting/templates/table-client.html new file mode 100644 index 00000000..e4538da6 --- /dev/null +++ b/modules-available/statistics_reporting/templates/table-client.html @@ -0,0 +1,30 @@ +<table id="table-perclient" class="table table-condensed table-striped"> + <thead> + <tr> + <th data-sort="string" class="text-left col-md-4">{{lang_hostname}}</th> + <th data-sort="string" class="text-left col_location">{{lang_location}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_totaltime">{{lang_totalTime}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_mediantime">{{lang_medianSessionLength}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_longsessions">{{lang_longSessions}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_shortsessions">{{lang_shortSessions}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_timeoffline">{{lang_totalOffTime}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_lastlogout">{{lang_clientLogout}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_laststart">{{lang_clientStart}}</th> + </tr> + </thead> + <tbody> + {{#data}} + <tr> + <td class="text-left">{{hostname}}</td> + <td class="text-left col_location"><a class="locationLink" href="#">{{location}}</a></td> + <td data-sort-value="{{time}}" class="text-left col_totaltime">{{time_s}}</td> + <td data-sort-value="{{medianTime}}" class="text-left col_mediantime">{{medianTime_s}}</td> + <td class="text-left col_longsessions">{{sessions}}</td> + <td class="text-left col_shortsessions">{{shortSessions}}</td> + <td data-sort-value="{{offTime}}" class="text-left col_timeoffline">{{offTime_s}}</td> + <td data-sort-value="{{lastLogout}}" class="text-left col_lastlogout">{{lastLogout_s}}</td> + <td data-sort-value="{{lastStart}}" class="text-left col_laststart">{{lastStart_s}}</td> + </tr> + {{/data}} + </tbody> +</table> diff --git a/modules-available/statistics_reporting/templates/table-location.html b/modules-available/statistics_reporting/templates/table-location.html new file mode 100644 index 00000000..55fa8e6f --- /dev/null +++ b/modules-available/statistics_reporting/templates/table-location.html @@ -0,0 +1,24 @@ +<table id="table-perlocation" class="table table-condensed table-striped"> + <thead> + <tr> + <th data-sort="string" class="text-left col-md-2">{{lang_location}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_totaltime">{{lang_totalTime}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_mediantime">{{lang_medianSessionLength}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_longsessions">{{lang_longSessions}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_shortsessions">{{lang_shortSessions}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_timeoffline">{{lang_totalOffTime}}</th> + </tr> + </thead> + <tbody> + {{#data}} + <tr> + <td class="locationName text-left">{{location}}</td> + <td data-sort-value="{{time}}" class="text-left col_totaltime">{{time_s}}</td> + <td data-sort-value="{{medianTime}}" class="text-left col_mediantime">{{medianTime_s}}</td> + <td class="text-left col_longsessions">{{sessions}}</td> + <td class="text-left col_shortsessions">{{shortSessions}}</td> + <td data-sort-value="{{offTime}}" class="text-left col_timeoffline">{{offTime_s}}</td> + </tr> + {{/data}} + </tbody> +</table> diff --git a/modules-available/statistics_reporting/templates/table-total.html b/modules-available/statistics_reporting/templates/table-total.html new file mode 100644 index 00000000..8e24dc01 --- /dev/null +++ b/modules-available/statistics_reporting/templates/table-total.html @@ -0,0 +1,22 @@ +<table id="table-total" class="table table-condensed table-striped"> + <thead> + <tr> + <th class="text-left col-md-2"></th> + <th class="text-left col_totaltime">{{lang_totalTime}}</th> + <th class="text-left col_mediantime">{{lang_medianSessionLength}}</th> + <th class="text-left col_longsessions">{{lang_longSessions}}</th> + <th class="text-left col_shortsessions">{{lang_shortSessions}}</th> + <th class="text-left col_timeoffline">{{lang_overallOfftime}}</th> + </tr> + </thead> + <tbody> + <tr> + <th class="text-left">{{lang_total}}</th> + <td class="text-left col_totaltime">{{data.time_s}}</td> + <td class="text-left col_mediantime">{{data.medianTime_s}}</td> + <td class="text-left col_longsessions">{{data.sessions}}</td> + <td class="text-left col_shortsessions">{{data.shortSessions}}</td> + <td class="text-left col_timeoffline">{{data.totalOfftime_s}}</td> + </tr> + </tbody> +</table> diff --git a/modules-available/statistics_reporting/templates/table-user.html b/modules-available/statistics_reporting/templates/table-user.html new file mode 100644 index 00000000..5c2ba56f --- /dev/null +++ b/modules-available/statistics_reporting/templates/table-user.html @@ -0,0 +1,16 @@ +<table id="table-peruser" class="table table-condensed table-striped"> + <thead> + <tr> + <th data-sort="string" class="text-left col-md-4">{{lang_user}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_sessions">{{lang_sessions}}</th> + </tr> + </thead> + <tbody> + {{#data}} + <tr> + <td class="text-left">{{user}}</td> + <td class="text-left col_sessions">{{sessions}}</td> + </tr> + {{/data}} + </tbody> +</table> diff --git a/modules-available/statistics_reporting/templates/table-vm.html b/modules-available/statistics_reporting/templates/table-vm.html new file mode 100644 index 00000000..9a775709 --- /dev/null +++ b/modules-available/statistics_reporting/templates/table-vm.html @@ -0,0 +1,19 @@ +<table id="table-pervm" class="table table-condensed table-striped"> + <thead> + <tr> + <th data-sort="string" class="text-left col-md-4">{{lang_vm}}</th> + <th data-sort="int" data-sort-default="desc" class="text-left col_sessions">{{lang_sessions}}</th> + </tr> + </thead> + <tbody> + {{#data}} + <tr> + <td class="text-left">{{vm}}</td> + <td class="text-left col_sessions">{{sessions}}</td> + </tr> + {{/data}} + </tbody> +</table> + + + |