מדיה ויקי:Gadget-rcPatrol.js: הבדלים בין גרסאות בדף
מראה
מאין תקציר עריכה |
מאין תקציר עריכה |
||
| שורה 38: | שורה 38: | ||
checkbox.type = 'checkbox'; | checkbox.type = 'checkbox'; | ||
var | var link = itemList[i].getElementsByTagName('A')[1]; | ||
if (! | if (!link) continue; | ||
// get rcid page | // get rcid page | ||
var rx1 = new RegExp('rcid=(\\d+)'); | var rx1 = new RegExp('rcid=(\\d+)'); | ||
var m1 = rx1.exec( | var m1 = rx1.exec(link.href); | ||
if (!m1) continue; | if (!m1) continue; | ||
checkbox.id = m1[1]; | checkbox.id = m1[1]; | ||
| שורה 49: | שורה 49: | ||
// get title page | // get title page | ||
var rx2 = new RegExp('title=([^&]*)'); | var rx2 = new RegExp('title=([^&]*)'); | ||
var m2 = rx2.exec( | var m2 = rx2.exec(link.href); | ||
if (!m2) continue; | if (!m2) continue; | ||
checkbox.title= m2[1]; | checkbox.title= m2[1]; | ||
checkbox.defaultChecked = false; | checkbox.defaultChecked = false; | ||
var rcspan = document.createElement('SPAN'); | |||
rcspan.id = 'rcspan'; | |||
rcspan.appendChild(checkbox); | |||
unpatrolled[0].innerHTML = ""; | unpatrolled[0].innerHTML = ""; | ||
var newpage = getElementsByClassName(itemList[i], 'SPAN', 'newpage'); | |||
if (newpage[0]) | |||
itemList[i].insertBefore(rcspan, newpage[0]); | |||
else { | |||
var minor = getElementsByClassName(itemList[i], 'SPAN', 'minor'); | |||
if (minor[0]) | |||
itemList[i].insertBefore(rcspan, minor[0]); | |||
else | |||
itemList[i].insertBefore(rcspan, unpatrolled[0]); | |||
} | |||
} | } | ||
var saveLink = document.createElement('A'); | var saveLink = document.createElement('A'); | ||
גרסה מ־13:32, 29 בינואר 2009
function rcMarkPatrol(checkbox) {
var rcspan = checkbox.parentNode;
rcspan.innerHTML = '<font color="#ffcccc">מסמן...</font>';
var a = sajax_init_object();
a.open('GET', 'http://he.wikipedia.org/w/index.php?title=' + checkbox.title + '&action=markpatrolled&rcid=' + checkbox.id, true);
a.onreadystatechange = function() {
if (a.readyState != 4) return;
if (a.responseText.indexOf('השינוי שבחרתם סומן כבדוק') != -1)
rcspan.innerHTML = '<font color="#ccffcc">סומן כבדוק</font>';
else
rcspan.innerHTML = '>font color="#FF0000">ארעה שגיאה. לא סומן כבדוק. רענן את הדף ונסה שנית.</font>';
}
a.send(null);
}
function rcSaveClick() {
// get array of needed changed
var inputs = document.getElementById('bodyContent').getElementsByTagName('INPUT');
if (!inputs) return;
for (var i = 0; i < inputs.length; i++) {
var checkbox = inputs[i];
if (checkbox && checkbox.checked)
rcMarkPatrol(checkbox);
}
}
function rcPatrol() {
if (wgPageName != 'מיוחד:שינויים_אחרונים') return;
var itemList = document.getElementById('bodyContent').getElementsByTagName('LI');
for (var i = 0; i < itemList.length; i++) {
var unpatrolled = getElementsByClassName(itemList[i], 'SPAN', 'unpatrolled');
if (!unpatrolled[0]) continue; // patrolled
var checkbox = document.createElement('INPUT');
checkbox.type = 'checkbox';
var link = itemList[i].getElementsByTagName('A')[1];
if (!link) continue;
// get rcid page
var rx1 = new RegExp('rcid=(\\d+)');
var m1 = rx1.exec(link.href);
if (!m1) continue;
checkbox.id = m1[1];
// get title page
var rx2 = new RegExp('title=([^&]*)');
var m2 = rx2.exec(link.href);
if (!m2) continue;
checkbox.title= m2[1];
checkbox.defaultChecked = false;
var rcspan = document.createElement('SPAN');
rcspan.id = 'rcspan';
rcspan.appendChild(checkbox);
unpatrolled[0].innerHTML = "";
var newpage = getElementsByClassName(itemList[i], 'SPAN', 'newpage');
if (newpage[0])
itemList[i].insertBefore(rcspan, newpage[0]);
else {
var minor = getElementsByClassName(itemList[i], 'SPAN', 'minor');
if (minor[0])
itemList[i].insertBefore(rcspan, minor[0]);
else
itemList[i].insertBefore(rcspan, unpatrolled[0]);
}
}
var saveLink = document.createElement('A');
saveLink.innerHTML = 'שמירה';
saveLink.title = 'שמירה';
saveLink.href = 'javascript:rcSaveClick()';
var contentSub = document.getElementById('contentSub');
contentSub.appendChild(saveLink);
}
addOnloadHook(rcPatrol);