diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.html b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.html index d105ebb2a..8aba4d08e 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.html +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.html @@ -76,7 +76,7 @@ [showErrors]="showtocentriesErrors" [TOCENTRY_ID_PREFIX]="TOCENTRY_ID_PREFIX" [hasFocus]="step > 0" [formGroup]="formGroup" *ngIf="formGroup && formGroup.get('datasetProfileDefinition')" [links]="links" [boundary]="boundary" [spacer]="spacer" [isActive]="step !== 0" stickyThing (stepFound)="onStepFound($event)" - (currentLinks)="getLinks($event)" (entrySelected)="changeStep($event)" + (currentLinks)="getLinks($event)" (entrySelected)="changeStep($event.entry, $event.execute)" [visibilityRules]="formGroup.get('datasetProfileDefinition').get('rules').value"> diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.ts index 021656a50..15f4e3452 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.ts @@ -61,6 +61,7 @@ import {PopupNotificationDialogComponent} from '@app/library/notification/popup/ import {CheckDeactivateBaseComponent} from '@app/library/deactivate/deactivate.component'; import {PrefillDatasetComponent} from "@app/ui/dataset/dataset-wizard/prefill-dataset/prefill-dataset.component"; import {ToCEntry, ToCEntryType} from "@app/ui/misc/dataset-description-form/dataset-description.component"; +import {dispatchFakeEvent} from "@angular/cdk/testing/testbed/fake-events"; @Component({ selector: 'app-dataset-wizard-component', @@ -1192,13 +1193,15 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme } } - public changeStep(selected: ToCEntry = null) { - if(selected) { - let fieldSet = this.getFirstFieldSet(selected); - let index = this.visibleFieldSets.findIndex(entry => entry.id === fieldSet.id); - this.step = index + (selected.type === ToCEntryType.FieldSet?1:0.5); - } else { - this.step = 0; + public changeStep(selected: ToCEntry = null, execute: boolean = true) { + if(execute) { + if(selected) { + let fieldSet = this.getFirstFieldSet(selected); + let index = this.visibleFieldSets.findIndex(entry => entry.id === fieldSet.id); + this.step = index + (selected.type === ToCEntryType.FieldSet?1:0.5); + } else { + this.step = 0; + } } } @@ -1208,22 +1211,22 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme public nextStep() { if (this.step < this.maxStep) {//view is changing - this.step++; - let entry = this.visibleFieldSets[Math.floor(this.step) - 1]; - this.table0fContents.onToCentrySelected(entry); + this.step = Math.floor(this.step + 1); + let entry = this.visibleFieldSets[this.step - 1]; + this.table0fContents.onToCentrySelected(entry, false); this.scroll(entry); } } public previousStep() { if (this.step > 0) { - this.step--; - if(this.step > 0) { - let entry = this.visibleFieldSets[Math.floor(this.step) - 1]; - this.table0fContents.onToCentrySelected(entry); + this.step = Math.ceil(this.step - 1); + if(this.step >= 1) { + let entry = this.visibleFieldSets[this.step - 1]; + this.table0fContents.onToCentrySelected(entry, false); this.scroll(entry); } else { - this.table0fContents.onToCentrySelected(); + this.table0fContents.onToCentrySelected(null, false); this.resetScroll(); } } diff --git a/dmp-frontend/src/app/ui/misc/dataset-description-form/tableOfContentsMaterial/table-of-contents.ts b/dmp-frontend/src/app/ui/misc/dataset-description-form/tableOfContentsMaterial/table-of-contents.ts index b7e95a8d9..44c1dd3fa 100644 --- a/dmp-frontend/src/app/ui/misc/dataset-description-form/tableOfContentsMaterial/table-of-contents.ts +++ b/dmp-frontend/src/app/ui/misc/dataset-description-form/tableOfContentsMaterial/table-of-contents.ts @@ -43,7 +43,7 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges headerSelectors = '.toc-page-header, .toc-section-header, .toc-compositeField-header'; @Output() stepFound = new EventEmitter(); @Output() currentLinks = new EventEmitter(); - @Output() entrySelected = new EventEmitter(); + @Output() entrySelected = new EventEmitter(); subscription: Subscription; linksSubject: Subject = new Subject(); @@ -201,7 +201,7 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges ngOnChanges(changes: SimpleChanges) { if(this.selectedFieldsetId){ - this.onToCentrySelected(this._findTocEntryById(this.selectedFieldsetId,this.tocentries)); + this.onToCentrySelected(this._findTocEntryById(this.selectedFieldsetId,this.tocentries), false); this._actOnObservation = false; setTimeout(() => { this._actOnObservation = true; @@ -441,9 +441,9 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges } - onToCentrySelected(entry: ToCEntry = null){ + onToCentrySelected(entry: ToCEntry = null, execute: boolean = true){ this.tocentrySelected = entry; - this.entrySelected.emit(entry); + this.entrySelected.emit({entry: entry, execute: execute}); } private _findTocEntryById(id: string, tocentries: ToCEntry[]): ToCEntry{