میڈیا وکی:Gadget-incategory.js

آزاد انسائیکلوپیڈیا، وکیپیڈیا توں

نوٹ: بچان مگروں توانوں اپنے براؤزر دے کاشے توں بار جانا پوے گا تبدیلیاں ویکھن لئی۔

  • Firefox / Safari: Shift پھڑی رکھو ریلوڈ تے کلکنگ کردیاں ہویاںCtrl-F5 or Ctrl-R (Command-R میک تے)
  • گوکل کروم: دباؤ Ctrl-Shift-R (Command-Shift-R میک تے)

Internet Explorer: hold Ctrl کلک کردیاں Refresh, یا دباؤ Ctrl-F5 Konqueror:کلک ریلوڈ یا F5 دباؤ۔ Opera: کاشے نوں صاف کرو آوزار → تانگاں

if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search' ) {
	$( function() {
		'use strict';
		$( '.search-types ul' ).append( '<li><a href="#" id="gadget-incategory">گٹھیاں چ تلاش</a></li>' );
		$( '#gadget-incategory' ).click( function( e ) {
			e.preventDefault();
			if ( $( '.gadget-incategory' ).length ) {
				return;
			}
			var
				d = $( '<div></div>' ),
				n = 0,
				iw,
				s;
			function createinput() {
				iw.append( '<input list="gadget-incategory-datalist' + n + '"><datalist id="gadget-incategory-datalist' + n + '"></datalist>' );
				$( '.gadget-incategory input' ).last().focus();
			}
			d.dialog( {
				autoOpen: false,
				title: 'گٹھیاں چ تلاش',
				dialogClass: 'gadget-incategory',
				close: function() {
					$( this ).dialog( 'destroy' ).remove();
				}
			} );
			d.dialog( 'open' );
			d.append( '<p>اس خاص تلاش سے آپ زمرہ جات کے تحت زیادہ آسانی سے صفحات کو مجموعہ کی صورت تلاش کر سکتے ہیں۔ یادہانی! یہ صرف درج کردہ زمرہ میں موجود صفحات ہی ظاہر کرتا ہے، نہ کہ، زمرے کے ذیلی زمروں کے صفحات کو۔</p>' );
			d.append( '<div id="inputwrapper"></div>' );
			iw = $( '#inputwrapper' );
			createinput();
			d.append( '<a href="#" id="gadget-incategory-createinput">مزید خانہ تلاش شامل کریں</a>' );
			$( '#gadget-incategory-createinput' ).click( function( e ) {
				e.preventDefault();
				n += 1;
				createinput();
			} );
			d.append( '<button id="gadget-incategory-search">تلاش</button>' );
			s = $( '#gadget-incategory-search' );
			iw.on( 'input', 'input', function( e ) {
				var
					api = new mw.Api(),
					text = $( this ).val();
				if ( !/^\s*$/.test( text ) ) {
					api.get( {
						action: 'query',
						list: 'allpages',
						apfrom: text,
						apnamespace: 14,
						aplimit: 5
					} ).done( function( data ) {
						var
							arr = data.query.allpages,
							pages = [],
							stripped = [],
							datalist = [],
							str;
						arr.forEach( function( elem ) {
							pages.push( elem.title );
						} );
						pages.forEach( function( elem ) {
							stripped.push( elem.replace( /^گٹھ:/, '' ) );
						} );
						stripped.forEach( function( elem ) {
							datalist.push( '<option value="' + elem + '">' );
						} );
						str = datalist.join( '' );
						$( e.target ).next().empty().append( str );
					} );
				}
			} );
			s.click( function() {
				var
					arr = [],
					trimmed = [],
					prefixed = [],
					str,
					encodedstr;
				$( '.gadget-incategory input' ).each( function() {
					arr.push( $( this ).val() );
				} );
				arr.forEach( function( elem ) {
					if ( !/^\s*$/.test( elem ) ) {
						trimmed.push( elem );
					}
				} );
				trimmed.forEach( function( elem ) {
					prefixed.push( 'incategory:"' + elem + '"' );
				} );
				str = prefixed.join( ' ' );
				encodedstr = encodeURIComponent( str );
				window.location = '/w/index.php?title=Special%3Aتلاش&search=' + encodedstr;
			} );
			iw.on( 'keyup', 'input', function( e ) {
				if ( e.which === 13 ) {
					s.trigger( 'click' );
				}
			} );
		} );
	} );
}