]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - resources/jquery/jquery.checkboxShiftClick.js
MediaWiki 1.17.0
[autoinstallsdev/mediawiki.git] / resources / jquery / jquery.checkboxShiftClick.js
diff --git a/resources/jquery/jquery.checkboxShiftClick.js b/resources/jquery/jquery.checkboxShiftClick.js
new file mode 100644 (file)
index 0000000..b2fcb6e
--- /dev/null
@@ -0,0 +1,28 @@
+/**
+ * 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
+ */
+( function( $ ) {
+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;
+};
+} )( jQuery );
\ No newline at end of file