Jump to content

MediaWiki:Corrections.js: Difference between revisions

From Wikisource
Content deleted Content added
ThomasV (talk | contribs)
No edit summary
ThomasV (talk | contribs)
No edit summary
Line 12: Line 12:
var selectedPosX = 0;
var selectedPosX = 0;
var selectedPosY = 0;
var selectedPosY = 0;
var j=0;
for(var i=0; item=document.getElementsByTagName("span")[i]; i++) {
for(var i=0; item=document.getElementsByTagName("span")[i]; i++) {
if(item.className=="coquille") {
if(item.className=="coquille") {

Revision as of 17:53, 20 January 2010

/**************
 * corrections 
 **************/

function close_corr_summary() {
	content = document.getElementById("corr_summary");
	if(!content) return;
	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(){
	content = document.getElementById("corr_summary");
	if(content) return;
	corr_container = document.createElement("div");
	corr_container.setAttribute("id","corr_summary");
	corr_container.style.cssText="position:fixed;width:35em;height:20em;scroll:auto;right:5em;background:#ffffff;opacity:1;border:1px solid;padding:5px";
	corr_container.innerHTML = self.corr_list+'<p><a href="javascript:close_corr_summary()">Close</a></p>';
	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 str = message_title[wgContentLanguage] + " :<br/><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 href=\"javascript:scroll_to_correction('+j+');\">#</a>'+' « '+w1+' <span style=\"color:#ff0000;\">'+item.title + '</span> '+ w2 + ' »   →   « ' + w1 + ' <span style=\"color:#00A000;\">' + item.innerHTML + '</span> ' + w2 +' »</li>'; 
         }
     } 
     str=str+'</ul>';
     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);