Enable multiple graphs to be created

This commit is contained in:
Maximilian Grundke
2018-04-11 14:03:52 +02:00
parent 5ae92dc484
commit c4af08e73a

View File

@ -1,7 +1,9 @@
$(document).ready(function () { $(document).ready(function () {
if ($.isController('statistics') && $('.graph#user-activity').isPresent()) { if ($.isController('statistics') && $('.graph#user-activity').isPresent()) {
function manageGraph(containerId, url, refreshAfter) {
var CHART_START = window.vis ? vis.moment().add(-1, 'minute') : undefined; var CHART_START = window.vis ? vis.moment().add(-1, 'minute') : undefined;
var DEFAULT_REFRESH_INTERVAL = 10000; var DEFAULT_REFRESH_INTERVAL = refreshAfter * 1000 || 10000;
var refreshInterval; var refreshInterval;
@ -27,7 +29,7 @@ $(document).ready(function () {
var initializeChart = function() { var initializeChart = function() {
dataset = new vis.DataSet(); dataset = new vis.DataSet();
groups = new vis.DataSet(buildChartGroups()); groups = new vis.DataSet(buildChartGroups());
graph = new vis.Graph2d(document.getElementById('user-activity'), dataset, groups, { graph = new vis.Graph2d(document.getElementById(containerId), dataset, groups, {
dataAxis: { dataAxis: {
customRange: { customRange: {
left: { left: {
@ -57,10 +59,10 @@ $(document).ready(function () {
}; };
var refreshData = function(callback) { var refreshData = function(callback) {
if (! ($.isController('statistics') && $('#user-activity').isPresent())) { if (! ($.isController('statistics') && $('#' + containerId).isPresent())) {
clearInterval(refreshInterval); clearInterval(refreshInterval);
} else { } else {
var jqxhr = $.ajax('graphs/user-activity', { var jqxhr = $.ajax(url, {
dataType: 'json', dataType: 'json',
method: 'GET' method: 'GET'
}); });
@ -94,11 +96,15 @@ $(document).ready(function () {
refreshData(function (data) { refreshData(function (data) {
initialData = data; initialData = data;
$('#user-activity').parent().find('.spinner').hide(); $('#' + containerId).parent().find('.spinner').hide();
initializeChart(); initializeChart();
var refresh_interval = location.search.match(/interval=(\d+)/) ? parseInt(RegExp.$1) : DEFAULT_REFRESH_INTERVAL; var refresh_interval = location.search.match(/interval=(\d+)/) ? parseInt(RegExp.$1) : DEFAULT_REFRESH_INTERVAL;
refreshInterval = setInterval(refreshData, refresh_interval); refreshInterval = setInterval(refreshData, refresh_interval);
}); });
} }
manageGraph('user-activity', 'graphs/user-activity', 10);
manageGraph('rfc-activity', 'graphs/rfc-activity', 30);
}
}); });