mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-05 21:45:47 +01:00
realtime mode toggle for dashboard
This commit is contained in:
@@ -9,6 +9,12 @@ define('admin/general/dashboard', ['semver'], function(semver) {
|
||||
},
|
||||
isMobile = false;
|
||||
|
||||
var DEFAULTS = {
|
||||
roomInterval: 10000,
|
||||
graphInterval: 15000,
|
||||
realtimeInterval: 1500
|
||||
};
|
||||
|
||||
|
||||
Admin.init = function() {
|
||||
app.enterRoom('admin');
|
||||
@@ -16,12 +22,6 @@ define('admin/general/dashboard', ['semver'], function(semver) {
|
||||
|
||||
isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
||||
|
||||
intervals.rooms = setInterval(function() {
|
||||
if (app.isFocused && app.isConnected) {
|
||||
socket.emit('meta.rooms.getAll', Admin.updateRoomUsage);
|
||||
}
|
||||
}, 10000);
|
||||
|
||||
$(window).on('action:ajaxify.start', function(ev, data) {
|
||||
clearInterval(intervals.rooms);
|
||||
clearInterval(intervals.graphs);
|
||||
@@ -57,8 +57,11 @@ define('admin/general/dashboard', ['semver'], function(semver) {
|
||||
}
|
||||
});
|
||||
|
||||
setupGraphs();
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
|
||||
setupRealtimeButton();
|
||||
setupGraphs();
|
||||
initiateDashboard();
|
||||
};
|
||||
|
||||
Admin.updateRoomUsage = function(err, data) {
|
||||
@@ -238,7 +241,6 @@ define('admin/general/dashboard', ['semver'], function(semver) {
|
||||
}
|
||||
};
|
||||
|
||||
intervals.graphs = setInterval(updateTrafficGraph, 15000);
|
||||
updateTrafficGraph();
|
||||
|
||||
$(window).on('resize', adjustPieCharts);
|
||||
@@ -390,5 +392,33 @@ define('admin/general/dashboard', ['semver'], function(semver) {
|
||||
graphs.topics.update();
|
||||
}
|
||||
|
||||
function setupRealtimeButton() {
|
||||
$('#toggle-realtime .fa').on('click', function() {
|
||||
var $this = $(this);
|
||||
if ($this.hasClass('fa-toggle-on')) {
|
||||
$this.removeClass('fa-toggle-on').addClass('fa-toggle-off');
|
||||
$this.parent().find('strong').html('OFF');
|
||||
initiateDashboard(false);
|
||||
} else {
|
||||
$this.removeClass('fa-toggle-off').addClass('fa-toggle-on');
|
||||
$this.parent().find('strong').html('ON');
|
||||
initiateDashboard(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function initiateDashboard(realtime) {
|
||||
clearInterval(intervals.rooms);
|
||||
clearInterval(intervals.graphs);
|
||||
|
||||
intervals.rooms = setInterval(function() {
|
||||
if (app.isFocused && app.isConnected) {
|
||||
socket.emit('meta.rooms.getAll', Admin.updateRoomUsage);
|
||||
}
|
||||
}, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.roomInterval);
|
||||
|
||||
intervals.graphs = setInterval(updateTrafficGraph, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.graphInterval);
|
||||
}
|
||||
|
||||
return Admin;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user