« MediaWiki:Gadget-LiveRC.js » : différence entre les versions

Contenu supprimé Contenu ajouté
Dr Brains (discuter | contributions)
+
Dr Brains (discuter | contributions)
Prise en compte rc "flow" ; Masquage des extensions non utilisables ; bricoles
Ligne 353 :
width:16,
height:9
},
"FlowIcon" : {
type:0,
src:"thumb/6/64/Talk_page_icon_crystal.png/16px-Talk_page_icon_crystal.png",
width:16,
height:16
},
// Logs
Ligne 1 164 ⟶ 1 170 :
};
 
// Listes sede suivi spéciales
LiveRC_Config["SpecialLogList"] = []; // Définition des listes de suivi spéciales
LiveRC_Config["SpecialLogListConfig"] = { // Configuration des listes spéciales
Ligne 1 794 ⟶ 1 800 :
LiveRC_Config["SpecialLogListConfig"]["liveHidden"]["Values"][user].edits = [];
}
var UL = documentLi.createElementgetElementsByTagName('ul')[0];
if(!UL){
UL = document.createElement('ul');
Li.appendChild(UL);
}
var ContactLi = document.createElement('li');
ContactLi.appendChild(lrcCreateWatchUserLink(mw.config.get('wgTitle'), ThisIsContact, 1));
Ligne 1 801 ⟶ 1 811 :
UL.appendChild(ContactLi);
UL.appendChild(HiddenLi);
Li.appendChild(UL);
 
var Links = Li.getElementsByTagName('a');
Ligne 2 053 ⟶ 2 062 :
}
Params = Params.join("&");
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: lrcGetAPIURL('action=setnotificationtimestamp'),
method: "POST", headers: headers,
Ligne 3 322 ⟶ 3 330 :
function addCustomParamMenuTab(textcode, ParamMenuTab){
Custom_lstParamMenuTabs[textcode] = ParamMenuTab;
}
 
function lrcSetConfigSetting(variable, textcode, value){
if(typeof(window[variable])==="undefined") return;
if(textcode===false){
window[variable] = value;
}else{
if(typeof(window[variable][textcode])==="undefined") return;
window[variable][textcode] = value;
}
}
 
Ligne 3 521 ⟶ 3 539 :
TargetDiv.appendChild(Menu);
LiveRC_ManageParams_TransformInputToSelect();
LiveRC_ManageParams_AddIconsDescriptions();
LiveRC_ManageParams_AddNewIcon_CreateAddButton();
LiveRC_ManageParams_AddTextTranslationsLangToggleAndDescriptions();
LiveRC_ManageParams_AddNewText_CreateAddButton();
LiveRC_ManageParams_MoveFollowListsOptions();
LiveRC_ManageParams_MoveLogOptions();
Ligne 3 530 ⟶ 3 544 :
LiveRC_ManageParams_MoveNamespaceOptions();
LiveRC_ManageParams_MoveUsersOptions();
LiveRC_ManageParams_AddIconsDescriptions();
LiveRC_ManageParams_AddNewIcon_CreateAddButton();
LiveRC_ManageParams_AddTextTranslationsLangToggleAndDescriptions();
LiveRC_ManageParams_AddNewText_CreateAddButton();
LiveRC_ManageParams_RemoveSomeExtensions();
LiveRC_ManageParams_AddContactListMenu();
LiveRC_ManageParams_AddHiddenListMenu();
Ligne 3 960 ⟶ 3 979 :
}
}
}
 
// Masque les extensions que l'utilisateur ne peut pas utiliser
 
function LiveRC_ManageParams_RemoveSomeExtensions(){
if(LiveRC_Config["GlobalFill_OnlyDefault"]) return;
var ExtTab = document.getElementById("LiveRC_OptionsContent_lrcExtensions");
if(!ExtTab) return;
var Lis = ExtTab.getElementsByTagName('li');
var ExtToHide = LiveRC_GetExtensionsToHide();
for(var a=0,l=Lis.length;a<l;a++){
var ThisLi = Lis[a];
if(!lrcHasClass(ThisLi, "ParamMenuLi")) continue;
var InputName = ThisLi.getElementsByTagName('input')[1];
if(!InputName) continue;
var ExtName = InputName.value;
if(!ExtName) continue;
var Hide = (ExtToHide.indexOf(ExtName)!==-1);
if(Hide) ThisLi.style.display = "none";
}
}
 
Ligne 4 756 ⟶ 4 795 :
var ExtensionUl = LiveRC_ManageParams_CreateNewListMenu("ExtensionsLegend", LiveRC_ManageParams_CreateActionButtons());
if(!ExtensionUl) return;
var ExtensionsToHide = LiveRC_GetExtensionsToHide();
var ExtensionList = Custom_lrcExtensions;
if(!ExtensionList ||ExtensionList.length==0) ExtensionList = lrcExtensions;
for(var a=0,l=ExtensionList.length;a<l;a++){
var ThisExtension = ExtensionList[a];
var neededright = if(ExtensionsToHide.indexOf(ThisExtension["neededrightname"])!==-1) continue;
if(neededright){
var invert = neededright.indexOf("!")===0;
if(invert) neededright = neededright.substr(1, neededright.length);
var hasRight = lrcUserHasRight(neededright);
var mustShow = ( invert ? !hasRight : hasRight );
if(!mustShow) continue;
}
var P = document.createElement('li');
lrcaddCustomizableClasses(P, "ParamMenuLi");
Ligne 5 021 ⟶ 5 054 :
params.push(Param+"="+encodeURIComponent(Params[Param]));
}
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST", headers: headers,
Ligne 5 266 ⟶ 5 298 :
Extensions += "\n\n"+ExtensionList;
ParamPage += Extensions;
LiveRC_ManageParams_UpdateParams(ParamPage, lrcGetNamespaceName(2)+':'+mw.config.get('wgUserName')+'/LiveRCparam.js');
}
 
Ligne 5 273 ⟶ 5 305 :
function LiveRC_ManageParams_RAZParams(){
var ParamPage = "// "+lrcMakeText("Comment")+ "\n";
LiveRC_ManageParams_UpdateParams(ParamPage, lrcGetNamespaceName(2)+':'+mw.config.get('wgUserName')+'/LiveRCparam.js');
}
 
// Édition du script
 
function LiveRC_ManageParams_UpdateParams(NewPage, PageToEdit){
NewPage = LiveRC_Config["ParamStartComment"] + NewPage + "\n" + LiveRC_Config["ParamEndComment"]
+ "\n// {{"+LiveRC_Config["CustomCatTemplate"] +"}}\n";
Ligne 5 289 ⟶ 5 321 :
}
if(P){
P.innerHTML = lrcMakeText("EditRunning").split("$1").join(lrcGetNamespaceName(2)+":"+mw.config.get('wgUserName')+"/LiveRCparam.js"PageToEdit)
+ '<span style="text-decoration:blink;">…</span>';
}
wpajax.http({ url: lrcGetUglyPageURL(lrcGetNamespaceName(2)+':'+mw.config.get('wgUserName')+'/LiveRCparam.js'PageToEdit, '&action=edit'),
onSuccess: LiveRC_ManageParams_SaveParams, param:NewPage, pagetoedit:PageToEdit});
}
 
Ligne 5 300 ⟶ 5 332 :
function LiveRC_ManageParams_SaveParams(Req, data){
var NewPage = data.param;
var PageToEdit = data.pagetoedit;
var Temp = document.createElement('div');
Temp.id = "TempDiv";
Ligne 5 311 ⟶ 5 344 :
if(P){
P.innerHTML += "<br />"
+ lrcMakeText("SaveRunning").split("$1").join(lrcGetNamespaceName(2)+":"+mw.config.get('wgUserName')+"/LiveRCparam.js"PageToEdit)
+ '<span style=\"text-decoration:blink;\">…</span>';
}
Ligne 5 321 ⟶ 5 354 :
params.push(Param+"="+encodeURIComponent(Params[Param]));
}
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST", headers: headers,
onSuccess:LiveRC_ManageParams_SaveParamsDone,
data: params.join("&"),
pagetoedit:PageToEdit
});
if(Temp) Temp.parentNode.removeChild(Temp);
Ligne 5 333 ⟶ 5 366 :
// Script sauvegardé
 
function LiveRC_ManageParams_SaveParamsDone(Req, data){
var PageToEdit = data.pagetoedit;
RefreshText = lrcMakeText("SaveDone").split("$1").join(lrcGetNamespaceName(2)+":"+mw.config.get('wgUserName')+"/LiveRCparam.js" )
RefreshText = lrcMakeText("SaveDone").split("$1").join(PageToEdit)
+ "<br/>"
+ '<span class="error">' + lrcMakeText("SaveRefresh") + '</span>'
Ligne 5 491 ⟶ 5 525 :
if(index === -1) lrcExtensions.push(extensionValues);
});
}
 
/* </source>
 
====== Masquage d'une extension ======
 
<source lang="javascript"> */
 
function LiveRC_GetExtensionsToHide(){
var ExtToHide = [];
var ExtensionsArray = [Custom_lrcExtensions, lrcExtensions];
for(var extA=0,extAlen=ExtensionsArray.length;extA<extAlen;extA++){
Extensions = ExtensionsArray[extA];
if(!Extensions || Extensions.length==0) continue;
for(var ext=0,extlen=Extensions.length;ext<extlen;ext++){
var RealExtName = Extensions[ext]["name"];
var neededright = Extensions[ext]["neededright"];
if(neededright){
var invert = neededright.indexOf("!")===0;
if(invert) neededright = neededright.substr(1, neededright.length);
var hasRight = lrcUserHasRight(neededright);
var mustShow = ( invert ? !hasRight : hasRight );
if(!mustShow && ExtToHide.indexOf(RealExtName)===-1) ExtToHide.push(RealExtName);
}
}
}
return ExtToHide;
}
 
Ligne 5 603 ⟶ 5 664 :
diff.title = lrcMakeText("DIFFEXTERNAL_TIP");
diff.innerHTML = lrcMakeText("DIFFEXTERNAL_SHORT");
}else if(lrcHasState(state, "FLOW")){ // Flow
diff = document.createElement('a');
diff.className = "lrc_PreviewLink flowDiffLink";
diff.href = lrcGetPageURL(title);
diff.onclick = function(){ changeLigne(tr1ID); liveArticle(title); diffClose(); return false; };
diff.title = lrcMakeText("FLOW_TIP");
diff.innerHTML = lrcMakeText("FLOW_SHORT");
}else{ // simple edit
diff = document.createElement('a');
Ligne 5 851 ⟶ 5 919 :
postArti += lrcMakeIcon("TranslateIcon", {before:'&nbsp;'});
postArti += ' <small><sub>'+rc.type+'⇨'+rc.action+'</sub></small>';
}else if (lrcHasState(state, "FLOW")){
postArti += lrcMakeIcon("FlowIcon", {before:'&nbsp;'});
}else if (lrcHasState(state, "EXTERNAL")){
preArti += lrcMakeIcon("ExternalIcon", {after:'&nbsp;'});
Ligne 5 861 ⟶ 5 931 :
+ 'target="_blank" '
+ '>'+rc.wikidataitem+'</a>)</small></sup>';
 
 
 
}
}
Ligne 6 224 ⟶ 6 291 :
return "'" + (""+str).replace(/\\/g, '\\\\').replace(/'/g, '\\\'') + "'";
}
 
// HTMLize
String.prototype.htmlize = function() {
Ligne 6 693 ⟶ 6 760 :
// Chargement customisation fr-WP
if(mw.config.get('wgServer')==='//fr.wikipedia.org')
mw.loader.load(lrcGetUglyPageURL('MediaWiki:Gadget-LiveRC-frWP/Test.js', '&action=raw&ctype=text/javascript'));
 
// Chargement styles et javascript utilisateur
Ligne 6 998 ⟶ 7 065 :
ammessages = '&ammessages=' + lrcMissingMessages.join('|');
}
if(LiveRC_Config["MediawikiExtensions"][lrcIsExtensionInstalled("Wikibase Client"]) && (lrcGetObjectLength(LiveRC_Config["MediawikiWikibase"])===0 || update)){
lrcDisplayDebug("Get wikibase infos");
meta.push("wikibase");
Ligne 7 379 ⟶ 7 446 :
}
Params = Params.join("&");
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: lrcGetAPIURL('action=edit'),
method: "POST", headers: headers,
Ligne 9 019 ⟶ 9 085 :
 
var withCheckuser = (lrcUserHasRight("checkuser-log") && lrcIsExtensionInstalled("CheckUser"));
 
var withWikibase = (lrcIsExtensionInstalled("Wikibase Client"));
 
var withFlow = (lrcIsExtensionInstalled("Flow"));
 
var URL = lrcGetAPIURL('format=xml&action=query')
Ligne 9 024 ⟶ 9 094 :
+ (withEcho ? '&meta=notifications' : '')
+ '&rcprop=user|comment|parsedcomment|flags|timestamp|title|ids|sizes|tags'+(lrcUserHasRight("autopatrol")?'|patrolled': '')
// + "&rctype=edit|new"+( withWikibase ? "|external" : "" ) // + ( withFlow ? "|142" : "" )
+ '&rcend=' + LiveRC_Config["LastRCtimestamp"] + '&rclimit=' + lrcMakeParam("RCLimit")
+ '&leprop=ids|title|type|user|userid|timestamp|comment|parsedcomment|details|tags'
Ligne 9 418 ⟶ 9 488 :
}
}
if(rc.type && rc.type == 'log') continue; // We don't want "log" rc
 
 
var tags = rcs[i].getElementsByTagName('tags')[0].getElementsByTagName('tag');
Ligne 9 437 ⟶ 9 509 :
if(rc.type && rc.type == 'external')
rc.state = lrcAddState(rc.state, "EXTERNAL");
 
if(rc.type && rc.type == '142')
rc.state = lrcAddState(rc.state, "FLOW");
 
if ((typeof(rc.logtype) != "undefined") && rc.logtype == "newuser") continue;
 
if (lrcMakeParam("GetPageInfos")) {
livePageInfos(rc);
} else {
Ligne 9 849 ⟶ 9 924 :
var token = encodeURIComponent(Page.getAttribute("edittoken"));
var Params = 'list='+data.id + '&token=' + token;
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: lrcGetAPIURL('action=echomarkread'),
method: "POST", headers: headers,
Ligne 9 915 ⟶ 9 989 :
var tr1ID1 = pageid;
if(!tr1ID1) tr1ID1 = rc.id; // filters
if(!tr1ID1) tr1ID1 = generateNewID(); // flow
var tr1ID2 = revid;
if(!tr1ID2) tr1ID2 = rc.cur_revid; // patrol
if(!tr1ID2) tr1ID2 = generateNewID(); // flow
var tr1ID = tr1ID1+"_"+tr1ID2;
var tr1 = document.createElement('tr');
Ligne 10 058 ⟶ 10 134 :
 
var MustBeShown = setRCRevisionShowStatus(rc);
 
var tabScroll = document.getElementById("liveRC_RCList");
var tab = document.getElementById( 'tabRC' );
Ligne 10 065 ⟶ 10 140 :
}
// IE automatically inserts a TBODY that we have to take care of
if (tab.firstChild && (tab.firstChild.nodeName.toLowerCase() == "TBODYtbody")) tab=tab.firstChild;
if(MustBeShown){
var NextTR = getNextLine(timestamp);
Ligne 10 078 ⟶ 10 153 :
}
}
if(!lrcHasState(state, "EXTERNAL") && !lrcHasState(state, "FLOW")){
var elold = document.getElementById(pageid+"_"+oldid);
if(!lrcMakeParam("KeepAllLines")){ // WITH LINE LIMIT
Ligne 10 499 ⟶ 10 574 :
if(lrcHasState(state, "INTERWIKI")) lrcAddClass(tr1, "RcInterwiki");
if(lrcHasState(state, "EXTERNAL")) lrcAddClass(tr1, "RcExternal");
if((rc.newlen == 0) && !lrcHasState(state, "EXTERNALFLOW")) lrcAddClass(tr1, "RcBlankingRcFlow");
if((rc.newlen == 0) && !lrcHasState(state, "EXTERNAL") && !lrcHasState(state, "FLOW")) lrcAddClass(tr1, "RcBlanking");
if(lrcHasState(state, "NEW")) lrcAddClass(tr1, "RcNew");
if(lrcHasState(state, "IP") && !lrcHasState(state, "EXTERNAL")) lrcAddClass(tr1, "RcIp");
Ligne 10 583 ⟶ 10 659 :
}
}
if(!lrcHasState(state, "MINOREDIT") && !lrcHasState(state, "EXTERNAL") && !lrcHasState(state, "FLOW") && !document.getElementById('showRC_'+rc.type).checked)
MustBeShown = false;
if(lrcHasState(state, "MINOREDIT") && !lrcHasState(state, "EXTERNAL") && !lrcHasState(state, "FLOW") && !document.getElementById('showRC_minor').checked)
MustBeShown = false;
if(lrcHasState(state, "EXTERNAL") && !document.getElementById('showRC_external').checked)
Ligne 11 497 ⟶ 11 573 :
stalk.innerHTML = sotherText;
}else{
var stalk = document.createTextNode('')false;
}
var sarti = lrcGetPageLink({title:title});
Ligne 11 514 ⟶ 11 590 :
Small.appendChild(sprotect);
}
Small.appendChild(document.createTextNode(' • '));
Line.appendChild(Small);
Line.appendChildif(stalk);{
Small.appendChild(document.createTextNode(' • '));
Line.appendChild(stalk);
}
Line.appendChild(document.createTextNode(' · '));
Line.appendChild(sarti);
Ligne 12 888 ⟶ 12 966 :
}
Params = Params.join("&");
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: lrcGetAPIURL('action=edit'),
method: "POST", headers: headers,
Ligne 13 026 ⟶ 13 103 :
}
Params = Params.join("&");
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: lrcGetAPIURL('action=edit'),
method: "POST", headers: headers,
Ligne 13 240 ⟶ 13 316 :
}
Params = Params.join("&");
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({url: lrcGetAPIURL('action=edit'),
method: "POST", headers: headers, data: Params,
Ligne 13 308 ⟶ 13 383 :
EditParam["user"] = user;
Params = Params.join("&");
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: lrcGetAPIURL('action=thank'),
method: "POST", headers: headers,
Ligne 13 428 ⟶ 13 502 :
Params = Params.join("&");
EditParam["user"] = user;
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: lrcGetAPIURL('action=edit'),
method: "POST", headers: headers,
Ligne 13 680 ⟶ 13 753 :
}
Params = Params.join("&");
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: lrcGetAPIURL('action=edit'),
method: "POST", headers: headers,
Ligne 13 742 ⟶ 13 814 :
ParamsInURL = ParamsInURL.join("&");
var action = Form.action;
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST",
Ligne 13 801 ⟶ 13 872 :
ParamsInURL = ParamsInURL.join("&");
var action = Form.getAttribute("action");
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST",
Ligne 14 662 ⟶ 14 732 :
try{ Page = action.split("?title=")[1].split("&action=delete")[0]; }catch(e){ }
try{ Page = decodeURIComponent(Page); }catch(e){ }
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST",
Ligne 14 795 ⟶ 14 864 :
try{ Page = action.split("?title=")[1].split("&action=protect")[0]; }catch(e){ }
try{ Page = decodeURIComponent(Page); }catch(e){ }
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST",
Ligne 14 900 ⟶ 14 968 :
}
var action = Form.getAttribute("action");
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST",
Ligne 15 026 ⟶ 15 093 :
try{ Page = action.split("?title=")[1].split("&action=submit")[0]; }catch(e){ }
try{ Page = decodeURIComponent(Page); }catch(e){ }
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST",
Ligne 15 123 ⟶ 15 189 :
var OldPage = Params["wpOldTitle"];
var NewPage = Params["wpNewTitle"];
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST",
Ligne 15 238 ⟶ 15 303 :
var Id = Params["ids"];
var action = Form.action;
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
buildBlanckPreviewBar("<b style='text-decoration: blink;'>Revision delete : <span style='color:red'>"+Page+" id="+Id+"</span>...</b>")
var ParamsInURL = [];
Ligne 15 813 ⟶ 15 877 :
+ '&pageid=' + pageid
+ '&flagtype=' + flag;
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({url:URL,
onSuccess: liveFeedback_FlagCommentDone,
Ligne 15 875 ⟶ 15 938 :
+ '&flagtype=' + flagtype
+ '&note=' + note;
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({url:URL,
onSuccess: liveFeedback_FlagAddNoteDone,
Ligne 16 060 ⟶ 16 122 :
ParamsInURL = ParamsInURL.join("&");
var action = Form.action;
var headers = {'Content-Type':'application/x-www-form-urlencoded'};
headers['Content-Type'] = 'application/x-www-form-urlencoded';
wpajax.http({ url: action,
method: "POST",