<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://hmoegirl.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-twinklebatchundelete.js</id>
	<title>MediaWiki:Gadget-twinklebatchundelete.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://hmoegirl.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-twinklebatchundelete.js"/>
	<link rel="alternate" type="text/html" href="https://hmoegirl.com/index.php?title=MediaWiki:Gadget-twinklebatchundelete.js&amp;action=history"/>
	<updated>2026-07-18T04:58:39Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://hmoegirl.com/index.php?title=MediaWiki:Gadget-twinklebatchundelete.js&amp;diff=47159&amp;oldid=prev</id>
		<title>imported&gt;=海豚=：​导入1个版本</title>
		<link rel="alternate" type="text/html" href="https://hmoegirl.com/index.php?title=MediaWiki:Gadget-twinklebatchundelete.js&amp;diff=47159&amp;oldid=prev"/>
		<updated>2020-03-13T23:41:17Z</updated>

		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020年3月14日 (六) 07:41的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;zh&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;（没有差异）&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;=海豚=</name></author>
	</entry>
	<entry>
		<id>https://hmoegirl.com/index.php?title=MediaWiki:Gadget-twinklebatchundelete.js&amp;diff=47158&amp;oldid=prev</id>
		<title>MediaWiki&gt;Jimmy Xu：​v2.0-1033-g265ec81-dirty</title>
		<link rel="alternate" type="text/html" href="https://hmoegirl.com/index.php?title=MediaWiki:Gadget-twinklebatchundelete.js&amp;diff=47158&amp;oldid=prev"/>
		<updated>2015-06-30T10:54:06Z</updated>

		<summary type="html">&lt;p&gt;v2.0-1033-g265ec81-dirty&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//&amp;lt;nowiki&amp;gt;&lt;br /&gt;
// vim: set noet sts=0 sw=8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(function($){&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 ****************************************&lt;br /&gt;
 *** twinklebatchundelete.js: Batch undelete module&lt;br /&gt;
 ****************************************&lt;br /&gt;
 * Mode of invocation:     Tab (&amp;quot;Und-batch&amp;quot;)&lt;br /&gt;
 * Active on:              Existing user and project pages&lt;br /&gt;
 * Config directives in:   TwinkleConfig&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Twinkle.batchundelete = function twinklebatchundelete() {&lt;br /&gt;
	if( ( mw.config.get(&amp;quot;wgNamespaceNumber&amp;quot;) !== mw.config.get(&amp;quot;wgNamespaceIds&amp;quot;).user &amp;amp;&amp;amp;&lt;br /&gt;
		mw.config.get(&amp;quot;wgNamespaceNumber&amp;quot;) !== mw.config.get(&amp;quot;wgNamespaceIds&amp;quot;).project ) ||&lt;br /&gt;
		!mw.config.get(&amp;quot;wgArticleId&amp;quot;) ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	if( Morebits.userIsInGroup( &amp;#039;sysop&amp;#039; ) ) {&lt;br /&gt;
		Twinkle.addPortletLink( Twinkle.batchundelete.callback, &amp;quot;批复&amp;quot;, &amp;quot;tw-batch-undel&amp;quot;, &amp;quot;反删除页面&amp;quot; );&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.batchundelete.callback = function twinklebatchundeleteCallback() {&lt;br /&gt;
	var Window = new Morebits.simpleWindow( 600, 400 );&lt;br /&gt;
	Window.setScriptName(&amp;quot;Twinkle&amp;quot;);&lt;br /&gt;
	Window.setTitle(&amp;quot;批量反删除&amp;quot;);&lt;br /&gt;
	Window.addFooterLink( &amp;quot;Twinkle帮助&amp;quot;, &amp;quot;WP:TW/DOC#batchundelete&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
	var form = new Morebits.quickForm( Twinkle.batchundelete.callback.evaluate );&lt;br /&gt;
	form.append( {&lt;br /&gt;
			type: &amp;#039;input&amp;#039;,&lt;br /&gt;
			name: &amp;#039;reason&amp;#039;,&lt;br /&gt;
			label: &amp;#039;理由：&amp;#039;,&lt;br /&gt;
			size: 60&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
	var statusdiv = document.createElement( &amp;#039;div&amp;#039; );&lt;br /&gt;
	statusdiv.style.padding = &amp;#039;15px&amp;#039;;  // just so it doesn&amp;#039;t look broken&lt;br /&gt;
	Window.setContent(statusdiv);&lt;br /&gt;
	Morebits.status.init(statusdiv);&lt;br /&gt;
	Window.display();&lt;br /&gt;
&lt;br /&gt;
	var query = {&lt;br /&gt;
		&amp;#039;action&amp;#039;: &amp;#039;query&amp;#039;,&lt;br /&gt;
		&amp;#039;generator&amp;#039;: &amp;#039;links&amp;#039;,&lt;br /&gt;
		&amp;#039;titles&amp;#039;: mw.config.get(&amp;quot;wgPageName&amp;quot;),&lt;br /&gt;
		&amp;#039;gpllimit&amp;#039; : Twinkle.getPref(&amp;#039;batchMax&amp;#039;) // the max for sysops&lt;br /&gt;
	};&lt;br /&gt;
	var statelem = new Morebits.status(&amp;quot;抓取页面列表&amp;quot;);&lt;br /&gt;
	var wikipedia_api = new Morebits.wiki.api( &amp;quot;载入中…&amp;quot;, query, function( apiobj ) {&lt;br /&gt;
			var xml = apiobj.responseXML;&lt;br /&gt;
			var $pages = $(xml).find(&amp;#039;page[missing]&amp;#039;);&lt;br /&gt;
			var list = [];&lt;br /&gt;
			$pages.each(function(index, page) {&lt;br /&gt;
				var $page = $(page);&lt;br /&gt;
				var title = $page.attr(&amp;#039;title&amp;#039;);&lt;br /&gt;
				list.push({ label: title, value: title, checked: true });&lt;br /&gt;
			});&lt;br /&gt;
			apiobj.params.form.append({ type: &amp;#039;header&amp;#039;, label: &amp;#039;待恢复页面&amp;#039; });&lt;br /&gt;
			apiobj.params.form.append({&lt;br /&gt;
					type: &amp;#039;button&amp;#039;,&lt;br /&gt;
					label: &amp;quot;全选&amp;quot;,&lt;br /&gt;
					event: function(e) {&lt;br /&gt;
						$(Morebits.quickForm.getElements(e.target.form, &amp;#039;pages&amp;#039;)).prop(&amp;#039;checked&amp;#039;, true);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			apiobj.params.form.append({&lt;br /&gt;
					type: &amp;#039;button&amp;#039;,&lt;br /&gt;
					label: &amp;quot;全不选&amp;quot;,&lt;br /&gt;
					event: function(e) {&lt;br /&gt;
						$(Morebits.quickForm.getElements(e.target.form, &amp;#039;pages&amp;#039;)).prop(&amp;#039;checked&amp;#039;, false);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			apiobj.params.form.append( {&lt;br /&gt;
					type: &amp;#039;checkbox&amp;#039;,&lt;br /&gt;
					name: &amp;#039;pages&amp;#039;,&lt;br /&gt;
					list: list&lt;br /&gt;
				});&lt;br /&gt;
			apiobj.params.form.append( { type:&amp;#039;submit&amp;#039; } );&lt;br /&gt;
&lt;br /&gt;
			var result = apiobj.params.form.render();&lt;br /&gt;
			apiobj.params.Window.setContent( result );&lt;br /&gt;
&lt;br /&gt;
			Morebits.checkboxShiftClickSupport(Morebits.quickForm.getElements(result, &amp;#039;pages&amp;#039;));&lt;br /&gt;
		}, statelem );&lt;br /&gt;
	wikipedia_api.params = { form:form, Window:Window };&lt;br /&gt;
	wikipedia_api.post();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.batchundelete.callback.evaluate = function( event ) {&lt;br /&gt;
	Morebits.wiki.actionCompleted.notice = &amp;#039;状态&amp;#039;;&lt;br /&gt;
	Morebits.wiki.actionCompleted.postfix = &amp;#039;反删除已完成&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	var pages = event.target.getChecked( &amp;#039;pages&amp;#039; );&lt;br /&gt;
	var reason = event.target.reason.value;&lt;br /&gt;
	if( ! reason ) {&lt;br /&gt;
		alert(&amp;quot;您需要指定理由。&amp;quot;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	Morebits.simpleWindow.setButtonsEnabled(false);&lt;br /&gt;
	Morebits.status.init( event.target );&lt;br /&gt;
&lt;br /&gt;
	if( !pages ) {&lt;br /&gt;
		Morebits.status.error( &amp;#039;错误&amp;#039;, &amp;#039;没什么要反删除的，取消操作&amp;#039; );&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var batchOperation = new Morebits.batchOperation(&amp;quot;反删除页面&amp;quot;);&lt;br /&gt;
	batchOperation.setOption(&amp;quot;chunkSize&amp;quot;, Twinkle.getPref(&amp;#039;batchUndeleteChunks&amp;#039;));&lt;br /&gt;
	batchOperation.setOption(&amp;quot;preserveIndividualStatusLines&amp;quot;, true);&lt;br /&gt;
	batchOperation.setPageList(pages);&lt;br /&gt;
	batchOperation.run(function(pageName) {&lt;br /&gt;
		var query = {&lt;br /&gt;
			&amp;#039;token&amp;#039;: mw.user.tokens.get().editToken,&lt;br /&gt;
			&amp;#039;title&amp;#039;: pageName,&lt;br /&gt;
			&amp;#039;action&amp;#039;: &amp;#039;undelete&amp;#039;,&lt;br /&gt;
			&amp;#039;reason&amp;#039;: reason + Twinkle.getPref(&amp;#039;deletionSummaryAd&amp;#039;)&lt;br /&gt;
		};&lt;br /&gt;
		var wikipedia_api = new Morebits.wiki.api( &amp;quot;反删除页面&amp;quot; + pageName, query,&lt;br /&gt;
			batchOperation.workerSuccess, null, batchOperation.workerFailure );&lt;br /&gt;
		wikipedia_api.statelem.status(&amp;quot;反删除中…&amp;quot;);&lt;br /&gt;
		wikipedia_api.pageName = pageName;&lt;br /&gt;
		wikipedia_api.post();&lt;br /&gt;
	});&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
})(jQuery);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>MediaWiki&gt;Jimmy Xu</name></author>
	</entry>
</feed>