This repository has been archived by the owner on Apr 22, 2024. It is now read-only.
/
kytos-logs.js
84 lines (70 loc) · 1.97 KB
/
kytos-logs.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
;(function() {
console.log("kytos-logs started")
var connected=false;
var current_line = 0;
var socket = io.connect('/logs');
// prevent browser from crashing with too many lines
var max_lines = 50;
socket.on('connect', function(){
turn_on_led()
connected = true;
console.log('connected')
request_log_changes()
})
socket.on('start logs', function(data){
if ($('#enable_log')[0].checked)
{
received_msgs = data.buff
current_line = data.last_line
$.each(received_msgs, function(index, msg){
add_log_message(msg, 'controller')
});
}
})
socket.on('connect_error',function(){
connected = false;
turn_off_led()
console.log('error');
})
socket.on('disconnect', function(data) {
connected = false;
turn_off_led()
console.log('disconnected')
})
socket.on('show logs', function(data){
if ($('#enable_log')[0].checked)
{
received_msgs = data.buff
current_line = data.last_line
$.each(received_msgs, function(index, msg){
add_log_message(msg, 'controller')
});
}
})
var ws_led = $('#statusicons .websocket-status')
function turn_on_led(){
ws_led.addClass('status-online');
ws_led.removeClass('status-offline');
}
function turn_off_led(data){
ws_led.removeClass('status-online');
ws_led.addClass('status-offline');
}
function add_log_message(msg, src_tag) {
if ($('#tab_logs .log_message').length >= max_lines) {
$('#tab_logs').find('.log_message:first').remove();
}
$('<div/>', {
text: msg,
"class": 'log_message ' + src_tag
}).appendTo('#tab_logs');
$('#tab_logs').scrollTop($('#tab_logs').get(0).scrollHeight);
}
function request_log_changes(){
if (connected && $('#enable_log')[0].checked) {
socket.emit('show logs', {"current_line": current_line,
"max_lines": max_lines})
}
}
setInterval(request_log_changes, 3000);
}());