diff --git a/templates/table/layout.julius b/templates/table/layout.julius index 74770e57c..dea52d0c9 100644 --- a/templates/table/layout.julius +++ b/templates/table/layout.julius @@ -40,7 +40,7 @@ if (pagesizeForm) { var pagesizeSelect = pagesizeForm.querySelector('[name=' + tableIdent + '-pagesize]') - pagesizeSelect.addEventListener('change', changeHandler); + pagesizeSelect.addEventListener('change', changePagesizeHandler); } } @@ -58,14 +58,14 @@ if (pagesizeForm) { var pagesizeSelect = pagesizeForm.querySelector('[name=' + tableIdent + '-pagesize]') - pagesizeSelect.removeEventListener('change', changeHandler); + pagesizeSelect.removeEventListener('change', changePagesizeHandler); } } function clickHandler(event) { event.preventDefault(); var url = new URL(window.location.origin + window.location.pathname + getClickDestination(this)); - updateTableFrom(url); + updateTableFrom(url, { scrollToTop: true }); } function getClickDestination(el) { @@ -75,7 +75,7 @@ return el.querySelector('a').getAttribute('href'); } - function changeHandler(event) { + function changePagesizeHandler(event) { var currentTableUrl = wrapper.dataset.currentUrl || window.location.href; var url = getUrlWithUpdatedPagesize(currentTableUrl, event.target.value); url = getUrlWithResetPagenumber(url); @@ -113,7 +113,7 @@ } // fetches new sorted table from url with params and replaces contents of current table - function updateTableFrom(url) { + function updateTableFrom(url, options) { fetch(url, { credentials: 'same-origin', @@ -130,6 +130,9 @@ wrapper.dataset.currentUrl = url; removeListeners(); updateWrapperContents(data); + if (options && options.scrollToTop) { + window.scrollTo(0, 0); + } }).catch(function(err) { console.error(err); });