summaryrefslogtreecommitdiff
path: root/www/wiki/resources/src/mediawiki/mediawiki.checkboxtoggle.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/resources/src/mediawiki/mediawiki.checkboxtoggle.js')
-rw-r--r--www/wiki/resources/src/mediawiki/mediawiki.checkboxtoggle.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/www/wiki/resources/src/mediawiki/mediawiki.checkboxtoggle.js b/www/wiki/resources/src/mediawiki/mediawiki.checkboxtoggle.js
new file mode 100644
index 00000000..76bc86c5
--- /dev/null
+++ b/www/wiki/resources/src/mediawiki/mediawiki.checkboxtoggle.js
@@ -0,0 +1,38 @@
+/*!
+ * Allows users to perform all / none / invert operations on a list of
+ * checkboxes on the page.
+ *
+ * @licence GNU GPL v2+
+ * @author Luke Faraone <luke at faraone dot cc>
+ *
+ * Based on ext.nuke.js from https://www.mediawiki.org/wiki/Extension:Nuke by
+ * Jeroen De Dauw <jeroendedauw at gmail dot com>
+ */
+
+( function ( $ ) {
+ 'use strict';
+
+ $( function () {
+ // FIXME: This shouldn't be a global selector to avoid conflicts
+ // with unrelated content on the same page. (T131318)
+ var $checkboxes = $( 'li input[type="checkbox"]' );
+
+ function selectAll( check ) {
+ $checkboxes.prop( 'checked', check );
+ }
+
+ $( '.mw-checkbox-all' ).click( function () {
+ selectAll( true );
+ } );
+ $( '.mw-checkbox-none' ).click( function () {
+ selectAll( false );
+ } );
+ $( '.mw-checkbox-invert' ).click( function () {
+ $checkboxes.prop( 'checked', function ( i, val ) {
+ return !val;
+ } );
+ } );
+
+ } );
+
+}( jQuery ) );