From: Krinkle Date: Wed, 27 Oct 2010 15:02:18 +0000 (+0000) Subject: moved jQuery.fn.enableCheckboxShiftClick to it's own file and renamed to jQuery.fn... X-Git-Tag: 1.31.0-rc.0~34269 X-Git-Url: https://git.cyclocoop.org/%28%28?a=commitdiff_plain;h=e2e6fb563b55f3fee2cf8246710fb96e51ed3a8b;p=lhc%2Fweb%2Fwiklou.git moved jQuery.fn.enableCheckboxShiftClick to it's own file and renamed to jQuery.fn.checkboxShiftClick --- diff --git a/resources/Resources.php b/resources/Resources.php index 757822ab6c..cb0e1e214f 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -35,6 +35,9 @@ return array( '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' ) ), @@ -378,6 +381,7 @@ return array( ) ), 'mediawiki.util' => new ResourceLoaderFileModule( array( 'scripts' => 'resources/mediawiki.util/mediawiki.util.js', + 'dependencies' => 'jquery.checkboxShiftClick', 'debugScripts' => 'resources/mediawiki.util/mediawiki.util.test.js', ) ), diff --git a/resources/jquery/jquery.checkboxShiftClick.js b/resources/jquery/jquery.checkboxShiftClick.js new file mode 100644 index 0000000000..7d106ec6d4 --- /dev/null +++ b/resources/jquery/jquery.checkboxShiftClick.js @@ -0,0 +1,27 @@ +/** + * 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 + * @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 diff --git a/resources/mediawiki.util/mediawiki.util.js b/resources/mediawiki.util/mediawiki.util.js index f7a67742c2..2c8f973fea 100644 --- a/resources/mediawiki.util/mediawiki.util.js +++ b/resources/mediawiki.util/mediawiki.util.js @@ -26,22 +26,6 @@ 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 () { @@ -53,7 +37,7 @@ $(function () { // Enable CheckboxShiftClick - $('input[type=checkbox]:not(.noshiftselect)').enableCheckboxShiftClick(); + $('input[type=checkbox]:not(.noshiftselect)').checkboxShiftClick(); // Fill bodyContant var if ($('#bodyContent').length) {