Utilisateur:Dr Brains/FeedbacksByCategory.js
Apparence
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.if(typeof(FeedbacksByCategory)==="undefined"){
var FeedbacksByCategory = new Object();
FeedbacksByCategory.Variables = new Object();
FeedbacksByCategory.Texts = new Object()
FeedbacksByCategory.Functions = new Object();
FeedbacksByCategory.Functions.Ajax = function(bundle){
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest();
} catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false
}
}
}
if (xmlhttp) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4){
if (xmlhttp.status == 200 || xmlhttp.status == 302) {
if (bundle.onSuccess) bundle.onSuccess(xmlhttp,bundle);
} else {
if (bundle.onFailure) bundle.onFailure(xmlhttp,bundle);
}
}
}
xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async === false ? false : true);
if (bundle.headers) {
for (var field in bundle.headers){
try { xmlhttp.setRequestHeader(field,bundle.headers[field]); } catch(err) { }
}
}
xmlhttp.send(bundle.data ? bundle.data : null);
}
return xmlhttp;
};
FeedbacksByCategory.Functions.AddLink = function(ToolsSpan){
var Link = document.createElement("a");
Link.innerHTML = FeedbacksByCategory.Texts.LaunchLinkText;
Link.title = FeedbacksByCategory.Texts.LaunchLinkTitle;
Link.href = "javascript:FeedbacksByCategory.Functions.ToggleForm();";
ToolsSpan.appendChild(document.createTextNode(" • "));
ToolsSpan.appendChild(Link);
}
FeedbacksByCategory.Functions.Init = function(){
if(mw.config.get('wgNamespaceNumber') != 14) return;
var Tools = $.makeArray( $(document).find('span.CategoryTools') ); .CategoryTools
for(var a=0,l=Tools.length;a<l;a++){
FeedbacksByCategory.Functions.AddLink(Tools[a]);
}
var Params = FeedbacksByCategory.Functions.GetURLParams();
FeedbacksByCategory.Variables.URLParams = Params
if(typeof(Params["AFfrom"])!="undefined") FeedbacksByCategory.Functions.ToggleForm();
}
function FeedbacksByCategory.Functions.GetURLParams(){
var Params = new Array();
var URL = document.URL;
URL = URL.split("&");
for(var a=0,l=URL.length;a<l;a++){
var url = URL[a];
if(url.indexOf("=")===-1) continue;
paramname = decodeURIComponent(url.split("&")[0]);
paramvalue = decodeURIComponent(url.split("&")[1]);
Params[paramname] = paramvalue;
}
return Params;
}
FeedbacksByCategory.Texts.LaunchLinkText = "Retours de lecteurs"
FeedbacksByCategory.Texts.LaunchLinkTitle = "Lister tous les retours de lecteurs faits sur les pages de cette catégorie";
FeedbacksByCategory.Texts.Legend = "Formuaire de listage des retours de lecteurs de la catégorie « $1 »"
FeedbacksByCategory.Functions.ToggleForm = function(){
var Menu = document.getElementById("FeedbacksByCategory_Menu");
if(Menu){
var Content = document.getElementById("mw-content-text");
if(Menu.style.display == "none"){
Menu.style.display = "";
Content.style.display = "none";
}else{
Menu.style.display = "none";
Content.style.display = "";
}
}else{
FeedbacksByCategory.Functions.CreateForm();
}
}
FeedbacksByCategory.Functions.CreateForm = function(){
var Content = document.getElementById("mw-content-text");
var Menu = document.createElement('div');
Menu.id = "FeedbacksByCategory_Menu";
Content.parentNode.insertBefore(Menu, Content);
var Form = document.createElement('fieldset');
Form.id = "FeedbacksByCategory_Form";
var Legend = document.createElement('legend');
Legend.innerHTML = FeedbacksByCategory.Texts.Legend.split("$1").join(mw.config.get('wgTitle'));
Form.appendChild(Legend);
var ResultsDiv = document.createElement('div');
var OptionP = document.createElement('p');
OptionP.className = "FeedbacksByCategory_Options";
var Results = document.createElement('ul');
Results.id = "FeedbacksByCategory_Results";
var OptionS = document.createElement('p');
OptionS.className = "FeedbacksByCategory_Options";
ResultsDiv.appendChild(OptionP);
ResultsDiv.appendChild(Results);
ResultsDiv.appendChild(OptionS);
Menu.appendChild(Form);
Menu.appendChild(ResultsDiv);
FeedbacksByCategory.Functions.FillForm(Form);
}
FeedbacksByCategory.Functions.CreateForm = function(Form){
var Params = FeedbacksByCategory.Variables.URLParams;
}
$(FeedbacksByCategory.Functions.Init);
} // END IF