Anonymous 61ae70edb161f1.41253399 (dyskusja | edycje) m (16 wersji: import gadżetów) |
Anonymous 61ae70c74919a9.21698335 (dyskusja | edycje) (import z linuxwiki.pl) |
||
Linia 1: | Linia 1: | ||
+ | {{GPL}} |
||
− | /* |
||
− | Z Wikipedii - [[wikipedia:pl:MediaWiki:LiveRC.js]]. |
||
− | ---- |
||
+ | {{Plik zaimportowany|2021-11-25|[[User:PiotrekD|PiotrekD]]}} |
||
− | ==LiveRC== |
||
− | *Documentation : [[:fr:User:EDUCA33E/LiveRC/Documentation]] |
||
− | *Author : [[:fr:User:EDUCA33E]] |
||
− | *Dev & enhancements : [[:fr:User:TiChou]], [[:pl:User:Leafnode]], [[:it:User:Jalo]], [[:fr:User:Nakor]], [[:fr:User:Arkanosis]], [[:pl:User:Nux]] |
||
− | *Version (orig): 0.3.9 (beta) http://fr.wikipedia.org/w/index.php?title=Utilisateur:EDUCA33E/LiveRC.js&oldid=54029111 |
||
− | *Version (fork): 0.3.12 (beta) |
||
− | *Polska strona: [[:pl:Wikipedia:Narzędzia/LiveRC]] |
||
− | |||
− | === Variables globales === |
||
− | |||
− | <source lang="javascript"> */ |
||
− | |||
− | // Init LiveRC only on one special page |
||
− | var lrcNamespaceNumber = 4; // Przestrzeń nazw Simspedia: |
||
− | var lrcTitle = "LiveRC"; |
||
− | |||
− | if (wgNamespaceNumber==lrcNamespaceNumber && wgTitle == lrcTitle) { |
||
− | |||
− | // Variables d'état (pour test sur rc.state); |
||
− | |||
− | var IP = 1; |
||
− | var BOT = 2 << 0; |
||
− | var SYSOP = 2 << 1; |
||
− | var NEW = 2 << 2; |
||
− | var MINOR = 2 << 3; |
||
− | var NEWNS = 2 << 4; |
||
− | var RENAMED = 2 << 5; |
||
− | var PATROLLED = 2 << 6; |
||
− | var REVERT = 2 << 7; |
||
− | var BLANKING = 2 << 8; |
||
− | var REPLACED = 2 << 9; |
||
− | var REDIRECT = 2 << 10; |
||
− | var CATEGORIZED = 2 << 11; |
||
− | var LOCK = 2 << 12; |
||
− | var FULLLOCK = 2 << 13; |
||
− | var HOMONYMIE = 2 << 14; |
||
− | var ADQ = 2 << 15; |
||
− | var BA = 2 << 16; |
||
− | var APDQ = 2 << 17; |
||
− | var COPYRIGHT = 2 << 18; |
||
− | var PAS = 2 << 19; |
||
− | var FIRE = 2 << 20; |
||
− | |||
− | var UPLOAD = 2 << 21; |
||
− | var NEWUSER = 2 << 22; |
||
− | var BLOCK = 2 << 23; |
||
− | var DELETE = 2 << 24; |
||
− | var MOVE = 2 << 25; |
||
− | var PROTECT = 2 << 26; |
||
− | var PATROL = 2 << 27; |
||
− | var ABFILTER = 2 << 28; |
||
− | var TAG = 2 << 29; |
||
− | var REVIEW = 2 << 30; |
||
− | |||
− | /* |
||
− | // ///////////////////////////////////// // |
||
− | == Global variables / Variables globales == |
||
− | // ///////////////////////////////////// // |
||
− | |||
− | */ |
||
− | |||
− | var lrcRCLimit = 30; // LiveRC default RC list size; |
||
− | var lrcPreviewHeight = '250px'; // LiveRC default preview window height; |
||
− | var lrcAutoCloseDiff = 0; // LiveRC default Diff behaviour; |
||
− | var lrcTZ = ''; // Default time zone (+02:00, 02:00, -0200, -05:45, ...) |
||
− | // if not given it is taken from the browser |
||
− | /* |
||
− | |||
− | // //////////////////// // |
||
− | == Internationalization == |
||
− | // //////////////////// // |
||
− | |||
− | */ |
||
− | |||
− | // Wiki specific translation; |
||
− | // ///////////////////// |
||
− | var lang_category = 'Kategoria:'; |
||
− | var lang_category_short = '(kat ?)'; |
||
− | var lang_main_namespace = 'Artykuły'; |
||
− | |||
− | // Menu translation; |
||
− | // ///////////////// |
||
− | var lang_menu = [ { |
||
− | PAUSE: "Pauza", |
||
− | PREVIEW: "Podgląd", |
||
− | LISTS: "Listy", |
||
− | LOWDIFF: "Mini diff", |
||
− | RCLABEL: "OZ", |
||
− | NOBOTS: "Bez botów", |
||
− | IPONLY: "Tylko IP", |
||
− | IPNEW: "IP i nowi", |
||
− | NAMESP: "Przestrzeń", |
||
− | XTIMES: "razy", |
||
− | UNDORC: "Anuluj zmiany", |
||
− | REVERT: "Revert", |
||
− | REASON: "Powód", |
||
− | AVERTS: "Ostrzeżenie", |
||
− | RVMES1: "[[Wikipedia:Narzędzia/LiveRC|LiveRC]]: Anulowanie modyfikacji użytkownika", |
||
− | RVMES2: "cofnięcie do wersji autora", |
||
− | EMPTY: "Pusty", |
||
− | RCSHOW: "Edit", // NOT USED |
||
− | LOGSHOW: "Rejestry", |
||
− | ABSHOW: "Filtry", |
||
− | } ]; |
||
− | |||
− | var lang_tooltips = { |
||
− | // main menu |
||
− | HIDE_ALL: "Wyczyść bieżącą listę", |
||
− | HIDE_REVIEWED: "Ukryj przejrzane zmiany (w bieżącej liście)", |
||
− | HIDE_REVERTS: "Ukryj reverty (w bieżącej liście)", |
||
− | HIDE_NEW: "Ukryj utworzenia stron (w bieżącej liście)", |
||
− | HIDE_BLANKING: "Ukryj usunięcia treści (w bieżącej liście)", |
||
− | HIDE_THIS: "Ukryj tę zmianę na liście", |
||
− | // links in rows |
||
− | TALK_TIP: "Strona dyskusji (w nowym oknie)", |
||
− | TALK_SHORT: "D", |
||
− | CONTRIB_TIP: "Wkład (w panelu)", |
||
− | CONTRIB_SHORT: "W", |
||
− | BLOCK_TIP: "Zablokuj użytkownika (w nowym oknie)", |
||
− | BLOCK_SHORT: "B", |
||
− | DIFF_TIP: "Różnica (w panelu)", |
||
− | DIFF_SHORT: "Diff", |
||
− | HIST_TIP: "Historia (w panelu)", |
||
− | HIST_SHORT: "H", |
||
− | EDIT_TIP: "Edycja (w nowym oknie)", |
||
− | EDIT_SHORT: "E", |
||
− | DEL_TIP: "Skasuj stronę (w nowym oknie)", |
||
− | DEL_SHORT: "S", |
||
− | PROTECT_TIP: "Zabezpiecz stronę (w nowym oknie)", |
||
− | PROTECT_SHORT: "Z", |
||
− | USER_HIDE_TIP: "Ukryj edycje użytkownika", |
||
− | USER_HIDE_SHORT: "U", |
||
− | } |
||
− | |||
− | var lang_log = { |
||
− | UPLOAD: 'Rejestr przesyłania plików', |
||
− | NEWUSER: 'Rejestr tworzenia kont użytkowników', |
||
− | BLOCK: 'Rejestr blokad', |
||
− | DELETE: 'Rejestr usunięć', |
||
− | MOVE: 'Rejestr przeniesień', |
||
− | PROTECT: 'Rejestr zabezpieczeń', |
||
− | REBLOCK: 'modification' // NOT USED |
||
− | }; |
||
− | |||
− | var lang_messages = { |
||
− | SAME_EDITOR: 'kolejna edycja', |
||
− | WARNING: 'Ostrzeżenie', |
||
− | ON_ARTICLE: 'w' |
||
− | }; |
||
− | |||
− | // Comments test table (regexp format); |
||
− | // //////////////////////////////////// |
||
− | var commenttests = [ |
||
− | { state: BLANKING , regex: /UWAGA\! Usunięcie treści/ }, |
||
− | { state: REPLACED , regex: /UWAGA\! Zastąpienie treści hasła bardzo krótkim tekstem\!/ }, |
||
− | { state: REVERT , regex: /^\[\[Wikipedia:Narzędzia\/LiveRC\|LiveRC\]\]: (Usunięcie|Anulowanie)|^Anulowanie wersji|^Przywrócenie wersji autora|^Wycofano edycje użytkownika|^(Przywrócono|przywrócenie) (starszą|poprzednią|przedostatnią) wersję/ } |
||
− | ]; |
||
− | |||
− | // Categories test table (regexp format); |
||
− | var categoriestests = [ |
||
− | { state: LOCK , regex: 'Strona częściowo zabezpieczona' }, |
||
− | { state: FULLLOCK , regex: 'Strona zabezpieczona' }, |
||
− | { state: HOMONYMIE , regex: 'Strony ujednoznaczniające' }, |
||
− | { state: ADQ , regex: 'Dobre artykuły' }, |
||
− | { state: BA , regex: 'Artykuły na medal' }, |
||
− | { state: APDQ , regex: 'Propozycje do Artykułów na medal' }, |
||
− | { state: COPYRIGHT , regex: 'Artykuły podejrzane o naruszenie praw autorskich|Automatyczne wykrywanie NPA' }, |
||
− | { state: PAS , regex: 'Ekspresowe kasowanko' }, |
||
− | { state: FIRE , regex: 'Wikipatrol' } |
||
− | ]; |
||
− | |||
− | // LiveRC default template use; |
||
− | // //////////////////////////// |
||
− | var lstAvert = [ |
||
− | { template: "testP" , string: "Pierwsze i ostatnie" , hasPage: false }, |
||
− | { template: "test4" , string: "Ostatnie" , hasPage: false }, |
||
− | { template: "testW" , string: "Niemerytoryczne" , hasPage: false }, |
||
− | { template: "test" , string: "test" , hasPage: false }, |
||
− | { template: "test1" , string: "Obraźliwe" , hasPage: false }, |
||
− | { template: "test2" , string: "Nonsensowne" , hasPage: false }, |
||
− | { template: "test3" , string: "Przestań niszczyć" , hasPage: false }, |
||
− | { template: "testNie" , string: "Nieencykopedyczne" , hasPage: false }, |
||
− | { template: "testStub" , string: "Stub" , hasPage: false }, |
||
− | { template: "Spam" , string: "Spamer" , hasPage: false }, |
||
− | { template: "testNPA" , string: "NPA" , hasPage: false }, |
||
− | { template: "testNPW" , string: "NPOV" , hasPage: false }, |
||
− | { template: "testPOV" , string: "Kontrowersyjne" , hasPage: false }, |
||
− | { template: "testPE" , string: "Zabawa przyciskami" , hasPage: false }, |
||
− | { template: "testFikcja", string: "Zaznacz świat fikc." , hasPage: false }, |
||
− | { template: "anonim" , string: "Anonim" , hasPage: false } |
||
− | ]; |
||
− | |||
− | // LiveRC default values for checkboxes |
||
− | var lrcShowBotChecked = 'checked'; // change to 'checked' to show only IPs by default |
||
− | var lrcShowIPChecked = ''; // change to 'checked' to show only IPs by default |
||
− | var lrcShowIPNEWChecked = ''; // change to 'checked' to show only IPs and non-patrolled by default (sysops only) |
||
− | var lrcShowRCChecked = 'checked'; // change to 'checked' to hide recent changes by default |
||
− | var lrcShowLogChecked = ''; // change to 'checked' to show logs by default |
||
− | var lrcShowFilterChecked = ''; // change to 'checked' to show filters by default |
||
− | |||
− | // Getting user params |
||
− | // FIXME: works fine in Mozilla and Opera, does not work in Chrome and Safari |
||
− | importScript('User:'+wgUserName+'/LiveRCparam.js'); |
||
− | |||
− | jQuery(document).ready(function() { |
||
− | mw.loader.load('mediawiki.action.history.diff'); |
||
− | }) |
||
− | |||
− | var lastrcid=0,lastfilterid=0,lastlogid=0,lastrctimestamp=1,lastletimestamp=1,lastafltimestamp=1; // Timestamp d'initialisation; |
||
− | |||
− | // Découpage de l'URL et de ses parametres; |
||
− | |||
− | var _GET = new Array(); |
||
− | var _uri = location.href; |
||
− | var _temp_get_arr = _uri.substring(_uri.indexOf('?')+1, _uri.length).split("&"); |
||
− | var _temp_get_arr_1 = new Array(); |
||
− | for(_get_arr_i=0; _get_arr_i<_temp_get_arr.length; _get_arr_i++){ |
||
− | _temp_get_arr_1 = _temp_get_arr[_get_arr_i].split("="); |
||
− | _GET[decodeURIComponent(_temp_get_arr_1[0])] = decodeURIComponent(_temp_get_arr_1[1]); |
||
− | } |
||
− | delete _uri; delete _temp_get_arr; delete _temp_get_arr_1; |
||
− | |||
− | |||
− | |||
− | var lstSysop = new Array(); // Sysop list; |
||
− | var lstContact = new Array(); // Contact list; |
||
− | var lstContact2 = new Array(); // Contact list; |
||
− | var lstRevoc = new Array(); // Reverted list; |
||
− | var lstHidden = new Array(); // Hidden users list; |
||
− | |||
− | // Has user patrol rights? |
||
− | var lrcPatrol = false; |
||
− | var lrcAPIlimit = 500; |
||
− | if(wgUserGroups.indexOf("autopatrolled") != -1) |
||
− | lrcPatrol = true; |
||
− | |||
− | // Is user Sysop; |
||
− | var lrcAdmin = false; // default value; |
||
− | if(wgUserGroups.indexOf("sysop") != -1) |
||
− | { |
||
− | lrcAdmin = true; |
||
− | lrcPatrol = true; |
||
− | } |
||
− | |||
− | // Watchlist; |
||
− | var lstSuivi = new Array(); |
||
− | var lstSuiviHH = new Array(); |
||
− | } |
||
− | |||
− | /* </source> |
||
− | |||
− | ===Utilities=== |
||
− | |||
− | <source lang="javascript"> */ |
||
− | var wpajax = { |
||
− | http: function(bundle) { |
||
− | // mandatory: bundle.url |
||
− | // optional: bundle.async |
||
− | // optional: bundle.method |
||
− | // optional: bundle.headers |
||
− | // optional: bundle.data |
||
− | // optional: bundle.onSuccess (xmlhttprequest, bundle) |
||
− | // optional: bundle.onFailure (xmlhttprequest, bundle) |
||
− | // optional: bundle.otherStuff OK too, passed to onSuccess and onFailure |
||
− | 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) |
||
− | wpajax.httpComplete(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) |
||
− | xmlhttp.setRequestHeader(field,bundle.headers[field]); |
||
− | } |
||
− | xmlhttp.send(bundle.data ? bundle.data : null); |
||
− | } |
||
− | return xmlhttp; |
||
− | }, |
||
− | |||
− | httpComplete: function(xmlhttp,bundle) { |
||
− | if (xmlhttp.status == 200 || xmlhttp.status == 302) { |
||
− | if (bundle.onSuccess) |
||
− | bundle.onSuccess(xmlhttp,bundle); |
||
− | } else if (bundle.onFailure) { |
||
− | bundle.onFailure(xmlhttp,bundle); |
||
− | } else { |
||
− | // A activer en debug mode ? |
||
− | // alert(xmlhttp.statusText); |
||
− | } |
||
− | } |
||
− | }; |
||
− | |||
− | /////////////////////////////////////////////////////////////////////////////// |
||
− | // * Recherche d'un élement dont on connait l'Id mais non unique, donc sans utiliser document.getElementById() |
||
− | // Thanks to Dr Brains |
||
− | |||
− | function getElementWithId( elementId , elementTagName , elementParentNode ){ |
||
− | if(!elementParentNode) elementParentNode = document; |
||
− | |||
− | if (elementParentNode.getElementById) return elementParentNode.getElementById(elementId); |
||
− | |||
− | var TheElement = false; |
||
− | var Elements = elementParentNode.getElementsByTagName(elementTagName); |
||
− | var elementcount = 0; |
||
− | while(elementcount<Elements.length){ |
||
− | var Id = Elements[elementcount].getAttribute('id'); |
||
− | if(Id){ |
||
− | if(Id==elementId){ |
||
− | TheElement = Elements[elementcount]; |
||
− | break; |
||
− | } |
||
− | } |
||
− | elementcount++ |
||
− | } |
||
− | if (! TheElement) return null; |
||
− | return TheElement; |
||
− | } |
||
− | /////////////////////////////////////////////////////////////////////////////// |
||
− | |||
− | |||
− | function getRights(xmlreq, data) { |
||
− | var api = xmlreq.responseXML; |
||
− | |||
− | if (api.firstChild.nodeName == "error") return; |
||
− | |||
− | var rights = api.getElementsByTagName('query')[0].getElementsByTagName('userinfo')[0].getElementsByTagName('rights')[0].getElementsByTagName('r'); |
||
− | var len = rights.length; |
||
− | var i; |
||
− | var id,right; |
||
− | |||
− | for (i=0; i<len; i++) { |
||
− | right = rights[i].textContent; |
||
− | // Handle IE |
||
− | if (!right)right = rights[i].text; |
||
− | |||
− | if (right == "apihighlimits") lrcAPIlimit=5000; |
||
− | if (right == "autopatrol") lrcPatrol=true; |
||
− | } |
||
− | |||
− | buildControlBar(); |
||
− | } |
||
− | |||
− | function buildControlBar() |
||
− | { |
||
− | var top = document.getElementById( 'top' ); |
||
− | if (top != null) { |
||
− | top.innerHTML = ""; |
||
− | top.style.display = "none"; |
||
− | } |
||
− | var siteSub = document.getElementById( 'siteSub' ); |
||
− | var contentSub = document.getElementById( 'contentSub' ); |
||
− | var rtb = document.getElementById( 'RealTitleBanner' ); |
||
− | var rt = document.getElementById( 'RealTitle' ); |
||
− | var pca = document.getElementById( 'p-cactions' ); |
||
− | |||
− | |||
− | if (siteSub != null) siteSub.style.display = "none"; |
||
− | if (contentSub != null) contentSub.style.display = "none"; |
||
− | if (rtb != null) rtb.style.display = "none"; |
||
− | if (rt != null) rt.style.display = "none"; |
||
− | if (pca != null) pca.style.display = "none"; |
||
− | |||
− | var showIPNEWbox = ''; |
||
− | if (lrcPatrol) |
||
− | showIPNEWbox = '<input id="showIPNEW" type="checkbox" ' + lrcShowIPNEWChecked + '/>' + |
||
− | '<label for="showIPNEW">' + lang_menu[0].IPNEW + ' </label>'; |
||
− | |||
− | var lvPreviewFoot = document.getElementById( 'livePreviewFoot' ); |
||
− | lvPreviewFoot.innerHTML = '<a href="javascript:;" onClick="supprLigne(\'*\');" style="color: red; font-weight: bold;" title="'+lang_tooltips.HIDE_ALL+'">X</a> | ' + |
||
− | '<a href="javascript:;" onClick="supprLigne(\'d\');" style="color: rgb(255, 235, 71); font-weight: bold;" title="'+lang_tooltips.HIDE_REVIEWED+'">X</a> ' + |
||
− | '<a href="javascript:;" onClick="supprLigne(\'r\');" style="color: rgb(255, 99, 83); font-weight: bold;" title="'+lang_tooltips.HIDE_REVERTS+'">X</a> ' + |
||
− | '<a href="javascript:;" onClick="supprLigne(\'n\');" style="color: rgb(178, 243, 113); font-weight: bold;" title="'+lang_tooltips.HIDE_NEW+'">X</a> ' + |
||
− | '<a href="javascript:;" onClick="supprLigne(\'c\');" style="color: white; font-weight: bold;" title="'+lang_tooltips.HIDE_BLANKING+'">X</a>' + |
||
− | '<input id="stopLive" type="checkbox" value="true" />' + |
||
− | '<label for="stopLive">' + lang_menu[0].PAUSE + '</label>' + |
||
− | ' • ' + |
||
− | '<input id="shidPrev" type="checkbox" onclick="showHideObj(this, \'divLivePreview\');" />' + |
||
− | '<label for="shidPrev">' + lang_menu[0].PREVIEW + '</label>' + |
||
− | '<input id="showDiffR" type="checkbox" />' + |
||
− | '<label for="showDiffR">'+ lang_menu[0].LOWDIFF + '</label>' + |
||
− | ' • ' + |
||
− | '<input id="shidList" type="checkbox" onclick="showHideObj(this, \'liveFollow\');" />' + |
||
− | '<label for="shidList">' + lang_menu[0].LISTS + '</label>' + |
||
− | ' • ' + |
||
− | '<input id="showBot" type="checkbox" ' + lrcShowBotChecked + ' />' + |
||
− | '<label for="showBot">' + lang_menu[0].NOBOTS + '</label>' + |
||
− | '<input id="showIP" type="checkbox" ' + lrcShowIPChecked + '/>' + |
||
− | '<label for="showIP">' + lang_menu[0].IPONLY + ' </label>' + |
||
− | showIPNEWbox + |
||
− | ' • ' + |
||
− | '<input id="showRC" type="checkbox" ' + lrcShowRCChecked + ' />' + |
||
− | '<label for="showRC">' + lang_menu[0].RCLABEL + ' </label>' + |
||
− | '<input id="showLog" type="checkbox" ' + lrcShowLogChecked + '/>' + |
||
− | '<label for="showLog">' + lang_menu[0].LOGSHOW + ' </label>' + |
||
− | '<input id="showFilter" type="checkbox" ' + lrcShowFilterChecked + '/>' + |
||
− | '<label for="showFilter">' + lang_menu[0].ABSHOW + ' • </label>' + |
||
− | '<span id="selectNS" />'; |
||
− | |||
− | if (lrcPreviewHeight) document.getElementById('livePreview').style.height = lrcPreviewHeight; |
||
− | |||
− | liveSysop(); |
||
− | } |
||
− | |||
− | // Parser |
||
− | if (window.DOMParser) var gml_xmlparser = new DOMParser(); |
||
− | |||
− | function gml_XMLParse(string) { |
||
− | // nie dostaje wcale XML-a, ale dokumenty HTML |
||
− | // MediaWiki używa teraz HTML5 |
||
− | return jQuery.parseHTML("<div>" + string + "</div>")[0]; |
||
− | } |
||
− | |||
− | // HTMLize |
||
− | String.prototype.htmlize = function() { |
||
− | var chars = new Array('&','<','>','"'); |
||
− | var entities = new Array('amp','lt','gt','quot'); |
||
− | var string = this; |
||
− | for (var i=0; i<chars.length; i++) { |
||
− | var regex = new RegExp(chars[i], "g"); |
||
− | string = string.replace(regex, '&' + entities[i] + ';'); |
||
− | } |
||
− | return string; |
||
− | } |
||
− | |||
− | /* </source> |
||
− | |||
− | === LiveDiff === |
||
− | |||
− | <source lang="javascript"> */ |
||
− | |||
− | function liveDiff(page, id, oldid) { |
||
− | var el = document.getElementById( 'livePreviewTitle' ); |
||
− | el.innerHTML="<b style='text-decoration: blink;'>Diff : <span style='color:red'>"+page+"</span>...</b>"; |
||
− | wpajax.http({ url: wgServer + wgScriptPath + '/index.php?title='+encodeURIComponent(page)+'&diffonly=1&diff='+id+'&oldid='+oldid, |
||
− | onSuccess: getDiff, mpage: page, mid: id, moldid:oldid}); |
||
− | } |
||
− | |||
− | function getDiff(xmlreq, data) { |
||
− | // temporary fix for incorrect HTML code |
||
− | var text = xmlreq.responseText; |
||
− | var newtext = text.replace(/ <span class=\"mw-revdelundel-link/g, " <span class=\"mw-revdelundel-link"); |
||
− | var doc = gml_XMLParse(newtext); |
||
− | var page=data.mpage; |
||
− | var oldid=data.moldid; |
||
− | var id=data.mid; |
||
− | var bC = getElementWithId('bodyContent', 'div', doc); |
||
− | if (bC == null) bC = getElementWithId('article', 'div', doc); |
||
− | var LP = document.getElementById( 'livePreview' ); |
||
− | var dLP = document.getElementById( 'divLivePreview' ); |
||
− | var lD = getElementsByClass('diff',bC,null); |
||
− | |||
− | var upage=page.replace(new RegExp(/\'/g), "\\'"); |
||
− | |||
− | if (lD[0] == null) { |
||
− | LP.innerHTML = bC.innerHTML; |
||
− | if (LP.innerHTML == "undefined") LP.innerHTML = bC.xml; |
||
− | } |
||
− | else { |
||
− | if (document.getElementById('showDiffR').checked) { |
||
− | var avantEl = getElementsByClass('diff-deletedline',bC,null); |
||
− | var apresEl = getElementsByClass('diff-addedline',bC,null); |
||
− | var rollback = getElementsByClass('mw-rollback-link',bC,null); |
||
− | if (rollback[0] == null) |
||
− | var rl = ""; |
||
− | else |
||
− | var rl = rollback[0].innerHTML+"<br />"; |
||
− | var avant = ""; |
||
− | var apres = ""; |
||
− | var lav = avantEl.length; |
||
− | var lap = apresEl.length; |
||
− | for(var n=0; n < lav ; n++) |
||
− | avant = avant + avantEl[n].innerHTML + "<br />"; |
||
− | for(var n=0; n < lap ; n++) |
||
− | apres = apres + apresEl[n].innerHTML + "<br />"; |
||
− | LP.innerHTML = rl+"<table width='100%'><tr><td width='50%' class='diff-deletedline'>"+avant+"</td><td class='diff-addedline'>"+apres+"</td></tr></table>"; |
||
− | } |
||
− | else { |
||
− | LP.innerHTML = "<table border='0' width='98%' cellpadding='0' cellspacing='4' class='diff'>"+lD[0].innerHTML+"</table>"; |
||
− | } |
||
− | } |
||
− | if (dLP.style.display == "none") { |
||
− | var elcb = document.getElementById( 'shidPrev' ); |
||
− | elcb.checked="true"; |
||
− | dLP.style.display = "inline"; |
||
− | } |
||
− | |||
− | var entete = document.getElementById( 'livePreviewTitle' ); |
||
− | entete.innerHTML='<b><a href="'+wgServer + wgArticlePath.replace(/\$1/, encodeURI(page)) + '" target="_new">' + page + '</a></b> • ' + |
||
− | '(<a href="javascript:;" onClick="liveHist(\''+upage+'\');" style="color:darkorange">Hist</a>)'; |
||
− | |||
− | var asNextDiff = getElementWithId('differences-nextlink', 'a', doc); |
||
− | if ((asNextDiff == null) && lrcPatrol) { |
||
− | var optAvert = ""; |
||
− | var optl = lstAvert.length; |
||
− | for (j=0; j<optl; j++) { |
||
− | optAvert += '<option value="'+lstAvert[j].template; |
||
− | if(lstAvert[j].hasPage) optAvert += '|'+upage; |
||
− | optAvert += '">'+lstAvert[j].string+'</option>'; |
||
− | } |
||
− | |||
− | // Get username of submitter |
||
− | var user1 = getElementWithId('mw-diff-otitle2', 'div', doc); |
||
− | if (user1 != null) { |
||
− | var usertmp=user1.innerHTML; |
||
− | if (!usertmp) usertmp=user1.firstChild.xml; |
||
− | // user1 = usertmp.replace(new RegExp(/<a (.*)>(.*)<\/a> \(<a(.*)/g), "$2"); |
||
− | user1 = usertmp.replace(new RegExp(/<a (.*)>(.*)<\/a>(.*)\((.*)\)/g), "$2"); |
||
− | user1 = user1.replace(new RegExp(/(.*)<(.*)>/g), "$1"); |
||
− | } |
||
− | var user2 = getElementWithId('mw-diff-ntitle2', 'div', doc); |
||
− | if (user2 != null) { |
||
− | var usertmp=user2.innerHTML; |
||
− | if (!usertmp) usertmp=user2.firstChild.xml; |
||
− | // user2 = usertmp.replace(new RegExp(/<a (.*)>(.*)<\/a> \(<a(.*)/g), "$2"); |
||
− | user2 = usertmp.replace(new RegExp(/<a (.*)>(.*)<\/a>(.*)\(<a(.*)/g), "$2"); |
||
− | } |
||
− | user1=user1.replace(new RegExp(/\'/g), "\\'"); |
||
− | user2=user2.replace(new RegExp(/\'/g), "\\'"); |
||
− | var identique=""; |
||
− | if(user1 == user2) { |
||
− | identique = "<b style='color:red'>[" + lang_messages.SAME_EDITOR + "]</b> "; |
||
− | } |
||
− | |||
− | entete.innerHTML = '<table width="100%" class="creator"><tr><td>' + entete.innerHTML + |
||
− | '</td><td align="right"><small>' + identique + |
||
− | // Verifier avant si le patrouilleur peut modifier cette page ? (query.php?what=permissions&titles=page) |
||
− | '[<a id="LiveRevertLink" href="javascript:getLiveMessage(\'liverevert\',\''+user1+'\',\''+user2+'\',\''+upage+'\',\''+oldid+'\');" >' + lang_menu[0].UNDORC+'</a>] • ' + |
||
− | lang_menu[0].REASON+' : <input id="LiveRevertMessage" /> ••• ' + |
||
− | '[<a id="LiveAvertoLink" href="javascript:getLiveAverto(\''+user2+'\');">'+lang_menu[0].AVERTS+'</a>] : ' + |
||
− | '<select id="averto">' + optAvert + '</select>' + |
||
− | '</td></tr></table>'; |
||
− | document.getElementById('LiveRevertMessage').focus(); |
||
− | } |
||
− | } |
||
− | |||
− | function getLiveAverto(user) { |
||
− | var link = document.getElementById('LiveAvertoLink'); |
||
− | link.href = "javascript:;"; |
||
− | link.style.color = "silver"; |
||
− | link.style.cursor = "default"; |
||
− | link.style.textDecoration = "none"; |
||
− | document.getElementById('averto').disabled = true; |
||
− | var message = document.getElementById('averto').value; |
||
− | wpajax.http({ url: wgServer + wgScriptPath + '/index.php?title=User_Talk:' + encodeURIComponent(user) + '&action=edit', |
||
− | onSuccess: postLiveAverto, |
||
− | user: user, message: message }); |
||
− | } |
||
− | |||
− | function postLiveAverto(xmlreq, data) { |
||
− | var parser = new DOMParser(); |
||
− | var doc = parser.parseFromString(xmlreq.responseText, 'application/xhtml+xml'); |
||
− | |||
− | var user = data.user; |
||
− | var message = data.message.replace(new RegExp(/\\'/g),"'"); |
||
− | |||
− | var wpTextbox1 = encodeURIComponent(doc.getElementById('wpTextbox1').value + '\n\n{{subst:' + message + '}} ~~~~\n'); |
||
− | |||
− | var inputs = doc.getElementById('editform').getElementsByTagName('input'); |
||
− | var editform = new Array(); |
||
− | for (i=0; i<inputs.length; i++) { |
||
− | editform[inputs[i].name] = inputs[i].value; |
||
− | } |
||
− | var wpStarttime = encodeURIComponent(editform['wpStarttime']); |
||
− | var wpEdittime = encodeURIComponent(editform['wpEdittime']); |
||
− | var wpEditToken = encodeURIComponent(editform['wpEditToken']); |
||
− | |||
− | var wpSummary = encodeURIComponent('LiveRC : ' + lang_messages.WARNING + ' ' + message.replace(new RegExp(/\|(.*)/), |
||
− | ' ' + lang_messages.ON_ARTICLE + ' [[$1]]') + ' !'); |
||
− | |||
− | var headers = new Array(); |
||
− | headers['Content-Type'] = 'application/x-www-form-urlencoded'; |
||
− | wpajax.http({ url: wgServer + wgScriptPath + '/index.php?title=User_Talk:' + encodeURI(user) + '&action=submit', |
||
− | method: "POST", headers: headers, |
||
− | data: 'wpSave=1&wpTextbox1=' + wpTextbox1 + '&wpStarttime=' + wpStarttime + '&wpEdittime=' + wpEdittime |
||
− | + '&wpEditToken=' + wpEditToken + '&wpSummary=' + wpSummary}); |
||
− | } |
||
− | |||
− | function getLiveMessage(where, user1, user2, page, oldid) { |
||
− | var links = [ document.getElementById('LiveRevertLink') ]; |
||
− | var i,len=links.length; |
||
− | for (i=0; i<len; i++) { |
||
− | links[i].href = "javascript:;"; |
||
− | links[i].style.color = "silver"; |
||
− | links[i].style.cursor = "default"; |
||
− | links[i].style.textDecoration = "none"; |
||
− | } |
||
− | document.getElementById('LiveRevertMessage').disabled = true; |
||
− | var message = document.getElementById('LiveRevertMessage').value; |
||
− | wpajax.http({ url: wgServer + wgScriptPath + '/index.php?title=' + encodeURI(page) + '&action=edit&oldid=' + oldid, |
||
− | onSuccess: postLiveRevert, |
||
− | where: where, page: page, user1: user1, user2: user2, message: message }); |
||
− | } |
||
− | |||
− | function postLiveRevert(xmlreq, data) { |
||
− | var parser = new DOMParser(); |
||
− | var doc = parser.parseFromString(xmlreq.responseText, 'application/xhtml+xml'); |
||
− | |||
− | var where = data.where; |
||
− | var page = data.page; |
||
− | var user1 = data.user1; |
||
− | var user2 = data.user2; |
||
− | var message = data.message; |
||
− | |||
− | var wpTextbox1 = encodeURIComponent(doc.getElementById('wpTextbox1').value); |
||
− | |||
− | var inputs = doc.getElementById('editform').getElementsByTagName('input'); |
||
− | var editform = new Array(); |
||
− | for (i=0; i<inputs.length; i++) { |
||
− | editform[inputs[i].name] = inputs[i].value; |
||
− | } |
||
− | var wpStarttime = encodeURIComponent(editform['wpStarttime']); |
||
− | var wpEdittime = encodeURIComponent(editform['wpEdittime']); |
||
− | var wpEditToken = encodeURIComponent(editform['wpEditToken']); |
||
− | |||
− | switch(where) { |
||
− | case 'liverevert': |
||
− | var wpSummary = lang_menu[0].RVMES1 + ' [[Special:Contributions/' + user2 + '|' + user2 |
||
− | + ']]; '+lang_menu[0].RVMES2+' [[User:' + user1 + '|' + user1 + ']]'; |
||
− | break; |
||
− | /* case 'livevandalism': |
||
− | var wpSummary = 'LiveRC : Révocation de vandalisme par [[Special:Contributions/' + user2 + '|' + user2 |
||
− | + ']]; retour a la version de [[User:' + user1 + '|' + user1 + ']]'; |
||
− | break; */ |
||
− | } |
||
− | if (message) |
||
− | wpSummary = wpSummary + ' ; ' + message; |
||
− | wpSummary = encodeURIComponent(wpSummary); |
||
− | |||
− | var headers = new Array(); |
||
− | headers['Content-Type'] = 'application/x-www-form-urlencoded'; |
||
− | wpajax.http({ url: wgServer + wgScriptPath + '/index.php?title=' + encodeURIComponent(page) + '&action=submit', |
||
− | method: "POST", headers: headers, |
||
− | data: 'wpSave=1&wpTextbox1=' + wpTextbox1 + '&wpStarttime=' + wpStarttime + '&wpEdittime=' + wpEdittime |
||
− | + '&wpEditToken=' + wpEditToken + '&wpSummary=' + wpSummary}); |
||
− | } |
||
− | |||
− | /* </source> |
||
− | |||
− | === LiveHist === |
||
− | |||
− | <source lang="javascript"> */ |
||
− | |||
− | function liveHist(page) { |
||
− | var el = document.getElementById( 'livePreviewTitle' ); |
||
− | el.innerHTML="<b style='text-decoration: blink;'>Hist : <span style='color:red'>"+page+"</span>...</b>"; |
||
− | wpajax.http({url:wgServer + wgScriptPath + '/index.php?title=' + encodeURIComponent(page) + '&action=history', onSuccess: getHist, message: page }); |
||
− | } |
||
− | |||
− | function getHist(xmlreq, data) { |
||
− | doc = gml_XMLParse(xmlreq.responseText); |
||
− | bC = getElementWithId('bodyContent', 'div', doc); |
||
− | if (bC == null) bC = getElementWithId('article', 'div', doc);; |
||
− | var c=data.message; |
||
− | var LP = document.getElementById( 'livePreview' ); |
||
− | var dLP = document.getElementById( 'divLivePreview' ); |
||
− | LP.innerHTML = bC.innerHTML; |
||
− | if (LP.innerHTML == "undefined") LP.innerHTML = bC.xml; |
||
− | if (dLP.style.display == "none") { |
||
− | var elcb = document.getElementById( 'shidPrev' ); |
||
− | elcb.checked="true"; |
||
− | dLP.style.display = "inline"; |
||
− | } |
||
− | var elt = document.getElementById( 'livePreviewTitle' ); |
||
− | elt.innerHTML='<b><a href="'+wgServer+wgArticlePath.replace(/\$1/, encodeURI(c))+'" target="_new">'+c+'</a></b>'; |
||
− | } |
||
− | |||
− | /* </source> |
||
− | |||
− | === LiveArticle === |
||
− | |||
− | <source lang="javascript"> */ |
||
− | |||
− | function liveArticle(page) { |
||
− | var el = document.getElementById( 'livePreviewTitle' ); |
||
− | el.innerHTML="<b style='text-decoration: blink;'><span style='color:red'>"+page+"</span>...</b>"; |
||
− | wpajax.http({url:wgServer + wgScriptPath + '/index.php?title=' + encodeURIComponent(page) + '&redirect=no', onSuccess: getArticle, message: page }); |
||
− | } |
||
− | |||
− | function getArticle(xmlreq, data) { |
||
− | doc = gml_XMLParse(xmlreq.responseText); |
||
− | bC = getElementWithId('bodyContent', 'div', doc); |
||
− | if (bC == null) bC = getElementWithId('article', 'div', doc); |
||
− | var c=data.message; |
||
− | var LP = document.getElementById( 'livePreview' ); |
||
− | var dLP = document.getElementById( 'divLivePreview' ); |
||
− | LP.innerHTML = bC.innerHTML; |
||
− | if (LP.innerHTML == "undefined") LP.innerHTML = bC.xml; |
||
− | if (dLP.style.display == "none") { |
||
− | var elcb = document.getElementById( 'shidPrev' ); |
||
− | elcb.checked="true"; |
||
− | dLP.style.display = "inline"; |
||
− | } |
||
− | var elt = document.getElementById( 'livePreviewTitle' ); |
||
− | elt.innerHTML='<b><a href="'+wgServer+wgArticlePath.replace(/\$1/, encodeURI(c))+'" target="_new">'+c+'</a></b>'; |
||
− | } |
||
− | |||
− | /* </source> |
||
− | |||
− | === LiveContrib === |
||
− | |||
− | <source lang="javascript"> */ |
||
− | |||
− | function liveContrib(user) { |
||
− | var el = document.getElementById( 'livePreviewTitle' ); |
||
− | el.innerHTML="<b style='text-decoration: blink;'><span style='color:red'>"+user+"</span>...</b>"; |
||
− | wpajax.http({url:wgServer + wgArticlePath.replace(/\$1/, 'Special:Contributions/'+encodeURIComponent(user)), |
||
− | onSuccess: getContrib, message: user }); |
||
− | } |
||
− | |||
− | function getContrib(xmlreq, data) { |
||
− | doc = gml_XMLParse(xmlreq.responseText); |
||
− | bC = getElementWithId('bodyContent', 'div', doc); |
||
− | if (bC == null) bC = getElementWithId('article', 'div', doc); |
||
− | var user=data.message; |
||
− | var LP = document.getElementById( 'livePreview' ); |
||
− | var dLP = document.getElementById( 'divLivePreview' ); |
||
− | LP.innerHTML = bC.innerHTML; |
||
− | if (LP.innerHTML == "undefined") LP.innerHTML = bC.xml; |
||
− | if (dLP.style.display == "none") { |
||
− | var elcb = document.getElementById( 'shidPrev' ); |
||
− | elcb.checked="true"; |
||
− | dLP.style.display = "inline"; |
||
− | } |
||
− | var utilde=user.replace(new RegExp(/\'/g), "\\'"); |
||
− | |||
− | var optAvert = ""; |
||
− | var optl = lstAvert.length; |
||
− | for (j=0; j<optl; j++) { |
||
− | if(lstAvert[j].hasPage) continue; |
||
− | optAvert += '<option value="'+lstAvert[j].template+'">'+lstAvert[j].string+'</option>'; |
||
− | } |
||
− | |||
− | var entete = document.getElementById( 'livePreviewTitle' ); |
||
− | entete.innerHTML='<b><a href="'+wgServer+wgArticlePath.replace(/\$1/, 'User:'+encodeURIComponent(user))+'" target="_new">'+user+'</a></b>'; |
||
− | entete.innerHTML = '<table width="100%" class="creator"><tr><td>'+entete.innerHTML + |
||
− | '</td><td align="right"><small>' + |
||
− | '[<a id="LiveAvertoLink" href="javascript:var message=getLiveAverto(\''+utilde+'\');">'+lang_menu[0].AVERTS+'</a>] : ' + |
||
− | '<select id="averto">' + optAvert + '</select>' + '</td></tr></table>'; |
||
− | } |
||
− | |||
− | /* </source> |
||
− | |||
− | === LiveLog (:it:User:Jalo) === |
||
− | |||
− | <source lang="javascript"> */ |
||
− | |||
− | function liveLog(action,page) { |
||
− | var titolo = ''; |
||
− | switch(action) { |
||
− | case 'upload': |
||
− | titolo = lang_log.UPLOAD; |
||
− | break; |
||
− | case 'newusers': |
||
− | titolo = lang_log.NEWUSER; |
||
− | break; |
||
− | case 'block': |
||
− | titolo = lang_log.BLOCK; |
||
− | break; |
||
− | case 'delete': |
||
− | titolo = lang_log.DELETE; |
||
− | break; |
||
− | case 'move': |
||
− | titolo = lang_log.MOVE; |
||
− | break; |
||
− | case 'protect': |
||
− | titolo = lang_log.PROTECT; |
||
− | break; |
||
− | default: |
||
− | break; |
||
− | } |
||
− | |||
− | var el = document.getElementById( 'livePreviewTitle' ); |
||
− | el.innerHTML="<b style='text-decoration: blink;'><span style='color:red'>"+titolo+"</span>...</b>"; |
||
− | wpajax.http({url:wgServer + wgScriptPath + '/index.php?title=Special:Log&type=' + action + "&user=&page=" + encodeURIComponent(page), onSuccess: getLog, message: page }); |
||
− | } |
||
− | |||
− | function getLog(xmlreq, data) { |
||
− | doc = gml_XMLParse(xmlreq.responseText); |
||
− | bC = getElementWithId('bodyContent', 'div', doc); |
||
− | if (bC == null) bC = getElementWithId('article', 'div', doc); |
||
− | var c=data.message; |
||
− | var LP = document.getElementById( 'livePreview' ); |
||
− | var dLP = document.getElementById( 'divLivePreview' ); |
||
− | LP.innerHTML = bC.innerHTML; |
||
− | if (LP.innerHTML == "undefined") LP.innerHTML = bC.xml; |
||
− | if (dLP.style.display == "none") { |
||
− | var elcb = document.getElementById( 'shidPrev' ); |
||
− | elcb.checked="true"; |
||
− | dLP.style.display = "inline"; |
||
− | } |
||
− | var elt = document.getElementById( 'livePreviewTitle' ); |
||
− | elt.innerHTML='<b><a href="'+wgServer+wgArticlePath.replace(/\$1/, encodeURI(c))+'" target="_new">'+c+'</a></b>'; |
||
− | } |
||
− | |||
− | /* </source> |
||
− | |||
− | === LiveFilter === |
||
− | */ |
||
− | |||
− | function liveFilter(id) { |
||
− | var el = document.getElementById( 'livePreviewTitle' ); |
||
− | el.innerHTML="<b style='text-decoration: blink;'>Filter: <span style='color:red'></span>...</b>"; |
||
− | wpajax.http({ url: wgServer + wgScriptPath + '/index.php?title=Special:AbuseLog&details='+id, |
||
− | onSuccess: getFilter, mid: id}); |
||
− | } |
||
− | |||
− | function getFilter(xmlreq, data) { |
||
− | doc = gml_XMLParse(xmlreq.responseText); |
||
− | bC = getElementWithId('bodyContent', 'div', doc); |
||
− | if (bC == null) bC = getElementWithId('article', 'div', doc); |
||
− | var LP = document.getElementById( 'livePreview' ); |
||
− | var dLP = document.getElementById( 'divLivePreview' ); |
||
− | LP.innerHTML = bC.innerHTML; |
||
− | if (LP.innerHTML == "undefined") LP.innerHTML = bC.xml; |
||
− | if (dLP.style.display == "none") { |
||
− | var elcb = document.getElementById( 'shidPrev' ); |
||
− | elcb.checked="true"; |
||
− | dLP.style.display = "inline"; |
||
− | } |
||
− | var elt = document.getElementById( 'livePreviewTitle' ); |
||
− | elt.innerHTML='<b><a href="'+wgServer+wgScriptPath+'/index.php?title=Special:AbuseLog&details='+data.mid+'" target="_new">Détails</a></b>'; |
||
− | } |
||
− | |||
− | |||
− | /* |
||
− | === LiveSysop === |
||
− | |||
− | <source lang="javascript"> */ |
||
− | |||
− | function liveSysop() { |
||
− | wpajax.http({url:wgServer + wgScriptPath + '/api.php?action=query&list=allusers&augroup=sysop&aulimit=' +lrcAPIlimit +'&format=xml', |
||
− | onSuccess: getSysop, message: "Traitement en cours...\n\n" }); |
||
− | } |
||
− | |||
− | function getSysop(xmlreq, data) { |
||
− | var api = xmlreq.responseXML.getElementsByTagName('api')[0]; |
||
− | |||
− | if (api.firstChild.nodeName == "error") return; |
||
− | |||
− | var rcs = api.getElementsByTagName('query')[0].getElementsByTagName('allusers')[0].getElementsByTagName('u'); |
||
− | |||
− | leni=rcs.length; |
||
− | for (i=leni-1; i>=0; i--) { |
||
− | |||
− | lstSysop.push(rcs[i].getAttribute('name')); |
||
− | |||
− | } |
||
− | liveNS(); |
||
− | } |
||
− | |||
− | function liveWatch() { |
||
− | wpajax.http({url:wgServer + wgScriptPath + '/api.php?action=query&list=watchlistraw&wrlimit=' +lrcAPIlimit +'&format=xml', |
||
− | onSuccess: getWatch, message: "Traitement en cours..." }); |
||
− | } |
||
− | |||
− | function getWatch(xmlreq, data) { |
||
− | var api = xmlreq.responseXML.getElementsByTagName('api')[0]; |
||
− | |||
− | if (api.firstChild.nodeName == "error") return; |
||
− | |||
− | var rcs = api.getElementsByTagName('watchlistraw')[0].getElementsByTagName('wr'); |
||
− | |||
− | leni=rcs.length; |
||
− | for (i=0; i<leni; i++) { |
||
− | |||
− | lstSuivi.push(rcs[i].getAttribute('title')); |
||
− | lstSuiviHH.push("--:--"); |
||
− | |||
− | } |
||
− | |||
− | var wc1=api.getElementsByTagName('query-continue')[0]; |
||
− | if (wc1) |
||
− | { |
||
− | var wrcontinue=wc1.getElementsByTagName('watchlistraw')[0].getAttribute('wrcontinue'); |
||
− | wpajax.http({url:wgServer + wgScriptPath + '/api.php?action=query&list=watchlistraw&wrlimit=' +lrcAPIlimit +'&format=xml&wrcontinue=' + wrcontinue, |
||
− | onSuccess: getWatch, message: "Traitement en cours..." }); |
||
− | } |
||
− | else |
||
− | liveRC(); |
||
− | } |
||
− | |||
− | function liveNS() { |
||
− | wpajax.http({url: wgServer + wgScriptPath + '/api.php?action=query&meta=siteinfo&siprop=namespaces&format=xml', |
||
− | onSuccess: getNS, message: "Pobieranie nazw przestrzeni" }); |
||
− | } |
||
− | |||
− | function getNS(xmlreq, data) { |
||
− | var api = xmlreq.responseXML; |
||
− | |||
− | if (api.firstChild.nodeName == "error") return; |
||
− | |||
− | var nss = api.getElementsByTagName('query')[0].getElementsByTagName('namespaces')[0].getElementsByTagName('ns'); |
||
− | var len = nss.length; |
||
− | var i; |
||
− | var id,ns; |
||
− | var options = ""; |
||
− | var lstNs = new Array(); |
||
− | |||
− | for (i=0; i<len; i++) { |
||
− | id = nss[i].getAttribute('id'); |
||
− | ns = nss[i].textContent; |
||
− | // Handle IE |
||
− | if (!ns) ns = nss[i].text; |
||
− | |||
− | if (id < 0) continue; |
||
− | if (id == 0) ns = lang_main_namespace; |
||
− | |||
− | options += '<option value="' + id + '">' + ns + '</option>'; |
||
− | lstNs.push(id); |
||
− | } |
||
− | options = '<option value="' + lstNs.join('|') + '">*</option>' + options; |
||
− | document.getElementById('selectNS').innerHTML = '<label for="showNS0">'+lang_menu[0].NAMESP+' </label><select id="showNS0">' + options + '</select>'; |
||
− | |||
− | liveWatch(); |
||
− | } |
||
− | |||
− | /* </source> |
||
− | |||
− | === LiveRC === |
||
− | |||
− | <source lang="javascript"> */ |
||
− | |||
− | function supprLigne(quelLigne) { |
||
− | var i,len; |
||
− | var tab = document.getElementById('tabRC'); |
||
− | // IE automatically inserts a TBODY that we have to take care of |
||
− | if (tab.firstChild && (tab.firstChild.nodeName == "TBODY")) tab=tab.firstChild; |
||
− | var els = new Array(); |
||
− | if (quelLigne == '*') |
||
− | els = tab.getElementsByTagName('tr'); |
||
− | else if (quelLigne == 'd') { |
||
− | var _els = tab.getElementsByTagName('tr'); |
||
− | len = _els.length; |
||
− | for (i=len-1; i>=0; i--) |
||
− | if (_els[i].firstChild.style.backgroundColor == 'rgb(255, 250, 205)') |
||
− | els.push(_els[i]); |
||
− | } else if (quelLigne == 'r') { |
||
− | var _els = tab.getElementsByTagName('tr'); |
||
− | len = _els.length; |
||
− | for (i=len-1; i>=0; i--) |
||
− | if (_els[i].firstChild.style.backgroundColor == 'rgb(255, 228, 225)') |
||
− | els.push(_els[i]); |
||
− | } else if (quelLigne == 'n') { |
||
− | var _els = tab.getElementsByTagName('tr'); |
||
− | len = _els.length; |
||
− | for (i=len-1; i>=0; i--) |
||
− | if (_els[i].firstChild.style.backgroundColor == 'rgb(226, 242, 210)') |
||
− | els.push(_els[i]); |
||
− | } else if (quelLigne == 'c') { |
||
− | var _els = tab.getElementsByTagName('tr'); |
||
− | len = _els.length; |
||
− | for (i=len-1; i>=0; i--) |
||
− | if (_els[i].firstChild.style.backgroundColor == 'white') |
||
− | els.push(_els[i]); |
||
− | } else |
||
− | els.push(document.getElementById(quelLigne)); |
||
− | len = els.length; |
||
− | for (i=len-1; i>=0; i--) |
||
− | if (els[i] != null) |
||
− | tab.removeChild(els[i]); |
||
− | } |
||
− | |||
− | function changeLigne(quelLigne) { |
||
− | var el = document.getElementById(quelLigne); |
||
− | var els1 = el.getElementsByTagName('th'); |
||
− | var els2 = el.getElementsByTagName('td'); |
||
− | var len = els1.length; |
||
− | for (var i=len-1; i>=0; i--) |
||
− | if (els1[i] != null) |
||
− | els1[i].style.backgroundColor = "#FFFACD"; |
||
− | var len = els2.length; |
||
− | for (var i=len-1; i>=0; i--) |
||
− | if (els2[i] != null) |
||
− | els2[i].style.backgroundColor = "#FFFFE0"; |
||
− | } |
||
− | |||
− | function getElementsByClass(searchClass,node,tag) { |
||
− | var classElements = new Array(); |
||
− | if ( node == null ) |
||
− | node = document; |
||
− | if ( tag == null ) |
||
− | tag = '*'; |
||
− | var els = node.getElementsByTagName(tag); |
||
− | var elsLen = els.length; |
||
− | var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)'); |
||
− | for (i = 0, j = 0; i < elsLen; i++) { |
||
− | if (pattern.test(els[i].className) ) { |
||
− | classElements[j] = els[i]; |
||
− | j++; |
||
− | } |
||
− | } |
||
− | return classElements; |
||
− | } |
||
− | |||
− | function tsToHhMm(timestamp) { |
||
− | var tz; |
||
− | var match; |
||
− | /* |
||
− | // moved to onload for better performance |
||
− | if (lrcTZ) { |
||
− | var regex = new RegExp(/^([-+])?(\d?\d):?(\d\d)$/); |
||
− | match = regex.exec(lrcTZ); |
||
− | if (!match) { |
||
− | //livercError(lang_error.TZ); |
||
− | return 'xx:xx'; |
||
− | } |
||
− | tz = match[2]*60 + match[3]*1; |
||
− | tz = match[1] == '-' ? -tz : tz; |
||
− | } else { |
||
− | var now = new Date(); |
||
− | tz = -now.getTimezoneOffset(); |
||
− | } |
||
− | */ |
||
− | tz = lrcTZ; |
||
− | var regex = new RegExp(/^\d\d\d\d-\d\d-\d\dT(\d\d):(\d\d):\d\dZ$/); |
||
− | match = regex.exec(timestamp); |
||
− | if (!match) { |
||
− | //livercError(lang_error.timestamp); |
||
− | return 'xx:xx'; |
||
− | } |
||
− | var tt = (match[1]*60 + match[2]*1 + tz + 1440) % 1440; |
||
− | var mm = tt % 60; |
||
− | var hh = (tt - mm) / 60 % 24; |
||
− | return hh + ':' + (mm < 10 ? '0' : '') + mm; |
||
− | } |
||
− | |||
− | function updateHidden() { |
||
− | var tempAr = new Array(); |
||
− | for (var user in lstHidden) { |
||
− | var utilde = user.replace(new RegExp(/\'/g), "\\'"); |
||
− | var uremove = '<a href="javascript:;" onClick="unhideUser(\''+utilde+'\');" style="color:grey">-</a>'; |
||
− | var udiscut = '<a href="'+wgServer+wgArticlePath.replace(/\$1/, 'User talk:'+encodeURIComponent(user))+'" style="color:seagreen" target="_new" title="'+lang_tooltips.TALK_TIP+'">'+lang_tooltips.TALK_SHORT+'</a>'; |
||
− | var ucontrib = '<a href="javascript:;" onClick="liveContrib(\''+utilde+'\');" style="color:#43CD80" title="'+lang_tooltips.CONTRIB_TIP+'">'+lang_tooltips.CONTRIB_SHORT+'</a>'; |
||
− | var uadmin = ''; |
||
− | if (lrcAdmin == true) { |
||
− | uadmin = ' • <a href="'+wgServer+wgArticlePath.replace(/\$1/, 'Special:Blockip/'+encodeURI(user))+'" target="_new" style="color:seagreen" title="'+lang_tooltips.BLOCK_TIP+'">'+lang_tooltips.BLOCK_SHORT+'</a>'; |
||
− | } |
||
− | var ueditor = '<a href="'+wgServer+wgArticlePath.replace(/\$1/, 'User:'+encodeURIComponent(user))+'" target="_new">'+user+'</a>'; |
||
− | var ligne = '<span id="hidden-' + user + '"><small>' + uremove + ' • ' + udiscut + ' • ' + ucontrib + uadmin + ' • </small>' + ueditor + '</span><br />'; |
||
− | tempAr.push(ligne); |
||
− | } |
||
− | tempAr.sort(); |
||
− | var lvHidden = document.getElementById('liveHidden'); |
||
− | lvHidden.innerHTML = ""; |
||
− | var len = tempAr.length; |
||
− | for (var n=len-1; n>=0; n--) |
||
− | lvHidden.innerHTML += tempAr[n]; |
||
− | } |
||
− | |||
− | function updateFollowContact() { |
||
− | var tempAr = new Array(); |
||
− | for (var user in lstContact2) { |
||
− | var timestamp = lstContact2[user].ts; |
||
− | if (timestamp == 0) continue; |
||
− | var utilde = user.replace(new RegExp(/\'/g), "\\'"); |
||
− | var udiscut = '<a href="'+wgServer+wgArticlePath.replace(/\$1/, 'User talk:'+encodeURIComponent(user))+'" style="color:seagreen" target="_new" title="'+lang_tooltips.TALK_TIP+'">'+lang_tooltips.TALK_SHORT+'</a>'; |
||
− | var ucontrib = '<a href="javascript:;" onClick="liveContrib(\''+utilde+'\');" style="color:#43CD80" title="'+lang_tooltips.CONTRIB_TIP+'">'+lang_tooltips.CONTRIB_SHORT+'</a>'; |
||
− | var uadmin = ''; |
||
− | if (lrcAdmin == true) { |
||
− | uadmin = ' • <a href="'+wgServer+wgArticlePath.replace(/\$1/, 'Special:Blockip/'+encodeURI(user))+'" target="_new" style="color:seagreen" title="'+lang_tooltips.BLOCK_TIP+'">'+lang_tooltips.BLOCK_SHORT+'</a>'; |
||
− | } |
||
− | var ueditor = '<a href="'+wgServer+wgArticlePath.replace(/\$1/, 'User:'+encodeURIComponent(user))+'" target="_new">'+user+'</a>'; |
||
− | var ligne = '<span id="contact-' + timestamp + '"><small>' + tsToHhMm(timestamp) + ' • ' + udiscut + ' • ' + ucontrib + uadmin + ' • </small>' + ueditor + '</span><br />'; |
||
− | tempAr.push(ligne); |
||
− | } |
||
− | tempAr.sort(); |
||
− | var lvContact = document.getElementById('liveContact'); |
||
− | lvContact.innerHTML = ""; |
||
− | var len = tempAr.length; |
||
− | for (var n=len-1; n>=0; n--) |
||
− | lvContact.innerHTML += tempAr[n]; |
||
− | } |
||
− | |||
− | function updateFollowRevoc() { |
||
− | var tempAr = new Array(); |
||
− | for (var user in lstRevoc) { |
||
− | var timestamp = lstRevoc[user].ts; |
||
− | var utilde = user.replace(new RegExp(/\'/g), "\\'"); |
||
− | var uremove = '<a href="javascript:;" onClick="removeRevoc(\''+utilde+'\');" style="color:grey">-</a>'; |
||
− | var udiscut = '<a href="'+wgServer+wgArticlePath.replace(/\$1/, 'User talk:'+encodeURIComponent(user))+'" style="color:seagreen" target="_new" title="'+lang_tooltips.TALK_TIP+'">'+lang_tooltips.TALK_SHORT+'</a>'; |
||
− | var ucontrib = '<a href="javascript:;" onClick="liveContrib(\''+utilde+'\');" style="color:#43CD80" title="'+lang_tooltips.CONTRIB_TIP+'">'+lang_tooltips.CONTRIB_SHORT+'</a>'; |
||
− | var uadmin = ''; |
||
− | if (lrcAdmin == true) { |
||
− | uadmin = ' • <a href="'+wgServer+wgArticlePath.replace(/\$1/, 'Special:Blockip/'+encodeURI(user))+'" target="_new" style="color:seagreen" title="'+lang_tooltips.BLOCK_TIP+'">'+lang_tooltips.BLOCK_SHORT+'</a>'; |
||
− | } |
||
− | var ueditor = '<a href="'+wgServer+wgArticlePath.replace(/\$1/, 'User:'+encodeURIComponent(user))+'" target="_new">'+user+'</a>'; |
||
− | var ligne = '<span id="revoc-' + timestamp + '"><small>' + tsToHhMm(timestamp) + ' • ' + uremove + ' • ' + udiscut + ' • ' + ucontrib + uadmin + ' • </small>' + ueditor + ' (' + lstRevoc[user].nb + ' '+lang_menu[0].XTIMES+')</span><br />'; |
||
− | tempAr.push(ligne); |
||
− | } |
||
− | tempAr.sort(); |
||
− | var lvRevoc = document.getElementById('liveRevoc'); |
||
− | lvRevoc.innerHTML = ""; |
||
− | var len = tempAr.length; |
||
− | for (var n=len-1; n>=0; n--) |
||
− | lvRevoc.innerHTML += tempAr[n]; |
||
− | } |
||
− | |||
− | function removeRevoc(name) { |
||
− | delete lstRevoc[name]; |
||
− | updateFollowRevoc(); |
||
− | } |
||
− | |||
− | |||
− | //function getRevision(xmlreq, data) { |
||
− | function getRevision(rc) { |
||
− | if (document.getElementById('stopLive').checked) return; |
||
− | |||
− | // var api = xmlreq.responseXML.getElementsByTagName('api')[0]; |
||
− | // |
||
− | // if (api.firstChild.nodeName == "error") return; |
||
− | |||
− | var match; |
||
− | |||
− | // var rc = data.rc |
||
− | var title = rc.title; |
||
− | var pageid = rc.pageid; |
||
− | var revid = rc.revid; |
||
− | var oldid = rc.old_revid; |
||
− | var user = rc.user; |
||
− | var comment = (rc.comment ? rc.comment : ""); |
||
− | var timestamp = rc.timestamp; |
||
− | var ns = rc.ns; |
||
− | var state = rc.state; |
||
− | |||
− | var regex = new RegExp(/\'/g); |
||
− | var regex2 = new RegExp(/\"/g); |
||
− | var escTitle = title.replace(regex, "\\'").replace(regex2, """); |
||
− | var escUser = user.replace(regex, "\\'").replace(regex2, """); |
||
− | |||
− | // var revisions = api.getElementsByTagName('query')[0].getElementsByTagName('pages')[0].getElementsByTagName('page')[0].getElementsByTagName('revisions')[0].getElementsByTagName('rev'); |
||
− | // |
||
− | // var oldsize = (state & NEW ? 0 : revisions[1].textContent.length); |
||
− | // var newsize = revisions[0].textContent.length |
||
− | var oldsize = rc.oldlen |
||
− | var newsize = rc.newlen |
||
− | var sizediff = newsize - oldsize; |
||
− | if (typeof(sizediff) == 'undefined') // shoudn't happen, but... |
||
− | { |
||
− | sizediff = '-'; |
||
− | } |
||
− | |||
− | |||
− | // INITIALISATION LIGNE RC // |
||
− | |||
− | var tr1 = document.createElement('tr'); |
||
− | |||
− | var th0 = document.createElement('th'); |
||
− | var th1 = document.createElement('th'); |
||
− | var td2 = document.createElement('td'); |
||
− | var td3 = document.createElement('td'); |
||
− | var td4 = document.createElement('td'); |
||
− | |||
− | |||
− | // SUPPR. LIGNE // |
||
− | |||
− | th0.innerHTML = '<a href="javascript:;" onClick="supprLigne(\''+pageid+'_'+revid+'\');" style="color:red" title="'+lang_tooltips.HIDE_THIS+'">X</a>'; |
||
− | |||
− | |||
− | // ARTICLE // |
||
− | |||
− | var arti = "", artiStyle = ""; |
||
− | var preArti = "", postArti = ""; |
||
− | |||
− | var diff = ""; |
||
− | var diffClose = ""; |
||
− | if (lrcAutoCloseDiff == 1) |
||
− | diffClose='supprLigne(\''+pageid+'_'+revid+'\');'; |
||
− | if (state & NEW) |
||
− | diff = '<a href="javascript:;" onClick="changeLigne(\''+pageid+'_'+revid+'\');liveArticle(\''+escTitle+'\',\''+user+'\');'+diffClose+'" style="color:green">New</a>'; |
||
− | else if (state & UPLOAD) |
||
− | diff = '<a href="javascript:;" onClick="changeLigne(\''+pageid+'_'+revid+'\');liveLog(\'upload\',\''+escTitle+'\');'+diffClose+'" style="color:darkslateblue">Log</a>'; |
||
− | else if (state & NEWUSER) |
||
− | diff = '<a href="javascript:;" onClick="changeLigne(\''+pageid+'_'+revid+'\');liveLog(\'newusers\',\''+escTitle+'\');'+diffClose+'" style="color:lime">Log</a>'; |
||
− | else if (state & BLOCK) |
||
− | diff = '<a href="javascript:;" onClick="changeLigne(\''+pageid+'_'+revid+'\');liveLog(\'block\',\''+escTitle+'\');'+diffClose+'" style="color:darkgoldenrod">Log</a>'; |
||
− | else if (state & DELETE) |
||
− | diff = '<a href="javascript:;" onClick="changeLigne(\''+pageid+'_'+revid+'\');liveLog(\'delete\',\''+escTitle+'\');'+diffClose+'" style="color: saddlebrown">Log</a>'; |
||
− | else if (state & MOVE) |
||
− | diff = '<a href="javascript:;" onClick="changeLigne(\''+pageid+'_'+revid+'\');liveLog(\'move\',\''+escTitle+'\');'+diffClose+'" style="color:black">Log</a>'; |
||
− | else if (state & PROTECT) |
||
− | diff = '<a href="javascript:;" onClick="changeLigne(\''+pageid+'_'+revid+'\');liveLog(\'protect\',\''+escTitle+'\');'+diffClose+'" style="color: darkslategray">Log</a>'; |
||
− | else if (state & ABFILTER) |
||
− | diff = '<a href="javascript:;" onClick="changeLigne(\''+pageid+'_'+revid+'\');liveFilter('+revid+');'+diffClose+'" style="color: darkslategray">Filt</a>'; |
||
− | else { // simple edit |
||
− | diff = '<a href="javascript:;" onClick="changeLigne(\''+pageid+'_'+revid+'\');liveDiff(\''+escTitle+'\','+revid+','+oldid+');'+diffClose+'" style="color:orange" title="'+lang_tooltips.DIFF_TIP+'">'+lang_tooltips.DIFF_SHORT+'</a>' |
||
− | diff += '<sup><a href="' + wgServer + wgScriptPath + '/index.php?title='+encodeURI(escTitle)+'&diff='+revid+'&oldid='+oldid+'" target="_new">+</a></sup>'; |
||
− | } |
||
− | |||
− | var hist = ''; |
||
− | var edit = ''; |
||
− | var admin = ''; |
||
− | // Don't show link for log rows |
||
− | if (!(state & UPLOAD) && |
||
− | !(state & NEWUSER) && |
||
− | !(state & BLOCK) && |
||
− | !(state & DELETE) && |
||
− | !(state & PROTECT) && |
||
− | !(state & PATROL) && |
||
− | !(state & MOVE) && |
||
− | !(state & ABFILTER)) |
||
− | { |
||
− | hist = '<a href="javascript:;" onClick="liveHist(\''+escTitle+'\');" style="color:darkorange" title="'+lang_tooltips.HIST_TIP+'">'+lang_tooltips.HIST_SHORT+'</a>'; |
||
− | edit = '<a href="' + wgServer + wgScriptPath + '/index.php?title='+encodeURIComponent(title)+'&action=edit" target="_new" style="color:tomato" title="'+lang_tooltips.EDIT_TIP+'">'+lang_tooltips.EDIT_SHORT+'</a>'; |
||
− | if (lrcAdmin == true) { |
||
− | admin = ' • <a href="' + wgServer + wgScriptPath + '/index.php?title='+encodeURIComponent(title)+'&action=delete" target="_new" style="color:orangered" title="'+lang_tooltips.DEL_TIP+'">'+lang_tooltips.DEL_SHORT+'</a>'; |
||
− | |||
− | admin += ' • <a href="' + wgServer + wgScriptPath + '/index.php?title='+encodeURIComponent(title)+'&action=protect" target="_new" style="color: coral" title="'+lang_tooltips.PROTECT_TIP+'">'+lang_tooltips.PROTECT_SHORT+'</a>'; |
||
− | } |
||
− | } |
||
− | |||
− | // Disambig / Homonymie ? ; |
||
− | /////////////////////////// |
||
− | if (ns == 0 && state & HOMONYMIE) { |
||
− | artiStyle = 'color: darkorange; font-weight: bold; font-style: italic;'; |
||
− | preArti += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/7/72/Disambig.svg/16px-Disambig.svg.png" width="16px" alt="Homonymie" /> ' |
||
− | } |
||
− | |||
− | // Page protégée ? ; |
||
− | //////////////////// |
||
− | if (state & FULLLOCK) |
||
− | preArti += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/4/48/Padlock-red.svg/16px-Padlock-red.svg.png" width="16px" alt="Article protégé"/> '; |
||
− | if (state & LOCK) |
||
− | preArti += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Padlock-gold.svg/16px-Padlock-gold.svg.png" width="16px" alt="Article semi-protégé"/> '; |
||
− | |||
− | // Copyright ? ; |
||
− | ////////// |
||
− | if (state & COPYRIGHT) |
||
− | preArti += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Copyright.svg/16px-Copyright.svg.png" width="16px" alt="Copyright" /> '; |
||
− | |||
− | // PaS ? ; |
||
− | ////////////////// |
||
− | if (state & PAS) |
||
− | preArti += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Cestino_pieno_architetto_01.svg/11px-Cestino_pieno_architetto_01.svg.png" height="11px" alt="PaS" /> '; |
||
− | |||
− | // Intervention wikipompiers ? ; |
||
− | //////////////////////////////// |
||
− | if (state & FIRE) |
||
− | preArti += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/9/99/FireIcon.svg/12px-FireIcon.svg.png" height="12px" alt="Intervention Wikipompiers" /> '; |
||
− | |||
− | // Adq ? ; |
||
− | ////////// |
||
− | if (state & ADQ) |
||
− | postArti += '<sup><img src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c7/Fairytale_bookmark_gold.png/10px-Fairytale_bookmark_gold.png" width="10px" alt="Adq" /></sup>'; |
||
− | |||
− | // Bon article ? ; |
||
− | ////////////////// |
||
− | if (state & BA) |
||
− | postArti += '<sup><img src="//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Fairytale_bookmark_silver_light.png/10px-Fairytale_bookmark_silver_light.png" width="10px" alt="Bon article" /></sup>'; |
||
− | |||
− | // Article potentiellement de qualité ? ; |
||
− | ///////////////////////////////////////// |
||
− | if (state & APDQ) |
||
− | postArti += '<sup><img src="//upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Fairytale_bookmark_light.png/10px-Fairytale_bookmark_light.png" width="10px" alt="Article potentiellement de qualité" /></sup>'; |
||
− | |||
− | // Article catégorisé ? ; |
||
− | ///////////////////////// |
||
− | var isCategorized = ""; |
||
− | if (!(state & REDIRECT) |
||
− | && !(state & HOMONYMIE) |
||
− | && ns == 0 |
||
− | && !(state & CATEGORIZED)) |
||
− | postArti += '<sup style="color:crimson">'+lang_category_short+'</sup>'; |
||
− | |||
− | // Redirect, Log, or simple edit ? ; |
||
− | ////////////////// |
||
− | if (state & MOVE) { |
||
− | // artiStyle = 'color: magenta; font-weight: bold; font-style: italic;'; |
||
− | postArti += ' <img src="//upload.wikimedia.org/wikipedia/commons/thumb/0/0e/Forward.png/16px-Forward.png" width="16px" alt="Renommage" />'; |
||
− | postArti += ' <a href="javascript:;" onClick="liveArticle(\''+rc.new_title+'\',\''+user+'\');">'+rc.new_title+'</a>'; |
||
− | arti = '<a style="'+artiStyle+'" href="javascript:;" onClick="liveArticle(\''+escTitle+'\',\''+user+'\');">'+title+'</a>'; |
||
− | } |
||
− | else if (state & REDIRECT) { |
||
− | artiStyle = 'color: green; font-weight: bold; font-style: italic;'; |
||
− | postArti += ' <img src="//upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Redirectltr.png/20px-Redirectltr.png" width="20px" alt="Redirect" />'; |
||
− | postArti += ' <a href="javascript:;" onClick="liveArticle(\''+rc.redirect+'\',\''+user+'\');">'+rc.redirect+'</a>'; |
||
− | arti = '<a style="'+artiStyle+'" href="javascript:;" onClick="liveArticle(\''+escTitle+'\',\''+user+'\');">'+title+'</a>'; |
||
− | } |
||
− | else if (state & UPLOAD) { |
||
− | postArti += ' <img src="//upload.wikimedia.org/wikipedia/commons/thumb/4/47/Gartoon-Gnome-dev-floppy.png/16px-Gartoon-Gnome-dev-floppy.png" width="16px" alt="Upload" />'; |
||
− | arti = '<a style="'+artiStyle+'" href="javascript:;" onClick="liveArticle(\''+escTitle+'\',\''+user+'\');" onDblClick="window.open(\''+wgServer+wgArticlePath.replace(/\$1/, encodeURI(title))+'\');">'+title+'</a>'; |
||
− | } |
||
− | else if (state & NEWUSER) { |
||
− | postArti += ' <img src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Crystal_personal.png/16px-Crystal_personal.png" width="16px" alt="Nouvel utilisateur" />'; |
||
− | arti = '<a style="'+artiStyle+'" href="javascript:;" onClick="liveArticle(\''+escTitle+'\',\''+user+'\');" onDblClick="window.open(\''+wgServer+wgArticlePath.replace(/\$1/, encodeURI(title))+'\');">'+title+'</a>'; |
||
− | } |
||
− | else if (state & BLOCK) { |
||
− | // artiStyle = 'color: magenta; font-weight: bold; font-style: italic;'; |
||
− | postArti += ' <img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/64/Crystal_Clear_action_lock3.png/16px-Crystal_Clear_action_lock3.png" width="16px" alt="Blocage" />'; |
||
− | postArti += ' <a href="javascript:;" onClick="liveLog("block",\''+rc.title+'\');">('+rc.duration+')</a>'; |
||
− | arti = '<a style="'+artiStyle+'" href="javascript:;" onClick="liveArticle(\''+escTitle+'\',\''+user+'\');">'+title+'</a>'; |
||
− | } |
||
− | else if (state & DELETE) { |
||
− | postArti += ' <img src="//upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Editcut.png/16px-Editcut.png" width="16px" alt="Suppression" />'; |
||
− | arti = '<a style="'+artiStyle+'" href="javascript:;" onClick="liveArticle(\''+escTitle+'\',\''+user+'\');" onDblClick="window.open(\''+wgServer+wgArticlePath.replace(/\$1/, encodeURI(title))+'\');">'+title+'</a>'; |
||
− | } |
||
− | else if (state & PROTECT) { |
||
− | postArti += ' <img src="//upload.wikimedia.org/wikipedia/commons/thumb/7/72/Crystal_Clear_app_agent.png/16px-Crystal_Clear_app_agent.png" width="16px" alt="Protection" />'; |
||
− | arti = '<a style="'+artiStyle+'" href="javascript:;" onClick="liveArticle(\''+escTitle+'\',\''+user+'\');" onDblClick="window.open(\''+wgServer+wgArticlePath.replace(/\$1/, encodeURI(title))+'\');">'+title+'</a>'; |
||
− | } |
||
− | else { |
||
− | arti = '<a style="'+artiStyle+'" href="javascript:;" onClick="liveArticle(\''+escTitle+'\',\''+user+'\');" onDblClick="window.open(\''+wgServer+wgArticlePath.replace(/\$1/, encodeURI(title))+'\');">'+title+'</a>'; |
||
− | } |
||
− | |||
− | th1.innerHTML = '<small>' + tsToHhMm(timestamp) + ' • ' + diff + ' • ' + hist + ' • ' + edit + admin + ' • </small>' |
||
− | + preArti + arti + postArti; |
||
− | th1.className="creator-title"; |
||
− | th1.style.textAlign="left"; |
||
− | th1.style.border="1px"; |
||
− | th1.style.width="40%"; |
||
− | |||
− | // EDITOR // |
||
− | //////////// |
||
− | var discut = '<a href="'+wgServer+wgArticlePath.replace(/\$1/, 'User talk:'+encodeURIComponent(user))+'" style="color:seagreen" target="_new" title="'+lang_tooltips.TALK_TIP+'">'+lang_tooltips.TALK_SHORT+'</a>'; |
||
− | var contrib = '<a href="javascript:;" onClick="liveContrib(\''+escUser+'\');" style="color:#43CD80" title="'+lang_tooltips.CONTRIB_TIP+'">'+lang_tooltips.CONTRIB_SHORT+'</a>'; |
||
− | var editor = "", preEditor = ""; |
||
− | |||
− | // Bot ? ; |
||
− | ////////// |
||
− | if (state & BOT) |
||
− | preEditor += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2a/Nuvola_apps_kservices.png/16px-Nuvola_apps_kservices.png" width="16px" /> '; |
||
− | |||
− | // Sysop ? ; |
||
− | //////////// |
||
− | if (state & SYSOP) |
||
− | preEditor += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Broom_icon.svg/16px-Broom_icon.svg.png" width="16px" /> '; |
||
− | |||
− | // Reverted ? ; |
||
− | ///////////////// |
||
− | if (state & REVERT) |
||
− | preEditor += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Nuvola_actions_undo.png/16px-Nuvola_actions_undo.png" width="16px" /> '; |
||
− | |||
− | // TOR potentiel / AOL |
||
− | var isTOR = new RegExp(/172\.\d+\.\d+\.\d+/); |
||
− | if (isTOR.test(user)) |
||
− | preEditor += '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Dialog-warning.svg/16px-Dialog-warning.svg.png" width="16px" /> '; |
||
− | |||
− | editor = '<a href="'+wgServer+wgArticlePath.replace(/\$1/, 'User:'+encodeURIComponent(user))+'" target="_new">'+user+'</a>'; |
||
− | var uadmin = ''; |
||
− | if (lrcAdmin == true) { |
||
− | uadmin = ' • <a href="'+wgServer+wgArticlePath.replace(/\$1/, 'Special:Blockip/'+encodeURI(user))+'" target="_new" style="color:seagreen" title="'+lang_tooltips.BLOCK_TIP+'">'+lang_tooltips.BLOCK_SHORT+'</a>'; |
||
− | } |
||
− | |||
− | var uhide = '<a href="javascript:;" onClick="supprLigne(\''+pageid+'_'+revid+'\'); hideUser(\''+ user +'\');" style="color:grey" title="'+lang_tooltips.USER_HIDE_TIP+'">'+lang_tooltips.USER_HIDE_SHORT+'</a>'; |
||
− | |||
− | td2.innerHTML = '<small>' + discut + ' • ' + contrib + ' • ' + uhide + uadmin + ' • </small>' |
||
− | + preEditor + editor; |
||
− | td2.className="creator-name"; |
||
− | td2.style.border = "1px"; |
||
− | td2.style.width = "20%"; |
||
− | |||
− | if (lstRevoc[user]) { |
||
− | td2.style.border = "2px solid red"; |
||
− | td2.innerHTML += '<sup style="color:red">(' + lstRevoc[user].nb + ' révoc)</sup>' |
||
− | } |
||
− | |||
− | // COMMENT // |
||
− | // Remplace lien [[xxx]] par <a> ; |
||
− | var wcomment = comment.htmlize(); |
||
− | var regex1 = new RegExp(/\[\[(([^\]\|]*)(.*?))\]\]/g); |
||
− | wcomment = wcomment.replace(regex1, "<a href='"+wgServer+wgScriptPath+"/index.php?title=$2&redirect=no' target='_new'>$1</a>"); |
||
− | var regex2 = new RegExp(/\>[^\]\|<]*\|([^\]\|<]*)</g); |
||
− | wcomment = wcomment.replace(regex2, ">$1<"); |
||
− | |||
− | // Abusefilter tag ? ; |
||
− | ///////////////// |
||
− | if (state & TAG) { |
||
− | wcomment += '<br /><span style="color: red; font-weight: bold;">Tag : '; |
||
− | wcomment += rc.tags[0].firstChild.nodeValue; |
||
− | for (var tagId = 1; tagId < rc.tags.length; ++tagId) |
||
− | wcomment += ' | ' + rc.tags[tagId].firstChild.nodeValue; |
||
− | wcomment += '</span>'; |
||
− | td3.style.border = "2px solid red"; |
||
− | } else { |
||
− | td3.style.border = "1px"; |
||
− | td3.style.width = "40%"; |
||
− | } |
||
− | |||
− | td3.innerHTML = "<small>" + wcomment + "</small>"; |
||
− | |||
− | |||
− | if (state & PATROLLED) { |
||
− | td2.style.backgroundColor = "#e3e3f1"; |
||
− | td3.style.backgroundColor = "#e3e3f1"; |
||
− | td4.style.backgroundColor = "#e3e3f1"; |
||
− | } |
||
− | |||
− | if (state & ABFILTER) { |
||
− | th0.style.backgroundColor = "#FFBE60"; |
||
− | th1.style.backgroundColor = "#FFBE60"; |
||
− | td2.style.backgroundColor = "#FFBE60"; |
||
− | td3.style.backgroundColor = "#FFBE60"; |
||
− | td4.style.backgroundColor = "#FFBE60"; |
||
− | } |
||
− | |||
− | if (state & UPLOAD) { |
||
− | th0.style.backgroundColor = "#D1CAFA"; |
||
− | th1.style.backgroundColor = "#D1CAFA"; |
||
− | td2.style.backgroundColor = "#D1CAFA"; |
||
− | td3.style.backgroundColor = "#D1CAFA"; |
||
− | td4.style.backgroundColor = "#D1CAFA"; |
||
− | tr1.style.border = "1px solid darkslateblue"; |
||
− | } |
||
− | |||
− | if (state & NEWUSER) { |
||
− | th0.style.backgroundColor = "#C6FF6D"; |
||
− | th1.style.backgroundColor = "#C6FF6D"; |
||
− | td2.style.backgroundColor = "#C6FF6D"; |
||
− | td3.style.backgroundColor = "#C6FF6D"; |
||
− | td4.style.backgroundColor = "#C6FF6D"; |
||
− | tr1.style.border = "1px solid lime"; |
||
− | } |
||
− | |||
− | if (state & BLOCK) { |
||
− | th0.style.backgroundColor = "#EECC84"; |
||
− | th1.style.backgroundColor = "#EECC84"; |
||
− | td2.style.backgroundColor = "#EECC84"; |
||
− | td3.style.backgroundColor = "#EECC84"; |
||
− | td4.style.backgroundColor = "#EECC84"; |
||
− | tr1.style.border = "1px solid darkgoldenrod"; |
||
− | } |
||
− | |||
− | if (state & DELETE) { |
||
− | th0.style.backgroundColor = "#E7CAA7"; |
||
− | th1.style.backgroundColor = "#E7CAA7"; |
||
− | td2.style.backgroundColor = "#E7CAA7"; |
||
− | td3.style.backgroundColor = "#E7CAA7"; |
||
− | td4.style.backgroundColor = "#E7CAA7"; |
||
− | tr1.style.border = "1px solid saddlebrown"; |
||
− | } |
||
− | |||
− | if (state & MOVE) { |
||
− | th0.style.backgroundColor = "#FDC5FF"; |
||
− | th1.style.backgroundColor = "#FDC5FF"; |
||
− | td2.style.backgroundColor = "#FDC5FF"; |
||
− | td3.style.backgroundColor = "#FDC5FF"; |
||
− | td4.style.backgroundColor = "#FDC5FF"; |
||
− | tr1.style.border = "1px solid magenta"; |
||
− | } |
||
− | |||
− | if (state & PROTECT) { |
||
− | th0.style.backgroundColor = "#B2BCC6"; |
||
− | th1.style.backgroundColor = "#B2BCC6"; |
||
− | td2.style.backgroundColor = "#B2BCC6"; |
||
− | td3.style.backgroundColor = "#B2BCC6"; |
||
− | td4.style.backgroundColor = "#B2BCC6"; |
||
− | tr1.style.border = "1px solid darkslategray"; |
||
− | } |
||
− | |||
− | if (state & REVERT) { |
||
− | th0.style.backgroundColor = "#FFE4E1"; |
||
− | th1.style.backgroundColor = "#FFE4E1"; |
||
− | td2.style.backgroundColor = "#FFE4E1"; |
||
− | td3.style.backgroundColor = "#FFE4E1"; |
||
− | td4.style.backgroundColor = "#FFE4E1"; |
||
− | tr1.style.border = "1px solid crimson"; |
||
− | } |
||
− | |||
− | if (state & BLANKING || newsize == 0) { |
||
− | th0.style.backgroundColor = "white"; |
||
− | th1.style.backgroundColor = "white"; |
||
− | td2.style.backgroundColor = "white"; |
||
− | td3.style.backgroundColor = "white"; |
||
− | td4.style.backgroundColor = "white"; |
||
− | tr1.style.border = "2px double crimson"; |
||
− | } |
||
− | if (state & NEW) { |
||
− | th0.style.backgroundColor = "#e2f2d2"; |
||
− | th1.style.backgroundColor = "#e2f2d2"; |
||
− | td2.style.backgroundColor = "#e2f2d2"; |
||
− | td3.style.backgroundColor = "#e2f2d2"; |
||
− | td4.style.backgroundColor = "#e2f2d2"; |
||
− | tr1.style.border = "1px solid green"; |
||
− | } |
||
− | |||
− | if (state & IP) { |
||
− | td2.style.backgroundColor = "white"; |
||
− | td3.style.backgroundColor = "white"; |
||
− | td4.style.backgroundColor = "white"; |
||
− | } |
||
− | |||
− | if (isTOR.test(user)) |
||
− | td2.style.backgroundColor = "pink"; |
||
− | |||
− | if (state & REPLACED) { |
||
− | th0.style.backgroundColor = "pink"; |
||
− | th1.style.backgroundColor = "pink"; |
||
− | td2.style.backgroundColor = "pink"; |
||
− | td3.style.backgroundColor = "pink"; |
||
− | td4.style.backgroundColor = "pink"; |
||
− | td4.innerHTML = '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/9/95/Categorie_III.svg/10px-Categorie_III.svg.png" width="10px" alt="Warning"/>'; |
||
− | tr1.style.border = "2px solid crimson"; |
||
− | } |
||
− | |||
− | // CONTACT LIST // |
||
− | ////////////////// |
||
− | if (lstContact2[user]) { |
||
− | td2.style.border = "2px solid gold"; |
||
− | td2.style.backgroundColor = "yellow"; |
||
− | } |
||
− | |||
− | if (user == wgUserName) { |
||
− | td2.style.border = "2px solid #A0B0E0"; |
||
− | td2.style.backgroundColor = "#F0F8FF"; |
||
− | } |
||
− | |||
− | // DELTA SIZE // |
||
− | |||
− | // delta de modif ; |
||
− | /////////////////// |
||
− | if (!(state & NEWUSER) && |
||
− | !(state & PROTECT) && |
||
− | !(state & MOVE) && |
||
− | !(state & DELETE) && |
||
− | !(state & ABFILTER)) { |
||
− | var txtdiff = ""; |
||
− | if (sizediff < 0) |
||
− | txtdiff = '<sub style="color:red">'+sizediff+'</sub>'; |
||
− | else if (sizediff == 0) |
||
− | txtdiff = '<small style="color:purple">='+sizediff+'</small>'; |
||
− | else |
||
− | txtdiff = '<sup style="color:blue">+'+sizediff+'</sup>'; |
||
− | td4.innerHTML += txtdiff; |
||
− | td4.style.border = "1px"; |
||
− | td4.style.textAlign = "right"; |
||
− | } |
||
− | |||
− | |||
− | // ASSEMBLAGE LIGNE // |
||
− | |||
− | tr1.appendChild(th0); |
||
− | tr1.appendChild(th1); |
||
− | tr1.appendChild(td2); |
||
− | tr1.appendChild(td3); |
||
− | tr1.appendChild(td4); |
||
− | tr1.id = pageid+"_"+revid; |
||
− | |||
− | var tab = document.getElementById( 'tabRC' ); |
||
− | // IE automatically inserts a TBODY that we have to take care of |
||
− | if (tab.firstChild && (tab.firstChild.nodeName == "TBODY")) tab=tab.firstChild; |
||
− | var elold = document.getElementById(pageid+"_"+oldid); |
||
− | |||
− | if (tab.firstChild != null) |
||
− | tab.insertBefore(tr1, tab.firstChild); |
||
− | else |
||
− | tab.appendChild(tr1); |
||
− | if (elold == null) { |
||
− | if (tab.childNodes.length > lrcRCLimit) { |
||
− | var idt = tab.lastChild.id; |
||
− | supprLigne(idt); |
||
− | } |
||
− | } else { |
||
− | supprLigne(pageid+"_"+oldid); |
||
− | } |
||
− | |||
− | // Don't show RC if checkbox is not checked |
||
− | if ((!document.getElementById('showRC').checked) && |
||
− | (!(state & UPLOAD) && |
||
− | !(state & NEWUSER) && |
||
− | !(state & BLOCK) && |
||
− | !(state & DELETE) && |
||
− | !(state & PROTECT) && |
||
− | !(state & MOVE) && |
||
− | !(state & ABFILTER))) |
||
− | supprLigne(pageid+"_"+revid); |
||
− | |||
− | if (state & PATROL) |
||
− | supprLigne(pageid+"_"+revid); |
||
− | |||
− | // Don't show Log if checkbox is not checked |
||
− | if ((!document.getElementById('showLog').checked) && |
||
− | ((state & UPLOAD) || |
||
− | (state & NEWUSER) || |
||
− | (state & BLOCK) || |
||
− | (state & DELETE) || |
||
− | (state & PROTECT) || |
||
− | (state & MOVE))) |
||
− | supprLigne(pageid+"_"+revid); |
||
− | |||
− | // Don't show Filter if checkbox is not checked |
||
− | if ((!document.getElementById('showFilter').checked) && |
||
− | (state & ABFILTER)) |
||
− | supprLigne(pageid+"_"+revid); |
||
− | |||
− | // MISE A JOUR LISTES // |
||
− | |||
− | var spos = lstSuivi.indexOf(title); |
||
− | if(spos != -1) { |
||
− | th0.style.border = "2px solid gold"; |
||
− | th0.style.backgroundColor = "yellow"; |
||
− | th1.style.border = "2px solid gold"; |
||
− | th1.style.backgroundColor = "yellow"; |
||
− | lstSuiviHH[spos] = tsToHhMm(timestamp); |
||
− | var tempsAr = new Array(); |
||
− | var len = lstSuivi.length; |
||
− | for (var n = 0; n < len; n++) { |
||
− | if(lstSuiviHH[n] == "--:--") continue; |
||
− | var cstilde = lstSuivi[n].replace(new RegExp(/\'/g), "\\'"); |
||
− | var sdiff = '<a href="javascript:;" onClick="liveDiff(\''+cstilde+'\','+revid+','+oldid+');" style="color:orange">Diff</a>'; |
||
− | var shist = '<a href="javascript:;" onClick="liveHist(\''+cstilde+'\');" style="color:darkorange">H</a>'; |
||
− | var sarti = '<a href="javascript:;" onClick="liveArticle(\''+cstilde+'\');">'+lstSuivi[n]+'</a>'; |
||
− | var ligne='<small>' + lstSuiviHH[n] + ' • ' + sdiff + ' • ' + shist + ' • </small>' + sarti +'<br />'; |
||
− | tempsAr.push(ligne); |
||
− | } |
||
− | tempsAr.sort(); |
||
− | len = tempsAr.length; |
||
− | var lvSuivi = document.getElementById( 'liveSuivi' ); |
||
− | lvSuivi.innerHTML = ""; |
||
− | for (var n=len-1; n >= 0; n--) |
||
− | lvSuivi.innerHTML = lvSuivi.innerHTML + tempsAr[n]; |
||
− | } |
||
− | |||
− | |||
− | if (lstContact2[user]) { |
||
− | lstContact2[user].ts = timestamp; |
||
− | updateFollowContact(); |
||
− | } |
||
− | |||
− | if (state & REVERT) { |
||
− | var regex = new RegExp(/\[\[Sp[ée]cial:Contributions\/([^\]\|]+)/); |
||
− | match = regex.exec(comment); |
||
− | |||
− | if (!match) { |
||
− | var regex2 = new RegExp(/\[\[Specjalna:Wkład\/([^\]\|]+)/); |
||
− | match = regex2.exec(comment); |
||
− | } |
||
− | |||
− | if (match) { |
||
− | var userR = match[1]; |
||
− | if (userR != user && userR != wgUserName) { |
||
− | if (!lstRevoc[userR]) lstRevoc[userR] = { ts: 0, nb: 0 }; |
||
− | lstRevoc[userR].ts = timestamp; |
||
− | lstRevoc[userR].nb += 1; |
||
− | updateFollowRevoc(); |
||
− | } |
||
− | } |
||
− | } |
||
− | } |
||
− | |||
− | function getRedirCat(xmlreq, data) { |
||
− | if (document.getElementById('stopLive').checked) return; |
||
− | |||
− | var yurik = xmlreq.responseXML.getElementsByTagName('api')[0]; |
||
− | |||
− | if (yurik.firstChild.nodeName == "error") return; |
||
− | |||
− | var rc = data.rc; |
||
− | var pageid = rc.pageid; |
||
− | var revid = rc.revid; |
||
− | var state = rc.state; |
||
− | |||
− | var page = yurik.getElementsByTagName('pages')[0].getElementsByTagName('page')[0]; |
||
− | |||
− | if (page.getElementsByTagName('redirect').length) { |
||
− | state += REDIRECT; |
||
− | if (page.getElementsByTagName('redirect')[0].getElementsByTagName('to').length) |
||
− | rc.redirect = page.getElementsByTagName('redirect')[0].getElementsByTagName('to')[0].textContent; |
||
− | } |
||
− | |||
− | if (page.getElementsByTagName('categories').length) { |
||
− | state += CATEGORIZED; |
||
− | |||
− | var categories = page.getElementsByTagName('categories')[0].getElementsByTagName('cl'); |
||
− | var i,j; |
||
− | var leni = categories.length; |
||
− | var lenj = categoriestests.length; |
||
− | |||
− | for (i=0; i<leni; i++) |
||
− | for (j=0; j<lenj; j++) |
||
− | if (new RegExp(lang_category+categoriestests[j].regex, "i").test(categories[i].textContent)) |
||
− | state += categoriestests[j].state; |
||
− | } |
||
− | |||
− | rc.state = state; |
||
− | |||
− | getRevision(rc); |
||
− | } |
||
− | |||
− | function getRedirCat2(xmlreq, data) { |
||
− | if (document.getElementById('stopLive').checked) return; |
||
− | |||
− | var api = xmlreq.responseXML.getElementsByTagName('api')[0]; |
||
− | |||
− | if (api.firstChild.nodeName == "error") return; |
||
− | |||
− | var log = data.log; |
||
− | var pageid = log.pageid; |
||
− | var revid = log.revid; |
||
− | var state = log.state; |
||
− | |||
− | var query = api.getElementsByTagName('query')[0]; |
||
− | |||
− | if (query.getElementsByTagName('redirects').length) { |
||
− | state += REDIRECT; |
||
− | if (query.getElementsByTagName('redirects')[0].getElementsByTagName('r').length) |
||
− | log.redirect = query.getElementsByTagName('redirects')[0].getElementsByTagName('r')[0].getAttribute('to'); |
||
− | } |
||
− | |||
− | if (query.getElementsByTagName('categories').length) { |
||
− | state += CATEGORIZED; |
||
− | |||
− | var categories = query.getElementsByTagName('categories')[0].getElementsByTagName('cl'); |
||
− | var i,j; |
||
− | var leni = categories.length; |
||
− | var lenj = categoriestests.length; |
||
− | |||
− | for (i=0; i<leni; i++) |
||
− | for (j=0; j<lenj; j++) |
||
− | if (new RegExp(lang_category+categoriestests[j].regex, "i").test(categories[i].getAttribute('title'))) |
||
− | state += categoriestests[j].state; |
||
− | } |
||
− | |||
− | log.state = state; |
||
− | |||
− | getRevision(log); |
||
− | } |
||
− | |||
− | // Get RC and Log |
||
− | function getRC(xmlreq, data) { |
||
− | if (document.getElementById('stopLive').checked) return; |
||
− | |||
− | var api = xmlreq.responseXML.getElementsByTagName('api')[0]; |
||
− | |||
− | if (api.firstChild.nodeName == "error") return; |
||
− | |||
− | var rcs = api.getElementsByTagName('query')[0].getElementsByTagName('recentchanges')[0].getElementsByTagName('rc'); |
||
− | var i,j,leni,lenj,rc; |
||
− | |||
− | leni=rcs.length; |
||
− | for (i=leni-1; i>=0; i--) { |
||
− | // Using rcid as revid can be 0 (e.g. when moving a page) |
||
− | if (rcs[i].getAttribute('rcid') <= lastrcid) continue; |
||
− | |||
− | rc = new Object(); |
||
− | rc.state = 0; |
||
− | |||
− | lenj = rcs[i].attributes.length; |
||
− | for (j=0; j<lenj; j++) { |
||
− | switch(rcs[i].attributes[j].name) { |
||
− | case 'anon': |
||
− | rc.state += IP; |
||
− | break; |
||
− | case 'bot': |
||
− | rc.state += BOT; |
||
− | break; |
||
− | case 'new': |
||
− | rc.state += NEW; |
||
− | break; |
||
− | case 'minor': |
||
− | rc.state += MINOR; |
||
− | break; |
||
− | case 'new_ns': |
||
− | rc.state += NEWNS; |
||
− | break; |
||
− | case 'new_title': |
||
− | rc.state += RENAMED; |
||
− | break; |
||
− | case 'patrolled': |
||
− | rc.state += PATROLLED; |
||
− | break; |
||
− | case 'type': |
||
− | break; |
||
− | default: |
||
− | rc[rcs[i].attributes[j].name] = rcs[i].attributes[j].value; |
||
− | break; |
||
− | } |
||
− | } |
||
− | |||
− | var tags = rcs[i].getElementsByTagName('tags')[0].getElementsByTagName('tag'); |
||
− | if (tags.length) { |
||
− | rc.state += TAG; |
||
− | rc.tags = tags; |
||
− | } |
||
− | |||
− | if (typeof(rc.comment) != "undefined") { |
||
− | lenj = commenttests.length; |
||
− | for (j=0; j<lenj; j++) |
||
− | if (new RegExp(commenttests[j].regex).test(rc.comment)) |
||
− | rc.state += commenttests[j].state; |
||
− | } |
||
− | |||
− | if (rc.newlen == 0) rc.state += BLANKING; |
||
− | |||
− | if (lstSysop.indexOf(rc.user) != -1) |
||
− | rc.state += SYSOP; |
||
− | |||
− | var mitigating = (rc.state & REVERT) |
||
− | || (rc.state & BLANKING) |
||
− | || (rc.state & REPLACED) |
||
− | || (rc.state & TAG) |
||
− | || (lstContact2[rc.user]) |
||
− | || (lstRevoc[rc.user]) |
||
− | || (rc.user == wgUserName); |
||
− | |||
− | if (document.getElementById('showIP').checked |
||
− | && !(rc.state & IP) |
||
− | && !mitigating ) continue; |
||
− | |||
− | if ((rc.state & PATROLLED) |
||
− | && document.getElementById('showIPNEW').checked |
||
− | && !mitigating ) continue; |
||
− | |||
− | if (lstHidden[rc.user] && !mitigating) continue; |
||
− | |||
− | wpajax.http({url: wgServer + wgScriptPath + '/api.php?titles=' + encodeURIComponent(rc.title) + '&action=query&prop=categories&redirects&format=xml', |
||
− | onSuccess: getRedirCat, rc: rc }); |
||
− | } |
||
− | |||
− | // Log |
||
− | var logs = api.getElementsByTagName('query')[0].getElementsByTagName('logevents')[0].getElementsByTagName('item'); |
||
− | var i,j,leni,lenj,log; |
||
− | |||
− | leni=logs.length; |
||
− | for (i=leni-1; i>=0; i--) { |
||
− | if (logs[i].getAttribute('logid') <= lastlogid) continue; |
||
− | log = new Object(); |
||
− | log.state = 0; |
||
− | |||
− | lenj = logs[i].attributes.length; |
||
− | for (j=0; j<lenj; j++) { |
||
− | if (logs[i].attributes[j].name == 'type') |
||
− | { |
||
− | switch(logs[i].attributes[j].value) { |
||
− | case 'patrol': |
||
− | // I "Segna come verificata" non li cago |
||
− | log.state += PATROL; |
||
− | break; |
||
− | case 'newusers': |
||
− | log.state += NEWUSER; |
||
− | break; |
||
− | case 'upload': |
||
− | log.state += UPLOAD; |
||
− | break; |
||
− | case 'block': |
||
− | log.state += BLOCK; |
||
− | if (logs[i].firstChild) |
||
− | log.duration = logs[i].firstChild.attributes[1].value; |
||
− | break; |
||
− | case 'delete': |
||
− | log.state += DELETE; |
||
− | break; |
||
− | case 'move': |
||
− | log.state += MOVE; |
||
− | if (logs[i].firstChild) |
||
− | log.new_title = logs[i].firstChild.attributes[1].value; |
||
− | case 'protect': |
||
− | log.state += PROTECT; |
||
− | break; |
||
− | case 'review': |
||
− | log.state += REVIEW; |
||
− | break; |
||
− | default: |
||
− | break; |
||
− | } |
||
− | } |
||
− | else |
||
− | log[logs[i].attributes[j].name] = logs[i].attributes[j].value; |
||
− | |||
− | //Set a dummy revid to prevent deletion |
||
− | log.revid=log.logid; |
||
− | } |
||
− | |||
− | if (typeof(log.comment) != "undefined") { |
||
− | lenj = commenttests.length; |
||
− | for (j=0; j<lenj; j++) |
||
− | if (new RegExp(commenttests[j].regex).test(log.comment)) |
||
− | log.state += commenttests[j].state; |
||
− | } |
||
− | |||
− | if (lstSysop.indexOf(log.user) != -1) |
||
− | log.state += SYSOP; |
||
− | |||
− | if (!(log.state & REVIEW)) |
||
− | wpajax.http({url: wgServer + wgScriptPath + '/api.php?titles=' + encodeURIComponent(log.title) + '&action=query&prop=categories&redirects&format=xml', |
||
− | onSuccess: getRedirCat2, log: log }); |
||
− | } |
||
− | |||
− | // Filters |
||
− | var filters = api.getElementsByTagName('query')[0].getElementsByTagName('abuselog')[0].getElementsByTagName('item'); |
||
− | var i,j,leni,lenj,filter; |
||
− | |||
− | leni=filters.length; |
||
− | for (i=leni-1; i>=0; i--) { |
||
− | if (filters[i].getAttribute('id') <= lastfilterid) continue; |
||
− | filter = new Object(); |
||
− | filter.state = ABFILTER; |
||
− | |||
− | lenj = filters[i].attributes.length; |
||
− | for (j=0; j<lenj; j++) { |
||
− | filter[filters[i].attributes[j].name] = filters[i].attributes[j].value; |
||
− | } |
||
− | |||
− | //Set a dummy revid to prevent deletion |
||
− | filter.revid = filter.id |
||
− | |||
− | // Get filter description |
||
− | |||
− | |||
− | //Set a dummy revid to prevent deletion |
||
− | filter.revid = filter.id |
||
− | |||
− | wpajax.http({url: wgServer + wgScriptPath + '/api.php?action=query&list=abusefilters&abflimit=1&format=xml&abfstartid=' + filter.filter_id, |
||
− | onSuccess: getFilterTitle, filter: filter }); |
||
− | } |
||
− | |||
− | |||
− | lastrcid = rcs[0].getAttribute('rcid'); |
||
− | lastlogid = logs[0].getAttribute('logid'); |
||
− | lastfilterid = filters[0].getAttribute('id'); |
||
− | lastrctimestamp = rcs[0].getAttribute('timestamp').replace(new RegExp(/\D/g), ""); |
||
− | lastletimestamp = logs[0].getAttribute('timestamp').replace(new RegExp(/\D/g), ""); |
||
− | lastafltimestamp = filters[0].getAttribute('timestamp').replace(new RegExp(/\D/g), ""); |
||
− | document.getElementById('tsInit').innerHTML = lastrctimestamp ; |
||
− | } |
||
− | |||
− | function getFilterTitle(xmlreq, data) { |
||
− | var filter = data.filter; |
||
− | |||
− | var xmlinfo = xmlreq.responseXML.getElementsByTagName('api')[0]; |
||
− | |||
− | if (xmlinfo.firstChild.nodeName == "error") return; |
||
− | |||
− | filter.comment = 'Déclenchement du filtre ' |
||
− | filter.comment += xmlinfo.getElementsByTagName('abusefilters')[0].getElementsByTagName('filter')[0].getAttribute('id'); |
||
− | filter.comment += ': '; |
||
− | filter.comment += xmlinfo.getElementsByTagName('abusefilters')[0].getElementsByTagName('filter')[0].getAttribute('description'); |
||
− | filter.comment += ' (action: '+ filter.result + ')'; |
||
− | |||
− | getRevision(filter); |
||
− | } |
||
− | |||
− | function liveRC() { |
||
− | var refresh = 10; |
||
− | timer= setTimeout("liveRC()",refresh*1000); |
||
− | |||
− | if (document.getElementById('stopLive').checked) return; |
||
− | |||
− | var rcns = document.getElementById('showNS0').value; |
||
− | if (rcns == null) return; |
||
− | |||
− | wpajax.http({url:wgServer + wgScriptPath |
||
− | + '/api.php?action=query&list=recentchanges|logevents|abuselog&rcnamespace=' + rcns |
||
− | + '&rcprop=user|comment|flags|timestamp|title|ids|sizes|tags' + (lrcPatrol ? '|patrolled' : '') |
||
− | + (document.getElementById('showBot').checked ? '&rcshow=!bot' : '') |
||
− | + '&rcend=' + lastrctimestamp + '&rclimit=' + lrcRCLimit |
||
− | + '&leend=' + lastletimestamp + '&lelimit=' + lrcRCLimit |
||
− | + '&aflend=' + lastafltimestamp + '&afllimit=' + lrcRCLimit |
||
− | + '&format=xml', |
||
− | onSuccess: getRC, message: "Traitement en cours...\n\n" }); |
||
− | } |
||
− | |||
− | function hideUser(name) { |
||
− | lstHidden[name] = true; |
||
− | updateHidden(); |
||
− | } |
||
− | |||
− | function unhideUser(name) { |
||
− | delete lstHidden[name]; |
||
− | updateHidden(); |
||
− | } |
||
− | |||
− | function showHideObj(parent, fils) { |
||
− | var ofils = document.getElementById( fils ); |
||
− | if (parent.checked) |
||
− | ofils.style.display=(ofils.nodeName=='span') ? 'inline' : 'block'; |
||
− | else |
||
− | ofils.style.display="none"; |
||
− | } |
||
− | |||
− | function liveRCInit() |
||
− | { |
||
− | wpajax.http({ url: wgServer + wgScriptPath + '/api.php?action=query&meta=userinfo&uiprop=rights&format=xml', |
||
− | onSuccess: getRights}); |
||
− | } |
||
− | |||
− | addOnloadHook(function () { |
||
− | if (wgNamespaceNumber==lrcNamespaceNumber && wgTitle == lrcTitle) { |
||
− | |||
− | var top = document.getElementById( 'top' ); |
||
− | if (top != null) { |
||
− | top.innerHTML = ""; |
||
− | top.style.display = "none"; |
||
− | } |
||
− | var siteSub = document.getElementById( 'siteSub' ); |
||
− | var contentSub = document.getElementById( 'contentSub' ); |
||
− | var rtb = document.getElementById( 'RealTitleBanner' ); |
||
− | var rt = document.getElementById( 'RealTitle' ); |
||
− | var pca = document.getElementById( 'p-cactions' ); |
||
− | |||
− | // init timezone settings |
||
− | if (lrcTZ) { |
||
− | lrcTZ = false; |
||
− | var regex = new RegExp(/^([-+])?(\d{1,2}):?(\d{2})$/); |
||
− | match = regex.exec(lrcTZ); |
||
− | if (match) { |
||
− | lrcTZ = match[2]*60 + match[3]*1; |
||
− | lrcTZ = match[1] == '-' ? -lrcTZ : lrcTZ; |
||
− | } |
||
− | } |
||
− | if (!lrcTZ) { |
||
− | var now = new Date(); |
||
− | lrcTZ = -now.getTimezoneOffset(); |
||
− | } |
||
− | // try to show TZ on LiveRC page |
||
− | try { |
||
− | lrcTZ_h = Math.round(lrcTZ/60) |
||
− | lrcTZ_m = Math.round(lrcTZ - lrcTZ_h*60) |
||
− | lrcTZ_m = (lrcTZ_m<10) ? "0"+lrcTZ_m : ""+lrcTZ_m |
||
− | document.getElementById('timezoneSetting').innerHTML = "UTC" + (lrcTZ_h>0 ? '+' : '') + lrcTZ_h + ":" + lrcTZ_m; |
||
− | } |
||
− | catch (e) {} |
||
− | |||
− | if (siteSub != null) siteSub.style.display = "none"; |
||
− | if (contentSub != null) contentSub.style.display = "none"; |
||
− | if (rtb != null) rtb.style.display = "none"; |
||
− | if (rt != null) rt.style.display = "none"; |
||
− | if (pca != null) pca.style.display = "none"; |
||
− | |||
− | var showIPNEWbox = ''; |
||
− | if (lrcPatrol) |
||
− | showIPNEWbox = '<input id="showIPNEW" type="checkbox" ' + lrcShowIPNEWChecked + '/>' + |
||
− | '<label for="showIPNEW">' + lang_menu[0].IPNEW + ' </label>'; |
||
− | |||
− | var lvPreviewFoot = document.getElementById( 'livePreviewFoot' ); |
||
− | lvPreviewFoot.innerHTML = '<a href="javascript:;" onClick="supprLigne(\'*\');" style="color: red; font-weight: bold;">X</a>' + |
||
− | '<a href="javascript:;" onClick="supprLigne(\'d\');" style="color: rgb(255, 235, 71); font-weight: bold;">X</a>' + |
||
− | '<a href="javascript:;" onClick="supprLigne(\'r\');" style="color: rgb(255, 99, 83); font-weight: bold;">X</a>' + |
||
− | '<a href="javascript:;" onClick="supprLigne(\'n\');" style="color: rgb(178, 243, 113); font-weight: bold;">X</a>' + |
||
− | '<input id="stopLive" type="checkbox" value="true" />' + |
||
− | '<label for="stopLive">' + lang_menu[0].PAUSE + '</label>' + |
||
− | '<input id="shidPrev" type="checkbox" onclick="showHideObj(this, \'divLivePreview\');" />' + |
||
− | '<label for="shidPrev">' + lang_menu[0].PREVIEW + '</label>' + |
||
− | '<input id="shidList" type="checkbox" onclick="showHideObj(this, \'liveFollow\');" />' + |
||
− | '<label for="shidList">' + lang_menu[0].LISTS + '</label>' + |
||
− | '<input id="showDiffR" type="checkbox" />' + |
||
− | '<label for="showDiffR">'+ lang_menu[0].LOWDIFF + '</label>' + |
||
− | '<input id="showBot" type="checkbox" ' + lrcShowBotChecked + ' />' + |
||
− | '<label for="showBot">' + lang_menu[0].NOBOTS + '</label>' + |
||
− | '<input id="showIP" type="checkbox" ' + lrcShowIPChecked + '/>' + |
||
− | '<label for="showIP">' + lang_menu[0].IPONLY + ' </label>' + |
||
− | showIPNEWbox + |
||
− | '<input id="showRC" type="checkbox" ' + lrcShowRCChecked + ' />' + |
||
− | '<label for="showRC">' + lang_menu[0].RCLABEL + ' </label>' + |
||
− | '<input id="showLog" type="checkbox" ' + lrcShowLogChecked + '/>' + |
||
− | '<label for="showLog">' + lang_menu[0].LOGSHOW + ' </label>' + |
||
− | '<input id="showFilter" type="checkbox" ' + lrcShowFilterChecked + '/>' + |
||
− | '<label for="showFilter">' + lang_menu[0].ABSHOW + ' • </label>' + |
||
− | '<span id="selectNS" />'; |
||
− | |||
− | // '<input id="shidRC" type="checkbox" checked onclick="showHideObj(this, \'divTabRC\');" />' + |
||
− | // '<label for="shidRC">' + lang_menu[0].RCLABEL + '</label>' + |
||
− | |||
− | if (lrcPreviewHeight) document.getElementById('livePreview').style.height = lrcPreviewHeight; |
||
− | |||
− | var _len = lstContact.length; |
||
− | lstContact2 = new Array(); |
||
− | for (var _i=0; _i<_len; _i++) |
||
− | lstContact2[lstContact[_i]] = { ts: 0 }; |
||
− | |||
− | // Main |
||
− | liveRCInit(); |
||
− | } |
||
− | }); |
||
− | |||
− | /* </source> */ |
Aktualna wersja na dzień 13:07, 25 lis 2021
Niniejszy program jest wolnym oprogramowaniem; możesz go rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według wersji drugiej tej Licencji lub którejś z późniejszych wersji. Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny - jednak bez jakiejkolwiek gwarancji, nawet domyślnej gwarancji przydatności handlowej albo przydatności do określonych zastosowań. Zobacz treść licencji GNU General Public License. |
Niniejszy plik został zaimportowany 2021-11-25 w ramach procesu migracji plików z linuxwiki.pl na linux.fandom.com.
Autor lub autorzy pojawiający się w historii strony: PiotrekD