User:Js/markZeroEdits.js
Appearance
< User:Js
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
This user script seems to have a documentation page at User:Js/markZeroEdits. |
//[[user:js/markZeroEdits]]
function markZeroEdits(){
var i = -1, j, k, entry, plusminus, isHRDone
var rows, td, aa, sp, step
var firstEditor, thisEditor, isRevert
mzRevertRegExp = window.mzRevertRegExp || /^(BOT[ -]*)?Reverted|^Reverting|^Undid revision /
appendCSS(window.mzCSS || 'table.revert-edit *, table.zero-edit * {color:#777799; }\
table.revert-edit td {text-decoration: line-through}')
while (entry=document.getElementById('mw-rc-closearrow-'+(++i))){//loop through all multiple edits
//jsMsg(i + ' ' + entry)
//check if this is a 0 size diff
while ((entry=entry.parentNode) && entry.nodeName!='TR');
plusminus = entry.cells[1].getElementsByTagName('span')[0]
if (!plusminus || plusminus.className!='mw-plusminus-null') continue
//get all collapsed edits inside hidden DIV
rows = document.getElementById('mw-rc-subentries-' + (i)).firstChild.rows
//some initial values
firstEditor = '' //first editor (who is possibly reverted later)
//check all edits from bottom, i.e. by the timeline
for (j=rows.length-1; j>=0; j--){
//find editor
td = rows[j].cells[1]
aa = td.getElementsByTagName('a')
for (k=0; k<aa.length && /&oldid=/.test(aa[k].href); k++);
thisEditor = aa[k].href
//compare with previous editor
if (!firstEditor){ //this is a beginning of possible edit-revert block
firstEditor = thisEditor
isRevert = false
continue
}else if (thisEditor==firstEditor && j>0){ //first editor keeps making several edits
continue
}
//we now have either a different editor of the last edit
//find edit summary
sp = getElementsByClassName(td, 'span', 'comment')[0]
if (!sp) break
//check if this was a revert
if (!mzRevertRegExp.test(ts_getInnerText(sp).substring(1))) break
//by default do not trust self reverts and reverts by unregs
if (thisEditor==firstEditor && !window.mzTrustSelfRv) break
if (/Special:Contributions/.test(thisEditor) && !window.mzTrustUnregRv) break
//all checks done, this looks like a revert after all
isRevert = true
firstEditor = '' //get ready for the next block of edits
}
//categorize the entry
while ((entry=entry.parentNode) && entry.nodeName!='TABLE');
if (isRevert){
entry.className += 'revert-edit'
if (window.mzMoveReverts)
do{
step = entry.nextSibling; entry.parentNode.appendChild(entry); entry = step
}while (entry && entry.nodeName != 'TABLE' && entry.nodeName != 'HR')
}else{
entry.className += 'zero-edit'
}
}//while
}
$(markZeroEdits)