same event handling note execute only once, closes #1278

This commit is contained in:
zadam 2020-10-12 22:30:30 +02:00
parent cabb78b3e4
commit a665d193eb

View file

@ -6,17 +6,15 @@ const repository = require('./repository');
const Attribute = require('../entities/attribute');
function runAttachedRelations(note, relationName, originEntity) {
const runRelations = note.getRelations(relationName);
// same script note can get here with multiple ways, but execute only once
const notesToRun = new Set(
note.getRelations(relationName)
.map(relation => relation.getTargetNote())
.filter(note => !!note)
);
for (const relation of runRelations) {
const scriptNote = relation.getTargetNote();
if (scriptNote) {
scriptService.executeNoteNoException(scriptNote, { originEntity });
}
else {
log.error(`Target note ${relation.value} of atttribute ${relation.attributeId} has not been found.`);
}
for (const noteToRun of notesToRun) {
scriptService.executeNoteNoException(noteToRun, { originEntity });
}
}