moved jQuery.fn.enableCheckboxShiftClick to it's own file and renamed to jQuery.fn...
authorKrinkle <krinkle@users.mediawiki.org>
Wed, 27 Oct 2010 15:02:18 +0000 (15:02 +0000)
committerKrinkle <krinkle@users.mediawiki.org>
Wed, 27 Oct 2010 15:02:18 +0000 (15:02 +0000)
resources/Resources.php
resources/jquery/jquery.checkboxShiftClick.js [new file with mode: 0644]
resources/mediawiki.util/mediawiki.util.js

index 757822a..cb0e1e2 100644 (file)
@@ -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 (file)
index 0000000..7d106ec
--- /dev/null
@@ -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 <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
index f7a6774..2c8f973 100644 (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 () {
@@ -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) {