Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
/* Permet de redimensionner les colonnes de gauche (transcription)
et de droite (image) en mode Page.

Pour utiliser ce gadget, rajouter dans son common.js la ligne suivante :
   importScript('Utilisateur:Seudo/resize.js')
Puis, en mode lecture ou édition sur une page, placer la souris juste à droite du champ d'édition (le cursor change de forme),
appuyer sur un bouton de la souris et glisser vers la gauche ou la droite. */


// Gérer le redimensionnement lorsque la souris est enfoncée
var isResizing = false;
var hasResized = false;
var startX;

function descendantDe(element, cible) {
    let parent = element;
    while(parent !== null) {
        if(parent === cible)
            return true;
        parent = parent.parentElement;
    }
    return false;
}

$(document).ready(function() {
    const ns = mw.config.get('wgNamespaceNumber');    
    if(ns != 104) // Page namespace
        return;

	wpTextbox1 = document.getElementById("wpTextbox1");

	const divcontent = document.getElementsByClassName('prp-page-content')[0];
 	const diveditbodys = document.getElementsByClassName('prp-page-edit-body');
    const diveditbody = (diveditbodys.length > 0 ? diveditbodys[0] : null);
	const divimage = document.getElementsByClassName('prp-page-image')[0];
    
    const prpPageEditBodys = document.getElementsByClassName('prp-page-edit-body');
    const prpPageEditBody = (prpPageEditBodys ? prpPageEditBodys[0] : null);

    const pagetexts = document.getElementsByClassName("pagetext");
    const pagetext = (pagetexts.length > 0 ? pagetexts [0] : null);

    divcontent.style.cursor = "col-resize";
    if(pagetext)
        pagetext.style.cursor = "auto";

    toggleParaSelect = function(b) {
        ["P", "PRE"].forEach(tagName => {
            const paras = divcontent.getElementsByTagName(tagName);
            for(let p of paras) {
                ["-webkit-user-select", "-webkit-touch-callout", 
                 "-moz-user-select", "-ms-user-select: none", 
                 "user-select"].forEach(a => { 
                    p.style[a] = (b ? "auto" : "none");
                });
            }
        });
    }

	divcontent.addEventListener('mousedown', function(e) {
        // Sur le clic gauche dans le champ d'édition, c'est gênant
        // if((wpTextbox1 && e.target === wpTextbox1) || (pagetext && e.target.parentNode.parentNode === pagetext )) {
        if((prpPageEditBody && descendantDe(e.target.parentNode, prpPageEditBody))
           || (pagetext && descendantDe(e.target.parentNode, pagetext))) {
            // console.log("mousedown / descendant", e.target);
            e.stopPropagation();
        }
        else {
    		isResizing = true;
	    	startX = e.clientX;
            // console.log("mousedown / non descendant", e.target);
            toggleParaSelect(false);
        }
	});

	document.addEventListener('mousemove', function(e) {
		if (!isResizing) 
			return;
 
        // console.log("mousemove / resizing", e.target);

		var offset = startX - e.clientX;
		var newWidth1 = divcontent.clientWidth - offset;
		var newWidth2 = divimage.clientWidth + offset;

		divcontent.style.width = newWidth1 + 'px';
		divcontent.style.maxWidth = newWidth1 + 'px';
		if(diveditbody)
            diveditbody.style.width = '100%';
		divimage.style.width = newWidth2 + 'px';
		divimage.style.maxWidth = newWidth2 + 'px';

        // Apparemment le flex=1 par défaut pose problème
        divcontent.style.flex = 'auto';
        divimage.style.flex = 'auto';

        qualityheaders = document.getElementsByClassName("prp-page-qualityheader");

        if(qualityheaders.length > 0 && pagetext) { 
            qualityheaders[0].style.maxWidth = newWidth1 + 'px';
            pagetext.style.maxWidth = newWidth1 + 'px';
        }
     
        hasResized = true;
  
		startX = e.clientX;
	});


	document.addEventListener('mouseup', function(e) {
   		isResizing = false;
        hasResized = false;
        toggleParaSelect(true);
	});  
});