diff --git a/src/bundle/Resources/public/js/scripts/admin.contenttype.matrix.js b/src/bundle/Resources/public/js/scripts/admin.contenttype.matrix.js index 446b34c..5c7c77a 100644 --- a/src/bundle/Resources/public/js/scripts/admin.contenttype.matrix.js +++ b/src/bundle/Resources/public/js/scripts/admin.contenttype.matrix.js @@ -32,11 +32,17 @@ node.insertAdjacentHTML('beforeend', template.replace(NUMBER_PLACEHOLDER, getNextIndex(node))); initColumns(settingsNode); + + node.closest('.ibexa-table').dispatchEvent(new CustomEvent('ibexa-refresh-main-table-checkbox')); }; const removeItems = (event) => { const settingsNode = event.target.closest(SELECTOR_SETTINGS_COLUMNS); - findCheckedColumns(settingsNode).forEach((btn) => btn.closest(SELECTOR_COLUMN).remove()); + findCheckedColumns(settingsNode).forEach((checkbox) => { + checkbox.checked = false; + checkbox.dispatchEvent(new Event('change')); + checkbox.closest(SELECTOR_COLUMN).remove(); + }); initColumns(settingsNode); }; @@ -48,10 +54,12 @@ const initColumns = (parentNode) => { updateDisabledState(parentNode); - parentNode.querySelectorAll(SELECTOR_COLUMN_CHECKBOX).forEach((btn) => { - btn.removeEventListener('click', checkColumn, false); - btn.addEventListener('click', checkColumn, false); + parentNode.querySelectorAll(SELECTOR_COLUMN_CHECKBOX).forEach((checkbox) => { + checkbox.removeEventListener('change', checkColumn, false); + checkbox.addEventListener('change', checkColumn, false); }); + + parentNode.querySelector('.ibexa-table').dispatchEvent(new CustomEvent('ibexa-refresh-main-table-checkbox')); }; const initComponent = (container) => { container.querySelector(SELECTOR_ADD_COLUMN).addEventListener('click', addItem, false);