service-core/dev/app/log/log.js

57 lines
1.5 KiB
JavaScript
Raw Normal View History

2020-09-01 17:31:38 +00:00
const m = require('mithril')
const socket = require('../socket')
2020-09-07 00:47:53 +00:00
const Module = require('../module')
2020-09-01 17:31:38 +00:00
2020-09-07 00:47:53 +00:00
const Log = Module({
init: function() {
2020-09-01 17:31:38 +00:00
this.connected = socket.connected
this.loglines = []
2020-09-07 00:47:53 +00:00
this.on('newlog', data => {
2020-09-01 17:31:38 +00:00
this.loglines.push(this.formatLine(data))
m.redraw()
})
2020-09-07 00:47:53 +00:00
this._socketOn(() => this.loadData())
},
2020-09-01 17:31:38 +00:00
2020-09-07 00:47:53 +00:00
remove: function() {
socket.emit('core.unlistenlogs', {})
2020-09-01 17:31:38 +00:00
},
loadData: function() {
2020-09-07 00:47:53 +00:00
this.loglines = []
socket.emit('core.listenlogs', {})
2020-09-01 17:31:38 +00:00
socket.emit('core.getlastlogs', {}, (res) => {
this.loglines = res.map(this.formatLine)
m.redraw()
})
},
formatLine: function(line) {
return m.trust(line.replace(/\\033\[37m/g, '<span class="white">')
.replace(/\\033\[33m/g, '<span class="yellow">')
.replace(/\\033\[36m/g, '<span class="cyan">')
.replace(/\\033\[35m/g, '<span class="magenta">')
.replace(/\\033\[31m/g, '<span class="red">')
.replace(/\\033\[7m/g, '<span class="inverse">')
.replace(/\\033\[32m/g, '<span class="green">')
.replace(/\\033\[27m/g, '</span>')
.replace(/\\033\[39m/g, '</span>'))
},
view: function() {
return [
m('h1.header', 'Log'),
m('div#logger', [
this.loglines.map((line, i) => {
return m('div', { key: i }, line)
}),
m('div.padder'),
]),
]
}
2020-09-07 00:47:53 +00:00
})
2020-09-01 17:31:38 +00:00
module.exports = Log