$(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=$('<input type="checkbox" name="revdel-ids" value="'+m[1]+'" />');
var td=a;
while(td.nodeName!='TD') td=td.parentNode;
chk.appendTo(td);
ct++;
});
if(ct>0){
var button=$('<input type="button" value="Del/undel selected" class="file-revdel-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=$('<input type="checkbox" name="revdel-ids-'+idx+'" value="'+m[1]+'" />');
chk.attr('data-target', t);
chk.prependTo(li);
});
loglists.forEach(function(ul,i){
var button=$('<input type="button" value="Del/undel selected" class="log-revdel-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=$('<div class="log-revdel-button-wrapper"></div>');
buttondiv.append(button);
$(ul).before(buttondiv.clone(true));
$(ul).after(buttondiv);
});
}
});