ميډياويکي:Gadget-incategory.js

د ويکيپېډيا، وړیا پوهنغونډ له خوا

د نور تفصيل لپاره د غځول په تنۍ کلېک وکړئيادښت: د غوره توبونو د خوندي کولو وروسته، خپل د کتنمل (بروزر) ساتل شوې حافظه تازه کړی.د نور تفصيل لپاره د غځول په تنۍ کلېک وکړئ.

  • فايرفاکس/ سفري: په دې کتنمل کې د Reload د ټکوهلو په وخت د Shift تڼۍ نيولې وساتی، او يا هم Ctrl-F5 يا Ctrl-Rتڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ⌘-R کېښکاږۍ)
  • گووگل کروم: په دې کتنمل کې د Ctrl-Shift-R تڼۍ کېښکاږۍ (د مک لپاره ⌘-Shift-R)
  • انټرنټ اېکسپلورر: په دې کتنمل کې د Refresh د ټکوهلو په وخت کې د Ctrl تڼۍ کېښکاږلې ونيسۍ، او يا هم د Ctrl-F5 تڼۍ کېښکاږۍ
  • اوپرا: په دې کتنمل کې د خپل براوزر ساتل شوې حافظه پدې توگه سپينولی شی Tools→Preferences
لاسوند[جوړول]
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' );
				}
			} );
		} );
	} );
}