Utilisateur:Reptilien.19831209BE1/js/test.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) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./*mw.loader.using( 'mediawiki.ForeignApi' ).done( function () {
var api = new mw.ForeignApi( 'https://www.wikidata.org/w/api.php' );
api.get( {
action: 'query',
meta: 'tokens'
} ).done( function ( data ) {
console.log( 'Token: ' + data.query.tokens.csrftoken );
} );
} );*/
$(document).ready(function (){
if($('#t-wikibase').length){
// On récupère l'id Wikidata
var Q = $('#t-wikibase a').attr('href');
var n = Q.lastIndexOf("/");
if(n > -1){
Q = Q.substr(n+2); // -Q
}
else{
return false;
}
}
else{
return false;
}
// Détermination de l'élément parent (en dessous du titre principal)
var ElementParent = document.getElementById('firstHeading');
// Création du conteneur
var Element = document.createElement('div');
Element.id = 'WD-LD-container';
Element.style = "font-size:16px;font-family:sans-serif;font-style:italic;padding-left:2em;";
ElementParent.appendChild(Element, ElementParent.firstChild);
// Vérif.
CheckLabelAndDescription(Q, document.getElementById('WD-LD-container'))
});
function CheckLabelAndDescription(Q, element){
element.innerHTML = "Vérification des éléments sur Wikidata...";
// Lancement de la requête :
$.ajax({
url: '//www.wikidata.org/w/api.php?format=json&callback=?&action=wbgetentities&ids=Q' + Q,
crossDomain: true,
dataType: 'json'
}).done(function(result) {
Q = "Q"+Q;
element.innerHTML="";
var wdDescription = "";
if(result.entities[Q].labels.fr === undefined || result.entities[Q].labels.fr.value===""){
element.innerHTML += "<div id=\"wd-label\" style=\"color:red;\">Aucun label sur Wikidata</div>";
}
if(result.entities[Q].descriptions.fr === undefined || result.entities[Q].descriptions.fr.value===""){
wdDescription="Aucune description sur Wikidata";
wdDescriptionColor="red";
}
else{
wdDescription=result.entities[Q].descriptions.fr.value;
wdDescriptionColor="grey";
}
element.innerHTML += "<div id=\"wd-description\" title=\"Description en provevance de Wikidata. Double cliquer pour modifier\" style=\"color:"+wdDescriptionColor+";\">"+wdDescription+"</div>";
// Lorsqu'on double clique sur la description
// on place le contenu dans un input
$("#wd-description").dblclick(function() {
$(this).html('<input type="text" id="wd-description-input" value="'+$(this).text()+'"/>');
$("#wd-description-input").blur(function(){
if($(this).val() !=="" && $(this).val()!=result.entities[Q].descriptions.fr.value){
$("#wd-description").text($(this).val());
UpdateDescription(Q, $(this).val()) // à envoyer à WD...
}
else{
$("#wd-description").text(result.entities[Q].descriptions.fr.value);
}
});
});
});
}
function UpdateDescription(Q, description){
// On récupère un jeton (token)
$.ajax({
url: '//www.wikidata.org/w/api.php?format=json&action=query&meta=tokens&type=csrf&origin=https://fr.wikipedia.org',
crossDomain: true,
dataType: 'json'
}).done(function(result) {
//var token = result.query.tokens.csrftoken;
console.log(result);
});
}