From cf3b02002f830957a74162b1017bcd6ba50b679e Mon Sep 17 00:00:00 2001 From: rhenck <richard.henck@iqb.hu-berlin.de> Date: Mon, 20 Sep 2021 15:16:02 +0200 Subject: [PATCH] [editor] Fix page selection New elements are now put on the current(/newly created) page or section. --- .../unit-view/page-view/canvas/page-canvas.component.ts | 1 + .../src/app/components/unit-view/unit-view.component.ts | 5 ++++- projects/editor/src/app/selection.service.ts | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/projects/editor/src/app/components/unit-view/page-view/canvas/page-canvas.component.ts b/projects/editor/src/app/components/unit-view/page-view/canvas/page-canvas.component.ts index 0c285290a..bdf73b71a 100644 --- a/projects/editor/src/app/components/unit-view/page-view/canvas/page-canvas.component.ts +++ b/projects/editor/src/app/components/unit-view/page-view/canvas/page-canvas.component.ts @@ -107,6 +107,7 @@ export class PageCanvasComponent implements OnInit, OnDestroy { addSection(index: number | null = null): void { this.unitService.addSection(this.page, index); + this.selectionService.setSelectedPageSection(this.page.sections[this.page.sections.length - 1]); } sectionDrop(event: CdkDragDrop<UnitPageSection[]>): void { diff --git a/projects/editor/src/app/components/unit-view/unit-view.component.ts b/projects/editor/src/app/components/unit-view/unit-view.component.ts index d9087fd59..9498d031b 100644 --- a/projects/editor/src/app/components/unit-view/unit-view.component.ts +++ b/projects/editor/src/app/components/unit-view/unit-view.component.ts @@ -56,11 +56,13 @@ export class UnitViewComponent implements OnInit, OnDestroy { selectPage(newIndex: number): void { this.selectedPageIndex = newIndex; + this.selectionService.setSelectedPageSection(this.unit.pages[this.selectedPageIndex].sections[0]); } addPage(): void { this.unitService.addPage(); - this.selectedPageIndex -= 1; + this.selectedPageIndex += 1; + this.selectionService.setSelectedPageSection(this.unit.pages[this.selectedPageIndex].sections[0]); } movePage(page: UnitPage, direction: 'up' | 'down'): void { @@ -76,6 +78,7 @@ export class UnitViewComponent implements OnInit, OnDestroy { this.selectedPageIndex -= 1; } }); + this.selectionService.setSelectedPageSection(this.unit.pages[this.selectedPageIndex].sections[0]); } updateModel(page: UnitPage, property: string, value: number | boolean, isInputValid: boolean | null = true): void { diff --git a/projects/editor/src/app/selection.service.ts b/projects/editor/src/app/selection.service.ts index 566ece458..9b1f21214 100644 --- a/projects/editor/src/app/selection.service.ts +++ b/projects/editor/src/app/selection.service.ts @@ -41,6 +41,10 @@ export class SelectionService { get selectedPageSection(): Observable<UnitPageSection> { return this._selectedPageSection.asObservable(); } + + setSelectedPageSection(section: UnitPageSection): void { + this._selectedPageSection.next(section); + } // ### SECTION ###### get selectedElements(): Observable<UnitUIElement[]> { -- GitLab