Difference between revisions 40319 and 40320 on zhwikivoyage//<nowiki> // vim: set noet sts=0 sw=8: (function($){ /* **************************************** *** twinklebatchundelete.js: Batch undelete module **************************************** * Mode of invocation: Tab ("Und-batch") * Active on: Existing user pages * Config directives in: TwinkleConfig */ Twinkle.batchundelete = function twinklebatchundelete() { if( mw.config.get("wgNamespaceNumber") !== mw.config.get("wgNamespaceIds").user || !mw.config.get("wgArticleId") ) { return; } if( Morebits.userIsInGroup( 'sysop' ) ) { Twinkle.addPortletLink( Twinkle.batchundelete.callback, "批复", "tw-batch-undel", "反删除页面" ); } }; Twinkle.batchundelete.callback = function twinklebatchundeleteCallback() { var Window = new Morebits.simpleWindow( 8600, 400 ); Window.setScriptName("Twinkle"); Window.setTitle("批量反删除"); var form = new Morebits.quickForm( Twinkle.batchundelete.callback.evaluate ); form.append( { type: 'textareainput', name: 'reason', label: '理由:', size: 60 } ); var query = { 'action': 'query', 'generator': 'links', 'titles': mw.config.get("wgPageName"), 'gpllimit' : Twinkle.getPref('batchMax') // the max for sysops }; var wikipedia_api = new Morebits.wiki.api( '抓取页面', query, function( selfapiobj ) { var xmlDoc = selfapiobj.responseXML; var snapshot$pages = $(xmlDoc.evaluate('//).find('page[@missing]', xmlDoc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); var list = []; for ( var i = 0; i < snapshot.snapshotLength; ++i ) { var object = snapshot.snapshotItem(i); var page = xmlDoc.evaluate( '@); var list = []; $pages.each(function(index, page) { var $page = $(page); var title = $page.attr('title'); list.push({ label: title, value: title', object, null, XPathResult.STRING_TYPE, null ).stringValchecked: true }); }); apiobj.params.form.append({ type: 'header', label: '待恢复页面' }); apiobj.params.form.append({ type: 'button', label: "全选", event: function(e) { $(Morebits.quickForm.getElements(e.target.form, 'pages')).prop('checked', true); list.push( {label:page, value:page, checked: true } } }); apiobj.params.form.append({ type: 'button', label: "全不选", event: function(e) { $(Morebits.quickForm.getElements(e.target.form, 'pages')).prop('checked', false); } self }); apiobj.params.form.append( { type: 'checkbox', name: 'pages', list: list }⏎ ⏎ ); selfapiobj.params.form.append( { type:'submit' } ); var result = selfapiobj.params.form.render(); selfapiobj.params.Window.setContent( result ); Morebits.checkboxShiftClickSupport(Morebits.quickForm.getElements(result, 'pages')); } ); wikipedia_api.params = { form:form, Window:Window }; wikipedia_api.post(); var root = document.createElement( 'div' ); Morebits.status.init( root ); Window.setContent( root ); Window.display(); }; (contracted; show full) var title = pages[i]; var query = { 'token': mw.user.tokens.get().editToken, 'title': title, 'action': 'undelete', 'reason': reason + Twinkle.getPref('deletionSummaryAd') }; var wikipedia_api = new Morebits.wiki.api( "反删除 " + title, query, function( self ) { --Twinkle.batchundelete.currentUndeleteCounter; var link = document.createElement( 'a' ); link.setAttribute( 'href', mw.util.getUrl(self.itsTitle) ); link.setAttribute( 'title', self.itsTitle ); link.appendChild( document.createTextNode(self.itsTitle) ); self.statelem.info( ['完成(',link,')'] ); }); wikipedia_api.itsTitle = title; wikipedia_api.post(); } } } }; })(jQuery); //</nowiki> All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://zh.wikivoyage.org/w/index.php?diff=prev&oldid=40320.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|