fix wrong array handling in viewMotion updates

This commit is contained in:
Maximilian Krambach 2019-02-12 17:51:59 +01:00
parent 39c7a51218
commit 924ec7580e

View File

@ -483,13 +483,21 @@ export class ViewMotion extends BaseAgendaViewModel implements Searchable {
public updateUser(update: ViewUser): void {
if (this.motion.submitters && this.motion.submitters.findIndex(user => user.user_id === update.id)) {
const userIndex = this.submitters.findIndex(user => user.id === update.id);
if (userIndex < 0) {
this.submitters.push(update);
} else {
this.submitters[userIndex] = update;
}
}
if (this.motion.supporters_id && this.motion.supporters_id.includes(update.id)) {
const userIndex = this.supporters.findIndex(user => user.id === update.id);
if (userIndex < 0) {
this.supporters.push(update);
} else {
this.supporters[userIndex] = update;
}
}
}
/**
* Update routine for attachments
@ -499,16 +507,24 @@ export class ViewMotion extends BaseAgendaViewModel implements Searchable {
public updateAttachments(mediafile: ViewMediafile): void {
if (this.attachments_id && this.attachments_id.includes(mediafile.id)) {
const attachmentIndex = this.attachments.findIndex(_mediafile => _mediafile.id === mediafile.id);
if (attachmentIndex < 0) {
this.attachments.push(mediafile);
} else {
this.attachments[attachmentIndex] = mediafile;
}
}
}
public updateTags(tag: ViewTag): void {
if (this.tags_id && this.tags_id.includes(tag.id)) {
const tagIndex = this.tags.findIndex(_tag => _tag.id === tag.id);
if (tagIndex < 0) {
this.tags.push(tag);
} else {
this.tags[tagIndex] = tag;
}
}
}
public updateParent(parent: ViewMotion): void {
if (this.parent_id && this.parent_id === parent.id) {