44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
const $ = require('jquery');
|
|
|
|
let DocumentSelector = () => {
|
|
let forms = $('.document-selector-form');
|
|
let btnSubmit = $('#download-archive-form button');
|
|
|
|
let handler = function() {
|
|
forms.each((fi, f) => {
|
|
let form = $(f);
|
|
let ids = form.find('.document-selector-ids');
|
|
let btn = form.find('.document-selector-button');
|
|
|
|
ids.html('');
|
|
let hasSelection = false;
|
|
|
|
$('*[data-documents] *[data-selectable-row] input[data-selectable-checkbox]').each((i, c) => {
|
|
let checkbox = $(c);
|
|
|
|
if (checkbox.is(':checked')) {
|
|
ids.append(checkbox[0].outerHTML);
|
|
hasSelection = true;
|
|
}
|
|
});
|
|
|
|
if (hasSelection && btn.length) {
|
|
btn.removeAttr('disabled');
|
|
ids.find('input').prop('checked', true);
|
|
} else {
|
|
btn.attr('disabled', 'disabled');
|
|
}
|
|
})
|
|
}
|
|
|
|
$('*[data-documents] *[data-selectable-row]').click(function() {
|
|
window.setTimeout(handler, 100)
|
|
});
|
|
|
|
$('*[data-documents] *[data-selectable-row]').on('clicked', function() {
|
|
window.setTimeout(handler, 100)
|
|
});
|
|
}
|
|
|
|
module.exports = DocumentSelector;
|