triggers panel: fix undefined username in acknowledges #393

This commit is contained in:
Alexander Zobnin
2018-03-23 16:57:51 +03:00
parent 4c3c799458
commit 0c8308a951
5 changed files with 74 additions and 21 deletions

View File

@@ -187,6 +187,26 @@ describe('TriggerPanelCtrl', () => {
}); });
}); });
}); });
describe('When formatting acknowledges', () => {
beforeEach(() => {
ctx.panelCtrl = createPanelCtrl();
});
it('should build proper user name', () => {
const ack = {
alias: 'alias', name: 'name', surname: 'surname'
};
const formatted = ctx.panelCtrl.formatAcknowledge(ack);
expect(formatted.user).toBe('alias (name surname)');
});
it('should return empty name if it is not defined', () => {
const formatted = ctx.panelCtrl.formatAcknowledge({});
expect(formatted.user).toBe('');
});
});
}); });
const defaultTrigger = { const defaultTrigger = {

View File

@@ -367,16 +367,7 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
}); });
if (event) { if (event) {
trigger.acknowledges = _.map(event.acknowledges, function (ack) { trigger.acknowledges = _.map(event.acknowledges, _this6.formatAcknowledge.bind(_this6));
var timestamp = moment.unix(ack.clock);
if (_this6.panel.customLastChangeFormat) {
ack.time = timestamp.format(_this6.panel.lastChangeFormat);
} else {
ack.time = timestamp.format(_this6.defaultTimeFormat);
}
ack.user = ack.alias + ' (' + ack.name + ' ' + ack.surname + ')';
return ack;
});
} }
if (!trigger.lastEvent.eventid) { if (!trigger.lastEvent.eventid) {
@@ -387,6 +378,22 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
return triggerList; return triggerList;
}); });
} }
}, {
key: 'formatAcknowledge',
value: function formatAcknowledge(ack) {
var timestamp = moment.unix(ack.clock);
if (this.panel.customLastChangeFormat) {
ack.time = timestamp.format(this.panel.lastChangeFormat);
} else {
ack.time = timestamp.format(this.defaultTimeFormat);
}
ack.user = ack.alias || '';
if (ack.name || ack.surname) {
var fullName = (ack.name || '') + ' ' + (ack.surname || '');
ack.user += ' (' + fullName + ')';
}
return ack;
}
}, { }, {
key: 'filterTriggersPre', key: 'filterTriggersPre',
value: function filterTriggersPre(triggerList, ds) { value: function filterTriggersPre(triggerList, ds) {

File diff suppressed because one or more lines are too long

View File

@@ -187,6 +187,26 @@ describe('TriggerPanelCtrl', () => {
}); });
}); });
}); });
describe('When formatting acknowledges', () => {
beforeEach(() => {
ctx.panelCtrl = createPanelCtrl();
});
it('should build proper user name', () => {
const ack = {
alias: 'alias', name: 'name', surname: 'surname'
};
const formatted = ctx.panelCtrl.formatAcknowledge(ack);
expect(formatted.user).toBe('alias (name surname)');
});
it('should return empty name if it is not defined', () => {
const formatted = ctx.panelCtrl.formatAcknowledge({});
expect(formatted.user).toBe('');
});
});
}); });
const defaultTrigger = { const defaultTrigger = {

View File

@@ -243,16 +243,7 @@ export class TriggerPanelCtrl extends PanelCtrl {
}); });
if (event) { if (event) {
trigger.acknowledges = _.map(event.acknowledges, ack => { trigger.acknowledges = _.map(event.acknowledges, this.formatAcknowledge.bind(this));
let timestamp = moment.unix(ack.clock);
if (this.panel.customLastChangeFormat) {
ack.time = timestamp.format(this.panel.lastChangeFormat);
} else {
ack.time = timestamp.format(this.defaultTimeFormat);
}
ack.user = ack.alias + ' (' + ack.name + ' ' + ack.surname + ')';
return ack;
});
} }
if (!trigger.lastEvent.eventid) { if (!trigger.lastEvent.eventid) {
@@ -264,6 +255,21 @@ export class TriggerPanelCtrl extends PanelCtrl {
}); });
} }
formatAcknowledge(ack) {
let timestamp = moment.unix(ack.clock);
if (this.panel.customLastChangeFormat) {
ack.time = timestamp.format(this.panel.lastChangeFormat);
} else {
ack.time = timestamp.format(this.defaultTimeFormat);
}
ack.user = ack.alias || '';
if (ack.name || ack.surname) {
const fullName = `${ack.name || ''} ${ack.surname || ''}`;
ack.user += ` (${fullName})`;
}
return ack;
}
filterTriggersPre(triggerList, ds) { filterTriggersPre(triggerList, ds) {
// Filter triggers by description // Filter triggers by description
let triggerFilter = this.panel.targets[ds].trigger.filter; let triggerFilter = this.panel.targets[ds].trigger.filter;