diff --git a/dmp-frontend/src/app/form/dynamic-form.component.html b/dmp-frontend/src/app/form/dynamic-form.component.html index f57a29612..6e08cb6e5 100644 --- a/dmp-frontend/src/app/form/dynamic-form.component.html +++ b/dmp-frontend/src/app/form/dynamic-form.component.html @@ -1,5 +1,5 @@ 
- + diff --git a/dmp-frontend/src/app/form/dynamic-form.component.ts b/dmp-frontend/src/app/form/dynamic-form.component.ts index bac035ad9..ee7086f98 100644 --- a/dmp-frontend/src/app/form/dynamic-form.component.ts +++ b/dmp-frontend/src/app/form/dynamic-form.component.ts @@ -96,19 +96,13 @@ export class DynamicFormComponent implements OnInit { this.progressbar = true; this.route.fragment.subscribe((fragment: string) => { - if (fragment && document.querySelector('#' + fragment)) { - ;//this.adjustScrolling(document.querySelector('#' + fragment)); - // this.visibleSidebar = true; - } + //if (fragment) + this.scrollTo(fragment); }); - + this.route.queryParams.subscribe((params) => { - if (params && "page" in params && !isNaN(params["page"])) - { - var page = Number.parseInt(params["page"]); - this.currentPageIndex = this.pages.indexOf(page); - } - //this.visibleSidebar = true; + if (params && "page" in params) + this.changeCurrentPage(params["page"]); }); }, error => { @@ -161,9 +155,23 @@ export class DynamicFormComponent implements OnInit { this.router.navigate([this.route.snapshot.url[0] + "/" + this.route.snapshot.url[1]], { queryParams: { page: this.pages[index] } }); } - adjustScrolling(topElement: HTMLElement) { - var scrollElement = document.querySelector('#scrollContainer').parentElement; - scrollElement.scrollTop = topElement.offsetTop; + scrollTo(sectionID: string) { + if (!sectionID) return; + var element = document.querySelector('#' + sectionID); + if (!element) return; + element.scrollIntoView(); + // this.visibleSidebar = true; + //var scrollElement = document.querySelector('.scrollableContent'); + //scrollElement.scrollTop = topElement.offsetTop; + } + + changeCurrentPage(pageString: string) { + if (!pageString) return; + var page = parseInt(pageString); + if (isNaN(page)) return; + var pageIndex = this.pages.indexOf(page); + if (pageIndex === -1) return; + this.currentPageIndex = pageIndex; } /* scrollToElemID(elemID) { scroll("#" + elemID);