/** * Finds a random page in a selected namespace with preferred options**/mw.loader.using(["oojs-ui-core","oojs-ui-windows","oojs-ui-widgets"],function(){varnamespaces=[{name:'All',ns:'0|6|10|14|118|828'},{name:'(Article)',ns:0},{name:'File',ns:6},{name:'Template',ns:10},{name:'Category',ns:14},{name:'Draft',ns:118},{name:'Module',ns:828}];varSPRPFieldSet=newOO.ui.FieldsetLayout({align:'inline'});vardropDown=newOO.ui.DropdownWidget({menu:{items:namespaces.map(function(item){returnnewOO.ui.MenuOptionWidget({data:item.ns,label:item.name});})}});dropDown.getMenu().selectItemByLabel(window.SPRPpreferredNamespace||'All');varredirect=newOO.ui.ToggleButtonWidget({icon:'articleRedirect',title:'Random redirect',value:window.SPRPActivateRedirect||false}),edit=newOO.ui.ToggleButtonWidget({icon:'edit',title:'Open the edit form',value:window.SPRPAlwaysEdit||false}),links=newOO.ui.ToggleButtonWidget({icon:'link',title:'See what links to the page',value:window.SPRPActivateWLH||false});options=newOO.ui.ButtonGroupWidget({items:[redirect,edit,links]});SPRPFieldSet.addItems([newOO.ui.FieldLayout(dropDown,{align:'top'}),newOO.ui.FieldLayout(options,{align:'top'})]);functionSPRPProcessDialog(config){SPRPProcessDialog.super.call(this,config);}OO.inheritClass(SPRPProcessDialog,OO.ui.ProcessDialog);SPRPProcessDialog.static.name='SPRPDialog';SPRPProcessDialog.static.title='Random page';SPRPProcessDialog.static.actions=[{action:'save',label:'Go',flags:'primary'},{label:'Cancel',flags:'safe'}];SPRPProcessDialog.prototype.initialize=function(){SPRPProcessDialog.super.prototype.initialize.apply(this,arguments);this.content=newOO.ui.PanelLayout({padded:true,expanded:false});this.content.$element.append(SPRPFieldSet.$element);this.$body.append(this.content.$element);};SPRPProcessDialog.prototype.getActionProcess=function(action){vardialog=this;if(action){mw.notify('Finding a random page...');varactionParam,WLH=false,redir=false;if(redirect.getValue()){redir=true;}if(links.getValue()){WLH=true;actionParam='view';}else{actionParam=edit.getValue()?'edit':'view';}returnnewOO.ui.Process(function(){varns=dropDown.getMenu().findSelectedItem();varr=redir?'redirects':'nonredirects';newmw.Api().get({action:'query',format:'json',list:'random',rnlimit:'1',rnnamespace:ns.data,rnfilterredir:r}).done(function(data){vartitle=data.query.random[0].title;varurl=mw.config.get('wgServer');if(WLH){url+=mw.util.getUrl('Special:WhatLinksHere/'+title);}else{url+=mw.util.getUrl(title,{redirect:redir?'no':'yes',action:actionParam})if(actionParam=='edit'){url+='#editform'}}window.location.href=url;});dialog.close({action:action});});}returnSPRPProcessDialog.super.prototype.getActionProcess.call(this,action);};varwindowManager=newOO.ui.WindowManager();$(mw.util.addPortletLink('p-cactions','#','Random Page','ca-sprp','Go to a random page in a selected namespace',window.SPRPAccesskey||'z')).on('click',function(e){e.preventDefault();$(document.body).append(windowManager.$element);vardialog=newSPRPProcessDialog();windowManager.addWindows([dialog]);windowManager.openWindow(dialog);});});