Merge "Update docs/hooks.txt for ShowSearchHitTitle"
[mediawiki.git] / resources / src / mediawiki / mediawiki.checkboxtoggle.js
blob901f8751a697291e92695761e4e0a7044b7eb9a4
1 /*!
2  * Allows users to perform all / none / invert operations on a list of
3  * checkboxes on the page.
4  *
5  * @licence GNU GPL v2+
6  * @author Luke Faraone <luke at faraone dot cc>
7  *
8  * Based on ext.nuke.js from https://www.mediawiki.org/wiki/Extension:Nuke by
9  * Jeroen De Dauw <jeroendedauw at gmail dot com>
10  */
12 ( function ( mw, $ ) {
13         'use strict';
15         $( function () {
16                 // FIXME: This shouldn't be a global selector to avoid conflicts
17                 // with unrelated content on the same page. (T131318)
18                 var $checkboxes = $( 'li input[type="checkbox"]' );
20                 function selectAll( check ) {
21                         $checkboxes.prop( 'checked', check );
22                 }
24                 $( '.mw-checkbox-all' ).click( function ( e ) {
25                         e.preventDefault();
26                         selectAll( true );
27                 } );
28                 $( '.mw-checkbox-none' ).click( function ( e ) {
29                         e.preventDefault();
30                         selectAll( false );
31                 } );
32                 $( '.mw-checkbox-invert' ).click( function ( e ) {
33                         e.preventDefault();
34                         $checkboxes.prop( 'checked', function ( i, val ) {
35                                 return !val;
36                         } );
37                 } );
39         } );
41 }( mediaWiki, jQuery ) );