User:Ou0430/Friendly/friendlytalkback.min.js

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
if(typeof(FriendlyConfig)=='undefined'){FriendlyConfig={};}
if(typeof(FriendlyConfig.summaryAd)=='undefined'){FriendlyConfig.summaryAd=" using [[WP:FRIENDLY|Friendly]]";}
if(typeof(FriendlyConfig.markTalkbackAsMinor)=='undefined'){FriendlyConfig.markTalkbackAsMinor=true;}
if(typeof(FriendlyConfig.insertHeadings)=='undefined'){FriendlyConfig.insertHeadings=true;}
if(typeof(FriendlyConfig.insertSignature)=='undefined'){FriendlyConfig.insertSignature=true;}
if(typeof(FriendlyConfig.talkbackHeading)=='undefined'){FriendlyConfig.talkbackHeading='回復通告'}
addOnloadHook(friendlytalkback);function friendlytalkback(){if(wgNamespaceNumber==3){var username=wgTitle.split('/')[0].replace(/\"/,"\\\"");twAddPortletLink("javascript:friendlytalkback.callback(\""+username+"\")",wgULS("回復","回覆"),"friendly-talkback",wgULS("新回復通告","新回覆通告"),"");}}
friendlytalkback.callback=function friendlytalkbackCallback(uid){if(uid==wgUserName){alert('請不要回復自己。');return;}
var Window=new SimpleWindow(600,350);Window.setTitle("Talkback");var form=new QuickForm(friendlytalkback.callback.evaluate);form.append({type:'radio',name:'tbtarget',list:[{label:'我的討論頁',value:'mytalk',checked:'true'},{label:'其他用戶的討論頁',value:'usertalk'},{label:'其他討論頁',value:'other'}],event:friendlytalkback.callback.change_target});form.append({type:'field',label:'Work area',name:'work_area'});var result=form.render();Window.setContent(result);Window.display();var evt=document.createEvent("Event");evt.initEvent('change',true,true);result.tbtarget[0].dispatchEvent(evt);}
friendlytalkback.callback.change_target=function friendlytagCallbackChangeTarget(e){var value=e.target.value;var root=e.target.form;var old_area;for(var i=0;i<root.childNodes.length;++i){var node=root.childNodes[i];if(node instanceof Element&&node.getAttribute('name')=='work_area'){old_area=node;break;}}
var work_area=new QuickForm.element({type:'field',label:'回覆信息',name:'work_area'});switch(value){default:case'mytalk':work_area.append({type:'input',name:'section',label:'鏈接章節(可選)'});break;case'usertalk':work_area.append({type:'input',name:'page',label:'用戶'});work_area.append({type:'input',name:'section',label:'鏈接章節(可選)'});break;case'other':work_area.append({type:'input',name:'page',label:'完整頁面名稱'});work_area.append({type:'input',name:'section',label:'鏈接章節(可選)'});break;}
work_area.append({type:'textarea',label:'附加信息(可選):',name:'message'});work_area.append({type:'submit'});work_area=work_area.render();old_area.parentNode.replaceChild(work_area,old_area);}
friendlytalkback.callbacks={main:function(self){self.statelem.status('抓編輯令牌...');var xmlDoc=self.responseXML;var editToken=xmlDoc.evaluate('//page/@edittoken',xmlDoc,null,XPathResult.STRING_TYPE,null).stringValue;var text='{\{talkback|';if(self.params.tbtarget=='usertalk'||self.params.tbtarget=='other'){text+=self.params.page;}else{text+=wgUserName;}
if(self.params.section!=''){text+='|'+self.params.section;}
text+='\}\}';if(self.params.message!=''){text+='\n'+self.params.message+'--\~\~\~\~';}else if(FriendlyConfig.insertSignature){text+='\n--\~\~\~\~';}
var query={'action':'edit','title':wgPageName,'section':'new','text':text,'token':editToken,'summary':FriendlyConfig.talkbackHeading,'minor':FriendlyConfig.markTalkbackAsMinor?1:undefined};var wikipedia_api=new Wikipedia.api('添加回復通告到用戶討論頁...',query,null,self.statelem);wikipedia_api.post();}}
friendlytalkback.callback.evaluate=function friendlytalkbackCallbackEvaluate(e){var tbtarget=e.target.getChecked('tbtarget')[0];var page=null;var section=e.target.section.value;if(tbtarget=='usertalk'||tbtarget=='other'){page=e.target.page.value;if(tbtarget=='usertalk'){if(page==''){alert('您必須指定用戶名');return;}}else{if(page==''){alert('您必須指定頁面名稱');return;}}}
var params={tbtarget:tbtarget,page:page,section:section,message:e.target.message.value};Status.init(e.target);Wikipedia.actionCompleted.redirect=wgPageName;Wikipedia.actionCompleted.notice="完成";var query={'action':'query','prop':'info','intoken':'edit','titles':wgPageName};var wikipedia_api=new Wikipedia.api('狀態',query,friendlytalkback.callbacks.main);wikipedia_api.params=params;wikipedia_api.post();}