Merge "Beware that getContent() may return null"
[lhc/web/wiklou.git] / resources / mediawiki.special / mediawiki.special.search.js
1 /*
2 * JavaScript for Special:Search
3 */
4 ( function ( $, mw ) {
5 $( function () {
6 var $checkboxes, $headerLinks;
7
8 // Emulate HTML5 autofocus behavior in non HTML5 compliant browsers
9 if ( !( 'autofocus' in document.createElement( 'input' ) ) ) {
10 $( 'input[autofocus]' ).eq( 0 ).focus();
11 }
12
13 // Create check all/none button
14 $checkboxes = $('#powersearch input[id^=mw-search-ns]');
15 $('#mw-search-togglebox').append(
16 $('<label>')
17 .text(mw.msg('powersearch-togglelabel'))
18 ).append(
19 $('<input type="button" />')
20 .attr( 'id', 'mw-search-toggleall' )
21 .prop( 'value', mw.msg('powersearch-toggleall' ) )
22 .click( function () {
23 $checkboxes.prop('checked', true);
24 } )
25 ).append(
26 $('<input type="button" />')
27 .attr( 'id', 'mw-search-togglenone' )
28 .prop( 'value', mw.msg('powersearch-togglenone' ) )
29 .click( function() {
30 $checkboxes.prop( 'checked', false );
31 } )
32 );
33
34 // Change the header search links to what user entered
35 $headerLinks = $( '.search-types a' );
36 $( '#searchText, #powerSearchText' ).change( function () {
37 var searchterm = $(this).val();
38 $headerLinks.each( function () {
39 var parts = $(this).attr('href').split( 'search=' ),
40 lastpart = '',
41 prefix = 'search=';
42 if ( parts.length > 1 && parts[1].indexOf('&') >= 0 ) {
43 lastpart = parts[1].substring( parts[1].indexOf('&') );
44 } else {
45 prefix = '&search=';
46 }
47 this.href = parts[0] + prefix + encodeURIComponent( searchterm ) + lastpart;
48 });
49 }).trigger( 'change' );
50
51 } );
52
53 }( jQuery, mediaWiki ) );