preparation for toggle all/none checkbox in recipientLayout

This commit is contained in:
Felix Hamann 2019-04-25 10:03:08 +02:00
parent 7e7ba291f2
commit 8fd16c3545
2 changed files with 39 additions and 2 deletions

View File

@ -9,8 +9,12 @@ $if not (null activeCategories)
$if hasContent category
<fieldset .recipient-category__fieldset uw-interactive-fieldset .interactive-fieldset__target data-conditional-input=#{checkedIdent category}>
$forall optIx <- categoryIndices category
^{cellWdgts ! optIx}
$if not (null (categoryIndices category))
$# TODO: unique id for this all/none checkbox
<input type=checkbox id=tbd .recipient-category__toggle-all>
<label for=tbd>Label
$forall optIx <- categoryIndices category
^{cellWdgts ! optIx}
$maybe addWdgt <- addWdgts !? (1, (EnumPosition category, 0))
^{addWdgt}

View File

@ -1 +1,34 @@
// TODO: js utility to check all/none of the checkboxes in a recipient category at once
(function() {
var RECIPIENT_CATEGORIES_SELECTOR = '.recipient-categories';
var RECIPIENT_CATEGORY_SELECTOR = '.recipient-category';
var RECIPIENT_CATEGORY_FIELDSET_SELECTOR = '.recipient-category__fieldset';
var RECIPIENT_CATEGORY_TOGGLE_ALL_SELECTOR = '.recipient-category__toggle-all';
document.addEventListener('DOMContentLoaded', function() {
var recipientCategoriesElement = document.querySelector(RECIPIENT_CATEGORIES_SELECTOR);
var recipientCategoryElements = Array.from(recipientCategoriesElement.querySelectorAll(RECIPIENT_CATEGORY_SELECTOR));
recipientCategoryElements.forEach(function(element) {
setupRecipientCategory(element);
});
});
function setupRecipientCategory(recipientCategoryElement) {
var fieldset = recipientCategoryElement.querySelector(RECIPIENT_CATEGORY_FIELDSET_SELECTOR);
var categoryCheckboxes = Array.from(fieldset.querySelectorAll('[type="checkbox"]'));
if (categoryCheckboxes) {
var toggleAllCheckbox = recipientCategoryElement.querySelector(RECIPIENT_CATEGORY_TOGGLE_ALL_SELECTOR);
if (toggleAllCheckbox) {
toggleAllCheckbox.addEventListener('change', function() {
console.log('TBD: setting up toggle all checkbox');
});
}
}
}
})();