Jump to content

MediaWiki:Corrections.js

From Wikisource
Revision as of 15:04, 22 January 2010 by ThomasV (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/**************
 * corrections 
 **************/

function close_corr_summary() {
	content = document.getElementById("corr_summary");
	if(!content) return;
	content.innerHTML = "";
	content.parentNode.removeChild(content);
}

function scroll_to_correction(k){
	var selectedPosX = 0;
	var selectedPosY = 0;
	var j=0;
	for(var i=0; item=document.getElementsByTagName("span")[i]; i++) {
		if(item.className=="coquille") { 
			j=j+1; 
			if(j==k){
				element=item;
				while(element != null){
					selectedPosX += element.offsetLeft;
					selectedPosY += element.offsetTop;
					element = element.offsetParent;
				}
				window.scrollTo(selectedPosX,selectedPosY);
			}
		}
	}
}

function pr_popup(){
	corr_container = document.getElementById("corr_summary");
	if(corr_container) return;
	corr_container = document.createElement("div");
	corr_container.setAttribute("id","corr_summary");
	corr_container.style.cssText="position:fixed;max-width:35em;max-height:35em;scroll:auto;right:0.5em;background:#ffffff;opacity:1;border:1px solid;padding:5px";
	corr_container.innerHTML = self.corr_list;

	content = document.getElementsByClassName("text");
	if(content) {
		content = content[0];
		corr_container.style.cssText="position:fixed;width:10em;max-height:35em;scroll:auto;right:-1em;background:#ffffff;opacity:1;border:1px solid;padding:5px";
		content.insertBefore(corr_container,content.firstChild);
	} else {
		content = document.getElementById("bodyContent");
		content.insertBefore(corr_container,content.firstChild);
	}
}

function pr_typos() {

   if( wgNamespaceNumber==0 || self.proofreadPageViewURL ) {

     var message_title = { 
        'en':"List of corrections performed on this page" , 
        'fr':"Liste des corrections apportées à cette page" 
     }
     var message_link = { 
        'en':"Corrections" , 
        'fr':"Coquilles" 
     }
     var message_corr_1 = { 
        'en':"One typo </a> has been corrected." , 
        'fr':"Une coquille </a> a été corrigée." 
     }
     var message_corr = { 
        'en':" typos</a> have been corrected." , 
        'fr':" coquilles</a> ont été corrigées."     
     }
     var message_close = { 
        'en':"Close." , 
        'fr':"Fermer."     
     }

     var str = '<h4>'+message_title[wgContentLanguage] + " :</h4><ul>"; 
     j=0;
     for(var i=0; item=document.getElementsByTagName("span")[i]; i++) {
         if(item.className=="coquille") { 
           j=j+1; 
           w1=w2='';
           if(item.previousSibling) { 
              context1=item.previousSibling.data.split(' ');
              if(context1.length>1) w1 = context1[context1.length - 2];
           }
           if(item.nextSibling) { 
              context2=item.nextSibling.data.split(' ');
              if(context2.length>1) w2 = context2[1]; 
           }
           str = str +'<li>'+'<a style=\"color:#000000;\" href=\"javascript:scroll_to_correction('+j+');\"> « '+w1+' <span style=\"color:#ff0000;\">'+item.title + '</span> '+ w2 + ' »   →   « ' + w1 + ' <span style=\"color:#00A000;\">' + item.innerHTML + '</span> ' + w2 +' » </a></li>'; 
         }
     } 
     str=str+'</ul><br/><div style="float:right;"><a href="javascript:close_corr_summary()">'+message_close[wgContentLanguage]+'</a></div>'
     self.corr_list = str;

     if(j) {
         var optlist = get_optlist();
         optlist.innerHTML = optlist.innerHTML + "<li class=\"\"><a href='javascript:pr_popup();'>"+message_link[wgContentLanguage]+" ("+j+")</a></li>";
         cs=document.getElementById("corr-info");
         if(cs){
           if(j==1)
             cs.innerHTML = " <a href='javascript:pr_popup();'>" + message_corr_1[wgContentLanguage];
           else
             cs.innerHTML = " <a href='javascript:pr_popup();'>" + j + message_corr[wgContentLanguage]; 
        }
     }
   }
}

addOnloadHook(pr_typos);