コンテンツにスキップ

利用者:Jkr2255/VFDHelper.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • 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");
});