diff options
author | Simon Rettberg | 2016-05-03 19:03:09 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-05-03 19:03:09 +0200 |
commit | 50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66 (patch) | |
tree | 05e99fdffa696434960d7c77966c0bc36d6339e8 /modules-available/statistics/templates | |
parent | Second half of merge.... (diff) | |
download | slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.tar.gz slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.tar.xz slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.zip |
WIP
Diffstat (limited to 'modules-available/statistics/templates')
12 files changed, 617 insertions, 0 deletions
diff --git a/modules-available/statistics/templates/clientlist.html b/modules-available/statistics/templates/clientlist.html new file mode 100644 index 00000000..8e8565fe --- /dev/null +++ b/modules-available/statistics/templates/clientlist.html @@ -0,0 +1,45 @@ +<h1>{{lang_clientList}}</h1> +<div class="pull-right">{{filter}} ~= {{argument}}</div> +<div class="clearfix"></div> + +<table class="table table-condensed table-striped"> + <tr> + <th>{{lang_machine}}</th> + <th>{{lang_address}}</th> + <th class="text-right">{{lang_lastSeen}}</th> + <th>{{lang_kvmSupport}}</th> + <th class="text-right">{{lang_gbRam}}</th> + <th class="text-right">{{lang_tmpGb}}</th> + <th>{{lang_cpuModel}}</th> + </tr> + {{#rows}} + <tr> + <td class="slx-nowrap"> + {{#hasnotes}}<span class="glyphicon glyphicon-exclamation-sign pull-right"></span>{{/hasnotes}} + {{#state_off}} + <span class="glyphicon glyphicon-off" title="{{lang_machineOff}}"></span> + {{/state_off}} + {{#state_idle}} + <span class="glyphicon glyphicon-ok green" title="{{lang_machineIdle}}"></span> + {{/state_idle}} + {{#state_occupied}} + <span class="glyphicon glyphicon-user red" title="{{lang_machineOccupied}}"></span> + {{/state_occupied}} + <a href="?do=Statistics&uuid={{machineuuid}}"><b>{{hostname}}</b></a> + <div class="small">{{machineuuid}}</div> + </td> + <td><b><a href="?do=Statistics&filter=subnet&argument={{subnet}}">{{subnet}}</a>{{lastoctet}}</b><br>{{macaddr}}</td> + <td class="text-right">{{lastseen}}</td> + <td class="{{kvmclass}}">{{kvmstate}}</td> + <td class="text-right {{ramclass}}">{{gbram}} GiB</td> + <td class="text-right {{hddclass}}"> + {{gbtmp}} GiB + {{#badsectors}}<div> + <span class="glyphicon glyphicon-exclamation-sign"></span> + {{badsectors}} + </div>{{/badsectors}} + </td> + <td>{{lang_realCores}}: {{realcores}}<div class="small">{{cpumodel}}</div></td> + </tr> + {{/rows}} +</table> diff --git a/modules-available/statistics/templates/cpumodels.html b/modules-available/statistics/templates/cpumodels.html new file mode 100644 index 00000000..2f24cd92 --- /dev/null +++ b/modules-available/statistics/templates/cpumodels.html @@ -0,0 +1,51 @@ +<div class="col-md-12"> + <div class="panel panel-default"> + <div class="panel-heading"> + {{lang_modelStats}} + </div> + <div class="panel-body"> + <div class="row"> + <div class="col-md-8"> + <table class="table table-condensed table-striped"> + <tr> + <th>{{lang_modelName}}</th> + <th class="text-right">{{lang_cpuCores}}</th> + <th class="text-right">{{lang_modelCount}}</th> + </tr> + {{#rows}} + <tr id="{{id}}"> + <td class="text-left slx-nowrap"> + <a href="?do=Statistics&filter=systemmodel&argument={{urlsystemmodel}}">{{systemmodel}}</a> + </td> + <td class="text-right"><a href="?do=Statistics&filter=realcores&argument={{cores}}">{{cores}}</a></td> + <td class="text-right">{{count}}</td> + </tr> + {{/rows}} + </table> + </div> + <div class="col-md-4"> + <canvas id="cpumodelchart" style="width:100%;height:380px"></canvas> + <script type="text/javascript"> + document.addEventListener("DOMContentLoaded", function() { + var data = {{{json}}}; + var sel = false; + new Chart(document.getElementById('cpumodelchart').getContext('2d')).Pie(data, { + animation: false, + tooltipTemplate: "<%if (label){%><%=label%><%}%>", + customTooltips: function(tooltip) { + if (sel !== false) sel.removeClass('info'); + if (!tooltip) { + sel = false; + return; + } + sel = $('#' + tooltip.text); + sel.addClass('info'); + } + }); + }, false); + </script> + </div> + </div> + </div> + </div> +</div> diff --git a/modules-available/statistics/templates/id44.html b/modules-available/statistics/templates/id44.html new file mode 100644 index 00000000..730839b1 --- /dev/null +++ b/modules-available/statistics/templates/id44.html @@ -0,0 +1,48 @@ +<div class="col-md-6"> + <div class="panel panel-default"> + <div class="panel-heading"> + {{lang_tempPartStats}} + </div> + <div class="panel-body"> + <div class="row"> + <div class="col-sm-6"> + <table class="table table-condensed table-striped"> + <tr> + <th>{{lang_partitionSize}}</th> + <th class="text-right">{{lang_machineCount}}</th> + </tr> + {{#rows}} + <tr id="tmpid{{gb}}" class="{{class}}"> + <td class="text-left slx-nowrap"><a href="?do=Statistics&filter=hddgb&argument={{gb}}">{{gb}} GiB</td> + <td class="text-right">{{count}}</td> + </tr> + {{/rows}} + </table> + </div> + <div class="col-sm-6"> + <canvas id="temppartchart" style="width:100%;height:250px"></canvas> + <script type="text/javascript"> + document.addEventListener("DOMContentLoaded", function() { + var data = {{{json}}}; + var sel = false; + new Chart(document.getElementById('temppartchart').getContext('2d')).Pie(data, { + animation: false, + tooltipTemplate: "<%if (label){%><%=label%><%}%>", + customTooltips: function(tooltip) { + if (sel !== false) sel.removeClass('info'); + if (!tooltip) { + sel = false; + return; + } + sel = $('#tmpid' + String(tooltip.text)); + console.log('#tmpid' + String(tooltip.text)); + sel.addClass('info'); + } + }); + }, false); + </script> + </div> + </div> + </div> + </div> +</div>
\ No newline at end of file diff --git a/modules-available/statistics/templates/kvmstate.html b/modules-available/statistics/templates/kvmstate.html new file mode 100644 index 00000000..107a34f7 --- /dev/null +++ b/modules-available/statistics/templates/kvmstate.html @@ -0,0 +1,47 @@ +<div class="col-md-6"> + <div class="panel panel-default"> + <div class="panel-heading"> + {{lang_kvmStats}} + </div> + <div class="panel-body"> + <div class="row"> + <div class="col-sm-6"> + <table class="table table-condensed table-striped"> + <tr> + <th>{{lang_kvmState}}</th> + <th class="text-right">{{lang_machineCount}}</th> + </tr> + {{#rows}} + <tr id="kvm{{kvmstate}}"> + <td class="text-left slx-nowrap"><a href="?do=Statistics&filter=kvmstate&argument={{kvmstate}}">{{kvmstate}}</a></td> + <td class="text-right">{{count}}</td> + </tr> + {{/rows}} + </table> + </div> + <div class="col-sm-6"> + <canvas id="kvmchart" style="width:100%;height:250px"></canvas> + <script type="text/javascript"> + document.addEventListener("DOMContentLoaded", function() { + var data = {{{json}}}; + var sel = false; + new Chart(document.getElementById('kvmchart').getContext('2d')).Pie(data, { + animation: false, + tooltipTemplate: "<%if (label){%><%=label%><%}%>", + customTooltips: function(tooltip) { + if (sel !== false) sel.removeClass('info'); + if (!tooltip) { + sel = false; + return; + } + sel = $('#kvm' + tooltip.text); + sel.addClass('info'); + } + }); + }, false); + </script> + </div> + </div> + </div> + </div> +</div>
\ No newline at end of file diff --git a/modules-available/statistics/templates/machine-hdds.html b/modules-available/statistics/templates/machine-hdds.html new file mode 100644 index 00000000..fd6cf1be --- /dev/null +++ b/modules-available/statistics/templates/machine-hdds.html @@ -0,0 +1,67 @@ +<h3>{{lang_hdds}}</h3> +<div class="row"> + {{#hdds}} + <div class="col-md-6"> + <div class="panel panel-default"> + <div class="panel-heading"> + <b>{{s_ModelFamily}}</b> {{dev}} + </div> + <div class="panel-body"> + {{#s_DeviceModel}} + <div>{{lang_modelNo}}: {{s_DeviceModel}}, {{lang_serialNo}}: {{s_SerialNumber}}</div> + {{/s_DeviceModel}} + {{#s_ReallocatedSectorCt}} + <div class="red">{{lang_reallocatedSectors}}: {{s_ReallocatedSectorCt}}</div> + {{/s_ReallocatedSectorCt}} + {{#s_CurrentPendingSector}} + <div class="red">{{lang_pendingSectors}}: {{s_CurrentPendingSector}}</div> + {{/s_CurrentPendingSector}} + {{#s_PowerOnHours}} + <div>{{lang_powerOnTime}}: {{s_PowerOnHours}} {{lang_hours}} ({{PowerOnTime}})</div> + {{/s_PowerOnHours}} + <div class="row"> + <div class="col-sm-6"> + <table class="table table-condensed table-striped table-responsive"> + <tr> + <th>{{lang_partName}}</th> + <th class="text-right">{{lang_partSize}}</th> + <th>{{lang_partType}}</th> + </tr> + {{#partitions}} + <tr id="{{id}}"> + <td>{{name}}</td> + <td class="text-right">{{size}} GiB</td> + <td>{{type}}</td> + </tr> + {{/partitions}} + </table> + <div class="slx-bold">{{lang_total}}: {{size}} GiB</div> + </div> + <div class="col-sm-6"> + <canvas id="{{devid}}-chart" style="width:100%;height:250px"></canvas> + <script type="text/javascript"> + document.addEventListener("DOMContentLoaded", function() { + var data = {{{json}}}; + var sel = false; + new Chart(document.getElementById('{{devid}}-chart').getContext('2d')).Pie(data, { + animation: false, + tooltipTemplate: "<%if (label){%><%=label%><%}%>", + customTooltips: function(tooltip) { + if (sel !== false) sel.removeClass('info'); + if (!tooltip) { + sel = false; + return; + } + sel = $('#' + tooltip.text); + sel.addClass('info'); + } + }); + }, false); + </script> + </div> + </div> + </div> + </div> + </div> + {{/hdds}} +</div>
\ No newline at end of file diff --git a/modules-available/statistics/templates/machine-main.html b/modules-available/statistics/templates/machine-main.html new file mode 100644 index 00000000..8071416a --- /dev/null +++ b/modules-available/statistics/templates/machine-main.html @@ -0,0 +1,124 @@ +<h1> + {{hostname}} {{#hostname}}–{{/hostname}} {{clientip}} + {{#notes}}<a href="#usernotes"><span class="glyphicon glyphicon-exclamation-sign"></span></a>{{/notes}} +</h1> + +<div class="row"> + <div class="col-md-6"> + <div class="panel panel-default"> + <div class="panel-heading"> + {{lang_machineSummary}} + </div> + <div class="panel-body"> + <table class="table table-condensed"> + <tr> + <td>{{lang_uuid}}</td> + <td>{{machineuuid}}</td> + </tr> + <tr> + <td>{{lang_macAddr}}</td> + <td>{{macaddr}}</td> + </tr> + <tr> + <td>{{lang_ip}}</td> + <td>{{clientip}}</td> + </tr> + {{#hostname}} + <tr> + <td>{{lang_hostname}}</td> + <td>{{hostname}}</td> + </tr> + {{/hostname}} + <tr> + <td>{{lang_firstSeen}}</td> + <td>{{firstseen_s}}</td> + </tr> + <tr> + <td>{{lang_lastBoot}}</td> + <td>{{lastboot_s}}</td> + </tr> + <tr> + <td>{{lang_lastSeen}}</td> + <td>{{lastseen_s}}</td> + </tr> + <tr> + <td>{{lang_usageState}}</td> + <td> + {{#state_off}} + <span class="glyphicon glyphicon-off"></span> {{lang_machineOff}} + {{/state_off}} + {{#state_idle}} + <span class="glyphicon glyphicon-ok green"></span> {{lang_machineIdle}} + {{/state_idle}} + {{#state_occupied}} + {{#username}} + <span class="glyphicon glyphicon-user red"></span> {{lang_machineOccupiedBy}} <b>{{username}}</b> + {{/username}} + {{^username}} + <span class="glyphicon glyphicon-user red"></span> {{lang_machineOccupied}} + {{/username}} + <div>{{logintime_s}}</div> + {{/state_occupied}} + {{#session}} + <div>{{session}}</div> + {{/session}} + </td> + </tr> + </table> + </div> + </div> + </div> + <div class="col-md-6"> + <div class="panel panel-default"> + <div class="panel-heading"> + {{lang_hardwareSummary}} + </div> + <div class="panel-body"> + <table class="table table-condensed"> + <tr> + <td>{{lang_cpuModel}}</td> + <td> + {{cpumodel}} + {{#Sockets}} + <div class="small"> + {{lang_sockets}}: {{Sockets}}, {{lang_cores}}: {{Realcores}}, {{lang_virtualCores}}: {{Virtualcores}} + </div> + {{/Sockets}} + </td> + </tr> + <tr> + <td>{{lang_model}}</td> + <td>{{pcmodel}} ({{manufacturer}})</td> + </tr> + <tr class="{{ramclass}}"> + <td>{{lang_ram}}</td> + <td> + {{gbram}} GiB + {{#maxram}}({{lang_maximumAbbrev}} {{maxram}}){{/maxram}} + {{ramtype}} + </td> + </tr> + {{#extram}} + <tr> + <td>{{lang_ramSlots}}</td> + <td> + {{ramslotcount}}: + {{#ramslot}} + [ {{size}} ] + {{/ramslot}} + </td> + </tr> + {{/extram}} + <tr class="{{hddclass}}"> + <td>{{lang_tempPart}}</td> + <td>{{gbtmp}} GiB</td> + </tr> + <tr class="{{kvmclass}}"> + <td>{{lang_64bitSupport}}</td> + <td>{{kvmstate}}</td> + </tr> + </table> + </div> + </div> + </div> +</div> diff --git a/modules-available/statistics/templates/machine-notes.html b/modules-available/statistics/templates/machine-notes.html new file mode 100644 index 00000000..c4f97543 --- /dev/null +++ b/modules-available/statistics/templates/machine-notes.html @@ -0,0 +1,17 @@ +<a name="usernotes"></a> +<h3>{{lang_notes}}</h3> +<div class="row"> + <div class="col-md-12"> + <div class="panel panel-default"> + <div class="panel-body"> + <form action="?do=Statistics" method="post"> + <input type="hidden" name="token" value="{{token}}"> + <input type="hidden" name="action" value="setnotes"> + <input type="hidden" name="uuid" value="{{machineuuid}}"> + <textarea name="content" class="form-control" cols="101" rows="10">{{notes}}</textarea> + <button type="submit" class="btn btn-primary">{{lang_save}}</button> + </form> + </div> + </div> + </div> +</div>
\ No newline at end of file diff --git a/modules-available/statistics/templates/machine-usage.html b/modules-available/statistics/templates/machine-usage.html new file mode 100644 index 00000000..ffaa747b --- /dev/null +++ b/modules-available/statistics/templates/machine-usage.html @@ -0,0 +1,51 @@ +<div class="row"> + <div class="col-md-12"> + <div class="panel panel-default"> + <div class="panel-heading"> + {{lang_usageDetails}} + </div> + <div class="panel-body"> + <div class="row"> + <div class="col-sm-6"> + <table class="table table-condensed"> + <tr> + <th>Type</th> + <th>When</th> + <th>Length</th> + </tr> + {{#rows}} + <tr> + <td><span class="glyphicon glyphicon-{{glyph}}"></span></td> + <td>{{from}}</td> + <td>{{duration}}</td> + </tr> + {{/rows}} + </table> + </div> + <div class="col-sm-6"> + <table class="table table-condensed"> + {{#hasrows2}} + <tr> + <th>Type</th> + <th>When</th> + <th>Length</th> + </tr> + {{/hasrows2}} + {{#rows2}} + <tr> + <td><span class="glyphicon glyphicon-{{glyph}}"></span></td> + <td>{{from}}</td> + <td>{{duration}}</td> + </tr> + {{/rows2}} + </table> + </div> + </div> + <div class="timebar"> {{{graph}}}</div> + <div> + {{lang_timebarDesc}} + </div> + </div> + </div> + </div> +</div> diff --git a/modules-available/statistics/templates/memory.html b/modules-available/statistics/templates/memory.html new file mode 100644 index 00000000..f4d2ad24 --- /dev/null +++ b/modules-available/statistics/templates/memory.html @@ -0,0 +1,47 @@ +<div class="col-md-6"> + <div class="panel panel-default"> + <div class="panel-heading"> + {{lang_memoryStats}} + </div> + <div class="panel-body"> + <div class="row"> + <div class="col-sm-6"> + <table class="table table-condensed table-striped"> + <tr> + <th>{{lang_ramSize}}</th> + <th class="text-right">{{lang_machineCount}}</th> + </tr> + {{#rows}} + <tr id="ramid{{gb}}" class="{{class}}"> + <td class="text-left slx-nowrap"><a href="?do=Statistics&filter=gbram&argument={{gb}}">{{gb}} GiB</a></td> + <td class="text-right">{{count}}</td> + </tr> + {{/rows}} + </table> + </div> + <div class="col-sm-6"> + <canvas id="ramsizechart" style="width:100%;height:250px"></canvas> + <script type="text/javascript"> + document.addEventListener("DOMContentLoaded", function() { + var data = {{{json}}}; + var sel = false; + new Chart(document.getElementById('ramsizechart').getContext('2d')).Pie(data, { + animation: false, + tooltipTemplate: "<%if (label){%><%=label%><%}%>", + customTooltips: function(tooltip) { + if (sel !== false) sel.removeClass('info'); + if (!tooltip) { + sel = false; + return; + } + sel = $('#ramid' + tooltip.text); + sel.addClass('info'); + } + }); + }, false); + </script> + </div> + </div> + </div> + </div> +</div>
\ No newline at end of file diff --git a/modules-available/statistics/templates/newclients.html b/modules-available/statistics/templates/newclients.html new file mode 100644 index 00000000..0d9c74df --- /dev/null +++ b/modules-available/statistics/templates/newclients.html @@ -0,0 +1,44 @@ +<div class="col-md-6"> + <div class="panel panel-default"> + <div class="panel-heading"> + {{lang_newMachines}} + </div> + <div class="panel-body"> + <table class="table table-condensed table-striped" id="newclienttable"> + <tr> + <th>{{lang_machine}}</th> + <th class="text-right"></th> + <th>64Bit</th> + <th class="text-right">RAM</th> + <th class="text-right">HDD</th> + </tr> + {{#rows}} + <tr style="{{style}}"> + <td class="slx-nowrap"><a href="?do=Statistics&uuid={{machineuuid}}">{{hostname}}</a></td> + <td class="text-right">{{firstseen}}</td> + <td class="{{kvmclass}}">{{kvmicon}}</td> + <td class="text-right {{ramclass}}">{{gbram}} GiB</td> + <td class="text-right {{hddclass}}">{{gbtmp}} GiB</td> + </tr> + {{/rows}} + {{#openbutton}} + <tr> + <td colspan="5" onclick="slxExpandNew(this)"> + <span class="btn-group btn-group-justified"> + <span class="btn btn-default"> + <span class="glyphicon glyphicon-menu-down"></span> + </span> + </span> + <script type="text/javascript"> + function slxExpandNew(b) { + $('#newclienttable').find('tr').show(); + $(b).hide(); + } + </script> + </td> + </tr> + {{/openbutton}} + </table> + </div> + </div> +</div>
\ No newline at end of file diff --git a/modules-available/statistics/templates/summary.html b/modules-available/statistics/templates/summary.html new file mode 100644 index 00000000..5f16fd89 --- /dev/null +++ b/modules-available/statistics/templates/summary.html @@ -0,0 +1,33 @@ +<div class="col-md-12"> + <div class="panel panel-default"> + <div class="panel-body"> + <div> + {{lang_knownMachines}}: <b>{{known}}</b>  + <a href="?do=Statistics&filter=state&argument=on">{{lang_onlineMachines}}</a>: <b>{{online}}</b>  + <a href="?do=Statistics&filter=state&argument=occupied">{{lang_inUseMachines}}</a>: <b>{{used}}</b> (<b>{{usedpercent}}%</b>) + </div> + {{#badhdd}} + <div> + <span class="glyphicon glyphicon-exclamation-sign red"></span> + <a href="?do=Statistics&filter=badsectors&argument=10"> + {{lang_withBadSectors}}: <b>{{badhdd}}</b> + </a> + </div> + {{/badhdd}} + </div> + </div> + <div> + <canvas id="usagehist" style="width:100%;height:150px"></canvas> + <script type="text/javascript"> + document.addEventListener("DOMContentLoaded", function() { + var data = {{{json}}}; + var sel = false; + new Chart(document.getElementById('usagehist').getContext('2d')).Line(data, { + animation: false, + pointHitDetectionRadius: 5 + }); + }, false); + </script> + </div> +</div> + diff --git a/modules-available/statistics/templates/syslog.html b/modules-available/statistics/templates/syslog.html new file mode 100644 index 00000000..c82cb8ac --- /dev/null +++ b/modules-available/statistics/templates/syslog.html @@ -0,0 +1,43 @@ +<h3>{{lang_logHeadline}}</h3> +<table class="table table-striped table-condensed"> + <thead> + <th width="1"></th> + <th>{{lang_when}}</th> + <th>{{lang_event}}</th> + <th width="1">{{lang_details}}</th> + </thead> + <tbody> + {{#list}} + <tr> + <td><span class="glyphicon {{icon}}" title="{{logtypeid}}" onclick="$('#filterstring').tagsinput('add', '{{logtypeid}}')"></span></td> + <td class="text-right" nowrap="nowrap">{{date}}</td> + <td>{{description}}</td> + <td>{{#extra}} + <a class="btn btn-default btn-xs pull-left" onclick="$('#details-body').html($('#extra-{{logid}}').html())" data-toggle="modal" data-target="#myModal">»</a> + <div class="hidden" id="extra-{{logid}}">{{extra}}</div> + {{/extra}}</td> + </tr> + {{/list}} + </tbody> +</table> +<div class="pull-right"><a class="btn btn-default btn-sm" href="?do=SysLog&ip={{clientip}}">{{lang_more}} »</a></div> +<div class="clearfix"></div> + +<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> + <div class="modal-dialog modal-lg"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> + <h4 class="modal-title" id="myModalLabel">{{lang_details}}</h4> + </div> + <div class="modal-body"> + <pre id="details-body"></pre> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> + </div> + </div> + </div> +</div> + + |