Utilisateur:Dr Brains/LiveRC/PreviewThisPageExtension.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.
/* 
 --------------------------------------------------------------------------------------
 ---------LLLL---------III--------------------------RRRRRRRRRR--------CCCCC------------
 ---------LLLL---------III--------------------------RRRRRRRRRRRR----CCCCCCCCC----------
 ---------LLLL--------------------------------------RRR------RRR---CCC-----CCC---------
 ---------LLLL---------III--VV-----VV--EEEEEEEEE----RRR------RRR--CCC------------------
 ---------LLLL---------III---VV---VV---EEE----------RRRRRRRRRRR---CCC------------------
 ---------LLLL---------III---VV---VV---EEEEEE-------RRRRRRRRRR----CCC------------------
 ---------LLLL---------III----VV-VV----EEEEEE-------RRR-----RRR----CCC-----CCC---------
 ---------LLLLLLLLLLL--III----VVVVV----EEE----------RRR------RRR----CCCCCCCCC----------
 ---------LLLLLLLLLLL--III-----VVV-----EEEEEEEEE----RRR-------RRR-----CCCCC------------
 --------------------------------------------------------------------------------------
 
'''Extension de LiveRC'''
 
Ajoute un champ de texte dans le menu d'options pour visualiser n'importe quelle page
 
* Licence : ...?
* Documentation :
* Auteur : [[:fr:User:Dr Brains]]
* Développement et maintenance :
 
 
{{Catégorisation JS|LiveRC}}
 
<source lang=javascript> */
if(typeof(LiveRC_AddHook)!="undefined") { // DÉBUT IF
 
 
// textes
try{
lrcTexts["PTP_StartButton_TIP"]   = "Prévisualiser une page";
lrcTexts["PTP_StartButton_SHORT"] = "P";
lrcTexts["PTP_TextInput_TIP"]     = "Inscrire le nom de la page à prévisualiser";
lrcTexts["PTP_OKButton_TIP"]      = "Prévisualiser cette page";
lrcTexts["PTP_OKButton_SHORT"]    = "OK";
}catch(e){ }
 
// Descriptions
try{
lrcParamDesc["DescPTP_StartButton_TIP"]   = "[PreviewThisPage] Infobulle du bouton de prévisualisation de page";
lrcParamDesc["DescPTP_StartButton_SHORT"] = "[PreviewThisPage] Texte du bouton de prévisualisation de page";
lrcParamDesc["DescPTP_TextInput_TIP"]     = "[PreviewThisPage] Infobulle du champ de prévisualisation de page";
lrcParamDesc["DescPTP_OKButton_TIP"]      = "[PreviewThisPage] Infobulle du bouton de validation de la prévisualisation de page";
lrcParamDesc["DescPTP_OKButton_SHORT"]    = "[PreviewThisPage] Texte du bouton de validation de la prévisualisation de page";
}catch(e){ }
 
function LiveRC_PreviewThisPageExtension_AddButton(){
    var ButtonList = [
      {id : "StartButton", text : lrcMakeText("PTP_StartButton_SHORT") ,  title : lrcMakeText("PTP_StartButton_TIP")   },
      {id : "TextInput",   text : ""                                   ,  title : lrcMakeText("PTP_TextInput_TIP")     },
      {id : "OKButton",    text : lrcMakeText("PTP_OKButton_SHORT")    ,  title : lrcMakeText("PTP_OKButton_TIP")      }
    ];
    var Form = document.createElement('form');
    Form.id = "PreviewThisPageButtons"
    for(var a=0,l=ButtonList.length;a<l;a++){
        var Input = document.createElement('input');
        Input.type = (a==1 ? "text" : "button");
        Input.id = "PreviewThisPage_"+ ButtonList[a]["id"];
        Input.value = ButtonList[a]["text"];
        Input.title = ButtonList[a]["title"];
        Input.setAttribute('style', 'padding:0;');
        Form.appendChild(Input);
        if(a==0){
            Input.onclick = function(){
                LiveRC_PreviewThisPageExtension_ShowHide();
            }
            Input.onselect = function(){
                LiveRC_PreviewThisPageExtension_ShowHide();
            }
        }
        if(a==1){
            LiveRC_Suggest_AddPageSuggestion({"InputNode": Input, "ListDown" : true, "AddExist" : true });
        }
        if(a==2){
            Input.onclick = function(){
                LiveRC_PreviewThisPageExtension_Preview();
            }
            Input.onselect = function(){
                LiveRC_PreviewThisPageExtension_Preview();
            }
        }
    }
    AddButtonToControlBar(Form, true);
    Form.onsubmit = function(){
        LiveRC_PreviewThisPageExtension_Preview();
        return false;
    }
    LiveRC_PreviewThisPageExtension_ShowHide();
}
 
function LiveRC_PreviewThisPageExtension_ShowHide(){
    var Input = document.getElementById("PreviewThisPageButtons").firstChild;
    var Element = Input.nextSibling;
    while(Element){
        if(Element.type !== "hidden"){
            if(Element.style.display == "none"){
                if(!$(Element).hasClass("SuggestionList")) Element.style.display = "";
            }else{
                Element.style.display = "none";
            }
        }
        Element = Element.nextSibling;
        if(!Element) break;
    }
}
 
function LiveRC_PreviewThisPageExtension_Preview(){ 
    var Input = false;
    var Inputs = document.getElementById("PreviewThisPageButtons").getElementsByTagName("input");
    for(var a=0,l=Inputs.length;a<l;a++){
        var ThisInput = Inputs[a];
        var Type = ThisInput.type;
        if(Type=="text") Input = ThisInput;
    }
    if(!Input) return;
    var Value = Input.value;
    if(!Value) return;
    var NS = getNamespaceInfoFromPage(Value);
    if(NS==-1) return;
    liveArticle(Value);
    LiveRC_PreviewThisPageExtension_ShowHide();
}
 
LiveRC_AddHook("AfterOptions", LiveRC_PreviewThisPageExtension_AddButton);
 
/* ************************************************************************************************************************************************ */
} // FIN IF
//</source>