MediaWiki:Gadget-QPreview.js
Nòta : Aprèp aver publicat la pagina, vos cal forçar son recargament complet tot ignorant lo contengut actual de l'amagatal de vòstre navigador per veire los cambiaments : Mozilla / Firefox / Konqueror / Safari : mantenètz la tòca Majuscula (Shift) en clicant lo boton Actualizar (Reload,) o quichatz Maj-Ctrl-R (Maj-Cmd-R sus Apple Mac) ; Internet Explorer / Opera : mantenètz la tòca Ctrl en clicant lo boton Actualizar o quichatz Ctrl-F5.
/**
* QPreview
*
* Permet une prévisualisation rapide sans recharger la page
* Affiche :
* le texte, catégories et interwikis fournit par le serveur
* N'affiche pas :
* la prévisualisation du résumé
* les modèles utilisés
* autres trucs rares comme les couleurs GeSHi (code de programmation coloré)
*
* Auteur initial : [[:en:User:Alex Smotrov|en:Alex Smotrov]] sur [[:en:User:Alex Smotrov/qpreview.js]],
* complété par [[:fr:Utilisateur:Seb35|fr:Seb35]] puis [[:fr:Utilisateur:Zebulon84|Zebulon84]]
* Date de la dernière révision : 12 avril 2015
* {{Projet:JavaScript/Script|QPreview}}
*/
var qPreviewBoutonNom = 'Apercebut';
var qPreviewBoutonAttendre = 'Paciéncia…';
var qPreviewTitreIw = 'Autras lengas';
var qPreviewHeaderText = 'Apercebut';
var qPreviwGoToEdit = '→ Anar a la zòna de modificacion';
function qPreview() {
var divPreview, ulLang, divCat, btnQPreview, qPreviewTextbox, qPreviewHeader, tablePreview, diffEnCours;
var i, htmlText, htmlCat, langList, langLine, langLink;
divPreview = document.getElementById( 'wikiPreview' );
btnQPreview = document.getElementById( 'btnQPreview' );
btnQPreview.value = qPreviewBoutonAttendre;
qPreviewTextbox = '<div>{{MediaWiki:Previewnote}} [[#editform|' + qPreviwGoToEdit + ']]</div><hr>\n';
if ( document.editform.wpSection.value === 'new' ) {
qPreviewTextbox += '== ' + document.editform.wpSummary.value + ' ==\n';
}
qPreviewTextbox += document.getElementById( 'wpTextbox1' ).value;
$.post(
mw.util.wikiScript( 'api' ),
{
format: 'json',
action: 'parse',
preview: true,
disableeditsection: true,
pst: true,
title: mw.config.get('wgPageName'),
text: qPreviewTextbox,
prop: 'text|categorieshtml|langlinks'
},
function (data) {
// ajout du texte
htmlText = data.parse.text['*'];
divPreview.innerHTML = htmlText;
// ajout entête prévisualisation
qPreviewHeader = document.createElement( 'h2' );
qPreviewHeader.id = 'mw-previewheader';
qPreviewHeader.innerHTML = qPreviewHeaderText;
divPreview.insertBefore( qPreviewHeader, divPreview.firstChild );
tablePreview = document.getElementById( 'previewnote-fr' ).getElementsByTagName( 'table' )[0];
if ( tablePreview ) {
tablePreview.style.backgroundColor = '#E2F2FF';
tablePreview.style.borderColor = '#ACCEFF';
}
// ajout des catégories
divCat = document.getElementById( 'catlinks' );
if ( !divCat ) {
divCat = document.createElement( 'div' );
divPreview.parentNode.insertBefore( divCat, divPreview.nextSibling );
}
htmlCat = data.parse.categorieshtml['*'];
divCat.outerHTML = htmlCat;
//ajout des interWiki
if ( document.getElementById( 'p-lang' ) ) {
ulLang = document.getElementById( 'p-lang' ).getElementsByTagName( 'ul' )[0];
ulLang.innerHTML = '';
langList = data.parse.langlinks;
for ( i = 0; i < langList.length; i++ ) {
langLink = document.createElement( 'a' );
langLink.lang = langList[i].lang;
langLink.setAttribute( 'hreflang', langList[i].lang );
langLink.title = langList[i]['*'] + ' — ' + langList[i].langname;
langLink.href = langList[i].url;
langLink.innerHTML = langList[i].autonym;
langLine = document.createElement( 'li' );
langLine.className = 'interlanguage-link interwiki-' + langList[i].lang;
langLine.appendChild( langLink );
ulLang.appendChild( langLine );
}
}
// suppression de la zone "Changements en cours" si elle est présente.
diffEnCours = document.getElementById( 'wikiDiff' );
if ( diffEnCours ) {
diffEnCours.style.display = 'none';
}
btnQPreview.value = qPreviewBoutonNom;
}
);
}
/* Compatibilité iRef */
window.qPreview = qPreview;
function qPreviewButton() {
var i, sauv, newDiv, toolbox, div, newBtn;
sauv = document.getElementById( 'wpSave' );
if ( !sauv ) {
return;
}
document.getElementById( 'wikiPreview' ).style.display = 'block';
newBtn = document.createElement( 'input' );
newBtn.type = 'button';
newBtn.value = qPreviewBoutonNom;
newBtn.onclick = qPreview;
newBtn.id = 'btnQPreview';
newBtn.setAttribute( 'tabindex', '6' );
sauv.parentNode.insertBefore( newBtn, sauv.nextSibling );
}
mw.loader.using( 'mediawiki.util', function () {
$( qPreviewButton );
} );