mirror of
https://github.com/EDCD/EDDN.git
synced 2025-04-21 02:57:38 +03:00
Comment Uploaders from status
This commit is contained in:
parent
42127cb43a
commit
83d6942fe8
@ -24,7 +24,7 @@
|
||||
<header>
|
||||
<nav class="navbar navbar-default navbar-fixed-top">
|
||||
<div class="container">
|
||||
|
||||
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#header-nav">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
@ -34,7 +34,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="">EDDN Status</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="collapse navbar-collapse" id="header-nav">
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a href="#gateways">Gateways</a></li>
|
||||
@ -43,16 +43,16 @@
|
||||
<li><a href="#uploaders">Uploaders</a></li>
|
||||
<li><a href="#schemas">Schemas</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p class="navbar-right navbar-text">
|
||||
<em>Provided by <a href="https://www.edsm.net/" target="_blank" class="navbar-link"><strong>EDSM</strong></a></em>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
|
||||
<section class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
@ -63,7 +63,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="gateways" class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
@ -120,13 +120,13 @@
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 charts">
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<p class="text-muted small">
|
||||
@ -144,13 +144,13 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="relays" class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
@ -162,12 +162,12 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<table class="table">
|
||||
@ -202,13 +202,13 @@
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 charts">
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<p class="text-muted small">
|
||||
@ -226,25 +226,25 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="software" class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h2>Software</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-7">
|
||||
<div class="table-responsive">
|
||||
@ -259,7 +259,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@ -268,7 +268,7 @@
|
||||
<div class="chart" style="height: 450px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
Total hits calculated since May 5, 2015
|
||||
@ -279,25 +279,26 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<!--
|
||||
<section id="uploaders" class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h2>Uploaders (Top 20)</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-7">
|
||||
<div class="table-responsive">
|
||||
@ -312,7 +313,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@ -321,7 +322,7 @@
|
||||
<div class="chart" style="height: 450px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
Total hits calculated since May 5, 2015
|
||||
@ -332,12 +333,13 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
-->
|
||||
|
||||
<section id="schemas" class="container">
|
||||
<div class="row">
|
||||
@ -345,12 +347,12 @@
|
||||
<h2>Schemas <a href="./schemas.html"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></a></h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-7">
|
||||
<div class="table-responsive">
|
||||
@ -365,7 +367,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@ -374,7 +376,7 @@
|
||||
<div class="chart" style="height: 450px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
Total hits calculated since May 5, 2015
|
||||
@ -385,38 +387,38 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<footer>
|
||||
<nav class="navbar navbar-default">
|
||||
<div class="container">
|
||||
<p class="navbar-text">
|
||||
The <em>Elite: Dangerous Data Network</em> is volunteer-run and not affiliated with <a href="https://frontier.co.uk/" target="_blank">Frontier Developments</a>.
|
||||
|
|
||||
|
|
||||
Charts by <a href="http://www.highcharts.com/" target="_blank">HighCharts</a>
|
||||
</p>
|
||||
</div>
|
||||
</nav>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
|
||||
<!-- Include all compiled plugins (below), or include individual files as needed -->
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
<script src="https://code.highcharts.com/5.0.12/highcharts.js"></script>
|
||||
<script src="https://code.highcharts.com/5.0.12/modules/drilldown.js"></script>
|
||||
<script src="./js/eddn.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
|
||||
ga('create', 'UA-496332-23', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
|
@ -1,19 +1,19 @@
|
||||
var updateInterval = 60000,
|
||||
|
||||
monitorEndPoint = 'https://eddn.edcd.io:9091/',
|
||||
|
||||
|
||||
//gatewayBottlePort = 8080,
|
||||
gatewayBottlePort = 4430,
|
||||
relayBottlePort = 9090,
|
||||
|
||||
|
||||
gateways = [
|
||||
'eddn.edcd.io'
|
||||
], //TODO: Must find a way to bind them to monitor
|
||||
|
||||
|
||||
relays = [
|
||||
'eddn.edcd.io'
|
||||
]; //TODO: Must find a way to bind them to monitor
|
||||
|
||||
|
||||
var stats = {
|
||||
'gateways' : {},
|
||||
'relays' : {}
|
||||
@ -55,11 +55,11 @@ secondsToDurationString = function(seconds) {
|
||||
days = Math.floor(hours / 24)
|
||||
hours = Math.floor((hours - days * 24) / 3600);
|
||||
}
|
||||
|
||||
|
||||
if (hours < 10) {hours = "0" + hours;}
|
||||
if (minutes < 10) {minutes = "0" + minutes;}
|
||||
if (seconds < 10) {seconds = "0" + seconds;}
|
||||
|
||||
|
||||
if (days > 0) {
|
||||
return days + "d " + hours + ":" + minutes + ":" + seconds;
|
||||
}
|
||||
@ -79,10 +79,10 @@ var doUpdateSoftwares = function()
|
||||
{
|
||||
var dToday = new Date(),
|
||||
dYesterday = new (function(d){ d.setDate(d.getDate()-1); return d})(new Date),
|
||||
|
||||
|
||||
yesterday = dYesterday.getUTCFullYear() + '-' + ("0" + (dYesterday.getUTCMonth() + 1)).slice(-2) + '-' + ("0" + (dYesterday.getUTCDate())).slice(-2),
|
||||
today = dToday.getUTCFullYear() + '-' + ("0" + (dToday.getUTCMonth() + 1)).slice(-2) + '-' + ("0" + (dToday.getUTCDate())).slice(-2);
|
||||
|
||||
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: monitorEndPoint + 'getSoftwares/?dateStart=' + yesterday + '&dateEnd = ' + today,
|
||||
@ -93,40 +93,40 @@ var doUpdateSoftwares = function()
|
||||
success: function(softwaresTotalData){
|
||||
var chart = $('#software .chart').highcharts(),
|
||||
series = chart.get('softwares');
|
||||
|
||||
|
||||
// Count total by software, all versions included
|
||||
var softwareName = {};
|
||||
$.each(softwaresTotalData, function(software, hits){
|
||||
softwareSplit = software.split(' | ');
|
||||
|
||||
|
||||
if(!softwareName[softwareSplit[0]])
|
||||
softwareName[softwareSplit[0]] = [0,0, parseInt(hits)];
|
||||
else
|
||||
softwareName[softwareSplit[0]][2] += parseInt(hits);
|
||||
|
||||
|
||||
// Might happen when nothing is received...
|
||||
if(softwares[yesterday] == undefined)
|
||||
softwares[yesterday] = [];
|
||||
if(softwares[today] == undefined)
|
||||
softwares[today] = [];
|
||||
|
||||
|
||||
softwareName[softwareSplit[0]][0] += parseInt(softwares[today][software] || 0);
|
||||
softwareName[softwareSplit[0]][1] += parseInt(softwares[yesterday][software] || 0);
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
// Sort by total DESC
|
||||
var tmp = new Array();
|
||||
$.each(softwareName, function(software, hits){ tmp.push({name: software, today: hits[0], yesterday: hits[1], total: hits[2]}); });
|
||||
tmp.sort(function(a,b) { return b.total - a.total; });
|
||||
softwaresTotal = tmp;
|
||||
|
||||
|
||||
$('#software .table tbody').empty();
|
||||
|
||||
|
||||
// Prepare drilldowns
|
||||
$.each(softwaresTotalData, function(software, hits){
|
||||
softwareSplit = software.split(' | ');
|
||||
|
||||
|
||||
$('#software .table tbody').append(
|
||||
newTr = $('<tr>').attr('data-type', 'drilldown').attr('data-parent', softwareSplit[0]).attr('data-name', software).on('mouseover', function(){
|
||||
chart.get('software-' + makeSlug(software)).setState('hover');
|
||||
@ -149,13 +149,13 @@ var doUpdateSoftwares = function()
|
||||
$('<td>').addClass('stat total').html('<strong>' + formatNumber(hits) + '</strong>')
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
if(!drillDownSoftware)
|
||||
newTr.hide();
|
||||
else
|
||||
if(softwareSplit[0] != currentDrillDown)
|
||||
newTr.hide();
|
||||
|
||||
|
||||
if(!softwaresVersion[softwareSplit[0]])
|
||||
softwaresVersion[softwareSplit[0]] = {};
|
||||
if(!softwaresVersion[softwareSplit[0]][software])
|
||||
@ -163,18 +163,18 @@ var doUpdateSoftwares = function()
|
||||
today: (softwares[today][software] || 0), yesterday: (softwares[yesterday][software] || 0), total: hits
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
// Add main softwares
|
||||
$.each(softwaresTotal, function(key, values){
|
||||
$('#software .table tbody').append(
|
||||
newTr = $('<tr>').attr('data-type', 'parent').attr('data-name', values.name).on('click', function(event){
|
||||
event.stopImmediatePropagation();
|
||||
currentSoftware = $(this).attr('data-name');
|
||||
|
||||
|
||||
if(!drillDownSoftware)
|
||||
{
|
||||
currentDrillDown = currentSoftware;
|
||||
|
||||
|
||||
$('#software .table thead th:eq(0)').html('<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>')
|
||||
.css('cursor','pointer')
|
||||
.on('click', function(){
|
||||
@ -191,17 +191,17 @@ var doUpdateSoftwares = function()
|
||||
$('#software .table thead th:eq(1)').html(currentSoftware);
|
||||
$('#software .table tbody tr[data-type=parent]').hide();
|
||||
$('#software .table tbody tr[data-type=drilldown][data-parent="' + currentSoftware + '"]').show();
|
||||
|
||||
|
||||
var currentData = [];
|
||||
|
||||
|
||||
$.each(softwaresVersion[currentSoftware], function(key, value){
|
||||
currentData.push({
|
||||
id: 'software-' + makeSlug(key),
|
||||
name: key,
|
||||
id: 'software-' + makeSlug(key),
|
||||
name: key,
|
||||
y: parseInt(value.total)
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
chart.addSeriesAsDrilldown(chart.get('software-' + makeSlug(currentSoftware)), {
|
||||
id: 'softwareDrilldown-' + makeSlug(currentSoftware),
|
||||
type: 'pie',
|
||||
@ -209,15 +209,15 @@ var doUpdateSoftwares = function()
|
||||
data: currentData
|
||||
});
|
||||
chart.redraw();
|
||||
|
||||
|
||||
if(chart.drillUpButton)
|
||||
chart.drillUpButton = chart.drillUpButton.destroy();
|
||||
|
||||
|
||||
$('#software .table tbody tr[data-type=drilldown][data-parent="' + currentSoftware + '"]').each(function(){
|
||||
$(this).find('.square').css('background', chart.get('software-' + makeSlug($(this).attr('data-name'))).color);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
drillDownSoftware = !drillDownSoftware;
|
||||
}).on('mouseover', function(){
|
||||
chart.get('software-' + makeSlug(values.name)).setState('hover');
|
||||
@ -241,7 +241,7 @@ var doUpdateSoftwares = function()
|
||||
$('<td>').addClass('stat total').html('<strong>' + formatNumber(values.total) + '</strong>')
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
if(!drillDownSoftware)
|
||||
{
|
||||
if(!chart.get('software-' + makeSlug(values.name)))
|
||||
@ -250,26 +250,26 @@ var doUpdateSoftwares = function()
|
||||
}
|
||||
else
|
||||
chart.get('software-' + makeSlug(values.name)).update(parseInt(values.total), false);
|
||||
|
||||
|
||||
newTr.find('.square').css('background', chart.get('software-' + makeSlug(values.name)).color);
|
||||
}
|
||||
|
||||
|
||||
if(drillDownSoftware)
|
||||
newTr.hide();
|
||||
});
|
||||
|
||||
|
||||
if(drillDownSoftware)
|
||||
$('#software .table tbody tr[data-type=drilldown][data-parent="' + currentDrillDown + '"]').each(function(){
|
||||
$(this).find('.square').css('background', chart.get('software-' + makeSlug($(this).attr('data-name'))).color);
|
||||
});
|
||||
|
||||
|
||||
chart.redraw();
|
||||
|
||||
|
||||
$('#software').find(".stat").removeClass("warning").each(function() {
|
||||
if ($(this).html() == "0")
|
||||
$(this).addClass("warning");
|
||||
});
|
||||
|
||||
|
||||
$('#software').find(".update_timestamp").html(d.toString("yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
});
|
||||
@ -277,15 +277,15 @@ var doUpdateSoftwares = function()
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
var doUpdateUploaders = function()
|
||||
{
|
||||
var dToday = new Date(),
|
||||
dYesterday = new (function(d){ d.setDate(d.getDate()-1); return d})(new Date),
|
||||
|
||||
|
||||
yesterday = dYesterday.getUTCFullYear() + '-' + ("0" + (dYesterday.getUTCMonth() + 1)).slice(-2) + '-' + ("0" + (dYesterday.getUTCDate())).slice(-2),
|
||||
today = dToday.getUTCFullYear() + '-' + ("0" + (dToday.getUTCMonth() + 1)).slice(-2) + '-' + ("0" + (dToday.getUTCDate())).slice(-2);
|
||||
|
||||
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: monitorEndPoint + 'getUploaders/?dateStart=' + yesterday + '&dateEnd = ' + today,
|
||||
@ -296,21 +296,21 @@ var doUpdateUploaders = function()
|
||||
success: function(uploadersTotal){
|
||||
var chart = $('#uploaders .chart').highcharts(),
|
||||
series = chart.get('uploaders');
|
||||
|
||||
|
||||
$('#uploaders .table tbody').empty();
|
||||
|
||||
|
||||
$.each(uploadersTotal, function(uploader, hits){
|
||||
if(uploader.length > 32)
|
||||
truncateUploader = jQuery.trim(uploader).substring(0, 32)/*.split(" ").slice(0, -1).join(" ")*/ + "..."
|
||||
truncateUploader = jQuery.trim(uploader).substring(0, 32) + "..."
|
||||
else
|
||||
truncateUploader = uploader
|
||||
|
||||
// Might happen when nothing is received...
|
||||
|
||||
// Might happen when nothing is received...
|
||||
if(uploaders[yesterday] == undefined)
|
||||
uploaders[yesterday] = [];
|
||||
if(uploaders[today] == undefined)
|
||||
uploaders[today] = [];
|
||||
|
||||
|
||||
$('#uploaders .table tbody').append(
|
||||
newTr = $('<tr>').attr('data-name', uploader).on('mouseover', function(){
|
||||
chart.get('uploader-' + makeSlug(uploader)).setState('hover');
|
||||
@ -333,38 +333,39 @@ var doUpdateUploaders = function()
|
||||
$('<td>').addClass('stat total').html('<strong>' + formatNumber(hits) + '</strong>')
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
if(!chart.get('uploader-' + makeSlug(uploader)))
|
||||
series.addPoint({id: 'uploader-' + makeSlug(uploader), name: uploader, y: parseInt(hits)}, false);
|
||||
else
|
||||
chart.get('uploader-' + makeSlug(uploader)).update(parseInt(hits), false);
|
||||
|
||||
|
||||
newTr.find('.square').css('background', chart.get('uploader-' + makeSlug(uploader)).color);
|
||||
});
|
||||
|
||||
|
||||
chart.redraw();
|
||||
|
||||
|
||||
$('#uploaders').find(".stat").removeClass("warning").each(function() {
|
||||
if ($(this).html() == "0")
|
||||
$(this).addClass("warning");
|
||||
});
|
||||
|
||||
|
||||
$('#uploaders').find(".update_timestamp").html(d.toString("yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
var doUpdateSchemas = function()
|
||||
{
|
||||
var dToday = new Date(),
|
||||
dYesterday = new (function(d){ d.setDate(d.getDate()-1); return d})(new Date),
|
||||
|
||||
|
||||
yesterday = dYesterday.getUTCFullYear() + '-' + ("0" + (dYesterday.getUTCMonth() + 1)).slice(-2) + '-' + ("0" + (dYesterday.getUTCDate())).slice(-2),
|
||||
today = dToday.getUTCFullYear() + '-' + ("0" + (dToday.getUTCMonth() + 1)).slice(-2) + '-' + ("0" + (dToday.getUTCDate())).slice(-2);
|
||||
|
||||
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: monitorEndPoint + 'getSchemas/?dateStart=' + yesterday + '&dateEnd = ' + today,
|
||||
@ -378,23 +379,23 @@ var doUpdateSchemas = function()
|
||||
$.each(schemasTotalTmp, function(schema, hits){
|
||||
schema = schema.replace('http://schemas.elite-markets.net/eddn/', 'https://eddn.edcd.io/schemas/');
|
||||
hits = parseInt(hits);
|
||||
|
||||
|
||||
if(schemasTotal[schema]){ schemasTotal[schema] += hits; }
|
||||
else{ schemasTotal[schema] = hits; }
|
||||
});
|
||||
|
||||
|
||||
var chart = $('#schemas .chart').highcharts(),
|
||||
series = chart.get('schemas');
|
||||
|
||||
|
||||
$('#schemas .table tbody').empty();
|
||||
|
||||
|
||||
$.each(schemasTotal, function(schema, hits){
|
||||
// Might happen when nothing is received...
|
||||
if(schemas[yesterday] == undefined)
|
||||
schemas[yesterday] = [];
|
||||
if(schemas[today] == undefined)
|
||||
schemas[today] = [];
|
||||
|
||||
|
||||
// Convert old schemas and sum them to new schemas
|
||||
schemasYesterdayTmp = {};
|
||||
$.each(schemas[yesterday], function(schema, hits){
|
||||
@ -405,7 +406,7 @@ var doUpdateSchemas = function()
|
||||
else{ schemasYesterdayTmp[schema] = hits; }
|
||||
});
|
||||
schemas[yesterday] = schemasYesterdayTmp;
|
||||
|
||||
|
||||
schemasTodayTmp = {};
|
||||
$.each(schemas[today], function(schema, hits){
|
||||
schema = schema.replace('http://schemas.elite-markets.net/eddn/', 'https://eddn.edcd.io/schemas/');
|
||||
@ -415,10 +416,10 @@ var doUpdateSchemas = function()
|
||||
else{ schemasTodayTmp[schema] = hits; }
|
||||
});
|
||||
schemas[today] = schemasTodayTmp;
|
||||
|
||||
|
||||
var slug = makeSlug(schema);
|
||||
var name = makeName(schema);
|
||||
|
||||
|
||||
$('#schemas .table tbody').append(
|
||||
newTr = $('<tr>').attr('data-name', schema).on('mouseover', function(){
|
||||
chart.get('schema-' + slug).setState('hover');
|
||||
@ -441,22 +442,22 @@ var doUpdateSchemas = function()
|
||||
$('<td>').addClass('stat total').html('<strong>' + formatNumber(hits) + '</strong>')
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
if(!chart.get('schema-' + slug))
|
||||
series.addPoint({id: 'schema-' + slug, name: name, y: parseInt(hits)}, false);
|
||||
else
|
||||
chart.get('schema-' + slug).update(parseInt(hits), false);
|
||||
|
||||
|
||||
newTr.find('.square').css('background', chart.get('schema-' + slug).color);
|
||||
});
|
||||
|
||||
|
||||
chart.redraw();
|
||||
|
||||
|
||||
$('#schemas').find(".stat").removeClass("warning").each(function() {
|
||||
if ($(this).html() == "0")
|
||||
$(this).addClass("warning");
|
||||
});
|
||||
|
||||
|
||||
$('#schemas').find(".update_timestamp").html(d.toString("yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
});
|
||||
@ -469,36 +470,36 @@ var doUpdates = function(type){
|
||||
$("select[name=" + type + "] option").each(function(){
|
||||
var currentItem = $(this).html(),
|
||||
isSelected = $(this).is(':selected');
|
||||
|
||||
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: $(this).val(),
|
||||
success: function(data){
|
||||
d = new Date();
|
||||
|
||||
|
||||
stats[type][currentItem]['lastUpdate'] = d.toString("yyyy-MM-dd HH:mm:ss");
|
||||
stats[type][currentItem]['last'] = data;
|
||||
|
||||
|
||||
if(isSelected)
|
||||
showStats(type, currentItem);
|
||||
|
||||
|
||||
var chart = $("#" + type + " .chart[data-name='" + currentItem + "']").highcharts();
|
||||
|
||||
|
||||
shift = chart.get('inbound').data.length > 60;
|
||||
chart.get('inbound').addPoint([d.getTime(), (data['inbound'] || {})['1min'] || 0], true, shift);
|
||||
|
||||
|
||||
if(type == 'gateways')
|
||||
{
|
||||
shift = chart.get('invalid').data.length > 60;
|
||||
chart.get('invalid').addPoint([d.getTime(), (data['invalid'] || {})['1min'] || 0], true, shift);
|
||||
}
|
||||
|
||||
|
||||
if(type == 'relays')
|
||||
{
|
||||
shift = chart.get('duplicate').data.length > 60;
|
||||
chart.get('duplicate').addPoint([d.getTime(), (data['duplicate'] || {})['1min'] || 0], true, shift);
|
||||
}
|
||||
|
||||
|
||||
shift = chart.get('outbound').data.length > 60;
|
||||
chart.get('outbound').addPoint([d.getTime(), (data['outbound'] || {})['1min'] || 0], true, shift);
|
||||
}
|
||||
@ -509,46 +510,46 @@ var doUpdates = function(type){
|
||||
var showStats = function(type, currentItem){
|
||||
var el = $('#' + type),
|
||||
currentItemStats = stats[type][currentItem]['last'];
|
||||
|
||||
|
||||
el.find(".inbound_1min").html((currentItemStats['inbound'] || {})['1min'] || 0);
|
||||
el.find(".inbound_5min").html((currentItemStats["inbound"] || {})['5min'] || 0);
|
||||
el.find(".inbound_60min").html((currentItemStats["inbound"] || {})['60min'] || 0);
|
||||
|
||||
|
||||
if(type == 'gateways')
|
||||
{
|
||||
el.find(".invalid_1min").html((currentItemStats["invalid"] || {})['1min'] || 0);
|
||||
el.find(".invalid_5min").html((currentItemStats["invalid"] || {})['5min'] || 0);
|
||||
el.find(".invalid_60min").html((currentItemStats["invalid"] || {})['60min'] || 0);
|
||||
|
||||
|
||||
el.find(".outdated_1min").html((currentItemStats["outdated"] || {})['1min'] || 0);
|
||||
el.find(".outdated_5min").html((currentItemStats["outdated"] || {})['5min'] || 0);
|
||||
el.find(".outdated_60min").html((currentItemStats["outdated"] || {})['60min'] || 0);
|
||||
}
|
||||
|
||||
|
||||
if(type == 'relays')
|
||||
{
|
||||
el.find(".duplicate_1min").html((currentItemStats["duplicate"] || {})['1min'] || 0);
|
||||
el.find(".duplicate_5min").html((currentItemStats["duplicate"] || {})['5min'] || 0);
|
||||
el.find(".duplicate_60min").html((currentItemStats["duplicate"] || {})['60min'] || 0);
|
||||
}
|
||||
|
||||
|
||||
el.find(".outbound_1min").html((currentItemStats["outbound"] || {})['1min'] || 0);
|
||||
el.find(".outbound_5min").html((currentItemStats["outbound"] || {})['5min'] || 0);
|
||||
el.find(".outbound_60min").html((currentItemStats["outbound"] || {})['60min'] || 0);
|
||||
|
||||
|
||||
el.find(".update_timestamp").html(stats[type][currentItem]['lastUpdate']);
|
||||
el.find(".version").html(currentItemStats['version'] || 'N/A');
|
||||
|
||||
|
||||
if (currentItemStats['uptime'])
|
||||
el.find(".uptime").html(secondsToDurationString(currentItemStats['uptime']));
|
||||
else
|
||||
el.find(".uptime").html('N/A');
|
||||
|
||||
|
||||
el.find(".stat").removeClass("warning").each(function() {
|
||||
if ($(this).html() == "0")
|
||||
$(this).addClass("warning");
|
||||
});
|
||||
|
||||
|
||||
el.find(".chart").hide();
|
||||
el.find(".chart[data-name='" + currentItem + "']").show();
|
||||
$(window).trigger('resize'); // Fix wrong size in chart
|
||||
@ -561,24 +562,24 @@ var showStats = function(type, currentItem){
|
||||
*/
|
||||
var start = function(){
|
||||
Highcharts.setOptions({global: {useUTC: false}});
|
||||
|
||||
|
||||
// Grab gateways
|
||||
//gateways = gateways.sort();
|
||||
$.each(gateways, function(k, gateway){
|
||||
gateway = gateway.replace('tcp://', '');
|
||||
gateway = gateway.replace(':8500', '');
|
||||
|
||||
$("select[name=gateways]").append($('<option>', {
|
||||
|
||||
$("select[name=gateways]").append($('<option>', {
|
||||
value: 'https://' + gateway + ':' + gatewayBottlePort + '/stats/',
|
||||
text : gateway
|
||||
}));
|
||||
|
||||
|
||||
$('#gateways .charts').append(
|
||||
$('<div>').addClass('chart')
|
||||
.css('width', '100%')
|
||||
.attr('data-name', gateway)
|
||||
);
|
||||
|
||||
|
||||
$("#gateways .chart[data-name='" + gateway + "']").highcharts({
|
||||
chart: {
|
||||
type: 'spline', animation: Highcharts.svg
|
||||
@ -603,29 +604,29 @@ var start = function(){
|
||||
{id: 'outbound', data: [], name: 'Messages passed to relay', zIndex: 200}
|
||||
]
|
||||
}).hide();
|
||||
|
||||
|
||||
stats['gateways'][gateway] = {};
|
||||
});
|
||||
|
||||
|
||||
doUpdates('gateways');
|
||||
setInterval(function(){
|
||||
doUpdates('gateways');
|
||||
}, updateInterval);
|
||||
|
||||
|
||||
// Grab relays
|
||||
//relays = relays.sort();
|
||||
$.each(relays, function(k, relay){
|
||||
$("select[name=relays]").append($('<option>', {
|
||||
$("select[name=relays]").append($('<option>', {
|
||||
value: 'https://' + relay + ':' + relayBottlePort + '/stats/',
|
||||
text : relay
|
||||
}));
|
||||
|
||||
|
||||
$('#relays .charts').append(
|
||||
$('<div>').addClass('chart')
|
||||
.css('width', '100%')
|
||||
.attr('data-name', relay)
|
||||
);
|
||||
|
||||
|
||||
$("#relays .chart[data-name='" + relay + "']").highcharts({
|
||||
chart: {
|
||||
type: 'spline', animation: Highcharts.svg,
|
||||
@ -648,20 +649,20 @@ var start = function(){
|
||||
credits: { enabled: false },
|
||||
exporting: { enabled: false },
|
||||
series: [
|
||||
{id: 'inbound', data: [], name: 'Messages received', zIndex: 300},
|
||||
{id: 'duplicate', data: [], name: 'Messages duplicate', zIndex: 1},
|
||||
{id: 'inbound', data: [], name: 'Messages received', zIndex: 300},
|
||||
{id: 'duplicate', data: [], name: 'Messages duplicate', zIndex: 1},
|
||||
{id: 'outbound', data: [], name: 'Messages passed to subscribers', zIndex: 200}
|
||||
]
|
||||
}).hide();
|
||||
|
||||
|
||||
stats['relays'][relay] = {};
|
||||
});
|
||||
|
||||
|
||||
doUpdates('relays');
|
||||
setInterval(function(){
|
||||
doUpdates('relays');
|
||||
}, updateInterval);
|
||||
|
||||
|
||||
// Grab software from monitor
|
||||
$('#software .chart').highcharts({
|
||||
chart: {
|
||||
@ -679,12 +680,12 @@ var start = function(){
|
||||
data: []
|
||||
}]
|
||||
});
|
||||
|
||||
|
||||
doUpdateSoftwares();
|
||||
setInterval(function(){
|
||||
doUpdateSoftwares();
|
||||
}, updateInterval);
|
||||
|
||||
|
||||
// Grab uploader from monitor
|
||||
$('#uploaders .chart').highcharts({
|
||||
chart: {
|
||||
@ -701,12 +702,14 @@ var start = function(){
|
||||
data: []
|
||||
}]
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
doUpdateUploaders();
|
||||
setInterval(function(){
|
||||
doUpdateUploaders();
|
||||
}, updateInterval);
|
||||
|
||||
*/
|
||||
|
||||
// Grab schema from monitor
|
||||
$('#schemas .chart').highcharts({
|
||||
chart: {
|
||||
@ -723,12 +726,12 @@ var start = function(){
|
||||
data: []
|
||||
}]
|
||||
});
|
||||
|
||||
|
||||
doUpdateSchemas();
|
||||
setInterval(function(){
|
||||
doUpdateSchemas();
|
||||
}, updateInterval);
|
||||
|
||||
}, updateInterval);
|
||||
|
||||
// Attach events
|
||||
$("select[name=gateways]").change(function(){
|
||||
showStats('gateways', $(this).find('option:selected').html());
|
||||
|
Loading…
x
Reference in New Issue
Block a user