This is an archive copy of wikilivres.ca as of 18 February 2017 (from the WikiTeam dump). The original site is closed.
MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
imported>Phe No edit summary |
imported>Marc No edit summary |
||
| Line 66: | Line 66: | ||
importScriptURI('http://wikisource.org/w/index.php?title=MediaWiki:MatchSplit.js&action=raw&ctype=text/javascript'); | importScriptURI('http://wikisource.org/w/index.php?title=MediaWiki:MatchSplit.js&action=raw&ctype=text/javascript'); | ||
/********************************* | |||
* page numbers for proofreadpage | |||
* by [[user:ThomasV]] | |||
**********************************/ | |||
var layout_num = 0; | |||
function toggle_layout() { | |||
var n=0; for( key in self.ws_layouts ) n++; | |||
layout_num = (layout_num+1) % n; | |||
SetCookie("layout",""+layout_num); | |||
set_layout(layout_num); | |||
} | |||
if(!self.ws_layouts) self.ws_layouts = {} | |||
function set_layout(layout_num) { | |||
var i=0; for( key in self.ws_layouts ) { if(i==layout_num) layout_name = key; i++; } | |||
d = self.ws_layouts[layout_name]; | |||
for( key in d ) { | |||
if(key.substring(0,1)=='.') { | |||
var t = get_elements_by_classname( key.substring(1,key.length) ,"span"); | |||
for(var i=0; i<t.length; i++) t[i].style.cssText = d[key]; | |||
} else if(key.substring(0,1)=='#') { | |||
var item = document.getElementById(key.substring(1,key.length)); | |||
if(item) item.style.cssText = d[key]; | |||
} | |||
} | |||
o_a = document.getElementById("option-textLayout"); | |||
if(o_a) o_a.innerHTML = "<a href='javascript:toggle_layout();'>"+layout_name+"</a>"; | |||
refresh_pagenumbers(); | |||
} | |||
function add_page_container(){ | |||
if(wgNamespaceNumber!=0 && wgNamespaceNumber!=2 ) return; | |||
var id = null; | |||
if(wgAction=="view"||wgAction=="purge") id = "#bodyContent"; | |||
if(wgAction=="submit") id = "#wikiPreview"; | |||
if (!id) return; | |||
if( document.getElementById("text-wrap") ) return; | |||
if( !self.proofreadpage_source_href && get_elements_by_classname("pagenum","span").length==0 ) return; | |||
var t = get_elements_by_classname("text","div"); | |||
for(var i=0; i<t.length; i++) t[i].className =""; | |||
t = get_elements_by_classname("lefttext","div"); | |||
for(var i=0; i<t.length; i++) t[i].className =""; | |||
t = get_elements_by_classname("centertext","div"); | |||
for(var i=0; i<t.length; i++) t[i].className =""; | |||
t = get_elements_by_classname("indented-page","div"); | |||
for(var i=0; i<t.length; i++) t[i].className =""; | |||
t = get_elements_by_classname("prose","div"); | |||
for(var i=0; i<t.length; i++) t[i].className =""; | |||
$(id).prepend($('#contentSub')); | |||
$('#contentSub').nextUntil('#catlinks').wrapAll("<div id='text-wrap'><div id='text-container'><div id='text'></div></div></div><div style='clear:both'/>"); | |||
} | |||
function init_page_layout() { | |||
if(self.debug_page_layout) return; | |||
if(document.URL.indexOf("match=") > 0 ) return; | |||
if(document.URL.indexOf("diff=") > 0 ) return; | |||
var k=false; | |||
for( key in self.ws_layouts ) { k = true;} | |||
if(!k) return; | |||
add_page_container(); | |||
if(document.getElementById("text-wrap")) { | |||
var optlist = get_optlist(); | |||
/*p = document.getElementById('p-displayOptions'); | |||
if(self.proofreadpage_debug) alert(p);*/ | |||
mw.util.addPortletLink ('p-displayOptions', 'javascript:toggle_layout();', ws_msg('layout'), 'option-textLayout', '' ); | |||
layout = GetCookie("layout") ; | |||
if(layout) layout_num = parseInt( layout ); else layout_num = 0; | |||
if(!layout_num) layout_num = 0; | |||
set_layout(layout_num); | |||
} | |||
} | |||
function hide_pagenumbers(){ | |||
var ml = get_elements_by_classname( 'pagenumber', 'span' ); | |||
for(var i=0; i<ml.length; i++) { | |||
ml[i].style.display="none"; | |||
} | |||
o_a = document.getElementById("option-pageNumbers"); | |||
if(o_a) { | |||
o_a.innerHTML = "<a href='javascript:show_pagenumbers();'>"+ws_msg('show_page_numbers')+"</a>"; | |||
} | |||
SetCookie("pagenum","0") ; | |||
} | |||
function show_pagenumbers(){ | |||
var ml = get_elements_by_classname( 'pagenumber', 'span' ); | |||
for(var i=0; i<ml.length; i++) { | |||
ml[i].style.display=""; | |||
} | |||
o_a = document.getElementById("option-pageNumbers"); | |||
if(o_a){ | |||
o_a.innerHTML = "<a href='javascript:hide_pagenumbers();'>"+ws_msg('hide_page_numbers')+"</a>"; | |||
} | |||
SetCookie("pagenum","1") ; | |||
} | |||
// see http://stackoverflow.com/questions/1472842/firefox-and-chrome-give-different-values-for-offsettop | |||
function get_offset(item) { | |||
var ox=0; var oy=0; | |||
var zme = item; | |||
for(zmi=0;zmi<50;zmi++) { | |||
if(zme+1 == 1 ) { | |||
break; | |||
} | |||
else { | |||
ox+=zme.offsetLeft; | |||
oy+=zme.offsetTop; | |||
} | |||
zme=zme.offsetParent; | |||
} | |||
return [ox,oy, item.offsetTop]; | |||
} | |||
function pagenum_over(ox,oy,prev_ox,prev_oy,h,w) { | |||
if(self.proofreadpage_disable_highlighting) return true; | |||
var ct = document.getElementById("ct-popup"); | |||
if(!ct) return true; | |||
var dd = h/10; | |||
ct.style.top = (oy-h+dd)+"px"; | |||
ct.style.height= ""; | |||
ct.firstChild.style.width = (w-ox)+"px"; | |||
ct.firstChild.nextSibling.style.height = (prev_oy-oy-h)+"px"; | |||
ct.firstChild.nextSibling.nextSibling.style.width = prev_ox+"px"; | |||
return true; | |||
} | |||
function pagenum_out(){ | |||
if(self.proofreadpage_disable_highlighting) return true; | |||
var ct = document.getElementById("ct-popup"); | |||
if(!ct) return true; | |||
ct.style.height= "0px"; | |||
ct.firstChild.style.width = "0px"; | |||
ct.firstChild.nextSibling.style.height = "0px"; | |||
ct.firstChild.nextSibling.nextSibling.style.width = "0px"; | |||
return true; | |||
} | |||
function init_page_numbers() { | |||
if(document.URL.indexOf("match=") > 0 ) return; | |||
self.pagenum_ml = get_elements_by_classname( 'pagenum', 'span' ); | |||
if( !self.proofreadpage_source_href || self.pagenum_ml.length==0) return; | |||
var optlist = get_optlist(); | |||
mw.util.addPortletLink ('p-displayOptions', 'javascript:hide_pagenumbers();', ws_msg('hide_page_numbers'), 'option-pageNumbers', '', 'n' ); | |||
var cs = self.pagenum_ml[0].parentNode.parentNode; | |||
//this happens for empty pages ; check if there are other cases | |||
if(cs.tagName=="P") cs = cs.parentNode; | |||
/* Measure the line height and the height of an empty span */ | |||
var ct = document.createElement("div"); | |||
ct.setAttribute("id","my-ct"); | |||
cs.insertBefore(ct,cs.firstChild); | |||
var ss = document.createElement("div"); /*we need a div, not a span*/ | |||
ss.innerHTML=" <span></span>"; /*empty span following some text */ | |||
ss.setAttribute("id","my-ss"); | |||
cs.appendChild(ss); | |||
/* container for page numbers */ | |||
var div_pagenums = document.createElement("div"); | |||
div_pagenums.setAttribute("id","ct-pagenums"); | |||
/* insert the container in the grandparent node, or parent, or self */ | |||
var mcs = document.getElementById("text-wrap"); | |||
if(!mcs) { | |||
if(cs.parentNode.parentNode.style.position=="relative") mcs = cs.parentNode.parentNode; | |||
else if(cs.parentNode.style.position=="relative") mcs = cs.parentNode; | |||
else { mcs = cs; mcs.style.position = "relative"; } | |||
} | |||
mcs.appendChild(div_pagenums); | |||
/* container for the highlight */ | |||
var div_popup = document.createElement("div"); | |||
var opacity="background-color:#000000;opacity:0.2;-ms-filter:alpha(opacity=20);filter:alpha(opacity=20);"; | |||
div_popup.setAttribute("id","ct-popup"); | |||
div_popup.style.cssText = "position:absolute;width:100%;"; | |||
div_popup.innerHTML = "<div style=\""+opacity+"float:right;width:0px;\" > </div>" | |||
+"<div style=\""+opacity+"width:100%;height:0px;clear:both;\"></div>" | |||
+"<div style=\""+opacity+"width:0px;\"> </div>"; | |||
cs.appendChild(div_popup); | |||
refresh_pagenumbers(); | |||
} | |||
function refresh_pagenumbers() { | |||
var ct = document.getElementById("my-ct"); | |||
if(!ct) return; | |||
var ss = document.getElementById("my-ss"); | |||
var cs = ct.parentNode; | |||
/* set it to relative because the highlight is of width 100% */ | |||
cs.style.position = "relative"; /* fixme : this interacts with layouts */ | |||
var lineheight = ss.offsetHeight; | |||
var offset_h = ss.lastChild.offsetHeight; | |||
var linewidth = cs.offsetWidth; | |||
var ct_o = get_offset(ct); | |||
var ct_ox = ct_o[0]; | |||
var ct_oy = ct_o[1]; | |||
var oo = get_offset(ss); | |||
var ox = oo[0] - ct_ox; var oy = oo[1] - ct_oy; | |||
var oh =""; | |||
for(var i=self.pagenum_ml.length-1; i>=0; i--) { | |||
var a = self.pagenum_ml[i]; | |||
var num = decodeURI( a.id ); | |||
if(num==".CE.9E") num="Ξ"; | |||
if(num==".E2.80.93") num="—"; | |||
if(num==".E2.80.94") num="—"; | |||
var page = a.title; | |||
var pagetitle = decodeURI( page ); | |||
var page_url = wgArticlePath.replace("$1", encodeURIComponent( pagetitle.replace(/ /g,"_") ) ); | |||
// encodeURIComponent encodes '/', which breaks subpages | |||
page_url = page_url.replace(/%2F/g, '/'); | |||
var ll = a.parentNode.nextSibling; | |||
if(ll && ll.tagName=="A" && ll.className=="new") class_str=" class=\"new\" "; else class_str=""; | |||
var link_str = "<a href=\""+page_url+"\"" + class_str + " title=\""+escapeQuotesHTML(pagetitle)+"\">"+escapeQuotesHTML(num)+"</a>" | |||
if(self.proofreadpage_numbers_inline){ | |||
a.innerHTML = " <span class=\"pagenumber noprint\" style=\"color:#666666; display:inline; margin:0px; padding:0px;\">[<b>"+link_str+"</b>]</span> "; | |||
} | |||
else { | |||
if(a.offsetTop==0 && i!=0) { | |||
//if(self.proofreadpage_debug) alert("zero2 "+a.id+" "+a.parentNode.offsetTop); | |||
continue; | |||
} | |||
prev_ox = ox; | |||
prev_oy = oy; | |||
a_o = get_offset(a); | |||
ox = a_o[0] - ct_ox; | |||
oy = a_o[1] - ct_oy + offset_h; | |||
if(prev_oy - oy > 5) { | |||
oh = oh + "<div class=\"pagenumber noprint\" onmouseover=\"pagenum_over("+ ox + "," + oy + "," + prev_ox + "," + prev_oy + "," + lineheight + "," + linewidth + ");\" onmouseout=\"pagenum_out();\" style=\"position:absolute; left:-4em; top:"+(oy+cs.offsetTop-lineheight)+"px; text-indent:0em; text-align:left; font-size:80%; font-weight:normal; font-style: normal;\">["+link_str+"]</div>"; | |||
} | |||
} | |||
} | |||
if(!self.proofreadpage_numbers_inline) { | |||
var ct_pagenums = document.getElementById("ct-pagenums"); | |||
ct_pagenums.innerHTML = oh; | |||
} | |||
pagenum_out(); | |||
if( parseInt(GetCookie("pagenum")) == 0 ) hide_pagenumbers(); | |||
} | |||
if ($.inArray(mw.config.get('wgAction'), [ 'edit', 'submit' ])) { | |||
//fixme : this is sensitive to order (detection of containers with "relative" position) | |||
addOnloadHook(init_page_layout); | |||
addOnloadHook(init_page_numbers); | |||
} | |||
/******************************************** | /******************************************** | ||
Revision as of 10:11, 4 November 2011
/* <pre> */
/**********************
*** Quality indicators on "article" tab
*** by [[user:ThomasV]]
**********************/
// return src for icon given percentage
function icon_src(t){
var src='http://wikilivres.info/w/images/';
switch(t){
case '0%': src+='8/8f/00%25.png'; break;
case '25%': src+='5/5b/25%25.png'; break;
case '50%': src+='3/3a/50%25.png'; break;
case '75%': src+='c/cd/75%25.png'; break;
case '100%': src+='6/64/100%25.png'; break;
case "Validated": src=+'b/b7/Etoile.png'; break;
}
return src;
}
// add indicator
function pageQuality() {
var a = document.getElementById('ca-nstab-main');
if(!a) return;
var pr_index = document.getElementById('pr_index');
if(pr_index) return;
var q = document.getElementById('textquality');
if(q) {
var new_img = document.createElement('img');
new_img.setAttribute('src', icon_src(q.className));
a.firstChild.appendChild(new_img);
}
for(var i=0; spanElem = document.getElementsByTagName('span')[i]; i++) {
if (spanElem.className == 'pagequality') {
var new_img = document.createElement('img');
new_img.setAttribute('src', icon_src(spanElem.title));
if(wgCanonicalNamespace == 'Page') {
a.firstChild.appendChild(new_img);
}
else {
s1 = spanElem.parentNode.previousSibling;
opttext = s1.firstChild.firstChild;
img = opttext.firstChild.nextSibling.nextSibling.nextSibling;
next = img.nextSibling;
opttext.removeChild(img);
opttext.insertBefore(new_img,next);
}
}
}
}
addOnloadHook(pageQuality);
/* configure */
self.proofreadpage_add_container = true;
self.proofreadpage_disable_wheelzoom = false;
importScriptURI('http://wikisource.org/w/index.php?title=MediaWiki:Base.js&action=raw&ctype=text/javascript');
/* importScriptURI('http://wikisource.org/w/index.php?title=MediaWiki:PageNumbers.js&action=raw&ctype=text/javascript'); */
importScriptURI('http://wikisource.org/w/index.php?title=MediaWiki:DisplayFooter.js&action=raw&ctype=text/javascript');
importScriptURI('http://wikisource.org/w/index.php?title=MediaWiki:IndexForm.js&action=raw&ctype=text/javascript');
importScriptURI('http://wikisource.org/w/index.php?title=MediaWiki:MatchSplit.js&action=raw&ctype=text/javascript');
/*********************************
* page numbers for proofreadpage
* by [[user:ThomasV]]
**********************************/
var layout_num = 0;
function toggle_layout() {
var n=0; for( key in self.ws_layouts ) n++;
layout_num = (layout_num+1) % n;
SetCookie("layout",""+layout_num);
set_layout(layout_num);
}
if(!self.ws_layouts) self.ws_layouts = {}
function set_layout(layout_num) {
var i=0; for( key in self.ws_layouts ) { if(i==layout_num) layout_name = key; i++; }
d = self.ws_layouts[layout_name];
for( key in d ) {
if(key.substring(0,1)=='.') {
var t = get_elements_by_classname( key.substring(1,key.length) ,"span");
for(var i=0; i<t.length; i++) t[i].style.cssText = d[key];
} else if(key.substring(0,1)=='#') {
var item = document.getElementById(key.substring(1,key.length));
if(item) item.style.cssText = d[key];
}
}
o_a = document.getElementById("option-textLayout");
if(o_a) o_a.innerHTML = "<a href='javascript:toggle_layout();'>"+layout_name+"</a>";
refresh_pagenumbers();
}
function add_page_container(){
if(wgNamespaceNumber!=0 && wgNamespaceNumber!=2 ) return;
var id = null;
if(wgAction=="view"||wgAction=="purge") id = "#bodyContent";
if(wgAction=="submit") id = "#wikiPreview";
if (!id) return;
if( document.getElementById("text-wrap") ) return;
if( !self.proofreadpage_source_href && get_elements_by_classname("pagenum","span").length==0 ) return;
var t = get_elements_by_classname("text","div");
for(var i=0; i<t.length; i++) t[i].className ="";
t = get_elements_by_classname("lefttext","div");
for(var i=0; i<t.length; i++) t[i].className ="";
t = get_elements_by_classname("centertext","div");
for(var i=0; i<t.length; i++) t[i].className ="";
t = get_elements_by_classname("indented-page","div");
for(var i=0; i<t.length; i++) t[i].className ="";
t = get_elements_by_classname("prose","div");
for(var i=0; i<t.length; i++) t[i].className ="";
$(id).prepend($('#contentSub'));
$('#contentSub').nextUntil('#catlinks').wrapAll("<div id='text-wrap'><div id='text-container'><div id='text'></div></div></div><div style='clear:both'/>");
}
function init_page_layout() {
if(self.debug_page_layout) return;
if(document.URL.indexOf("match=") > 0 ) return;
if(document.URL.indexOf("diff=") > 0 ) return;
var k=false;
for( key in self.ws_layouts ) { k = true;}
if(!k) return;
add_page_container();
if(document.getElementById("text-wrap")) {
var optlist = get_optlist();
/*p = document.getElementById('p-displayOptions');
if(self.proofreadpage_debug) alert(p);*/
mw.util.addPortletLink ('p-displayOptions', 'javascript:toggle_layout();', ws_msg('layout'), 'option-textLayout', '' );
layout = GetCookie("layout") ;
if(layout) layout_num = parseInt( layout ); else layout_num = 0;
if(!layout_num) layout_num = 0;
set_layout(layout_num);
}
}
function hide_pagenumbers(){
var ml = get_elements_by_classname( 'pagenumber', 'span' );
for(var i=0; i<ml.length; i++) {
ml[i].style.display="none";
}
o_a = document.getElementById("option-pageNumbers");
if(o_a) {
o_a.innerHTML = "<a href='javascript:show_pagenumbers();'>"+ws_msg('show_page_numbers')+"</a>";
}
SetCookie("pagenum","0") ;
}
function show_pagenumbers(){
var ml = get_elements_by_classname( 'pagenumber', 'span' );
for(var i=0; i<ml.length; i++) {
ml[i].style.display="";
}
o_a = document.getElementById("option-pageNumbers");
if(o_a){
o_a.innerHTML = "<a href='javascript:hide_pagenumbers();'>"+ws_msg('hide_page_numbers')+"</a>";
}
SetCookie("pagenum","1") ;
}
// see http://stackoverflow.com/questions/1472842/firefox-and-chrome-give-different-values-for-offsettop
function get_offset(item) {
var ox=0; var oy=0;
var zme = item;
for(zmi=0;zmi<50;zmi++) {
if(zme+1 == 1 ) {
break;
}
else {
ox+=zme.offsetLeft;
oy+=zme.offsetTop;
}
zme=zme.offsetParent;
}
return [ox,oy, item.offsetTop];
}
function pagenum_over(ox,oy,prev_ox,prev_oy,h,w) {
if(self.proofreadpage_disable_highlighting) return true;
var ct = document.getElementById("ct-popup");
if(!ct) return true;
var dd = h/10;
ct.style.top = (oy-h+dd)+"px";
ct.style.height= "";
ct.firstChild.style.width = (w-ox)+"px";
ct.firstChild.nextSibling.style.height = (prev_oy-oy-h)+"px";
ct.firstChild.nextSibling.nextSibling.style.width = prev_ox+"px";
return true;
}
function pagenum_out(){
if(self.proofreadpage_disable_highlighting) return true;
var ct = document.getElementById("ct-popup");
if(!ct) return true;
ct.style.height= "0px";
ct.firstChild.style.width = "0px";
ct.firstChild.nextSibling.style.height = "0px";
ct.firstChild.nextSibling.nextSibling.style.width = "0px";
return true;
}
function init_page_numbers() {
if(document.URL.indexOf("match=") > 0 ) return;
self.pagenum_ml = get_elements_by_classname( 'pagenum', 'span' );
if( !self.proofreadpage_source_href || self.pagenum_ml.length==0) return;
var optlist = get_optlist();
mw.util.addPortletLink ('p-displayOptions', 'javascript:hide_pagenumbers();', ws_msg('hide_page_numbers'), 'option-pageNumbers', '', 'n' );
var cs = self.pagenum_ml[0].parentNode.parentNode;
//this happens for empty pages ; check if there are other cases
if(cs.tagName=="P") cs = cs.parentNode;
/* Measure the line height and the height of an empty span */
var ct = document.createElement("div");
ct.setAttribute("id","my-ct");
cs.insertBefore(ct,cs.firstChild);
var ss = document.createElement("div"); /*we need a div, not a span*/
ss.innerHTML=" <span></span>"; /*empty span following some text */
ss.setAttribute("id","my-ss");
cs.appendChild(ss);
/* container for page numbers */
var div_pagenums = document.createElement("div");
div_pagenums.setAttribute("id","ct-pagenums");
/* insert the container in the grandparent node, or parent, or self */
var mcs = document.getElementById("text-wrap");
if(!mcs) {
if(cs.parentNode.parentNode.style.position=="relative") mcs = cs.parentNode.parentNode;
else if(cs.parentNode.style.position=="relative") mcs = cs.parentNode;
else { mcs = cs; mcs.style.position = "relative"; }
}
mcs.appendChild(div_pagenums);
/* container for the highlight */
var div_popup = document.createElement("div");
var opacity="background-color:#000000;opacity:0.2;-ms-filter:alpha(opacity=20);filter:alpha(opacity=20);";
div_popup.setAttribute("id","ct-popup");
div_popup.style.cssText = "position:absolute;width:100%;";
div_popup.innerHTML = "<div style=\""+opacity+"float:right;width:0px;\" > </div>"
+"<div style=\""+opacity+"width:100%;height:0px;clear:both;\"></div>"
+"<div style=\""+opacity+"width:0px;\"> </div>";
cs.appendChild(div_popup);
refresh_pagenumbers();
}
function refresh_pagenumbers() {
var ct = document.getElementById("my-ct");
if(!ct) return;
var ss = document.getElementById("my-ss");
var cs = ct.parentNode;
/* set it to relative because the highlight is of width 100% */
cs.style.position = "relative"; /* fixme : this interacts with layouts */
var lineheight = ss.offsetHeight;
var offset_h = ss.lastChild.offsetHeight;
var linewidth = cs.offsetWidth;
var ct_o = get_offset(ct);
var ct_ox = ct_o[0];
var ct_oy = ct_o[1];
var oo = get_offset(ss);
var ox = oo[0] - ct_ox; var oy = oo[1] - ct_oy;
var oh ="";
for(var i=self.pagenum_ml.length-1; i>=0; i--) {
var a = self.pagenum_ml[i];
var num = decodeURI( a.id );
if(num==".CE.9E") num="Ξ";
if(num==".E2.80.93") num="—";
if(num==".E2.80.94") num="—";
var page = a.title;
var pagetitle = decodeURI( page );
var page_url = wgArticlePath.replace("$1", encodeURIComponent( pagetitle.replace(/ /g,"_") ) );
// encodeURIComponent encodes '/', which breaks subpages
page_url = page_url.replace(/%2F/g, '/');
var ll = a.parentNode.nextSibling;
if(ll && ll.tagName=="A" && ll.className=="new") class_str=" class=\"new\" "; else class_str="";
var link_str = "<a href=\""+page_url+"\"" + class_str + " title=\""+escapeQuotesHTML(pagetitle)+"\">"+escapeQuotesHTML(num)+"</a>"
if(self.proofreadpage_numbers_inline){
a.innerHTML = " <span class=\"pagenumber noprint\" style=\"color:#666666; display:inline; margin:0px; padding:0px;\">[<b>"+link_str+"</b>]</span> ";
}
else {
if(a.offsetTop==0 && i!=0) {
//if(self.proofreadpage_debug) alert("zero2 "+a.id+" "+a.parentNode.offsetTop);
continue;
}
prev_ox = ox;
prev_oy = oy;
a_o = get_offset(a);
ox = a_o[0] - ct_ox;
oy = a_o[1] - ct_oy + offset_h;
if(prev_oy - oy > 5) {
oh = oh + "<div class=\"pagenumber noprint\" onmouseover=\"pagenum_over("+ ox + "," + oy + "," + prev_ox + "," + prev_oy + "," + lineheight + "," + linewidth + ");\" onmouseout=\"pagenum_out();\" style=\"position:absolute; left:-4em; top:"+(oy+cs.offsetTop-lineheight)+"px; text-indent:0em; text-align:left; font-size:80%; font-weight:normal; font-style: normal;\">["+link_str+"]</div>";
}
}
}
if(!self.proofreadpage_numbers_inline) {
var ct_pagenums = document.getElementById("ct-pagenums");
ct_pagenums.innerHTML = oh;
}
pagenum_out();
if( parseInt(GetCookie("pagenum")) == 0 ) hide_pagenumbers();
}
if ($.inArray(mw.config.get('wgAction'), [ 'edit', 'submit' ])) {
//fixme : this is sensitive to order (detection of containers with "relative" position)
addOnloadHook(init_page_layout);
addOnloadHook(init_page_numbers);
}
/********************************************
*** New buttons on toolbar box
*** by [[user:ThomasV]]
********************************************/
function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText) {
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": imageFile,
"speedTip": speedTip,
"tagOpen": tagOpen,
"tagClose": tagClose,
"sampleText": sampleText};
}
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png','Rayer','<s>','</s>','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png','Énumération','\\n# élément 1\\n# élément 2\\n# élément 3','','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/1/11/Btn_toolbar_liste.png','Liste','\\n* élément A\\n* élément B\\n* élément C','','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/8f/Button_poeme.png','Poésie','<poem>\\n\\n','\\n</poem>','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/9/9e/Btn_toolbar_gallery.png','Galerie Photo','<gallery>\\n','\\n</gallery>','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png','Commentaire','<!--','-->','Insérer votre commentaire');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c8/Button_redirect.png','Redirection','#REDIRECT \[\[','\]\]','nom de la destination');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png','Catégorie','\[\[Catégorie:','\]\]','nom de la catégorie');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/5/5f/Button_center.png','Texte centré','<center>','</center>','');
addCustomButton('http://upload.wikimedia.org/wikipedia/en/e/e9/Button_headline2.png','paragraphe niveau 3','===','===','');
addCustomButton('http://upload.wikimedia.org/wikipedia/en/8/8e/Button_shifting.png', 'Insérer un retrait',':','',':' );
addCustomButton('http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png','Texte plus petit','<small>','</small>','');
addCustomButton('http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png','Exposant','<sup>','</sup>','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4b/Button_nbsp.png','Espace insécable',' \;','','');
addCustomButton('http://upload.wikimedia.org/wikipedia/en/9/93/Button_sub_link.png','Lien vers sous-titre','\[\[Page\#','\]\]','Sub_page' );
addCustomButton('http://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png','Block quote','<blockquote style="border: 1px solid blue; padding: 2em;">\\n','\\n</blockquote>','Block quote');
addCustomButton('http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png','Aller à la ligne','<br />','','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4b/Button_class_text.png', 'Paragraphe texte','<div class=\'text\'>\\n\\n','\\n</div>','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/7/78/Button_titre.png','Titre de page','\{\{Titre\|','\|\|\}\}','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/0/03/Button_chapitre.png','Titre de Chapitre','\{\{chapitre\|livre=','\|auteur=\|nrpartie=\|nrchapitre=\|TitreChapitre=\|commentaires=\}\}','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c4/Button_ref.png','Ajoute une référence','<ref>','</ref>','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/6/64/Buttonrefvs8.png','Liste des références','<references />','','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c3/Button_travaux.png','Relecture','\{\{subst:Infoédit\|1=','\|2= \|3= \|4= \|5= \|6= \}\}','');
/********************************************
*** Copyright tab
*** by [[user:ThomasV]]
********************************************/
function ongletCopyright() { // id created by Template:Licence. It should match Template:Licence parameters
var a = document.getElementById("p-cactions");
if (a)
{
b = a.getElementsByTagName("ul");
if(b.length > 0)
{
if(document.getElementById("Creative Commons by-nc-sa"))
{ b[0].innerHTML = b[0].innerHTML
+ '<li id="ca-nstab-user">'
+ '<a href="http://fr.wikisource.org/wiki/Wikisource:Creative_Commons_by-nc-sa">' // /wiki/Wikilivres:Creative Commons by-nc-sa
+ 'Copyright</a></li>';
}
else if(document.getElementById("Copyright-ONU"))
{ b[0].innerHTML = b[0].innerHTML
+ '<li id="ca-nstab-user">'
+ '<a href="http://fr.wikisource.org/wiki/Wikisource:Copyright-ONU">' // /wiki/Wikilivres:Copyright-ONU
+ 'Copyright</a></li>';
}
else if(document.getElementById("Copyright-UNESCO"))
{ b[0].innerHTML = b[0].innerHTML
+ '<li id="ca-nstab-user">'
+ '<a href="http://fr.wikisource.org/wiki/Wikisource:Copyright-UNESCO">' // /wiki/Wikilivres:Copyright-UNESCO
+ 'Copyright</a></li>';
}
else if(document.getElementById("GFDL"))
{ b[0].innerHTML = b[0].innerHTML
+ '<li id="ca-nstab-user">'
+ '<a href="http://fr.wikisource.org/wiki/Wikisource:Licence_GFDL">' // /wiki/Wikilivres:Licence GFDL
+ 'Copyright</a></li>';
}
}
}
}
addOnloadHook(ongletCopyright);
/*****************************************************************
*** Edittools: Menu for selecting subsets of special characters
***
******************************************************************/
function addCharSubsetMenu() { // the options should match MediaWiki:Edittools
var specialchars = document.getElementById('specialchars');
if (specialchars) {
var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
menu += "<option>Wiki</option>";
menu += "<option>Latin</option>";
menu += "<option>Grec</option>";
menu += "<option>Cyrillique</option>";
menu += "<option>AHD</option>";
menu += "<option>Allemand</option>";
menu += "<option>Catalan</option>";
menu += "<option>Croate</option>";
menu += "<option>Espagnol</option>";
menu += "<option>Espéranto</option>";
menu += "<option>Estonien</option>";
menu += "<option>Gallois</option>";
menu += "<option>Hawaien</option>";
menu += "<option>Hiéroglyphe</option>";
menu += "<option>Islandais</option>";
menu += "<option>Italien</option>";
menu += "<option>Maltais</option>";
menu += "<option>Pinyin</option>";
menu += "<option>Polonais</option>";
menu += "<option>Portugais</option>";
menu += "<option>Rōmaji</option>";
menu += "<option>Roumain</option>";
menu += "<option>Scandinave</option>";
menu += "<option>Serbe</option>";
menu += "<option>Tchèque</option>";
menu += "<option>Vieil anglais</option>";
menu += "<option>Vietnamien</option>";
menu += "<option>API</option>";
menu += "</select>";
specialchars.innerHTML = menu + specialchars.innerHTML;
/* default subset - try to use a cookie some day */
chooseCharSubset(0);
}
}
/* select subsection of special characters */
function chooseCharSubset(s) {
var l = document.getElementById('specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
l[i].style.display = i == s ? 'inline' : 'none';
l[i].style.visibility = i == s ? 'visible' : 'hidden';
}
}
addOnloadHook(addCharSubsetMenu);
/*****************************************************************
*** interwikiExtra
*** by [[user:ThomasV]]
******************************************************************/
function interwikiExtra()
{
// iterate over all <span>-elements
for(var i=0; a = document.getElementsByTagName("span")[i]; i++) {
// if found a linkInfo span
if(a.className == "interwiki-info") { // class created by Template:Interwiki-info
// iterate over all <li>-elements
var count=0;
for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
if(b.className == "interwiki-" + a.id) {
b.innerHTML = b.innerHTML + " "+a.title;
if(a.title == "(vo)") { b.title = "Original Text"; }
}
else if(b.className == "interwiki-" + a.id.substr(0,a.id.length-1)) {
count = count+1;
if(a.id.charAt(a.id.length-1) == count) {
b.innerHTML = b.innerHTML + " "+a.title;
}
}
}
}
if(a.className == "OtherVersion") { // class created by Template:OtherVersion (Modèle:AutreVersion in fr.ws)
p = a.title.indexOf("|");
pvers = document.getElementById("p-version");
if (pvers == null) {
c = document.getElementById("column-one");
c.innerHTML = c.innerHTML
+ "<div class=\"portlet\" id=\"p-version\">"
+ "<h5>Other versions</h5>"
+ "<div class=\"pBody\">"
+ "<ul>"
+ "</ul>"
+ "</div>";
pvers = document.getElementById("p-version");
}
e = pvers.getElementsByTagName("ul")[0];
e.innerHTML = e.innerHTML
+ "<li class=\"\"><a href='"
+ a.title.substr(0,p)
+ "'>" + a.title.substr(p+1,a.title.length-1)+ "</a> " +"</li>";
}
}
}
addOnloadHook(interwikiExtra);
/*****************************************************************
*** footnotes as tooltip
*** from it.wikipedia.org
*** inserted by [[user:-jkb-]]
******************************************************************/
addOnloadHook ( function ()
{
sups = document.getElementsByTagName("sup");
for (i=0; i<sups.length; i++)
{
note_id = sups[i].childNodes[0].href;
if (note_id && (note_id.indexOf("#") != -1))
{
note_id = document.getElementById(note_id.substr(note_id.indexOf("#")+1));
if (note_id)
if (document.all)
{
sups[i].title = note_id.innerText;
sups[i].childNodes[0].title = note_id.innerText;
}
else
{
sups[i].title = note_id.textContent;
}
}
}
})
/* </pre> */