Merge branch 'pagination' into 'master'
Fix for and refinement of interactive table elements See merge request !144
This commit is contained in:
commit
ccb6ed2cd8
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
window.utils.asyncTable = function(wrapper, options) {
|
window.utils.asyncTable = function(wrapper, options) {
|
||||||
|
|
||||||
var tableIdent = #{String dbtIdent};
|
var tableIdent = wrapper.dataset.dbtIdent;
|
||||||
var shortCircuitHeader = #{String (toPathPiece HeaderDBTableShortcircuit)};
|
var shortCircuitHeader = #{String (toPathPiece HeaderDBTableShortcircuit)};
|
||||||
|
|
||||||
var ths = [];
|
var ths = [];
|
||||||
@ -14,7 +14,7 @@
|
|||||||
var scrollTable;
|
var scrollTable;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
var table = wrapper.querySelector('#' + tableIdent);
|
var table = wrapper.querySelector('#' + tableIdent);
|
||||||
if (!table) {
|
if (!table) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -38,8 +38,8 @@
|
|||||||
pagesizeForm = wrapper.querySelector('#' + tableIdent + '-pagesize-form');
|
pagesizeForm = wrapper.querySelector('#' + tableIdent + '-pagesize-form');
|
||||||
|
|
||||||
// take options into account
|
// take options into account
|
||||||
if (options && options.scrollToTop) {
|
if (options && options.scrollTo) {
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(options.scrollTo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options && options.horizPos && scrollTable) {
|
if (options && options.horizPos && scrollTable) {
|
||||||
@ -63,13 +63,22 @@
|
|||||||
pageLinks.forEach(function(link) {
|
pageLinks.forEach(function(link) {
|
||||||
link.clickHandler = function(event) {
|
link.clickHandler = function(event) {
|
||||||
var boundClickHandler = clickHandler.bind(this);
|
var boundClickHandler = clickHandler.bind(this);
|
||||||
boundClickHandler(event, { scrollToTop: true });
|
var wrapperBoundingRect = wrapper.getBoundingClientRect();
|
||||||
|
var options = {};
|
||||||
|
if (wrapperBoundingRect.top < 160) {
|
||||||
|
options.scrollTo = {
|
||||||
|
top: (wrapper.offsetTop || 0) - 60,
|
||||||
|
left: wrapper.offsetLeft || 0,
|
||||||
|
behavior: 'smooth',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
boundClickHandler(event, options);
|
||||||
}
|
}
|
||||||
link.element.addEventListener('click', link.clickHandler);
|
link.element.addEventListener('click', link.clickHandler);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (pagesizeForm) {
|
if (pagesizeForm) {
|
||||||
var pagesizeSelect = pagesizeForm.querySelector('[name=' + tableIdent + '-pagesize]')
|
var pagesizeSelect = pagesizeForm.querySelector('[name=' + tableIdent + '-pagesize]');
|
||||||
pagesizeSelect.addEventListener('change', changePagesizeHandler);
|
pagesizeSelect.addEventListener('change', changePagesizeHandler);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -167,9 +176,11 @@
|
|||||||
})();
|
})();
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
var selector = '#' + #{String $ dbtIdent} + '-table-wrapper:not(.js-initialized)';
|
var dbtIdent = #{String $ dbtIdent};
|
||||||
|
var selector = '#' + dbtIdent + '-table-wrapper:not(.js-initialized)';
|
||||||
var wrapper = document.querySelector(selector);
|
var wrapper = document.querySelector(selector);
|
||||||
if (wrapper) {
|
if (wrapper) {
|
||||||
|
wrapper.dataset.dbtIdent = dbtIdent;
|
||||||
window.utils.asyncTable(wrapper);
|
window.utils.asyncTable(wrapper);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user