Utilisateur:Dr Brains/CreateEmptyWikidataLink.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.// Ajoute un lien Wikidata si il n'y en a pas
var NoWikidataLinksInTheseNamespaces = new Array(1, 6);
if( (mw.config.get('wgAction')=="view" || mw.config.get('wgAction')=="submit" || mw.config.get('wgAction')=="purge") && (mw.config.get('wgNamespaceNumber') > -1) && (NoWikidataLinksInTheseNamespaces.indexOf(mw.config.get('wgNamespaceNumber'))==-1) && (mw.config.get('wgNamespaceNumber')%2==0) )
$(ManageWikidataLinks_Init);
function ManageWikidataLinks_Init(){
var noarticletext = getElementsByClassName(document, "div", "noarticletext")[0];
if(noarticletext) return;
var pLang= document.getElementById("p-lang");
if(!pLang){
var TB = document.getElementById('p-tb');
if(!TB) return;
pLang = TB.cloneNode(true);
pLang.id = "p-lang";
pLangH3 = pLang.getElementsByTagName("h3")[0];
if(pLangH3) pLangH3.innerHTML = "Autres langues";
var pLangUL = pLang.getElementsByTagName("ul")[0];
while(pLangUL.firstChild){ pLangUL.removeChild(pLangUL.firstChild); };
TB.parentNode.insertBefore(pLang, TB.nextSibling);
WikidataEmptyLi = document.createElement('li');
WikidataEmptyLi.className = "wbc-editpage wbc-nolanglinks";
pLangUL.appendChild(WikidataEmptyLi);
}
pLang.style.display = "block";
CreateEmptyWikidataLink();
UpdateWikidataLink();
}
function CreateEmptyWikidataLink(){
var WikidataEmptyLi = getElementsByClassName(document, "li", "wbc-nolanglinks")[0];
if(!WikidataEmptyLi) return;
var WikidataLinkHref = "//www.wikidata.org/wiki/Special:NewItem";
var WikidataEmptyLink = document.createElement('a');
WikidataEmptyLink.className = "new";
WikidataEmptyLink.href = WikidataLinkHref;
WikidataEmptyLink.onclick = function(){
CreateWikidataIframe(this.href);
return false;
};
WikidataEmptyLink.appendChild(document.createTextNode("Créer les liens"));
WikidataEmptyLink.title="Créer les liens interlangue";
WikidataEmptyLi.appendChild(WikidataEmptyLink);
};
function UpdateWikidataLink(){
var WikidataLinkLi = getElementsByClassName(document, "li", "wbc-editpage")[0];
if(!WikidataLinkLi) return;
var WikidataLink = WikidataLinkLi.getElementsByTagName('a')[0];
if(!WikidataLink) return;
WikidataLink.onclick = function(){
CreateWikidataIframe( this.href );
return false;
};
}
document.write('<style type="text/css">'
+ '.Frame_Wikidata_TopBarDiv {padding:0.3em;cursor:move !important;}'
+ '</style>');
function CreateWikidataIframe(Href){
var Frame = document.getElementById("Frame_Wikidata");
if(!Frame){
var LargeurEcran = ManageWikidataLinks_GetScreenWidth();
var HauteurEcran = ManageWikidataLinks_GetScreenHeight();
Frame = document.createElement('div');
Frame.id="Frame_Wikidata";
document.body.appendChild(Frame);
Frame.style.position='fixed';
Frame.style.zIndex= 1000;
Frame.style.width= '75%';
PositionGauche = parseInt((LargeurEcran-Frame.clientWidth)/2) ;
PositionHaut = parseInt((HauteurEcran-Frame.clientHeight)/5) ;
Frame.style.left=PositionGauche + 'px';
Frame.style.top=PositionHaut + 'px';
Frame.style.backgroundColor='white';
Frame.style.border='3px double black';
var TopBar = document.createElement('div');
TopBar.className = "Frame_Wikidata_TopBarDiv";
var CloseLink = document.createElement('a');
CloseLink.href = "javascript:ManageWikidataLinks_EndPreview();";
CloseLink.title = "Fermer la fenêtre";
CloseLink.setAttribute("style", "float:right");
CloseLink.innerHTML = '<img height="30" width="30" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/30px-Crystal_Clear_action_button_cancel.png" alt="Fermer">';
TopBar.appendChild(CloseLink);
Frame.appendChild(TopBar);
TopBar.onmousedown=function(event) {
monbody = document.body;
if(is_ie){
if(!event) { event= window.event; }
positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
}else{
positionSouris_X = parseInt( event.clientX );
positionSouris_Y = parseInt( event.clientY );
}
Frame.initialX = parseInt( positionSouris_X - Frame.offsetLeft);
Frame.initialY = parseInt( positionSouris_Y - Frame.offsetTop);
monbody.onmousemove = function(event) {
if(is_ie){
if(!event) { event= window.event; }
positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
}else{
positionSouris_X = parseInt( event.clientX );
positionSouris_Y = parseInt( event.clientY );
}
PositionGauche = parseInt( positionSouris_X ) - Frame.initialX;
PositionHaut = parseInt(positionSouris_Y ) - Frame.initialY;
if( PositionGauche < 0){
PositionGauche = 0;
}
if( PositionHaut < 0){
PositionHaut = 0;
}
Frame.style.left=PositionGauche + 'px';
Frame.style.top=PositionHaut + 'px';
Frame.style.opacity='.8';
}
monbody.onmouseup=function(event) {
Frame.style.opacity='';
monbody.onmousemove=null;
monbody.onmouseup=null;
}
}
var FrameContent = document.createElement('iframe');
FrameContent.src=Href;
FrameContent.width="100%";
FrameContent.height= parseInt(HauteurEcran/2) + "px";
Frame.appendChild(FrameContent);
var BottomBar = document.createElement('div');
BottomBar.style.height = "30px";
BottomBar.style.cursor='se-resize';
BottomBar.onmousedown = function(event){
monbody = document.body;
if(is_ie){
if(!event) { event= window.event; }
positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
}else{
positionSouris_X = parseInt( event.clientX );
positionSouris_Y = parseInt( event.clientY );
}
FrameContent.initialWidth = parseInt( positionSouris_X - FrameContent.offsetWidth );
FrameContent.initialHeight = parseInt( positionSouris_Y - FrameContent.offsetHeight );
Frame.initialWidth = parseInt( positionSouris_X - Frame.offsetWidth );
Frame.initialHeight = parseInt( positionSouris_Y - Frame.offsetHeight );
Frame.style.opacity='.8';
monbody.onmousemove=function(event) {
if(is_ie){
if(!event) { event= window.event; }
positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
}else{
positionSouris_X = parseInt( event.clientX );
positionSouris_Y = parseInt( event.clientY );
}
FrameContent.width = parseInt( positionSouris_X - FrameContent.initialWidth ) + 'px';
FrameContent.height = parseInt( positionSouris_Y - FrameContent.initialHeight ) + 'px';
Frame.style.width = parseInt( positionSouris_X - Frame.initialWidth ) + 'px';
Frame.style.height = parseInt( positionSouris_Y - Frame.initialHeight ) + 'px';
}
monbody.onmouseup=function(event) {
Frame.style.opacity = '';
monbody.onmousemove=null;
monbody.onmouseup=null;
}
}
Frame.appendChild(BottomBar);
Parent.appendChild(Frame);
}
return false;
}
function ManageWikidataLinks_EndPreview(){
var Frame = document.getElementById("Frame_Wikidata");
if(Frame) Frame.parentNode.removeChild(Frame);
}
// Détermination de la hauteur de l'écran
function ManageWikidataLinks_GetScreenHeight(){
var ScreenHeight = 0;
if( typeof( window.innerHeight ) == 'number' ) {
ScreenHeight = parseInt(window.innerHeight);
}else if( document.documentElement && document.documentElement.clientHeight ){
ScreenHeight = parseInt(document.documentElement.clientHeight);
}else if( document.body && document.body.clientHeight ){
ScreenHeight = parseInt(document.body.clientHeight);
}
return ScreenHeight;
}
// Détermination de la largeur de l'écran
function ManageWikidataLinks_GetScreenWidth(){
var ScreenWidth = 0;
if( typeof( window.innerWidth ) == 'number' ) {
ScreenWidth = parseInt(window.innerWidth);
}else if( document.documentElement && document.documentElement.clientWidth ){
ScreenWidth = parseInt(document.documentElement.clientWidth);
}else if( document.body && document.body.clientWidth ){
ScreenWidth = parseInt(document.body.clientWidth);
}
return ScreenWidth;
}