לדלג לתוכן

מדיה ויקי:Gadget-rcPatrol.js

מתוך צפונות ויקי

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/*
function rcSaveClick() {
 var url = 'http://he.wikipedia.org/w/index.php?title=' + encodeURIComponent('משתמש:Yonidebest/ניסיון') + '&action=edit&rcsavepage=savepage';
 newWindow = window.open(url, '_blank');

 // wait for window to be ready
 while (newWindow.title != 'מבצע שמירה...') { }
 
 // get array of needed changed
 var checkList = new Array();
 var itemList = document.getElementById('bodyContent').getElementsByTagName('LI'); 
 for (var i = 0; i < itemList.length; i++) {
  if (itemList[i].className == 'rcunchecked') {
   var checkbox = itemList[i].getElementsByTagName('INPUT')[0];
   if (checkbox.checked)
    checkList.push(itemList[i].id);
  }
 }

 // make the change in new window and save
 var tempValue = newWindow.editform.wpTextbox1.value;
 var rx = new RegExp("id=(\\d+)\\|class=rcunchecked", 'g');
 var m = rx.exec(tempValue);
 while (m) {
  for (var i = 0; i < checkList.length; i++) {
   if (checkList[i] == m[1]) {
    var rxReplace = new RegExp("id=" + m[1] + "\\|class=rcunchecked");
    var dateObj = new Date();
    var currectDate = dateObj.getDate() + "." + (dateObj.getMonth() + 1) + "." + dateObj.getYear() + " " + dateObj.getHours() + ":" + dateObj.getMinutes();
    tempValue = tempValue.replace(rxReplace, "id=" + m[1] + "|class=rcchecked|checkedby=" + wgUserName + "|checkdate=" + currectDate);

    checkList.splice(i, 1);
    break;
   }
  }
  m = rx.exec(tempValue);
 }

 if (tempValue != newWindow.editform.wpTextbox1.value) {
  newWindow.editform.wpTextbox1.value = tempValue;
  newWindow.editform.wpSummary.value = 'נבדק';
  newWindow.editform.wpSave.click();
 }
}
*/
function rcPatrol() {
 if (getParamValue('rcsavepage') == 'savepage') {
  window.title = 'מבצע שמירה...';
 }
 else {
  if (wgPageName != 'מיוחד:שינויים_אחרונים') return;

  var itemList = document.getElementById('bodyContent').getElementsByTagName('LI');

  for (var i = 0; i < itemList.length; i++) {
   var unpatrolled = getElemntsByClassName(itemList, 'SPAN', 'unpatrolled');

   if (!unpatrolled[0]) continue; // patrolled

   var checkbox = document.createElement('INPUT');
   checkbox.type = 'checkbox';
   var firstA = itemList[i].getElementsByTagName('A')[0];
   if (!firstA) continue;
   var rx = new RegExp('rcid=(\\d+)');
   var m = rx.exec(firstA.href);
   if (!m) continue;
   checkbox.id = m[1];
   checkbox.defaultChecked = false;
   itemList[i].insertBefore(checkbox, 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);