From f2ea3888b419439c2c852b83feb229581433bcd6 Mon Sep 17 00:00:00 2001 From: rhenck <richard.henck@iqb.hu-berlin.de> Date: Tue, 30 Nov 2021 11:27:54 +0100 Subject: [PATCH] Minor code style improvements --- projects/common/id.service.ts | 1 + .../editor/src/app/services/unit.service.ts | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/projects/common/id.service.ts b/projects/common/id.service.ts index ad823964a..1aa8fdfb2 100644 --- a/projects/common/id.service.ts +++ b/projects/common/id.service.ts @@ -53,6 +53,7 @@ export class IdService { this.givenIDs.push(id); } + /* Remove ID from givenIDs, so it can be used again. */ removeId(id: string): void { const index = this.givenIDs.indexOf(id, 0); if (index > -1) { diff --git a/projects/editor/src/app/services/unit.service.ts b/projects/editor/src/app/services/unit.service.ts index 3880a5636..e3e39e30b 100644 --- a/projects/editor/src/app/services/unit.service.ts +++ b/projects/editor/src/app/services/unit.service.ts @@ -11,7 +11,8 @@ import { Unit } from '../../../../common/models/unit'; import { Page } from '../../../../common/models/page'; import { Section } from '../../../../common/models/section'; import { - InputElement, + DragNDropValueObject, + InputElement, InputElementValue, LikertColumn, LikertRow, PlayerElement, PlayerProperties, PositionedElement, @@ -173,12 +174,24 @@ export class UnitService { } deleteElements(elements: UIElement[]): void { + UnitService.freeUpIds(elements); this.unitModel.pages[this.selectionService.selectedPageIndex].sections.forEach(section => { section.deleteElements(elements); }); this.veronaApiService.sendVoeDefinitionChangedNotification(); } + private static freeUpIds(elements: UIElement[]): void { + elements.forEach(element => { + if (element.type === 'drop-list') { + element.value.foreach((value: DragNDropValueObject) => { + IdService.getInstance().removeId(value.id); + }); + } + IdService.getInstance().removeId(element.id); + }); + } + /* Move element between sections */ transferElement(elements: UIElement[], previousSection: Section, newSection: Section): void { previousSection.elements = previousSection.elements.filter(element => !elements.includes(element)); @@ -218,7 +231,7 @@ export class UnitService { this.messageService.showError(this.translateService.instant('idTaken')); return false; } - IdService.getInstance().removeId(element[property]); + IdService.getInstance().removeId(element.id); IdService.getInstance().addId(<string>value); } element.setProperty(property, value); -- GitLab