மீடியாவிக்கி:Gadget-twinklebatchundelete.js
//&lt;nowiki&gt;
 
 
 (function($){
 
 
 /*
  ****************************************
  *** twinklebatchundelete.js: Batch undelete module
  ****************************************
  * Mode of invocation:     Tab (&quot;Und-batch&quot;)
  * Active on:              Existing user and project pages
  * Config directives in:   TwinkleConfig
  */
 
 
 Twinkle.batchundelete = function twinklebatchundelete() {
 	if( ( mw.config.get(&quot;wgNamespaceNumber&quot;) !== mw.config.get(&quot;wgNamespaceIds&quot;).user &amp;&amp;
 		mw.config.get(&quot;wgNamespaceNumber&quot;) !== mw.config.get(&quot;wgNamespaceIds&quot;).project ) ||
 		!mw.config.get(&quot;wgArticleId&quot;) ) {
 		return;
 	}
 	if( Morebits.userIsInGroup( 'sysop' ) ) {
 		Twinkle.addPortletLink( Twinkle.batchundelete.callback, &quot;தொ-மீ&quot;, &quot;tw-batch-undel&quot;, &quot;பக்கங்களை மீட்டெடுக்க&quot; );
 	}
 };
 
 Twinkle.batchundelete.callback = function twinklebatchundeleteCallback() {
 	var Window = new Morebits.simpleWindow( 600, 400 );
 	Window.setScriptName(&quot;மின்னல்&quot;);
 	Window.setTitle(&quot;தொகுதி மீட்டெடுப்பு&quot;);
 	Window.addFooterLink( &quot;மின்னல் உதவி&quot;, &quot;WP:TW/DOC#batchundelete&quot; );
 
 	var form = new Morebits.quickForm( Twinkle.batchundelete.callback.evaluate );
 	form.append( {
 			type: 'input',
 			name: 'reason',
 			label: 'காரணம்: ',
 			size: 60
 		} );
 
 	var statusdiv = document.createElement( 'div' );
 	statusdiv.style.padding = '15px';  // just so it doesn't look broken
 	Window.setContent(statusdiv);
 	Morebits.status.init(statusdiv);
 	Window.display();
 
 	var query = {
 		'action': 'query',
 		'generator': 'links',
 		'titles': mw.config.get(&quot;wgPageName&quot;),
 		'gpllimit' : Twinkle.getPref('batchMax') // the max for sysops
 	};
 	var statelem = new Morebits.status(&quot;பக்கங்களின் பட்டியலைத் திரட்டுகின்றது&quot;);
 	var wikipedia_api = new Morebits.wiki.api( &quot;ஏற்றுகின்றது...&quot;, query, function( apiobj ) {
 			var xml = apiobj.responseXML;
 			var $pages = $(xml).find('page[missing]');
 			var list = [];
 			$pages.each(function(index, page) {
 				var $page = $(page);
 				var title = $page.attr('title');
 				list.push({ label: title, value: title, checked: true });
 			});
 			apiobj.params.form.append({ type: 'header', label: 'மீட்டெடுப்பதற்கான பக்கங்கள்' });
 			apiobj.params.form.append({
 					type: 'button',
 					label: &quot;அனைத்தும்&quot;,
 					event: function(e) {
 						$(Morebits.quickForm.getElements(e.target.form, 'pages')).prop('checked', true);
 					}
 				});
 			apiobj.params.form.append({
 					type: 'button',
 					label: &quot;எதுவும் வேண்டாம்&quot;,
 					event: function(e) {
 						$(Morebits.quickForm.getElements(e.target.form, 'pages')).prop('checked', false);
 					}
 				});
 			apiobj.params.form.append( {
 					type: 'checkbox',
 					name: 'pages',
 					list: list
 				});
 			apiobj.params.form.append( { type:'submit' } );
 
 			var result = apiobj.params.form.render();
 			apiobj.params.Window.setContent( result );
 
 			Morebits.checkboxShiftClickSupport(Morebits.quickForm.getElements(result, 'pages'));
 		}, statelem );
 	wikipedia_api.params = { form:form, Window:Window };
 	wikipedia_api.post();
 };
 
 Twinkle.batchundelete.callback.evaluate = function( event ) {
 	Morebits.wiki.actionCompleted.notice = 'நிலைமை';
 	Morebits.wiki.actionCompleted.postfix = 'தொகுதி மீட்டெடுப்பு நிறைவு.';
 
 	var pages = event.target.getChecked( 'pages' );
 	var reason = event.target.reason.value;
 	if( ! reason ) {
 		alert(&quot;நீங்கள் ஒரு காரணத்தைக் கட்டாயம் குறிப்பிடவேண்டும்.&quot;);
 		return;
 	}
 	Morebits.simpleWindow.setButtonsEnabled(false);
 	Morebits.status.init( event.target );
 
 	if( !pages ) {
 		Morebits.status.error( 'பிழை', 'மீட்டெடுக்க எதுவுமில்லை, கைவிடுகின்றது.' );
 		return;
 	}
 
 	var batchOperation = new Morebits.batchOperation(&quot;பக்கங்களை மீட்டெடுக்கின்றது.&quot;);
 	batchOperation.setOption(&quot;chunkSize&quot;, Twinkle.getPref('batchUndeleteChunks'));
 	batchOperation.setOption(&quot;preserveIndividualStatusLines&quot;, true);
 	batchOperation.setPageList(pages);
 	batchOperation.run(function(pageName) {
 		var query = {
 			'token': mw.user.tokens.get().editToken,
 			'title': pageName,
 			'action': 'undelete',
 			'reason': reason + Twinkle.getPref('deletionSummaryAd')
 		};
 		var wikipedia_api = new Morebits.wiki.api( &quot;பக்கத்தை மீட்டெடுக்கின்றது: &quot; + pageName, query,
 			batchOperation.workerSuccess, null, batchOperation.workerFailure );
 		wikipedia_api.statelem.status(&quot;மீட்டெடுக்கின்றது...&quot;);
 		wikipedia_api.pageName = pageName;
 		wikipedia_api.post();
 	});
 };
 
 })(jQuery);