summaryrefslogtreecommitdiff
path: root/resources/mediawiki.special/mediawiki.special.search.js
blob: 04954e8dc19063ef89e81625ad5fabaa1ce3f04a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
 * JavaScript for Special:Search
 */
( function( $, mw ) { $( function() {

// Emulate HTML5 autofocus behavior in non HTML5 compliant browsers
if ( !( 'autofocus' in document.createElement( 'input' ) ) ) {
	$( 'input[autofocus]:first' ).focus();
}

// Create check all/none button
var $checkboxes = $('#powersearch input[id^=mw-search-ns]');
$('#mw-search-togglebox').append(
	$('<label />')
		.text(mw.msg('powersearch-togglelabel'))
).append(
	$('<input type="button" />')
		.attr('id', 'mw-search-toggleall')
		.attr('value', mw.msg('powersearch-toggleall'))
		.click( function() {
			$checkboxes.prop('checked', true);
		} )
).append(
	$('<input type="button" />')
		.attr('id', 'mw-search-togglenone')
		.attr('value', mw.msg('powersearch-togglenone'))
		.click( function() {
			$checkboxes.prop('checked', false);
		} )
);

// Change the header search links to what user entered
var headerLinks = $('.search-types a');
$('#searchText, #powerSearchText').change(function() {
	var searchterm = $(this).val();
	headerLinks.each( function() {
		var parts = $(this).attr('href').split( 'search=' );
		var lastpart = '';
		var prefix = 'search=';
		if( parts.length > 1 && parts[1].indexOf('&') >= 0 ) {
			lastpart = parts[1].substring( parts[1].indexOf('&') );
		} else {
			prefix = '&search=';
		}
		this.href = parts[0] + prefix + encodeURIComponent( searchterm ) + lastpart;
	});
}).trigger('change');

} ); } )( jQuery, mediaWiki );