Project

General

Profile

« Previous | Next » 

Revision 94395bc8

Added by Tomer Brisker about 8 years ago

Refs #7726 - Improve select all for filtered multi-select

(cherry picked from commit a44919d87d44923d63cb99bbb256c5c71a19c05c)

View differences:

app/assets/javascripts/jquery.multi-select.js
$(document).on('click', '.ms-select-all', function () {
// can't use multiSelect('select_all') because it adds filtered out items too.
var formGroup = $(this).closest('.form-group'),
selected = [];
selected = itemsToSelect(formGroup);
$(formGroup).find('select[multiple]').multiSelect('select', selected);
$(this).closest('.form-group').find('.ms-selectable .ms-list :visible').click();
return false;
});
function findVisibleItems(formGroup) {
return $(formGroup).find('.ms-selectable .ms-list :not(.hide) span').map(function (index, ele) {
return $(ele).text();
});
}
function itemsToSelect(formGroup) {
var visibles = findVisibleItems(formGroup),
selected = [];
$(formGroup).find('select[multiple]').children().each( function () {
var option = $(this);
visibles.each( function (index, name) {
if(option.text() === name) {
selected.push(option.val())
}
});
});
return selected;
}
$(document).on('click', '.ms-deselect-all', function () {
// can't use multiSelect('deselect_all') because it is deselecting disabled items too.
var ms = $(this).closest('.form-group').find('select[multiple]');

Also available in: Unified diff