joomla_test/media/system/js/multiselect.js
2020-01-02 22:20:31 +07:00

39 lines
1.1 KiB
JavaScript

/**
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
/**
* JavaScript behavior to allow shift select in administrator grids
*/
(function() {
Joomla = Joomla || {};
Joomla.JMultiSelect = new Class({
initialize : function(table) {
this.table = document.id(table);
if (this.table) {
this.boxes = this.table.getElements('input[type=checkbox]');
this.boxes.addEvent('click', function(e){
this.doselect(e);
}.bind(this));
}
},
doselect: function(e) {
var current = document.id(e.target);
if (e.shift && typeOf(this.last) !== 'null') {
var checked = current.getProperty('checked') ? 'checked' : '';
var range = [this.boxes.indexOf(current), this.boxes.indexOf(this.last)].sort(function(a, b) {
//Shorthand to make sort() sort numerical instead of lexicographic
return a-b;
});
for (var i=range[0]; i <= range[1]; i++) {
this.boxes[i].setProperty('checked', checked);
}
}
this.last = current;
}
});
})();