From aaf496f753e0d0a19df9a2cfbe92c5198e4dde61 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 3 Mar 2019 12:05:05 +0100 Subject: [PATCH] =?UTF-8?q?fix=20=C2=BBcheckall=C2=AB=20intiialization=20a?= =?UTF-8?q?fter=20content=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/js/utils/asyncTable.js | 5 +++++ static/js/utils/checkAll.js | 3 ++- templates/table/layout.julius | 1 - 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/static/js/utils/asyncTable.js b/static/js/utils/asyncTable.js index 27a0b48c3..0f8058e6b 100644 --- a/static/js/utils/asyncTable.js +++ b/static/js/utils/asyncTable.js @@ -6,6 +6,7 @@ var HEADER_HEIGHT = 80; var RESET_OPTIONS = [ 'scrollTo' ]; var TABLE_FILTER_FORM_CLASS = 'table-filter-form'; + var ASYNC_TABLE_CONTENT_CHANGED_CLASS = 'async-table--changed'; var ASYNC_TABLE_LOADING_CLASS = 'async-table--loading'; var JS_INITIALIZED_CLASS = 'js-async-table-initialized'; @@ -45,6 +46,9 @@ // pagesize form pagesizeForm = wrapper.querySelector('#' + tableIdent + '-pagesize-form'); + // check all + window.utils.setup('checkAll', wrapper); + // filter var filterForm = wrapper.querySelector('.' + TABLE_FILTER_FORM_CLASS); if (filterForm) { @@ -171,6 +175,7 @@ tableOptions = tableOptions || {}; wrapper.innerHTML = newHtml; wrapper.classList.remove(JS_INITIALIZED_CLASS); + wrapper.classList.add(ASYNC_TABLE_CONTENT_CHANGED_CLASS); // setup the wrapper and its components to behave async again window.utils.teardown('asyncTable'); diff --git a/static/js/utils/checkAll.js b/static/js/utils/checkAll.js index 5decca2de..5b59a3f8f 100644 --- a/static/js/utils/checkAll.js +++ b/static/js/utils/checkAll.js @@ -3,6 +3,7 @@ window.utils = window.utils || {}; + var ASYNC_TABLE_CONTENT_CHANGED_CLASS = 'async-table--changed'; var JS_INITIALIZED_CLASS = 'js-check-all-initialized'; var CHECKBOX_SELECTOR = '[type="checkbox"]'; @@ -12,7 +13,7 @@ window.utils.checkAll = function(wrapper, options) { - if (!wrapper || wrapper.classList.contains(JS_INITIALIZED_CLASS)) { + if ((!wrapper || wrapper.classList.contains(JS_INITIALIZED_CLASS)) && !wrapper.classList.contains(ASYNC_TABLE_CONTENT_CHANGED_CLASS)) { return false; } options = options || {}; diff --git a/templates/table/layout.julius b/templates/table/layout.julius index d0f02a7d0..0012e69bb 100644 --- a/templates/table/layout.julius +++ b/templates/table/layout.julius @@ -6,6 +6,5 @@ document.addEventListener('DOMContentLoaded', function() { if (wrapper) { window.utils.setup('asyncTable', wrapper, { headerDBTableShortcircuit, dbtIdent }); - window.utils.setup('checkAll', wrapper); } });