User:Anomie/revdel-checkboxes.js

$(document).ready(function($){   // File description pages    var filehistory=$('.filehistory');    if(filehistory && filehistory.length){        var ct=0;        filehistory.find('.mw-revdelundel-link a').each(function(i,a){ var m=a.href.match(/&ids=([0-9]+)/); if(!m) return; var chk=$(''); var td=a; while(td.nodeName!='TD') td=td.parentNode; chk.appendTo(td); ct++; });       if(ct>0){            var button=$('');            button.click(function(ev){ var q={ title:'Special:RevisionDelete', type:'oldimage', target:mw.config.get('wgPageName'), ids:{} };               var ct=0; $('input[name="revdel-ids"]').each(function(i,n){                   if(n.checked){                        ct++;                        q.ids[n.value]=1;                    }                }); if(ct == 0) $('input[name="revdel-ids"]').each(function(i,n){                   ct++;                    q.ids[n.value]=1;                }); if(ct > 0) location.href=mw.config.get('wgScript')+'?'+jQuery.param(q); });           filehistory.after(button);        }    }

// Special:Log and other log lists var loglines=$('li[class^="mw-logline-"] > .mw-revdelundel-link a'); if(loglines && loglines.length){ var loglists=[]; loglines.each(function(i,a){           var m=a.href.match(/&ids=([0-9]+)/);            if(!m) return;            var t=a.href.match(/&target=([^&]+)/);            t=t?decodeURIComponent(t[1]):mw.config.get('wgPageName');            var li=a.parentNode.parentNode;            var ul=li.parentNode;            var idx=loglists.indexOf(ul);            if(idx<0){                idx=loglists.length;                loglists[idx]=ul;            }            var chk=$('');            chk.attr('data-target', t);            chk.prependTo(li);        }); loglists.forEach(function(ul,i){           var button=$('')            button.click(function(ev){ var q={ title:'Special:RevisionDelete', type:'logging', target:null, ids:{} };               var ct=0; $('input[name="revdel-ids-'+i+'"]').each(function(i,n){                   if(n.checked){                        ct++;                        q.ids[n.value]=1;                        var t=$(n).attr('data-target');                        if(q.target===null){                            q.target=t;                        } else if(q.target!=t){                            q.target=mw.config.get('wgPageName');                        }                    }                }); if(ct == 0) $('input[name="revdel-ids-'+i+'"]').each(function(i,n){                   ct++;                    q.ids[n.value]=1;                    var t=$(n).attr('data-target');                    if(q.target===null){                        q.target=t;                    } else if(q.target!=t){                        q.target=mw.config.get('wgPageName');                    }                }); if(ct > 0) location.href=mw.config.get('wgScript')+'?'+jQuery.param(q); });           var buttondiv=$(' ');            buttondiv.append(button);             $(ul).before(buttondiv.clone(true));            $(ul).after(buttondiv);        }); } });