'jquery.autoEllipsis' => new ResourceLoaderFileModule(
array( 'scripts' => 'resources/jquery/jquery.autoEllipsis.js' )
),
+ 'jquery.checkboxShiftClick' => new ResourceLoaderFileModule(
+ array( 'scripts' => 'resources/jquery/jquery.checkboxShiftClick.js' )
+ ),
'jquery.client' => new ResourceLoaderFileModule(
array( 'scripts' => 'resources/jquery/jquery.client.js' )
),
) ),
'mediawiki.util' => new ResourceLoaderFileModule( array(
'scripts' => 'resources/mediawiki.util/mediawiki.util.js',
+ 'dependencies' => 'jquery.checkboxShiftClick',
'debugScripts' => 'resources/mediawiki.util/mediawiki.util.test.js',
) ),
--- /dev/null
+/**
+ * jQuery checkboxShiftClick
+ *
+ * This will enable checkboxes to be checked or unchecked in a row by clicking one, holding shift and clicking another one
+ *
+ * @author Krinkle <krinklemail@gmail.com>
+ * @license GPL v2
+ */
+
+jQuery.fn.checkboxShiftClick = function( text ) {
+ var prevCheckbox = null;
+ var $box = this;
+ // When our boxes are clicked..
+ $box.click(function (e) {
+ // And one has been clicked before...
+ if (prevCheckbox !== null && e.shiftKey) {
+ // Check or uncheck this one and all in-between checkboxes
+ $box.slice(
+ Math.min($box.index(prevCheckbox), $box.index(e.target)),
+ Math.max($box.index(prevCheckbox), $box.index(e.target)) + 1
+ ).attr({checked: e.target.checked ? 'checked' : ''});
+ }
+ // Either way, update the prevCheckbox variable to the one clicked now
+ prevCheckbox = e.target;
+ });
+ return $box;
+};
\ No newline at end of file
this.tooltipAccessKeyPrefix = 'alt-shift-';
}
- // Setup CheckboxShiftClick
- $.fn.enableCheckboxShiftClick = function () {
- var prevCheckbox = null;
- var $box = this;
- $box.click(function (e) {
- if (prevCheckbox !== null && e.shiftKey) {
- $box.slice(
- Math.min($box.index(prevCheckbox), $box.index(e.target)),
- Math.max($box.index(prevCheckbox), $box.index(e.target)) + 1
- ).attr({checked: e.target.checked ? 'checked' : ''});
- }
- prevCheckbox = e.target;
- });
- return $box;
- };
-
// Prototype enhancements
if (typeof String.prototype.ucFirst === 'undefined') {
String.prototype.ucFirst = function () {
$(function () {
// Enable CheckboxShiftClick
- $('input[type=checkbox]:not(.noshiftselect)').enableCheckboxShiftClick();
+ $('input[type=checkbox]:not(.noshiftselect)').checkboxShiftClick();
// Fill bodyContant var
if ($('#bodyContent').length) {