1
0
mirror of https://github.com/keeweb/keeweb.git synced 2024-06-23 07:26:40 +02:00
keeweb/app/scripts/views/settings/settings-logs-view.js

51 lines
1.5 KiB
JavaScript
Raw Normal View History

2017-01-31 07:50:28 +01:00
const Backbone = require('backbone');
const Logger = require('../../util/logger');
const Format = require('../../util/format');
2016-06-04 10:31:06 +02:00
2017-01-31 07:50:28 +01:00
const SettingsLogView = Backbone.View.extend({
2016-06-04 10:31:06 +02:00
template: require('templates/settings/settings-logs-view.hbs'),
2017-04-15 20:32:43 +02:00
render() {
2017-01-31 07:50:28 +01:00
const logs = Logger.getLast().map(item => ({
2016-07-17 13:30:38 +02:00
level: item.level,
2017-04-15 20:32:43 +02:00
msg: '[' + Format.padStr(item.level.toUpperCase(), 5) + '] ' + item.args.map(arg => this.mapArg(arg)).join(' ')
2016-07-17 13:30:38 +02:00
}));
2016-06-04 10:31:06 +02:00
this.renderTemplate({ logs: logs });
2016-06-04 14:59:03 +02:00
return this;
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) {
return '[' + arg.map(item => this.mapArg(item)).join(', ') + ']';
}
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
}
});
module.exports = SettingsLogView;