„Benutzer:РDD3/markAdmins.js“ – Versionsunterschied
Erscheinungsbild
Inhalt gelöscht Inhalt hinzugefügt
РDD3 (Diskussion | Beiträge) Neue Gruppe, Request von Spezial:Permanenter Link/160269821#markAdmins.js |
РDD3 (Diskussion | Beiträge) Zusammenführung des Forks von Commons:MediaWiki:Gadget-markAdmins-data.js, sollte um die 200% schneller sein |
||
Zeile 1: | Zeile 1: | ||
/** |
|||
//*********************************************************************** |
|||
* Flag administrators and special user group members with a letter |
|||
// Skript ursprünglich von [[Benutzer:Euku]], 28. Dez. 2005 |
|||
* in parenthesis behind links that go into their user namespace. |
|||
// Ex-Admin-Markierung von [[Benutzer:Sir]] und [[Benutzer:Olliminatore]] |
|||
* E.g. Didym -> Didym (A) |
|||
// Adaptierung/zusätzliche Markierungen/Fixes: [[Benutzer:PDD]] |
|||
* |
|||
// Aufgeräumt & beschleunigt: [[Benutzer:Littl]] |
|||
* @rev 14:18, 7. Dez. 2016 (CET) |
|||
// Etwas umgeräumt und potentielle Skinabhängigkeit entfernt: [[Benutzer:Guandalug]] |
|||
* @author Euku, 28. Dez. 2005 |
|||
//*********************************************************************** |
|||
* @author Sir und Olliminatore - Ex-Admin-Markierung |
|||
* @author PDD - Adaptierung/zusätzliche Markierungen/Fixes |
|||
* @author Littl - aufgeräumt & beschleunigt |
|||
* @author Guandalug - Etwas umgeräumt und potentielle Skinabhängigkeit entfernt |
|||
* @author Didym, Rillke, 2014 |
|||
**/ |
|||
// <nowiki> |
// <nowiki> |
||
/* |
/*global mediaWiki, jQuery*/ |
||
(function (mw, $) { |
|||
'use strict'; |
|||
// Jede der folgenden Variablen kann in der eigenen monobook.js/vector.js/common.js vorbelegt werden. |
|||
var markadmins = window.markadmins === undefined || window.markadmins; |
|||
// Getestet wird jeweils die Ausnahme, Standard ist jeweils das Gegenteil davon. |
|||
// Jeder der folgenden vordefinierbaren Variablenwerte kann in |
|||
var markadmins = window.markadmins !== false; |
|||
// der eigenen monobook.js/vector.js/common.js vorbelegt werden. |
|||
var markcomadmins = window.markcomadmins === true; |
|||
var markAdmins = mw.libs.markAdmins = { |
|||
nodes: [], |
|||
var markexadmins = window.markexadmins === true; |
|||
config: { |
|||
var markexbureaucrats = window.markexbureaucrats === true; |
|||
groups: { |
|||
arbcom: { |
|||
label: 'SG', |
|||
legacyName: 'arbcom', |
|||
legacyLabelId: 'arbcomtxt', |
|||
enabled: true |
|||
}, |
|||
ombudsman: { |
|||
label: 'Omb', |
|||
legacyName: 'ombudsman', |
|||
legacyLabelId: 'ombudsmantxt', |
|||
enabled: true |
|||
}, |
|||
renadmin: { |
|||
label: 'A-Ren', |
|||
legacyName: 'rena', |
|||
legacyLabelId: 'renatxt', |
|||
enabled: true |
|||
}, |
|||
comadmin: { |
|||
label: 'Com-A', |
|||
legacyName: 'coma', |
|||
legacyLabelId: 'comatxt', |
|||
enabled: false |
|||
}, |
|||
exadmin: { |
|||
label: 'Ex-A', |
|||
legacyName: 'exa', |
|||
legacyLabelId: 'exatxt', |
|||
enabled: false |
|||
}, |
|||
wdadmin: { |
|||
label: 'WD-A', |
|||
legacyName: 'wda', |
|||
legacyLabelId: 'wdatxt', |
|||
enabled: false |
|||
}, |
|||
exbureaucrat: { |
|||
label: 'Ex-B', |
|||
legacyName: 'exbureau', |
|||
legacyLabelId: 'exbureautxt', |
|||
enabled: false |
|||
} |
|||
} |
|||
}, |
|||
defaults: { |
|||
groups: { |
|||
sysop: { |
|||
label: 'A', |
|||
legacyName: 'admins', |
|||
legacyLabelId: 'atxt', |
|||
enabled: true |
|||
}, |
|||
oversight: { |
|||
label: 'OS', |
|||
legacyName: 'oversight', |
|||
legacyLabelId: 'oversighttxt', |
|||
enabled: true |
|||
}, |
|||
checkuser: { |
|||
label: 'CU', |
|||
legacyName: 'checkuser', |
|||
legacyLabelId: 'checkusertxt', |
|||
enabled: true |
|||
}, |
|||
bureaucrat: { |
|||
label: 'B', |
|||
legacyName: 'bureaucrat', |
|||
legacyLabelId: 'bureautxt', |
|||
enabled: true |
|||
}, |
|||
steward: { |
|||
label: 'S', |
|||
legacyName: 'steward', |
|||
legacyLabelId: 'stewtxt', |
|||
enabled: true |
|||
}, |
|||
'OTRS-member': { |
|||
label: 'P', |
|||
legacyName: 'otrs', |
|||
legacyLabelId: 'otrstxt' |
|||
}, |
|||
'Image-reviewer': { |
|||
label: 'L', |
|||
legacyName: 'imagereviewers', |
|||
legacyLabelId: 'imgreviewertxt' |
|||
} |
|||
}, |
|||
runOn: ['Special', 'User', 'User_talk', 'Project', 'File', 'Help'], |
|||
runOnHistory: true, |
|||
runOnTalk: true, |
|||
runOnDiff: true |
|||
}, |
|||
init: function (users) { |
|||
markAdmins.users = users; |
|||
// Wait for user configuration through their .js |
|||
// Not adding as a gadget dependency because user .js |
|||
// is sometimes invalid and fails loading and |
|||
// gadget dependencies do not offer failed/error |
|||
// options |
|||
mw.loader.using('user', markAdmins.mergeConfig, markAdmins.mergeConfig); |
|||
}, |
|||
mergeConfig: function () { |
|||
// Merge new configuration |
|||
// var optionsConfig = mw.user.options.get('markAdminCfg'); |
|||
var cfg = $.extend( |
|||
true, |
|||
markAdmins.config, |
|||
markAdmins.defaults, |
|||
window.markAdminCfg || {} |
|||
// optionsConfig ? JSON.parse(optionsConfig) : {} |
|||
); |
|||
// Merge legacy config (maybe removed in future) |
|||
var markarbcom = window.markarbcom !== false; |
|||
$.each(cfg.groups, function (groupName, grpCfg) { |
|||
var markoversight = window.markoversight !== false; |
|||
// Display settings |
|||
var markcheckuser = window.markcheckuser !== false; |
|||
var enabled = window['mark' + grpCfg.legacyName]; |
|||
if (enabled !== undefined) |
|||
grpCfg.enabled = !!enabled; |
|||
// Label |
|||
var label = window['mark' + grpCfg.legacyLabelId]; |
|||
if (label !== undefined) |
|||
grpCfg.label = label; |
|||
}); |
|||
cfg.markSubpages = !!window.marksubpages; |
|||
cfg.dontmarkmyself = window.dontmarkmyself ? mw.config.get('wgUserName') : false; |
|||
// Hook-up content loading |
|||
var marksubpages = window.marksubpages === true; |
|||
mw.hook('wikipage.content').add(markAdmins.addLabels); |
|||
var dontmarkmyself = window.dontmarkmyself === true; |
|||
}, |
|||
markUser: function (marks, a, b) { |
|||
b.appendChild(document.createTextNode('\u00A0(' + marks.join("/") + ')')); |
|||
a.appendChild(b); |
|||
markAdmins.nodes.push(b); |
|||
}, |
|||
destroy: function () { |
|||
$.each(markAdmins.nodes, function (i, n) { |
|||
$(n).remove(); |
|||
}); |
|||
}, |
|||
reInit: function () { |
|||
markAdmins.destroy(); |
|||
markAdmins.mergeConfig(); |
|||
}, |
|||
addLabels: function ($content) { |
|||
// Die Markierungen dürfen nie leer sein, das wird hier sichergestellt. |
|||
var users = markAdmins.users; |
|||
if (!users) |
|||
var markbureautxt = window.markbureautxt || 'B'; |
|||
return; |
|||
var markstewtxt = window.markstewtxt || 'S'; |
|||
if (!markAdmins.fullPageProcessed) { |
|||
var markrenatxt = window.markrenatxt || 'A-Ren'; |
|||
$content = $('#mw-content-text'); |
|||
if (!$content.length) |
|||
$content = $('#bodyContent'); |
|||
if (!$content.length) |
|||
$content = $(document); |
|||
markAdmins.fullPageProcessed = true; |
|||
} |
|||
// Right, the configuration evaluation is here |
|||
var markcomatxt = window.markcomatxt || 'Com-A'; |
|||
// It might be possible to use Ajax for page |
|||
var markwdatxt = window.markwdatxt || 'WD-A'; |
|||
// navigation in future. |
|||
var canNs = mw.config.get('wgCanonicalNamespace'); |
|||
var isSubpageListing = !!({ |
|||
'Prefixindex': 1, |
|||
'Allpages': 1 |
|||
})[mw.config.get('wgCanonicalSpecialPageName')]; |
|||
var isHistory = mw.config.get('wgAction') === 'history'; |
|||
var isTalk = mw.config.get('wgNamespaceNumber') % 2 === 1; |
|||
var isDiff = !!mw.util.getParamValue('diff'); |
|||
var cfg = markAdmins.config; |
|||
var nsCondition = cfg.runOn.indexOf(canNs) !== -1; |
|||
var enabledGroups = {}; // collect only relevant groups |
|||
var marker = {}; // collect user-links |
|||
// Namespace run conditions |
|||
var markexatxt = window.markexatxt || 'Ex-A'; |
|||
if (!(nsCondition || |
|||
var markexbureautxt = window.markexbureautxt || 'Ex-B'; |
|||
isHistory && cfg.runOnHistory || |
|||
isTalk && cfg.runOnTalk || |
|||
isDiff && cfg.runOnDiff)) |
|||
return; |
|||
$.each(cfg.groups, function (g, grpCfg) { |
|||
var markoversighttxt = window.markoversighttxt || 'OS'; |
|||
if (grpCfg.enabled) { |
|||
var markcheckusertxt = window.markcheckusertxt || 'CU'; |
|||
enabledGroups[g] = grpCfg; |
|||
var markombudsmantxt = window.markombudsmantxt || 'Omb'; |
|||
if (users[g]) |
|||
var markarbcomtxt = window.markarbcomtxt || 'SG'; |
|||
enabledGroups[g].users = '|' + users[g].join('|') + '|'; |
|||
else // should never happen |
|||
delete enabledGroups[g]; |
|||
} |
|||
}); |
|||
var allanchors = $content[0].getElementsByTagName('A'); |
|||
// Ende der vordefinierbaren Variablenwerte |
|||
var previousUser = ''; |
|||
var reUserpage = /\/wiki\/Benutzer(in)?([ _]Diskussion)?:(.+)/; |
|||
var node = document.createElement('b'); |
|||
node.className = 'adminMark'; |
|||
for (var i = 0, anchorsLen = allanchors.length; i < anchorsLen; ++i) { |
|||
// Vorzeitiger Abbruch, wenn es nichts zu tun gibt. |
|||
var a = allanchors[i]; |
|||
if (!markadmins && !markcomadmins && !markwdadmins && !markexadmins && !markexbureaucrats) |
|||
var href = a.getAttribute("href"); |
|||
return; |
|||
// If it's not a link to a user |
|||
var cNs = mw.config.get('wgCanonicalNamespace'); |
|||
if (!href) |
|||
var isSpecial = cNs === "Special"; |
|||
continue; |
|||
var isHistory = mw.config.get('wgAction') === 'history'; |
|||
var isUserpage = cNs === "User" || cNs === "User_talk"; |
|||
var isTalk = mw.config.get('wgNamespaceNumber') % 2 === 1; |
|||
var isProject = cNs === "Project"; |
|||
var isFile = cNs === "File"; |
|||
var isHelp = cNs === "Help"; |
|||
var isDiff = mw.util.getParamValue('diff') !== null; |
|||
// Extract user page ( /wiki/User_talk:Foo/subpage -> Foo/subpage ) |
|||
if (markadmins) { |
|||
var m = href.match(reUserpage); |
|||
// statische Liste (dynamisch: http://toolserver.org/~aka/dewiki_admins_utf8.txt ) |
|||
if (!m || !m[3]) |
|||
// Stand: 24.11.2016 |
|||
continue; |
|||
var admins = ["Achim_Raschka", "AFBorchert", "AHZ", "Aka", "Alraunenstern", "Ambross07", "Anka_Friedrich", "APPER", "Armin_P.", "Artregor", "Aspiriniks", "Atamari", "Baumfreund-FFM", "Benowar", "Brackenheim", "Bubo_bubo", "Cactus26", "Carbidfischer", "Catrin", "Cherubino", "Chewbacca2205", "Chricho", "Christian2003", "Cirdan", "C%C3%A9sar", "C%C3%BA_Faoil", "Cymothoa_exigua", "D", "DaB.", "Dandelo", "Der.Traeumer", "DerHexer", "Doc_Taxon", "Doc.Heintz", "Drahreg01", "Eike_sauer", "Elendur", "Elya", "Emergency_doc", "Emes", "Engie", "Entlinkt", "Enzian44", "Ephraim33", "Eschenmoser", "Euku", "Eynre", "Felistoria", "Firefox13", "Flibbertigibbet", "Flominator", "Frank_Schulenburg", "Funkruf", "GDK", "Geiserich77", "Gerbil", "Gereon_K.", "Gestumblindi", "Gleiberg", "Graphikus", "Gripweed", "Gustav_von_Aschenbach", "H-stt", "Hadhuey", "HaeB", "Hans-J%C3%BCrgen_H%C3%BCbner", "He3nry", "Hejkal", "Hephaion", "Herzi_Pinki", "Hic_et_nunc", "Hofres", "Holmium", "HOPflaume", "Horst_Gr%C3%A4bner", "Howwi", "Hukuk%C3%A7u", "Hydro", "Ireas", "Itti", "Ixitixel", "J_budissin", "JWBE", "Jcornelius", "JD", "Jivee_Blau", "J%C3%BCrgen_Oetting", "JuTa", "Kaisersoft", "Kam_Solusar", "Karsten11", "Kein_Einstein", "Kh80", "Krd", "Kriddl", "Kritzolina", "Kuebi", "Kulac", "Kurator71", "Kurt_Jansson", "Leithian", "Leyo", "Lipstar", "Logograph", "Lou.gruber", "Lustiger_seth", "MBq", "Mabschaaf", "Machahn", "Maclemo", "Magiers", "Man77", "Memnon335bc", "Merlissimo", "Micha", "Micha_L._Rieser", "Mikered", "Mo4jolo", "Mogelzahn", "Murli", "Neozoon", "Nepenthes", "NiTenIchiRyu", "Nikkis", "Nolispanmo", "NordNordWest", "Nothere", "Orci", "Ot", "Otberg", "Pacogo7", "Partynia", "PaterMcFly", "PDD", "Pelz", "Perrak", "Plani", "Polarlys", "Poupou_l%27quourouce", "Quedel", "Queryzo", "Ra%27ike", "Rainer_Lippert", "Rax", "Raymond", "Redlinux", "Regi51", "Regiomontanus", "Reinhard_Kraasch", "Rolf_H.", "Rosenzweig", "S._F._B._Morse", "S.Didam", "Saehrimnir", "Sargoth", "Schniggendiller", "Schwalbe", "Seewolf", "Septembermorgen", "Shikeishu", "Solid_State", "Squasher", "SteKrueBe", "Stechlin", "Stefan", "Stefan_K%C3%BChn", "Stefan64", "Steffen_L%C3%B6we_Gera", "Steschke", "Superbass", "ThePeter", "Theghaz", "Thogo", "Ticketautomat", "Tilman_Berger", "Timk70", "Tsor", "Tsui", "UW", "Ukko", "Umherirrender", "Ureinwohner", "Uwe_Gille", "WAH", "WIKImaniac", "Wahldresdner", "Wahrerwattwurm", "Wdwd", "Wikijunkie", "Wnme", "Wo_st_01", "XenonX3", "Xqt", "Yellowcard", "YourEyesOnly", "Zinnmann", "Zollernalb"]; |
|||
var userpage = m[3]; |
|||
// Extract user |
|||
admins = '|' + admins.join('|') + '|'; |
|||
var user = userpage.replace(/[/#]. * / , ''); |
|||
var isMainUserpageLink = user === userpage; |
|||
var bureaucrats = ["APPER", "MBq", "Merlissimo", "Itti"]; |
|||
var isUsertalkLink = !!m[2]; |
|||
bureaucrats = '|' + bureaucrats.join('|') + '|'; |
|||
// Two consecutive links to the same user? Don't mark followups! |
|||
// Stewards: Abgleich mit http://de.wikipedia.org/w/index.php?title=Spezial%3AGlobale_Benutzerliste&username=&group=steward&limit=100 |
|||
previousUser = (previousUser === user && isUsertalkLink); |
|||
var stewards = [ |
|||
if (previousUser) // only once |
|||
/* stewards */ |
|||
continue; |
|||
"Ajraddatz", "Avraham", "Barras", "Bennylin", "Bsadowski1", "DerHexer", "Einsbor", "Hoo_man", "Jyothis", "Linedwell", "M7", "MarcoAurelio", "Mardetanha", "Masti", "Matanya", "MBisanz", "Melos", "Mentifisto", "MF-Warburg", "NahidSultan", "Pmlineditor", "QuiteUnusual", "RadiX", "Ruslik0", "Savh", "Shanmugamp7", "Stryn", "Tegel", "Teles", "Trijnstel", "Vituzzu"]; |
|||
stewards = '|' + stewards.join('|') + '|'; |
|||
if (marker[user] === undefined) { |
|||
// renames |
|||
var curUser = "|" + user + "|"; |
|||
var renadmins = ["Gunter_Krebs", "Budissin", "Gunter.krebs", "Thomas_Goldammer", "RKraasch", "St-fl", "Paul_Conradi", "Hoch_auf_einem_Baum", "OnkelJohn", "Schweinepeterle", "Jutta234", "Gloecknerd", "Ex-Steerpike", "HansCastorp", "BayernMuenchen", "Dr.heintz", "Dr.Heintz", "Hans_J._Castorp"]; |
|||
var mark = []; |
|||
renadmins = '|' + renadmins.join('|') + '|'; |
|||
// String concatenation is oftentimes faster in modern browsers, |
|||
} |
|||
// so using Arrays and joining them finally seems advantage. |
|||
// But we would need an additional IF, so there is no gain. |
|||
if (markcomadmins) { |
|||
for (var g in enabledGroups) { |
|||
// Stand: 19.11.2016 |
|||
if (enabledGroups[g].users.indexOf(curUser) !== -1) |
|||
var comadmins = ["-revi", "~riley", "1Veertje", "32X", "99of9", "A.Savin", "AFBorchert", "Achim55", "Ahonc", "Aka", "Alan", "Alison", "Alno", "Amada44", "AnRo0002", "Angr", "Ankry", "Anthere", "Aude", "Avraham", "AzaToth", "Badseed", "Barcex", "Bastique", "Basvb", "Benoit_Rochon", "Beria", "Billinghurst", "Blackcat", "BrightRaven", "Butko", "Cambalachero", "Captain-tucker", "ChrisiPK", "Ciell", "Common_Good", "CommonsDelinker", "Cookie", "Courcelles", "Coyau", "Czar", "D-Kuru", "DMacks", "DaB.", "Dantadd", "Darwinius", "Davepape", "David_Levy", "De728631", "DerHexer", "Dereckson", "Dharmadhyaksha", "Didym", "Dschwen", "Ebrahim", "Edgar181", "Elcobbola", "Eleassar", "Elitre", "Ellin_Beltz", "Elya", "Emha", "EugeneZelenko", "Ezarate", "Fanghong", "Flominator", "FunkMonk", "Geagea", "Geni", "George_Chernilevsky", "Gestumblindi", "GifTagger", "Gnangarra", "Golbez", "Grin", "Gruznov", "H-stt", "HJ_Mitchell", "Hedwig_in_Washington", "Hekerui", "Herbythyme", "Hesperian", "Howcheng", "Huntster", "Hystrix", "INeverCry", "Indeedous", "Infrogmation", "JGHowes", "Jameslwoodward", "January", "Jaqen", "Jarekt", "JarrahTree", "Jastrow", "Jcb", "Jcornelius", "Jdforrester", "Jdx", "Jean-Fr%C3%A9d%C3%A9ric", "Jianhui67", "Jmabel", "Joergens.mi", "John_Vandenberg", "Josve05a", "JuTa", "Julo", "Jusjih", "KTo288", "Kaldari", "Kallerna", "Kelly", "King_of_Hearts", "Klemen_Kocjancic", "Krd", "Krinkle", "KrinkleBot", "Kwj2772", "Leit", "Leyo", "Lokal_Profil", "Lymantria", "L%C3%A9na", "M0tty", "MBisanz", "MPF", "Magog_the_Ogre", "Maire", "Marcus_Cyron", "Mardetanha", "Martin_H.", "Masur", "Matanya", "Materialscientist", "Mattbuck", "Maxim", "McZusatz", "Mentifisto", "MichaelMaggs", "Micheletb", "Missvain", "Mitchazenia", "Miya", "Mmxx", "Mono", "Morgankevinj", "Mormegil", "Multichill", "Mys_721tx", "Nagy", "NahidSultan", "Natuur12", "Neozoon", "Nick", "Nilfanion", "NordNordWest", "Notafish", "Nyttend", "Odder", "Okki", "Otourly", "P199", "Pi.1415926535", "PierreSelim", "Pitke", "Platonides", "Pleclown", "Poco_a_poco", "Podzemnik", "Polarlys", "Powerek38", "PumpkinSky", "Putnik", "Pyb", "Pymouss", "RP88", "Ra%27ike", "Ragesoss", "Rama", "Rastrojo", "Raymond", "Rehman", "Reinhard_Kraasch", "Revent", "Rillke", "Rimshot", "Rodhullandemu", "Romaine", "Ronhjones", "Rosenzweig", "Royalbroil", "Rubin16", "Rudolphous", "Sanandros", "Sandstein", "Sealle", "Shizhao", "Siebrand", "Sphilbrick", "Spiritia", "Sreejithk2000", "Srittau", "Steinsplitter", "Stifle", "Storkk", "Tabercil", "Taivo", "Tarawneh", "Techman224", "Teles", "Thibaut120094", "Thuresson", "Tom", "Trijnstel", "Tsca", "T%C3%BArelio", "VIGNERON", "WJBscribe", "Waldir", "Wdwd", "Whym", "Wikitanvir", "Wsiegmund", "Wutsje", "Wuzur", "Wvk", "Yann", "Yarl", "Yasu", "Ymblanter", "Yuval_Y", "Zhuyifei1999", "Zzyzx11", "%C3%89rico", "%E3%81%A8%E3%81%82%E3%82%8B%E7%99%BD%E3%81%84%E7%8C%AB"]; |
|||
mark.push(enabledGroups[g].label); |
|||
comadmins = '|' + comadmins.join('|') + '|'; |
|||
} |
|||
if (markwdadmins) { |
|||
// Stand: 01.09.2016 |
|||
// Notes: Wikibase-Entwickler von WMDE werden nicht gekennzeichnet |
|||
var wdadmins = ["-revi", "Addshore", "Ajraddatz", "AmaryllisGardener", "Andreasmperu", "Andre_Engels", "Arkanosis", "Ash_Crow", "Calak", "Caliburn", "Conny", "Courcelles", "Csigabi", "Delusion23", "Ebrahim", "Edoderoo", "Ep%C3%ACdosis", "Eurodyne", "FakirNL", "Fomafix", "HakanIST", "Harmonia_Amanda", "Hazard-SJ", "Hoo_man", "Jared_Preston", "Jasper_Deng", "Jianhui67", "Jon_Harald_S%C3%B8by", "Ladsgroup", "LadyInGrey", "Lakokat", "Lymantria", "Mat%C4%9Bj_Such%C3%A1nek", "Mbch331", "Multichill", "Mushroom", "Nikki", "Nikosguard", "Pamputt", "Pasleim", "Penn_Station", "Ricordisamoa", "Rippitippi", "Romaine", "Rschen7754", "Rzuwig", "Sannita", "Sjoerddebruin", "Sotiale", "Stryn", "Taketa", "ValterVB", "Vogone", "Wagino_20100516", "Whym", "Ymblanter", "YMS", "Zolo", "%EB%B6%84%EB%8B%B9%EC%84%A0M"]; |
|||
wdadmins = '|' + wdadmins.join('|') + '|'; |
|||
} |
|||
if (markexadmins) { |
|||
/* |
|||
Notizen zu den Ex-Admins: |
|||
- PyBot: nur technisch Admin (2003) |
|||
- VIBBER/Starling: Status unklar (als IW-Developer wohl Adm, 2003/2004 in Admin-Liste geführt) |
|||
- VIBBER 20.4.07 selbst geadmint (???) |
|||
- klar deklarierte Nachfolgeaccounts stehen auch hier (El->Jah, Robert Kropf->TheRunnerUp) |
|||
- umbenannte Ex-Admins stehen auch hier (keine Extramarkierung für die paar Leute) |
|||
- Legende dazu: |
|||
Coma/Koethnig2 -> Koethnig |
|||
Tinuriand -> DaTroll/Umbenannter Benutzer1 -> P. Birken |
|||
El -> Jah |
|||
Frank 11NR -> Pfalzfrank |
|||
Geisterbanker -> S1 |
|||
S1 -> A.Savin |
|||
A.Savin -> Savin 2005 |
|||
NickKnatteron -> STBR |
|||
Marcela -> Ralf Roletschek |
|||
Zenogantner -> Zeno Gantner |
|||
Blunts -> Blunt. |
|||
Hufi2404 -> Hufi |
|||
Hufi -> ABC1234567 |
|||
Addicks -> -jha- |
|||
Magnus -> Tullius |
|||
Presroi -> Mathias Schindler |
|||
Taxman -> TAXman |
|||
Kenwilliams -> Marcus Cyron |
|||
Blaite -> Holger I. |
|||
Rocco -> Sinn |
|||
Guenny -> Christian Günther |
|||
Sarazyn -> Jonathan Groß |
|||
Schlendrian -> Florian Adler |
|||
Capaci34 -> Thomas Glintzer |
|||
Tolanor von Preto -> Tolanor |
|||
Jrohr -> Johannes Rohr |
|||
Löschkandidat -> LKD |
|||
Pill -> Pajz |
|||
- verstorben: |
|||
Srbauer, Hermannthomas, Bradypus, ArtMechanic, Geos, NebMaatRe, Martin-vogel, Lady Whistler |
|||
- Deadmin: |
|||
Paddy: 15.4.2005 (WW verloren) |
|||
Anathema: 13.6.2005 |
|||
Simplicius: 4.8.2005 (WW verloren) |
|||
Triebtäter: 7.8.2005 (WW verloren) |
|||
Mijobe: 17.9.2005 (WW gewonnen, trotzdem Deadmin) |
|||
Coma + Koethnig: 17.12.2005 |
|||
Wst: 31.7.2006 / 5.10.2006 |
|||
- Gescheiterte Wiederwahl nach MB |
|||
Liesel: 10.11.2009 |
|||
EBB: 24.11.2009 |
|||
ChristophLanger: 4.12.2009 |
|||
Nocturne: 4.12.2009 |
|||
Arnomane: 6.12.2009 |
|||
Vigala Veia: 6.12.2009 |
|||
Asb: 7.12.2009 |
|||
Fire: 7.12.2009 |
|||
ElRaki: 7.12.2009 |
|||
Fusslkopp: 8.12.2009 |
|||
Limasign: 8.12.2009 |
|||
Stw: 8.12.2009 |
|||
Cottbus: 8.12.2009 |
|||
Mikue: 8.12.2009 |
|||
Threedots: 8.12.2009 |
|||
Tullius: 8.12.2009 |
|||
Zenon: 8.12.2009 |
|||
Irmgard: 9.12.2009 |
|||
Chef: 11.12.2009 |
|||
Sigune: 11.12.2009 |
|||
Beyer: 11.12.2009 |
|||
LosHawlos: 11.12.2009 |
|||
Hoheit: 11.12.2009 |
|||
Sven-steffen arndt: 12.12.2009 |
|||
Vic Fontaine: 12.12.2009 |
|||
Bernhard55: 13.12.2009 |
|||
Echoray: 14.12.2009 |
|||
Triggerhappy: 14.12.2009 |
|||
Nina: 14.12.2009 |
|||
AlexR: 23.12.2009 |
|||
Fb78: 29.12.2009 |
|||
Schewek: 31.12.2009 |
|||
Schnargel: 31.12.2009 |
|||
Stahlkocher: 31.12.2009 |
|||
Rhododendronbusch: 17.01.2010 |
|||
Nerd: 09.02.2011 |
|||
Tilla: 06.04.2011 |
|||
1001: 18.06.2011 |
|||
Nb: 18.07.2011 |
|||
32X: 02.04.2012 (WW nicht angetreten) |
|||
CdaMVvWgS: 15.06.2012 (WW nicht angetreten) |
|||
Mathias_Schindler: 16.06.2012 (WW nicht angetreten) |
|||
Streifengrasmaus: 16.06.2012 (WW nicht angetreten) |
|||
Alexander_Z.: 16.06.2012 (WW nicht angetreten) |
|||
Avatar: 16.06.2012 (WW nicht angetreten) |
|||
Birger_Fricke: 16.06.2012 (WW nicht angetreten) |
|||
Chb: 16.06.2012 (WW nicht angetreten) |
|||
Duesentrieb: 16.06.2012 (WW nicht angetreten) |
|||
Holger_I.: 16.06.2012 (WW nicht angetreten) |
|||
John_N.: 16.06.2012 (WW nicht angetreten) |
|||
Melkom: 16.06.2012 (WW nicht angetreten) |
|||
Robodoc: 16.06.2012 (WW nicht angetreten) |
|||
Philipendula: 16.06.2012 (WW nicht angetreten) |
|||
Sinn: 16.06.2012 (WW nicht angetreten) |
|||
Zenit: 16.06.2012 (WW nicht angetreten) |
|||
Kku: 22.06.2012 (WW nicht erfolgreich) |
|||
Amberg 02.12.2012 (WW nicht erfolgreich) |
|||
Zumbo: 10.12.2012 (WW nicht angetreten) |
|||
JakobVoss: 24.06.2013 (WW nicht angetreten) |
|||
Janneman: 29.07.2013 (WW nicht angetreten) |
|||
Stepro: 18.11.2013 (WW nicht erfolgreich) |
|||
Media_lib: 02.01.2014 (WW nicht angetreten) |
|||
JD: 30.04.2014 (WW nicht angetreten) |
|||
Jan_eissfeldt: 10.09.2014 (WW nicht angetreten) |
|||
Memmingen: 05.12.2014 (WW nicht angetreten) |
|||
DaB.: 24.02.2015 (WW nicht erfolgreich |
|||
Artmax: 15.07.2015 (WW nicht angetreten) |
|||
Xocolatl: 20.09.2015 (WW nicht erfolgreich) |
|||
Altkatholik62: 25.09.2015 (WW nicht erfolgreich) |
|||
Magnus Manske: 20.10.2015 (WW nicht angetreten) |
|||
Morten Haan: 24.02.2016 (WW nicht erfolgreich) |
|||
Ne discere cessa!: 06.04.2016 (WW nicht erfolgreich) |
|||
Hyperdieter: 09.04.2016 (WW nicht erfolgreich) |
|||
Olaf Simons: 03.07.2016 (WW nicht angetreten) |
|||
Millbart: 21.07.2016 (WW nicht erfolgreich) |
|||
Factumquintus: 22.07.2016 (WW nicht angetreten) |
|||
Pjacobi: 27.07.2016 (WW nicht angetreten) |
|||
Schreiber: 28.07.2016 (WW nicht angetreten) |
|||
Cecil: 08.08.2016 (WW nicht angetreten) |
|||
Michael Sander: 09.08.2016 (WW nicht angetreten) |
|||
Pischdi: 18.08.2016 (WW nicht angetreten) |
|||
El Duende: 24.08.2016 (WW nicht angetreten) |
|||
Magnummandel: 26.08.2016 (WW nicht angetreten) |
|||
Church of emacs: 28.08.2016 ((WW nicht angetreten) |
|||
Nemissimo: 28.08.2016 (WW nicht angetreten) |
|||
Head: 28.08.2016 (WW nicht angetreten) |
|||
Slomox: 29.08.2016 (WW nicht angetreten) |
|||
Rainer Zenz: 31.08.2016 (WW nicht angetreten) |
|||
Bhuck: 31.08.2016 (WW nicht angetreten) |
|||
Michail: 31.08.2016 (WW nicht angetreten) |
|||
Scherben: 31.08.2016 (WW nicht angetreten) |
|||
JCS: 31.08.2016 (WW nicht angetreten) |
|||
Rdb: 31.08.2016 (WW nicht angetreten) |
|||
NoCultureIcons: 02.09.2016 (WW nicht angetreten) |
|||
Otto_Normalverbraucher: 08.09.2016 (WW nicht angetreten) |
|||
Sir: 08.09.2016 (WW nicht angetreten) |
|||
Pitichinaccio: 08.09.2016 (WW nicht angetreten) |
|||
DaBroMfld: 09.09.2016 (WW nicht angetreten) |
|||
AndreasPraefcke: 11.09.2016 (WW nicht angetreten) |
|||
Mazbln: 11.09.2016 (WW nicht angetreten) |
|||
Nicola: 11.09.2016 (WW nicht erfolgreich) |
|||
BishkekRocks: 30.10.2016 (WW nicht angetreten) |
|||
- Untätigkeitsdeadmin: |
|||
16.04.2008: Aglarech, Ben-Zin, Igelball, Ilja_Lorek, Jofi, KMJ, Karl-Henner, |
|||
Pit, Robert_Kropf, Skriptor, Smurf, Terabyte, Thomas_Luft |
|||
13.06.2008: Erwin E aus U |
|||
17.07.2008: Kiker99, Vulture |
|||
21.07.2008: Kantor.JH, RobbyBer |
|||
03.08.2008: Herr_Th. |
|||
20.08.2008: Wolfgangbeyer |
|||
26.11.2008: Pfalzfrank |
|||
28.06.2009: Peterlustig |
|||
29.09.2009: JHeuser |
|||
15.11.2009: Fristu |
|||
03.01.2010: Manecke |
|||
15.02.2010: Kubrick |
|||
06.04.2010: Gardini |
|||
11.12.2010: Dr. Shaggeman, Lung |
|||
14.01.2011: Sa-se |
|||
15.09.2011: Raven |
|||
03.03.2012: MichaelDiederich |
|||
27.04.2012: TAXman |
|||
27.09.2012: Poisend-Ivy |
|||
22.01.2013: Hei_ber |
|||
06.02.2013: Guandalug |
|||
18.03.2013: Geisslr |
|||
19.09.2013: Florian Adler |
|||
12.10.2013: Noddy93 |
|||
08.01.2014: Saibo |
|||
12.11.2014: Peter200 |
|||
21.12.2014: Bdk |
|||
21.12.2014: Erzbischof |
|||
04.02.2015: Hafenbar |
|||
07.04.2015: LKD |
|||
18.04.2015: Feba |
|||
15.12.2015: Redf0x |
|||
06.02.2016: Svens Welt |
|||
- Ausstieg: |
|||
Steffen M.: 20.2.2005 |
|||
Sansculotte: 23.3.2005 |
|||
Dolos: 31.3.2005 |
|||
Katharina: 22.4.2005 |
|||
Herrick: 24.8.2005 |
|||
Breeze: 14.12.2005 |
|||
Jesusfreund: 23.1.2006 (WW dann verloren) |
|||
Akl: 12.2.2006 |
|||
DaTroll: 5.5.2006 (WW dann verloren) |
|||
Dickbauch: 6.7.2006 |
|||
Gunther: 5.12.2006 |
|||
Markus Schweiß: 30.3.2007 |
|||
Flups: 10.5.2007 |
|||
Eike sauer: 9.10.2007 (WW 28.7.2011) |
|||
Tobi B.: 24.10.2007 |
|||
Jergen: 5./10.2.2008 |
|||
Anneke Wolf: 8.2.2008 (6 Monate) |
|||
Sechmet: 13.5.2008 |
|||
Fantasy: 26.5.2008 |
|||
Herr Klugbeisser: 9.6.2008 |
|||
Marcus Cyron: 1.2.2009 (WW 14.8.2010) |
|||
Achim Raschka: 16.5.2009 |
|||
Tönjes: 26.6.2009 |
|||
Mnh: 9.8.2009 |
|||
Leithian: 16.9.2009 |
|||
Aristeides: 24.10.2009 |
|||
Markus Mueller: 24.10.2009 |
|||
Longbow4u: 25.10.2009 |
|||
Baldhur: 25.10.2009 |
|||
Achim Raschka: 26.10.2009 |
|||
Tönjes: 26.10.2009 |
|||
Lennert B: 27.10.2009 |
|||
Henriette Fiebig: 27.10.2009 |
|||
Syrcro: 29.10.2009 |
|||
Crux: 2.11.2009 |
|||
Alkuin: 2.11.2009 |
|||
My name: 2.11.2009 |
|||
Zeno Gantner: 3.11.2009 |
|||
TomK32: 7.11.2009 |
|||
Leon: 7.11.2009 |
|||
Richardfabi: 9.11.2009 |
|||
Darkone: 15.11.2009 |
|||
W.wolny: 15.11.2009 |
|||
IGEL: 16.11.2009 |
|||
Eloquence: 17.11.2009 |
|||
Tobnu: 19.11.2009 |
|||
Stern: 22.11.2009 |
|||
Elian: 24.11.2009 |
|||
GS: 24.11.2009 |
|||
Dishayloo: 25.11.2009 |
|||
Georg Slickers: 25.11.2009 |
|||
Blunt.: 30.11.2009 (2010/2011 SG-Admin) |
|||
Leipnizkeks: 17.12.2009 |
|||
Rauenstein: 31.12.2009 |
|||
Waugsberg: 5.4.2010 |
|||
STBR: 14.05.2010 |
|||
C-M: 23.06.2010 |
|||
S1: 28.09.2010 |
|||
SibFreak: 29.09.2010 |
|||
Geher: 02.01.2011 |
|||
Voyager: 08.01.2011 |
|||
Capaci34: 24.1.2011 (WW 10.9.2011) |
|||
Andibrunt: 03.02.2011 |
|||
Victor Eremita: 27.02.2011 |
|||
Idler: 27.03.2011 |
|||
Julius1990: 12.04.2011 |
|||
Codeispoetry: 26.05.2011 |
|||
Smial: 05.07.2011 |
|||
Sebmol: 09.07.2011 |
|||
Harro von Wuff: 16.07.2011 |
|||
Tröte: 28.07.2011 |
|||
Hufi: 21.08.2011 |
|||
Wiggum: 07.09.2011 |
|||
Don-kun: 10.10.2011 |
|||
Magadan: 26.10.2011 |
|||
Stullkowski: 09.11.2011 |
|||
Matthäus Wander: 03.12.2011 |
|||
Engelbaet: 03.12.2011 |
|||
Hozro: 13.12.2011 |
|||
Capaci34: 30.01.12 |
|||
Karl Gruber: 12.02.12 |
|||
Tafkas: 11.03.12 |
|||
Presse03: 14.05.12 |
|||
Silberchen: 19.05.12 |
|||
Langec: 19.05.12 |
|||
Adrian Suter: 22.05.12 |
|||
Jacktd: 22.05.12 |
|||
Dundak: 06.06.12 |
|||
Chrkl: 16.06.12 |
|||
Toter Alter Mann: 22.06.12 |
|||
Lyzzy: 22.06.12 |
|||
Port(u*o)s: 11.07.12 |
|||
Catfisheye: 12.09.12 |
|||
Aineias: 03.10.12 |
|||
Dealerofsalvation: 02.11.12 |
|||
Schiwago: 02.11.12 |
|||
Bücherwürmlein: 11.11.12 |
|||
Gnu1742: 24.01.13 |
|||
Baumfreund-FFM: 06.03.13 |
|||
Complex: 06.03.13 |
|||
Koenraad: 18.03.13 |
|||
Happolati: 01.07.13 |
|||
Mautpreller: 11.07.13 |
|||
Klugschnacker: 21.10.13 |
|||
Marcus Cyron: 31.10.13 |
|||
Jonathan Groß: 08.11.13 |
|||
Minderbinder: 31.12.13 |
|||
Eschenmoser: 03.01.14 |
|||
Nightflyer: 03.01.14 |
|||
Henriette Fiebig: 06.01.14 |
|||
Tinz: 25.01.14 |
|||
Alma: 10.02.14 |
|||
Napa: 16.03.14 |
|||
Johannes_Rohr: 04.06.14 |
|||
Tolanor: 07.06.14 |
|||
NEUROtiker: 23.06.14 |
|||
Niteshift: 25.07.14 |
|||
Filzstift: 11.08.14 |
|||
LZ6387: 14.08.14 |
|||
Jón: 27.09.14 |
|||
Pittimann: 11.11.14 |
|||
Coyote III: 23.11.14 |
|||
Okatjerute: 07.01.15 |
|||
Andreas Werle: 09.02.15 |
|||
Sicherlich: 17.04.15 |
|||
Inkowik: 16.05.15 |
|||
Platte: 17.05.15 |
|||
-jkb-: 21.05.15 |
|||
Leit: 27.07.15 |
|||
Dbenzhuser: 11.09.15 |
|||
WolfgangRieger: 23.09.15 |
|||
Jodo: 16.10.15 |
|||
Koenraad: 27.12.15 |
|||
Southpark: 04.02.16 |
|||
Pajz: 30.03.16 |
|||
FritzG: 26.04.16 |
|||
Filterkaffee: 26.4.16 |
|||
Martin Bahmann: 28.4.16 |
|||
Denis Barthel: 7.5.16 |
|||
David Ludwig: 5.7.16 |
|||
Tigerente: 9.7.16 |
|||
Ahellwig: 15.7.16 |
|||
Seidl: 5.8.16 |
|||
Drahreg01: 5.8.16 |
|||
BLueFiSH.as: 10.8.16 |
|||
Nicolai P.: 18.8.16 |
|||
Miraki: 8.9.16 |
|||
Siechfred: 1.11.16 |
|||
- Wiedereinstieg: |
|||
Pfalzfrank: 1.7.2007 (Ausstieg 13.6.2007) |
|||
Pjacobi: 24.12.2006 (Ausstieg 14.5.2006) |
|||
Tobnu: 1.7.2007 (Ausstieg 3.4.2007) |
|||
Achim Raschka: 13.7.07 (Ausstieg 2.4.2007) |
|||
FritzG: 6.10.2007 (Ausstieg 2.9.2007) |
|||
Mnh: 3.11.2007 (Ausstieg 24.7.2007) |
|||
Ralf R.: 3.2.2008 (Ausstieg 17.1.2008) |
|||
Tafkas: 13.2.2008 (Ausstieg 15.1.2008) |
|||
Gnu1742: 21.2.2008 (Ausstieg: 23.1.2008) |
|||
Syrcro: 8.3.2008 (Ausstieg 24.1.2008) |
|||
S1: 3.4.2008 (Ausstieg 25.2.2008) |
|||
Arnomane: 8.5.2008 (Ausstieg 9.3.2008) |
|||
Rauenstein: 12.5.2008 (Ausstieg: 3.1.2008) |
|||
Achim Raschka: 1.6.2008 und 8.5.2015 per WW (Ausstieg: 1.1.2008) |
|||
Polarlys: 14.8.2008 (Ausstieg: 26.3.2008) |
|||
Complex: 1.9.08 (Ausstieg: 16.7.2008) |
|||
Bücherwürmlein: 12.12.08 (Ausstieg 23.11.2008) |
|||
Rauenstein: 14.12.2008 (Ausstieg 25.8.2008) |
|||
Tinz: 1.1.2009 (Ausstieg 30.6.2008) |
|||
Martin Bahmann: 16.1.2009 (Ausstieg 11.8.2008) |
|||
Syrcro: 28.3.2009 (Ausstieg 29.1.2009) |
|||
Tönjes: 30.3.2009 (Ausstieg 13.3.2009) |
|||
Jcornelius: 29.4.2009 (Ausstieg 31.8.2008) |
|||
Atamari: 1.5.2009 (Ausstieg 28.3.2009) |
|||
Julius1990: 21.5.2009 (Ausstieg 8.4.2009) |
|||
Happolati: 8.6.2009 (Ausstieg 23.1.2009) |
|||
Port(u*o)s: 15.8.2009 (Ausstieg 15.7.2009) |
|||
S1: 3.9.2009 (Ausstieg 7.6.2009) |
|||
Andibrunt: 3.9.2009 (Ausstieg 6.6.2009) |
|||
David Ludwig: 20.9.2009 (Ausstieg: 23.5.2008) |
|||
Leithian: 30.9.2009 (Ausstieg: 16.9.2009) |
|||
Sa-se: 28.10.09 (Ausstieg: 3.8.2009) |
|||
Henriette Fiebig: 14.12.2009 (Ausstieg: 27.10.2009) |
|||
Leithian: 12.4.2010 (Ausstieg: 23.2.2010) |
|||
Port(u*o)s: 30.4.2010 nach Neuwahl (Ausstieg: 17.12.2009) |
|||
Hufi: 6.10.2010 (Ausstieg: 22.4.2010) |
|||
Siechfred: 26.9.2012 (Ausstieg: 21.1.2012) |
|||
Martin Bahmann: 02.12.2012 (Ausstieg: 27.12.2009) |
|||
Cymothoa exigua: 05.07.2013 (Ausstieg: 14.06.2013) |
|||
Baumfreund-FFM: 10.09.2013 (Ausstieg: 06.03.2013) |
|||
Koenraad: 27.09.2013 (Ausstieg: 18.03.2013) |
|||
Steschke: 02.05.2015 (Ausstieg: 14.04.2014) |
|||
Siechfred: 08.05.2015 (Ausstieg: 23.01.14) |
|||
Martin Bahmann: 18.09.2015 (Ausstieg: 04.12.13) |
|||
Drahreg01: 28.11.2015 (Ausstieg: 18.08.2014) |
|||
DaB.: 07.04.2016 (Ausstieg: 24.02.2015) |
|||
Drahreg01: 01.09.2016 (Ausstieg: 05.08.2016) |
|||
- Temp-Deadmin: |
|||
Tobnu (28.9.07-8.10.07) |
|||
Richardfabi (5.11.07-21.11.07) |
|||
Carbidfischer (18.4.09-2.5.09 mit Nachschlag bis 18.5.09) |
|||
Achates (10.8.09-7.9.09, plus freiwilliger Nachschlag bis 5.10.09) |
|||
Baba66 (12.9.09-10.10.09) |
|||
Altkatholik62 (15.2.15–15.5.15) |
|||
*/ |
|||
var exadmins = new Array("-jha-", "-jkb-", "Addicks", "Akl", "AlexR", "Amberg", "Anathema", "ArtMechanic", "Bradypus", "Breeze", "B%C3%BCcherw%C3%BCrmlein", "Chd", "Dolos", "EBB", "Fab", "Fantasy", "Herrick", "Hyperdieter", "Inkowik32", "Inkowik", "Jesusfreund", "Katharina", "Coma", "Koethnig2", "Koethnig", "Mijobe", "Paddy", "Sansculotte", "Simplicius", "Steffen_M.", "Triebt%C3%A4ter", /* ... */ "Ulrich.fuchs", "Unscheinbar", "Unukorno", "Woldemar", "El", "Jah", "Rainer_Bielefeld", "Kils", "Keichwa", "PyBot", "DaTroll", "Tinuriand", "Umbenannter_Benutzer1", "P._Birken", "Juesch", "Dickbauch", "Wst", "Gunther", "Markus_Mueller", "Markus_Schwei%C3%9F", "Berlin-Jurist", "Flups", "Tobias_B%C3%A4r", "Tobi_B.", "Srbauer", "Jergen", "Kellerkind", "Anneke_Wolf", "Aglarech", "Ben-Zin", "Igelball", "Ilja_Lorek", "Jofi", "KMJ", "Karl-Henner", "Pit", "Robert_Kropf", "Skriptor", "Smurf", "Terabyte", "Thomas_Luft", "TheRunnerUp", "Urbanus", "Ralf_Roletschek", "Marcela", "Sechmet", "Herr_Klugbeisser", "Erwin_E_aus_U", "Kiker99", "Vulture", "Kantor.JH", "RobbyBer", "Herr_Th.", "Wolfgangbeyer", "Pfalzfrank", "Frank11NR", "T%C3%B6njes", "Peterlustig", "Mnh", "Achates", "Hermannthomas", "Baba66", "JHeuser", "Aristeides", "Longbow4u", "Baldhur", "Necrophorus", "Lennert_B", "Syrcro", "Crux", "Alkuin", "My_name", "Zeno_Gantner", "Zenogantner", "TomK32", "LeonWeber", "Leon", "Richardfabi", "Liesel", "Fristu", "Darkone", "W.wolny", "IGEL", "Eloquence", "Tobnu", "Stern", "Elian", "GS", "Dishayloo", "Schusch", "Georg_Slickers", "Blunt.", "Blunts", "Nocturne", "ChristophLanger", "Arnomane", "Vigala_Veia", "Asb", "Fire", "ElRaki", "Fusslkopp", "Limasign", "Stw", "Cottbus", "Mikue", "Threedots", "Magnus", "Tullius", "Zenon", "Irmgard", "Chef", "Sigune", "Beyer", "LosHawlos", "Hoheit", "Sven-steffen_arndt", "Vic_Fontaine", "Bernhard55", "Echoray", "Triggerhappy", "Leipnizkeks", "Nina", "Fb78", "Rauenstein", "Schewek", "Schnargel", "Stahlkocher", "Manecke", "Rhododendronbusch", "Kubrick", "Waugsberg", "Gardini", "STBR", "NickKnatterton", "C-M", "Geisterbanker", "S1", "Savin_2005", "SibFreak", "Dr._Shaggeman", "Lung", "Geher", "Voyager", "Sa-se", "Geos", "Andibrunt", "Nerd", "Victor_Eremita", "Idler", "Tilla", "Julius1990", "Codeispoetry", "1001", "Smial", "Sebmol", "Harro_von_Wuff", "Nb", "NebMaatRe", "Tr%C3%B6te", "Hufi", "Hufi2404", "ABC1234567", "Wiggum", "Raven", "Don-kun", "Magadan", "Matth%C3%A4us_Wander", "Engelbaet", "Hozro", "Capaci34", "Thomas_Glintzer", "Karl_Gruber", "MichaelDiederich", "Tafkas", "32X", "TAXman", "Presse03", "Silberchen", "Langec", "Adrian_Suter", "Jacktd", "Dundak", "Philipp_Wetzlar", "CdaMVvWgS", "Chrkl", "Mathias_Schindler", "Presroi", "Streifengrasmaus", "Alexander_Z.", "Avatar", "Birger_Fricke", "Chb", "Duesentrieb", "Holger_I.", "Blaite", "John_N.", "Melkom", "Philipendula", "Robodoc", "Sinn", "Rocco", "Zenit", "Toter_Alter_Mann", "Kku", "Lyzzy", "Christian_G%C3%BCnther", "Guenny", "Port(u*o)s", "Catfisheye", "Poisend-Ivy", "Aineias", "Dealerofsalvation", "Schiwago", "Zumbo", "Hei_ber", "Gnu1742", "Guandalug", "Complex", "Geisslr", "Martin-vogel", "Lady_Whistler", "JakobVoss", "Happolati", "Mautpreller", "Janneman", "Florian_Adler", "Schlendrian", "Noddy93", "Klugschnacker", "Marcus_Cyron", "Kenwilliams", "Sarazyn", "Jonathan_Gro%C3%9F", "Stepro", "Minderbinder", "Media_lib", "Nightflyer", "Henriette_Fiebig", "Tinz", "Alma", "Saibo", "Napa", "Johannes_Rohr", "Jrohr", "Tolanor", "Tolanor_von_Preto", "NEUROtiker", "Niteshift", "Filzstift", "LZ6387", "Jan_eissfeldt", "J%C3%B3n", "Pittimann", "Peter200", "Coyote_III", "Memmingen", "Bdk", "Erzbischof", "Okatjerute", "Hafenbar", "Andreas_Werle", "LKD", "L%C3%B6schkandidat", "Sicherlich", "Feba", "Platte", "Artmax", "Leit", "Borheinsieg", "Eigntlich", "Dbenzhuser", "Xocolatl", "WolfgangRieger", "Altkatholik62", "Jodo", "Magnus_Manske", "Redf0x", "Koenraad", "Southpark", "Svens_Welt", "Morten_Haan", "Pajz", "Pill", "Ne_discere_cessa!", "FritzG", "Filterkaffee", "Martin_Bahmann", "Denis_Barthel", "Olaf_Simons", "David_Ludwig", "Davidl", "Tigerente", "Ahellwig", "Millbart", "AT", "Factumquintus", "Morgaine", "Pjacobi", "Schreiber", "Seidl", "Cecil", "Michael_Sander", "BLueFiSH.as", "Nicolai_P.", "Np", "Stullkowski", "Pischdi", "El_Duende", "Magnummandel", "Church_of_emacs", "Nemissimo", "Head", "Slomox", "Rainer_Zenz", "Bhuck", "Michail", "Finanzer", "Scherben", "JCS", "Rdb", "NoCultureIcons", "Miraki", "Otto_Normalverbraucher", "Sir", "Pitichinaccio", "DaBroMfld", "AndreasPraefcke", "Mazbln", "Nicola", "BishkekRocks", "Siechfred"); |
|||
exadmins = '|' + exadmins.join('|') + '|'; |
|||
} |
|||
if (markexbureaucrats) { |
|||
/* |
|||
seltsame Einträge im [[Wikipedia:Bürokratenlogbuch]] (Februar 2004) scheinen |
|||
auf E23 und TomK32 als Bürokraten hinzudeuten; hier aber nicht aufgeführt |
|||
vor Februar 2004: Admin-Flag durch Developer gesetzt, deshalb Manske aufgeführt |
|||
*/ |
|||
var exbureaucrats = ["Head", "Sansculotte", "Magnus_Manske", "Stefan_K%C3%BChn", "MichaelDiederich", "Lyzzy", "Raymond", "Guandalug", "YourEyesOnly", "FritzG", "Inkowik32", "Inkowik"]; |
|||
exbureaucrats = '|' + exbureaucrats.join('|') + '|'; |
|||
} |
|||
// oversight |
|||
if (markoversight) { |
|||
// Notes: nö |
|||
var oversight = ["Emergency_doc", "Horst_Gr%C3%A4bner", "Nolispanmo", "Sargoth", "XenonX3"]; |
|||
oversight = '|' + oversight.join('|') + '|'; |
|||
} |
|||
// checkuser |
|||
if (markcheckuser) { |
|||
var checkuser = ["Alraunenstern", "Cirdan", "Hephaion", "Perrak", "Theghaz"]; |
|||
var admcheckuser = ["Cirdan"]; |
|||
checkuser = '|' + checkuser.join('|') + '|'; |
|||
admcheckuser = '|' + admcheckuser.join('|') + '|'; |
|||
} |
|||
// Ombudspersons: Abgleich mit https://de.wikipedia.org/w/index.php?title=Spezial%3AGlobale_Benutzerliste&username=&group=ombudsman&limit=75 |
|||
var ombudsman = ["Alan", "Gnom", "Huji", "NahidSultan", "Pajz", "Polimerek", "Rubin16", "Taketa"]; |
|||
ombudsman = '|' + ombudsman.join('|') + '|'; |
|||
if (markarbcom || markadmins) { |
|||
// Notes: 22.5.2007 bis 30.11.2007 |
|||
// var arbcom=["Bubo_bubo", "Janneman", "Lecartia", "Rainer_Zenz", "Thogo", "Henriette_Fiebig", "Kriddl", "Magadan", "Proofreader", "Streifengrasmaus"]; |
|||
// var admarbcom=["Lecartia", "Proofreader"]; |
|||
// Notes: 1.12.2007 bis 31.5.2008 |
|||
// var arbcom=["Henriette_Fiebig", "Kriddl", "Magadan", "Proofreader", "Streifengrasmaus", "Achates", "Rainer_Zenz", "Sebmol", "SVL", "Thogo"]; |
|||
// var admarbcom=["Proofreader", "SVL"]; |
|||
// Notes: 1.6.2008 bis 31.7.2008 |
|||
// var arbcom=["Achates", "Rainer_Zenz", "Sebmol", "SVL", "Thogo", "Achim_Raschka", "Proofreader", "Southpark", "Stefan64", "Streifengrasmaus"]; |
|||
// var admarbcom=["Proofreader", "SVL"]; |
|||
// Notes: 1.8.2008 bis 30.11.2008 |
|||
// var arbcom=["Achates", "Rainer_Zenz", "SVL", "Thogo", "Achim_Raschka", "Proofreader", "Southpark", "Stefan64", "Streifengrasmaus"]; |
|||
// var admarbcom=["Proofreader", "SVL"]; |
|||
// Notes: 1.12.2008 bis 31.5.2009 |
|||
// var arbcom=["Achim_Raschka", "Proofreader", "Southpark", "Stefan64", "Streifengrasmaus", "Achates", "Elya", "PDD", "Pitichinaccio", "Thogo"]; |
|||
// var admarbcom=["Proofreader"]; |
|||
// Notes: 1.6.2009 bis 30.11.2009 |
|||
// var arbcom=["Achates", "Elya", "PDD", "Pitichinaccio", "Thogo", "Abena", "Gustavf", "Hans_Koberger", "Henriette_Fiebig", "Leithian"]; |
|||
// var arbcom=["Achates", "PDD", "Gustavf"]; |
|||
// var admarbcom=["Abena", "Gustavf", "Hans_Koberger"]; |
|||
// var admarbcom=["Gustavf"]; |
|||
// Notes: 1.12.2009 bis 31.5.2010 |
|||
// var arbcom=["Anka_Friedrich", "Blunt.", "Geos", "Gustavf", "Hans_Koberger", "Hubertl", "Janneman", "Kriddl", "Pjacobi", "Ralf_Roletschek"]; |
|||
// var admarbcom=["Anka_Friedrich", "Gustavf", "Hans_Koberger", "Hubertl"]; |
|||
// Notes: 1.6.2010 bis 30.11.2010 |
|||
// var arbcom=new Array("Blunt.", "Geos", "Kriddl", "Pjacobi", "Ralf_Roletschek", "Catfisheye", "Gustavf", "Hei_ber", "Poisend-Ivy", "Port(u*o)s"); |
|||
// var admarbcom=["Blunt.", "Catfisheye", "Gustavf", "Hei_ber"]; |
|||
// Notes: 1.12.2010 bis 31.05.2011 |
|||
// var arbcom=new Array("Blunt.", /* verstorben: "Geos", */ "Carbidfischer", "Catfisheye", "Gustavf", "Hans_Koberger", "Hei_ber", "Perrak", "Pjacobi", "Port(u*o)s"); |
|||
// var admarbcom=["Blunt.", "Catfisheye", "Gustavf", "Hans_Koberger", "Hei_ber"]; |
|||
// Notes: 1.6.2011 bis 30.11.2011 |
|||
// var arbcom=["-jkb-", "Ca$e", "Carbidfischer", "Codc", "Hans_Koberger", "Hosse", "Krd", "Perrak", "Pjacobi"]; |
|||
// var admarbcom=["-jkb-", "Ca$e", "Codc", "Hans_Koberger", "Hosse", "Krd"]; |
|||
// Notes: 30.11.2011 bis 31.05.2012 |
|||
// var arbcom=["-jkb-", "Alupus", "Ca$e", "Codc", "Erzbischof", "Hans_Koberger", "Hosse", "Krd", "MAGISTER", "Perrak"]; |
|||
// var admarbcom=["Alupus", "Ca$e", "Codc", "Hans_Koberger", "Hosse", "Krd", "MAGISTER"]; |
|||
// Notes: 01.06.2012 bis 30.11.2012 |
|||
// var arbcom=["Alraunenstern", "Alupus", "Aschmidt", "Codc", "Erzbischof", "Hosse", "Krd", "MAGISTER", "Perrak", "Snevern"]; |
|||
// var admarbcom=["Alraunenstern", "Alupus", "Aschmidt", "Codc", "Hosse", "MAGISTER", "Snevern"]; |
|||
// Notes: 01.12.2012 bis 31.05.2013 |
|||
// var arbcom=["Alraunenstern", "Alupus", "Aschmidt", "Codc", "Krd", "Nicola", "Perrak", "Plani", "Snevern", "Toter_Alter_Mann"]; |
|||
// var admarbcom=["Alraunenstern", "Alupus", "Aschmidt", "Codc", "Nicola", "Plani", "Snevern", "Toter_Alter_Mann"]; |
|||
// Notes: 01.06.2013 bis 30.11.2013 |
|||
// arbcom=["Alraunenstern", "Alupus", "HOPflaume", "Hosse", "Krd", "Man77", "Nicola", "Perrak", "Plani", "Toter_Alter_Mann"]; |
|||
// admarbcom=["Alraunenstern", "Alupus", "HOPflaume", "Hosse", "Nicola", "Plani", "Toter_Alter_Mann"]; |
|||
// Notes: 01.12.2013 bis 31.05.2014 |
|||
// arbcom=["Alnilam", "Alraunenstern", "HOPflaume", "Hosse", "Krd", "MAGISTER", "Man77", "Mikered", "Toter_Alter_Mann"]; |
|||
// admarbcom=["Alnilam", "Alraunenstern", "HOPflaume", "Hosse", "MAGISTER", "Mikered", "Toter_Alter_Mann"]; |
|||
// Notes: 01.06.2014 bis 30.11.2014 |
|||
// Jürgen Oetting nur 01.06.-28.07.14 |
|||
// arbcom=new ArrayArray("Alnilam", "Alraunenstern", "Ghilt", "HOPflaume", "Plani", "MAGISTER", "Man77", "Mikered", "Toter_Alter_Mann"); |
|||
// arbcom=["Alnilam", "Alraunenstern", "Ghilt", "HOPflaume", "Plani", "MAGISTER", "Mikered", "Toter_Alter_Mann"]; |
|||
// Notes: 01.12.2014 bis 31.05.2015 |
|||
// arbcom=new ArrayArray("Alnilam", "Alraunenstern", "Achim_Raschka", "Codc", "Ghilt", "HOPflaume", "Plani", "MAGISTER", "Man77", "THWZ"); |
|||
// arbcom=["Alnilam", "Codc", "Ghilt", "Plani", "MAGISTER", "THWZ"]; |
|||
// Notes: 01.06.2015 bis 30.11.2015 |
|||
// var arbcom=["Achim_Raschka", "Alnilam", "Codc", "DCB", "Ghilt", "Helfmann", "Plani", "MAGISTER", "THWZ"]; |
|||
// var admarbcom=["Alnilam", "Codc", "DCB", "Ghilt", "Helfmann", "MAGISTER", "Plani", "THWZ"]; |
|||
// Notes: 01.12.2015 bis 31.05.2016 |
|||
// var arbcom=["Alnilam", "Codc", "DCB", "DerMaxdorfer", "Ghilt", "Helfmann", "Krd", "Plani", "Thogo", "THWZ"]; |
|||
// var admarbcom=["Alnilam", "Codc", "DCB", "DerMaxdorfer", "Ghilt", "Helfmann", "Plani", "THWZ"]; |
|||
// Notes: 01.06.2016 bis 08.09.2016 (Rücktritte) |
|||
// var arbcom=["Alnilam", "AnnaS.aus_I.", "Codc", "DCB", "DerMaxdorfer", "Ghilt", "Helfmann", "MAGISTER", "THWZ"]; |
|||
// var admarbcom=["Alnilam", "AnnaS.aus_I.", "Codc", "DCB", "DerMaxdorfer", "Ghilt", "Helfmann", "MAGISTER", "THWZ"]; |
|||
// Notes: 08.09.2016 bis 30.11.2016 |
|||
// var arbcom=["AnnaS.aus_I.", "Codc", "DerMaxdorfer", "Ghilt", "Helfmann", "MAGISTER", "THWZ"]; |
|||
// var admarbcom=["AnnaS.aus_I.", "Codc", "DerMaxdorfer", "Ghilt", "Helfmann", "MAGISTER", "THWZ"]; |
|||
// Notes: 01.12.2016 bis 31.05.2017 (CURRENT) |
|||
var admarbcom = ["Ali1610", "AnnaS.aus_I.", "Freddy2001", "Ghilt", "Gnom", "Helfmann", "MAGISTER", "Miraki", "Sebastian_Wallroth"]; |
|||
var arbcom = admarbcom.concat(["Man77"]); // add non admins |
|||
arbcom = '|' + arbcom.join('|') + '|'; |
|||
admarbcom = '|' + admarbcom.join('|') + '|'; |
|||
} |
|||
if (isSpecial || isHistory || isUserpage || isTalk || isProject || isFile || isHelp || isDiff) { |
|||
var allanchors = document.getElementsByTagName("A"); |
|||
var allanchorsuser = []; |
|||
var searchExp = /\/wiki\/Benutzer(in)?([ _]Diskussion)?:(.+)/; |
|||
var searchExpTalk = /[ _]Diskussion:/; |
|||
// mw.util.addCSS('.adminMark { font-weight:bold; background-image:none !important; }'); |
|||
for (var i = 0, a_len = allanchors.length; i < a_len; i++) { |
|||
var aNode = allanchors[i]; |
|||
var mainpageanchor = true; |
|||
var talkpageanchor = false; |
|||
var SGSpecial = false; |
|||
var checkuserSpecial = false; |
|||
var href = aNode.getAttribute("href"); |
|||
// if it's a link to a user |
|||
if (href && searchExp.exec(href)) { |
|||
var currUser = searchExp.exec(href)[3]; |
|||
/* if (isUserpage) */ |
|||
var currUserClean = currUser.replace(/\/.*/, ''); |
|||
if (currUserClean !== currUser) |
|||
mainpageanchor = false; |
|||
if (searchExpTalk.exec(href) !== null) |
|||
talkpageanchor = true; |
|||
if (mainpageanchor) |
|||
allanchorsuser[i] = currUserClean; |
|||
else |
|||
allanchorsuser[i] = ""; |
|||
var followupmark = false; |
|||
if (i > 0) |
|||
if ((currUserClean === allanchorsuser[i - 1]) && talkpageanchor) |
|||
followupmark = true; |
|||
currUser = "|" + currUserClean + "|"; |
|||
var marker = []; |
|||
SGSpecial = admarbcom.indexOf(currUser) !== -1; |
|||
checkuserSpecial = admcheckuser.indexOf(currUser) !== -1; |
|||
if (SGSpecial) { |
|||
if (markarbcom || markadmins) |
|||
marker.push(markarbcomtxt + "-" + markatxt); |
|||
// is this user an ombudsman? |
|||
if (ombudsman.indexOf(currUser) !== -1) |
|||
marker.push(markombudsmantxt); |
|||
} |
|||
if (checkuserSpecial && (markcheckuser || markadmins)) { |
|||
marker.push(markcheckusertxt + "-" + markatxt); |
|||
} |
|||
if (markadmins && !SGSpecial && !checkuserSpecial) { |
|||
// don't mark SG-only Adm twice |
|||
if (admins.indexOf(currUser) !== -1 && admarbcom.indexOf(currUser) === -1) |
|||
// is this user an admin? |
|||
marker.push(markatxt); |
|||
// is this user a renamed admin? |
|||
if (renadmins.indexOf(currUser) !== -1) |
|||
marker.push(markrenatxt); |
|||
// is this user a steward? |
|||
if (stewards.indexOf(currUser) !== -1) |
|||
marker.push(markstewtxt); |
|||
// is this user an ombudsman? |
|||
if (ombudsman.indexOf(currUser) !== -1) |
|||
marker.push(markombudsmantxt); |
|||
// is this user a bureaucrat? |
|||
if (bureaucrats.indexOf(currUser) !== -1) |
|||
marker.push(markbureautxt); |
|||
} |
|||
if (markoversight) { |
|||
// does this user have oversight rights? |
|||
if (oversight.indexOf(currUser) !== -1) |
|||
marker.push(markoversighttxt); |
|||
} |
|||
if (markcheckuser && !checkuserSpecial) { |
|||
// does this user have checkuser rights? |
|||
if (checkuser.indexOf(currUser) !== -1) |
|||
marker.push(markcheckusertxt); |
|||
} |
|||
if (markarbcom && !SGSpecial) { |
|||
// is this user an arbcom member? |
|||
if (arbcom.indexOf(currUser) !== -1) |
|||
marker.push(markarbcomtxt); |
|||
} |
|||
if (markcomadmins) { |
|||
// is this user a commons admin? |
|||
if (comadmins.indexOf(currUser) !== -1) |
|||
marker.push(markcomatxt); |
|||
} |
|||
if (markwdadmins) { |
|||
// is this user a wikidata admin? |
|||
if (wdadmins.indexOf(currUser) !== -1) |
|||
marker.push(markwdatxt); |
|||
} |
|||
if (markexadmins) { |
|||
// was this user an admin? |
|||
if (exadmins.indexOf(currUser) !== -1) |
|||
marker.push(markexatxt); |
|||
} |
|||
if (markexbureaucrats) { |
|||
// was this user a bureaucrat? |
|||
if (exbureaucrats.indexOf(currUser) !== -1) |
|||
marker.push(markexbureautxt); |
|||
} |
} |
||
// |
// Don't mark certain pages, except link to user main page |
||
// Does the link go to the main user page or, if linking subpages is enabled, |
|||
if (!followupmark) |
|||
// is it not a page that is just listing subpages? |
|||
if (!(isMainUserpageLink || cfg.markSubpages && !isSubpageListing)) |
|||
if (mainpageanchor || |
|||
continue; |
|||
(marksubpages && (mw.config.get('wgCanonicalSpecialPageName') !== "Prefixindex") && |
|||
if (cfg.dontmarkmyself && user === cfg.dontmarkmyself) |
|||
(mw.config.get('wgCanonicalSpecialPageName') !== "Allpages"))) |
|||
continue; |
|||
// check finished, now append node |
|||
// Are there markers at all? |
|||
if ((marker.length > 0) && !(dontmarkmyself && (currUserClean === mw.config.get('wgUserName')))) { |
|||
marker[user] = (mark.length) ? mark : ''; |
|||
var aMark = document.createElement("b"); |
|||
} |
|||
aMark.className = "adminMark"; |
|||
// Check finished, now append node |
|||
aMark.appendChild(document.createTextNode("\u00A0(" + marker.join("/") + ")")); |
|||
if (marker[user]) { |
|||
aNode.appendChild(aMark); |
|||
markAdmins.markUser(marker[user], a, node.cloneNode(1)); |
|||
} |
|||
// Required for consecutive user link check |
|||
previousUser = user; |
|||
} |
} |
||
} |
} |
||
} |
} |
||
} |
}; |
||
importScript('Benutzer:%D0%A0DD3/markAdmins-data.js'); |
|||
mw.hook('userjs.script-loaded.markadmins').add(markAdmins.init); |
|||
}(mediaWiki, jQuery)); |
|||
// </nowiki> |
// </nowiki> |
Version vom 7. Dezember 2016, 15:19 Uhr
/**
* Flag administrators and special user group members with a letter
* in parenthesis behind links that go into their user namespace.
* E.g. Didym -> Didym (A)
*
* @rev 14:18, 7. Dez. 2016 (CET)
* @author Euku, 28. Dez. 2005
* @author Sir und Olliminatore - Ex-Admin-Markierung
* @author PDD - Adaptierung/zusätzliche Markierungen/Fixes
* @author Littl - aufgeräumt & beschleunigt
* @author Guandalug - Etwas umgeräumt und potentielle Skinabhängigkeit entfernt
* @author Didym, Rillke, 2014
**/
// <nowiki>
/*global mediaWiki, jQuery*/
(function (mw, $) {
'use strict';
var markadmins = window.markadmins === undefined || window.markadmins;
// Jeder der folgenden vordefinierbaren Variablenwerte kann in
// der eigenen monobook.js/vector.js/common.js vorbelegt werden.
var markAdmins = mw.libs.markAdmins = {
nodes: [],
config: {
groups: {
arbcom: {
label: 'SG',
legacyName: 'arbcom',
legacyLabelId: 'arbcomtxt',
enabled: true
},
ombudsman: {
label: 'Omb',
legacyName: 'ombudsman',
legacyLabelId: 'ombudsmantxt',
enabled: true
},
renadmin: {
label: 'A-Ren',
legacyName: 'rena',
legacyLabelId: 'renatxt',
enabled: true
},
comadmin: {
label: 'Com-A',
legacyName: 'coma',
legacyLabelId: 'comatxt',
enabled: false
},
exadmin: {
label: 'Ex-A',
legacyName: 'exa',
legacyLabelId: 'exatxt',
enabled: false
},
wdadmin: {
label: 'WD-A',
legacyName: 'wda',
legacyLabelId: 'wdatxt',
enabled: false
},
exbureaucrat: {
label: 'Ex-B',
legacyName: 'exbureau',
legacyLabelId: 'exbureautxt',
enabled: false
}
}
},
defaults: {
groups: {
sysop: {
label: 'A',
legacyName: 'admins',
legacyLabelId: 'atxt',
enabled: true
},
oversight: {
label: 'OS',
legacyName: 'oversight',
legacyLabelId: 'oversighttxt',
enabled: true
},
checkuser: {
label: 'CU',
legacyName: 'checkuser',
legacyLabelId: 'checkusertxt',
enabled: true
},
bureaucrat: {
label: 'B',
legacyName: 'bureaucrat',
legacyLabelId: 'bureautxt',
enabled: true
},
steward: {
label: 'S',
legacyName: 'steward',
legacyLabelId: 'stewtxt',
enabled: true
},
'OTRS-member': {
label: 'P',
legacyName: 'otrs',
legacyLabelId: 'otrstxt'
},
'Image-reviewer': {
label: 'L',
legacyName: 'imagereviewers',
legacyLabelId: 'imgreviewertxt'
}
},
runOn: ['Special', 'User', 'User_talk', 'Project', 'File', 'Help'],
runOnHistory: true,
runOnTalk: true,
runOnDiff: true
},
init: function (users) {
markAdmins.users = users;
// Wait for user configuration through their .js
// Not adding as a gadget dependency because user .js
// is sometimes invalid and fails loading and
// gadget dependencies do not offer failed/error
// options
mw.loader.using('user', markAdmins.mergeConfig, markAdmins.mergeConfig);
},
mergeConfig: function () {
// Merge new configuration
// var optionsConfig = mw.user.options.get('markAdminCfg');
var cfg = $.extend(
true,
markAdmins.config,
markAdmins.defaults,
window.markAdminCfg || {}
// optionsConfig ? JSON.parse(optionsConfig) : {}
);
// Merge legacy config (maybe removed in future)
$.each(cfg.groups, function (groupName, grpCfg) {
// Display settings
var enabled = window['mark' + grpCfg.legacyName];
if (enabled !== undefined)
grpCfg.enabled = !!enabled;
// Label
var label = window['mark' + grpCfg.legacyLabelId];
if (label !== undefined)
grpCfg.label = label;
});
cfg.markSubpages = !!window.marksubpages;
cfg.dontmarkmyself = window.dontmarkmyself ? mw.config.get('wgUserName') : false;
// Hook-up content loading
mw.hook('wikipage.content').add(markAdmins.addLabels);
},
markUser: function (marks, a, b) {
b.appendChild(document.createTextNode('\u00A0(' + marks.join("/") + ')'));
a.appendChild(b);
markAdmins.nodes.push(b);
},
destroy: function () {
$.each(markAdmins.nodes, function (i, n) {
$(n).remove();
});
},
reInit: function () {
markAdmins.destroy();
markAdmins.mergeConfig();
},
addLabels: function ($content) {
var users = markAdmins.users;
if (!users)
return;
if (!markAdmins.fullPageProcessed) {
$content = $('#mw-content-text');
if (!$content.length)
$content = $('#bodyContent');
if (!$content.length)
$content = $(document);
markAdmins.fullPageProcessed = true;
}
// Right, the configuration evaluation is here
// It might be possible to use Ajax for page
// navigation in future.
var canNs = mw.config.get('wgCanonicalNamespace');
var isSubpageListing = !!({
'Prefixindex': 1,
'Allpages': 1
})[mw.config.get('wgCanonicalSpecialPageName')];
var isHistory = mw.config.get('wgAction') === 'history';
var isTalk = mw.config.get('wgNamespaceNumber') % 2 === 1;
var isDiff = !!mw.util.getParamValue('diff');
var cfg = markAdmins.config;
var nsCondition = cfg.runOn.indexOf(canNs) !== -1;
var enabledGroups = {}; // collect only relevant groups
var marker = {}; // collect user-links
// Namespace run conditions
if (!(nsCondition ||
isHistory && cfg.runOnHistory ||
isTalk && cfg.runOnTalk ||
isDiff && cfg.runOnDiff))
return;
$.each(cfg.groups, function (g, grpCfg) {
if (grpCfg.enabled) {
enabledGroups[g] = grpCfg;
if (users[g])
enabledGroups[g].users = '|' + users[g].join('|') + '|';
else // should never happen
delete enabledGroups[g];
}
});
var allanchors = $content[0].getElementsByTagName('A');
var previousUser = '';
var reUserpage = /\/wiki\/Benutzer(in)?([ _]Diskussion)?:(.+)/;
var node = document.createElement('b');
node.className = 'adminMark';
for (var i = 0, anchorsLen = allanchors.length; i < anchorsLen; ++i) {
var a = allanchors[i];
var href = a.getAttribute("href");
// If it's not a link to a user
if (!href)
continue;
// Extract user page ( /wiki/User_talk:Foo/subpage -> Foo/subpage )
var m = href.match(reUserpage);
if (!m || !m[3])
continue;
var userpage = m[3];
// Extract user
var user = userpage.replace(/[/#]. * / , '');
var isMainUserpageLink = user === userpage;
var isUsertalkLink = !!m[2];
// Two consecutive links to the same user? Don't mark followups!
previousUser = (previousUser === user && isUsertalkLink);
if (previousUser) // only once
continue;
if (marker[user] === undefined) {
var curUser = "|" + user + "|";
var mark = [];
// String concatenation is oftentimes faster in modern browsers,
// so using Arrays and joining them finally seems advantage.
// But we would need an additional IF, so there is no gain.
for (var g in enabledGroups) {
if (enabledGroups[g].users.indexOf(curUser) !== -1)
mark.push(enabledGroups[g].label);
}
// Don't mark certain pages, except link to user main page
// Does the link go to the main user page or, if linking subpages is enabled,
// is it not a page that is just listing subpages?
if (!(isMainUserpageLink || cfg.markSubpages && !isSubpageListing))
continue;
if (cfg.dontmarkmyself && user === cfg.dontmarkmyself)
continue;
// Are there markers at all?
marker[user] = (mark.length) ? mark : '';
}
// Check finished, now append node
if (marker[user]) {
markAdmins.markUser(marker[user], a, node.cloneNode(1));
// Required for consecutive user link check
previousUser = user;
}
}
}
};
importScript('Benutzer:%D0%A0DD3/markAdmins-data.js');
mw.hook('userjs.script-loaded.markadmins').add(markAdmins.init);
}(mediaWiki, jQuery));
// </nowiki>