משתמש:Yonidebest/monobook.js/move.js

מתוך ויקיפדיה, האנציקלופדיה החופשית

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

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
// Adds a link for moving sections from one page to another.
// written by [[user:Yonidebest]]

function handleMoves() {
 if (!mw.util.getParamValue('movetopage')) return;

 // new window handling
 if (mw.util.getParamValue('movetopage') == 'newwindow') {
  window.title = 'מבצע העברה...';
 }
 // current window handling
 if (mw.util.getParamValue('movetopage') == 'unknown') {
  // get target from user
  var answer = prompt('לאן להעביר?', '');
  if (!answer) {
   alert('לא צויין לאן להעביר');
   return;
  }
  // remove whitespaces
  while (answer[0] == ' ') answer[0] = "";
  while (answer[answer.length - 1] == ' ') answer[answer.length - 1] = "";

  // check if leave msg. default: leave msg
  var leaveMsg = true; 
  if (answer.indexOf(', לא') != 0 || answer.indexOf(',לא') != 0) {
   if (answer.split(',')[1] == 'לא' || answer.split(',')[1] == ' לא') leaveMsg = false;
   answer = answer.split(',')[0];
  }

  // open new window
  var url = 'http://he.wikipedia.org/w/index.php?title=' + encodeURIComponent(answer) + '&action=edit&movetopage=newwindow';
  newWindow = window.open(url, '_blank');
  
  // wait for window to be ready
  while (newWindow.title != 'מבצע העברה...') { }
 
  // do the move
  var tempValue = document.editform.wpTextbox1.value;
  newWindow.editform.wpTextbox1.value += '\n' + tempValue.replace('\n', '\n::<small><span class="grayText">הועבר מ-[[' + wgPageName.replace('_', ' ') + '|' + wgPageName.replace('_', ' ') + ']]:</span></small>\n');
  newWindow.editform.wpSummary.value = ' הועבר מ-[[' + wgPageName.replace('_', ' ') + ']]';
  newWindow.editform.wpSave.click();

  if (leaveMsg) {
   tempValue = tempValue.substring(0, tempValue.indexOf('\n'));
   tempValue += '\n' + '<small><span class="grayText">הועבר ל-[[' + answer + '|' + answer + ']].</span> ~~' + '~~</small>';
  }
  else
   tempValue = "";
  document.editform.wpTextbox1.value = tempValue;
  document.editform.wpSummary.value += ' הועבר ל-[[' + answer + ']]';
  document.editform.wpSave.click();
 }
}
 
function addMoveLinks(a) {
  var moveTo = document.createElement('A');
  moveTo.href = a.href + '&movetopage=unknown';
  moveTo.title = 'העבר פסקה זו לדף אחר';
  moveTo.appendChild(document.createTextNode('העבר'));
  a.parentNode.insertBefore(moveTo, a);
  a.parentNode.insertBefore(document.createTextNode(']'), a);
  a.parentNode.insertBefore(document.createTextNode('['), a);
}
 
function initMoves() {
  var wgNamespaceNumber = mw.config.get('wgNamespaceNumber');
 var namespaceNumbers = new Array(-1, -2, 0, 2, 6, 8, 10, 12, 14, 100);
 for (var i in namespaceNumbers) if (wgNamespaceNumber == namespaceNumbers[i]) return;
 var bc = document.getElementById('bodyContent');
 if(!bc) return;
 var h1s = bc.getElementsByTagName('H1');
 for (var i = 0; i < h1s.length; i++) {
  var a = h1s[i].getElementsByTagName('A')[0];
  if (a) addMoveLinks(a);
 }

 var h2s = bc.getElementsByTagName('H2');
 for (var i = 0; i < h2s.length; i++) {
  var a = h2s[i].getElementsByTagName('A')[0];
  if (a) addMoveLinks(a);
 }

 var h3s = document.getElementById('bodyContent').getElementsByTagName('H3');
 for (var i = 0; i < h3s.length; i++) {
  var a = h3s[i].getElementsByTagName('A')[0];
  if (a) addMoveLinks(a);
 }

 var h4s = document.getElementById('bodyContent').getElementsByTagName('H4');
 for (var i = 0; i < h4s.length; i++) {
  var a = h4s[i].getElementsByTagName('A')[0];
  if (a) addMoveLinks(a);
 }

 var h5s = document.getElementById('bodyContent').getElementsByTagName('H5');
 for (var i = 0; i < h5s.length; i++) {
  var a = h5s[i].getElementsByTagName('A')[0];
  if (a) addMoveLinks(a);
 }
}
 
$(initMoves);
$(handleMoves);