2019-09-16 20:42:33 +02:00
|
|
|
import { View } from 'framework/views/view';
|
2019-09-15 14:16:32 +02:00
|
|
|
import { StringFormat } from 'util/formatting/string-format';
|
|
|
|
import { Logger } from 'util/logger';
|
2019-09-16 20:40:20 +02:00
|
|
|
import template from 'templates/settings/settings-logs-view.hbs';
|
2016-06-04 10:31:06 +02:00
|
|
|
|
2019-09-16 20:40:20 +02:00
|
|
|
class SettingsLogsView extends View {
|
|
|
|
parent = '.settings__general-advanced';
|
|
|
|
template = template;
|
2016-06-04 10:31:06 +02:00
|
|
|
|
2017-04-15 20:32:43 +02:00
|
|
|
render() {
|
2020-06-01 16:53:51 +02:00
|
|
|
const logs = Logger.getLast().map((item) => ({
|
2016-07-17 13:30:38 +02:00
|
|
|
level: item.level,
|
2019-08-16 23:05:39 +02:00
|
|
|
msg:
|
|
|
|
'[' +
|
2019-09-15 08:11:11 +02:00
|
|
|
StringFormat.padStr(item.level.toUpperCase(), 5) +
|
2019-08-16 23:05:39 +02:00
|
|
|
'] ' +
|
2020-06-01 16:53:51 +02:00
|
|
|
item.args.map((arg) => this.mapArg(arg)).join(' ')
|
2016-07-17 13:30:38 +02:00
|
|
|
}));
|
2019-09-16 20:40:20 +02:00
|
|
|
super.render({ logs });
|
|
|
|
}
|
2017-04-15 20:32:43 +02:00
|
|
|
|
|
|
|
mapArg(arg) {
|
|
|
|
if (arg === null) {
|
|
|
|
return 'null';
|
|
|
|
}
|
|
|
|
if (arg === undefined) {
|
|
|
|
return 'undefined';
|
|
|
|
}
|
2017-04-15 20:34:58 +02:00
|
|
|
if (arg === '') {
|
|
|
|
return '""';
|
|
|
|
}
|
2017-04-15 20:32:43 +02:00
|
|
|
if (!arg || !arg.toString() || typeof arg !== 'object') {
|
|
|
|
return arg ? arg.toString() : arg;
|
|
|
|
}
|
|
|
|
if (arg instanceof Array) {
|
2020-06-01 16:53:51 +02:00
|
|
|
return '[' + arg.map((item) => this.mapArg(item)).join(', ') + ']';
|
2017-04-15 20:32:43 +02:00
|
|
|
}
|
|
|
|
let str = arg.toString();
|
|
|
|
if (str === '[object Object]') {
|
|
|
|
const cache = [];
|
|
|
|
str = JSON.stringify(arg, (key, value) => {
|
|
|
|
if (typeof value === 'object' && value !== null) {
|
|
|
|
if (cache.indexOf(value) !== -1) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
cache.push(value);
|
|
|
|
}
|
|
|
|
return value;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
return str;
|
2016-06-04 10:31:06 +02:00
|
|
|
}
|
2019-09-16 20:40:20 +02:00
|
|
|
}
|
2016-06-04 10:31:06 +02:00
|
|
|
|
2019-09-15 14:16:32 +02:00
|
|
|
export { SettingsLogsView };
|