Utilisateur:Dr Brains/LiveRC/CategoryRCExtension.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./*
--------------------------------------------------------------------------------------
---------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'''
Permet de n'afficher que les modifications faites dans une ou plusieurs catégories
* 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
// Options
try{
lrcOptionMenuValues["showCatRC"] = false;
}catch(e){ }
// textes
try{
lrcTexts["showCatRC_SHORT"] = "Catégories";
lrcTexts["showCatRC_TIP"] = "Filtrer les RC par catégorie";
lrcTexts["RCCategoryNoCat"] = "Vous devez sélectionner l’option « $1 » pour pouvoir filtrer par catégorie";
lrcTexts["CRC_DELETECAT_SHORT"] = "-";
lrcTexts["CRC_ADDCAT_SHORT"] = "+";
}catch(e){ }
// Descriptions
try{
lrcParamDesc["DescshowCatRC"] = '[CategoryRC] Case "Catégories"';
lrcParamDesc["DescshowCatRC_SHORT"] = '[CategoryRC] Texte de la case "Catégories"';
lrcParamDesc["DescshowCatRC_TIP"] = '[CategoryRC] Infobulle de la case "Catégories"';
lrcParamDesc["DescRCCategoryNoCat"] = "[CategoryRC] Avertissement paramétrage de LiveRC";
lrcParamDesc["DescCRC_DELETECAT_SHORT"] = "[CategoryRC] Texte du bouton pour supprimer une catégorie";
lrcParamDesc["DescCRC_ADDCAT_SHORT"] = "[CategoryRC] Texte du bouton pour ajouter une catégorie";
lrcParamDesc["DescLiveRC_defaultCats"] = "Catégories pour le filtrage des RC";
lrcParamDesc["DescLiveRC_defaultCats_short"] = "RC par catégorie";
}catch(e){ }
var LiveRC_defaultCats = [
{cat:"Portail:Amérique/Articles liés", checked:true},
{cat:"Portail:Cinéma/Articles liés", checked:true},
{cat:"Portail:Europe/Articles liés", checked:true},
{cat:"Portail:Musique/Articles liés", checked:true}
];
var LiveRC_defaultCats_Custom = new Array();
var Custom_LiveRC_defaultCats = new Array();
function defineCustomDefaultCats(defaultCats){
Custom_LiveRC_defaultCats = defaultCats;
}
LiveRC_AddHook("AfterFillParamPanel", function(){
LiveRC_ManageParams_Fill(LiveRC_defaultCats, "LiveRC_defaultCats", "defineCustomDefaultCats", true);
});
function LiveRC_CategoryRC_CheckIfGetPageInfosEnabled(){
setTimeout("LiveRC_CategoryRC_AutoUncheckCatFilter();", 75);
}
function LiveRC_CategoryRC_AutoUncheckCatFilter(){
var showCatRC = document.getElementById("showCatRC");
if(!showCatRC) return;
if(!showCatRC.checked) return;
if(!lrcMakeParam("GetPageInfos")){
var NoCatMessage = lrcMakeText("RCCategoryNoCat")
NoCatMessage = NoCatMessage.split("$1").join("<code>"+lrcMakeParamDescription("DescGetPageInfos")+"</code>");
LiveRC_alert(NoCatMessage);
showCatRC.checked = false;
disableAllCheckboxesInChecklist("showCatRC", "showCatRC_CheckList")
}
}
function LiveRC_CategoryRC_AddButton(){
var NamespaceForm = document.getElementById('NamespaceForm');
if(!NamespaceForm) return;
var CategoryForm = document.createElement('form');
CategoryForm.id = "CategoryForm";
var Span = document.createElement("span");
Span.style.padding = "3px";
Span.title = lrcMakeText("showCatRC_TIP");
var NewInput = document.createElement('input');
NewInput.id = "showCatRC";
NewInput.type = "checkbox";
NewInput.onmouseup = LiveRC_CategoryRC_CheckIfGetPageInfosEnabled;
var NewLabel = document.createElement('label');
NewLabel.setAttribute('for', "showCatRC");
NewLabel.appendChild(document.createTextNode(lrcMakeText("showCatRC_SHORT")));
Span.appendChild(NewInput);
Span.appendChild(NewLabel);
CategoryForm.appendChild(Span);
NamespaceForm.parentNode.insertBefore(CategoryForm, NamespaceForm.nextSibling);
var SepSpan = document.createElement('span');
SepSpan.appendChild(document.createTextNode("·"));
NamespaceForm.parentNode.insertBefore(SepSpan, NamespaceForm.nextSibling);
if(lrcMakeOption("showCatRC") && lrcMakeParam("GetPageInfos")){
NewInput.checked = "checked";
}
addCatFilterCheckInMenu();
}
LiveRC_AddHook("AfterOptions", LiveRC_CategoryRC_AddButton);
function addCatFilterCheckInMenu(){
var Lines = new Array();
var CheckList = createChecklistMenu("showCatRC", Lines);
var Li = document.createElement('li');
Li.style.textAlign = "right";
var AddCatInput = document.createElement('input');
AddCatInput.type = "button";
AddCatInput.style.width = "100%";
AddCatInput.value = lrcMakeText("CRC_ADDCAT_SHORT");
AddCatInput.onclick = function(){ LiveRC_CategoryRC_AddACat(this); };
AddCatInput.onselect = function(){ LiveRC_CategoryRC_AddACat(this); };
Li.appendChild(AddCatInput);
CheckList.appendChild(Li);
var defaultCats = LiveRC_defaultCats_Custom;
if(defaultCats.length===0) defaultCats = Custom_LiveRC_defaultCats;
if(defaultCats.length===0) defaultCats = LiveRC_defaultCats;
for(var a=0,l=defaultCats.length;a<l;a++){
var ThisItem = defaultCats[a];
var Cat = ThisItem["cat"];
var checked = (ThisItem["checked"] ? ' checked="checked" ' : '');
LiveRC_CategoryRC_AddACat(AddCatInput, Cat, checked);
};
LiveRC_SetCheckListPosition(CheckList.id);
}
function LiveRC_CategoryRC_DeleteThisCat(DeleteInput){
var Li = DeleteInput.parentNode;
if(Li) Li.parentNode.removeChild(Li);
}
function LiveRC_CategoryRC_AddACat(AddCatInput, Value, Checked){
var LastLi = AddCatInput.parentNode;
var Li = document.createElement('li');
var InputCheck = document.createElement("input");
InputCheck.type = "checkBox";
if(Checked) InputCheck.checked = "checked";
var Input = document.createElement("input");
Input.type = "text";
Input.size = 40;
Input.value = (Value ? Value : "");
var DeleteInput = document.createElement('input');
DeleteInput.type = "button";
DeleteInput.value = lrcMakeText("CRC_DELETECAT_SHORT");
DeleteInput.onclick = function(){ LiveRC_CategoryRC_DeleteThisCat(this); };
DeleteInput.onselect = function(){ LiveRC_CategoryRC_DeleteThisCat(this); };
Li.appendChild(InputCheck);
Li.appendChild(Input);
Li.appendChild(DeleteInput);
LastLi.parentNode.insertBefore(Li, LastLi);
LiveRC_Suggest_AddPageSuggestion({
"InputNode" : Input,
"NSFilter" : 14,
"StripNS" : true,
"ListDown" : true,
"AddExist" : true
});
LiveRC_Suggest_GetPageSuggestions(LiveRC_Suggest_GetSuggestionIndex(Input));
disableAllCheckboxesInChecklist("showCatRC", "showCatRC_CheckList");
}
function LiveRC_CategoryRC_getCategories(){
var showCatRC = document.getElementById("showCatRC");
if(!showCatRC) return false;
if(!showCatRC.checked) return false;
var showCatList = document.getElementById("showCatRC_CheckList");
if(!showCatList) return false;
var Categories = new Array();
var Lis = showCatList.getElementsByTagName('li');
for(var a=0,l=Lis.length;a<l;a++){
var Li = Lis[a];
var CheckBox = Li.getElementsByTagName('input')[0];
var Input = Li.getElementsByTagName('input')[1];
var CatExist = Li.getElementsByTagName('input')[2];
if(!CheckBox || !Input || !CatExist) continue;
if(CatExist.value == "0") continue;
if(CheckBox.type != "checkbox") continue;
if(!CheckBox.checked) continue;
var Cat = Input.value;
if(!Cat) continue;
if(Categories.indexOf(Cat)==-1) Categories.push(lrcGetNamespaceName(14)+":"+Cat);
}
if(Categories.length===0) return false;
return Categories;
}
function LiveRC_CategoryRC_filterRC(Args){
if(!lrcMakeParam("GetPageInfos")) return;
var showCatRC = document.getElementById("showCatRC");
if(!showCatRC) return;
if(!showCatRC.checked) return;
var ID = Args.id;
var TR = document.getElementById(ID);
if(!TR) return;
var Categories = LiveRC_CategoryRC_getCategories();
if(!Categories) return;
var rc = Args.rc;
var Cats = rc.categories;
if(typeof(Cats)!=="object" || Cats.length === 0){
TR.parentNode.removeChild(TR);
return;
}
var HasCat = false;
for(var a=0,l=Cats.length;a<l;a++){
if(Categories.indexOf(Cats[a])!=-1){
HasCat = true;
}
}
if(!HasCat) TR.parentNode.removeChild(TR);
}
LiveRC_AddHook("AfterRC", LiveRC_CategoryRC_filterRC);
/* ************************************************************************************************************************************************ */
} // FIN IF
//</source>