Nutza:WikiBayer/js/block.js: Unterschied zwischen den Versionen
Erscheinungsbild
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
||
Zein 108: | Zein 108: | ||
}); |
}); |
||
function openDialog() { |
|||
var dialog = new OO.ui.ProcessDialog({ |
var dialog = new OO.ui.ProcessDialog({ |
||
title: 'Benutzer sperren', |
|||
title: 'Benutzer sperren', |
|||
{ action: 'save', label: 'Fertig', flags: ['primary', 'progressive'] }, |
actions: [ |
||
{ action: 'save', label: 'Fertig', flags: ['primary', 'progressive'] }, |
|||
{ action: 'cancel', label: 'Abbrechen', flags: 'safe' } |
{ action: 'cancel', label: 'Abbrechen', flags: 'safe' } |
||
], |
], |
||
initialize: function () { |
initialize: function () { |
||
OO.ui.ProcessDialog.prototype.initialize.apply(this, arguments); |
OO.ui.ProcessDialog.prototype.initialize.apply(this, arguments); |
||
this.content = new OO.ui.PanelLayout({ padded: true }); |
this.content = new OO.ui.PanelLayout({ padded: true }); |
||
this.content.$element.append(dialogForm.$element); |
this.content.$element.append(dialogForm.$element); |
||
this.$body.append(this.content.$element); |
this.$body.append(this.content.$element); |
||
}, |
}, |
||
getActionProcess: function (action) { |
getActionProcess: function (action) { |
||
if (action === 'save') { |
if (action === 'save') { |
||
return new OO.ui.Process(function () { |
return new OO.ui.Process(function () { |
||
fastblock(1); |
fastblock(1); |
||
}); |
}); |
||
⚫ | |||
⚫ | |||
} |
} |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
var windowManager = new OO.ui.WindowManager(); |
var windowManager = new OO.ui.WindowManager(); |
||
windowManager.addWindows([dialog]); |
windowManager.addWindows([dialog]); |
||
$(document.body).append(windowManager.$element); |
$(document.body).append(windowManager.$element); |
||
⚫ | |||
⚫ | |||
$('#firstHeading').append(new OO.ui.ButtonWidget({ |
$('#firstHeading').append(new OO.ui.ButtonWidget({ |
||
Zein 138: | Zein 141: | ||
flags: ['primary', 'progressive'], |
flags: ['primary', 'progressive'], |
||
icon: 'block', |
icon: 'block', |
||
onClick: |
onClick: openDialog |
||
⚫ | |||
⚫ | |||
}).$element); |
}).$element); |
||
Version vom 22. Mai 2024, 20:48 Uhr.
mw.loader.using(['oojs-ui', 'mediawiki.api', 'mediawiki.user']).then(function () {
var spamoderwerbung, vand, sperrumgehung, proxy, crosswiki, sockenpuppen, ipblock, spGrundZusammmenfassung;
var username = mw.config.get('wgRelevantUserName');
var dbname = mw.config.get('wgDBname');
if (dbname === 'barwiki') {
spamoderwerbung = "Spam oder Werbung";
vand = "Vandalismus";
sperrumgehung = "Sperrumgehung";
proxy = "Offener Proxy";
angriffe = "Greift andere Benutzer an";
sockenpuppen = "Mehrare Kontn ned Reglgrecht vawendt";
crosswiki = "Bringt Probleme von anderen Projekten hier her";
spGrundZusammmenfassung = ["", "Vandalenaccount:", "Sperrumgehung keine Verbesserung:", "Wiederholter Verstoß gegen die Richtlinen für Weblinks:", "Beteiligung an einem [[:de:WP:WAR|Editwar]]:", " Wegen anhaltender regelwidriger Bearbeitungen längerfristig gesperrte [[de:IP-Adresse|IP-Adresse]]:", "Wiederholtes einstellen von Werbung:", "Kein erkennbarer Wille:"];
} else if (dbname === 'metawiki') {
spamoderwerbung = "Spam or promotion";
vand = "Vandalism only";
sperrumgehung = "Abusing multiple accounts or sockpuppetry";
proxy = "[[w:Open proxy|Open proxy]] or [[w:Zombie computer|zombie]] ([[No open proxies|more info]])";
angriffe = "Attacks/harassment";
crosswiki = "crosswiki issues";
sockenpuppen = "Abusing multiple accounts or sockpuppetry";
spGrundZusammmenfassung = ["", "vandalism:", "Editwar:", "Attack:", "Open Proxy:", "long-term abuse:", "Promotion", "Crosswiki issues:"];
} else if (dbname === 'wikidatawiki') {
spamoderwerbung = "Spam or promotion";
vand = "Vandalism only";
sperrumgehung = "Abusing multiple accounts or sockpuppetry";
proxy = "[[w:Open proxy|Open proxy]] or [[w:Zombie computer|zombie]] ([[No open proxies|more info]])";
angriffe = "Attacks/harassment";
crosswiki = "crosswiki issues";
sockenpuppen = "Abusing multiple accounts or sockpuppetry";
spGrundZusammmenfassung = ["", "vandalism:", "Editwar:", "Attack:", "Open Proxy:", "long-term abuse:", "Promotion", "Crosswiki issues:"];
} else {
spamoderwerbung = "Spam or promotion ([[:m:Global sysops|global sysop action]])";
vand = "Vandalism only ([[:m:Global sysops|global sysop action]])";
sperrumgehung = "Abusing multiple accounts or sockpuppetry ([[:m:Global sysops|global sysop action]])";
proxy = "[[w:Open proxy|Open proxy]] or [[w:Zombie computer|zombie]] ([[:m:No open proxies|more info]]) ([[:m:Global sysops|global sysop action]])";
angriffe = "Attacks/harassment ([[:m:Global sysops|global sysop action]])";
crosswiki = "crosswiki issues ([[:m:Global sysops|global sysop action]])";
spGrundZusammmenfassung = ["", "vandalism:", "Editwar:", "Attack:", "Open Proxy:", "long-term abuse:", "Promotion", "Crosswiki issues:"];
sockenpuppen = "Abusing multiple accounts or sockpuppetry ([[:m:Global sysops|global sysop action]])";
ipblock = "vandalism ([[:m:Global sysops|global sysop action]])";
}
var spGrundselect = new OO.ui.DropdownInputWidget({
options: spGrundZusammmenfassung.map(function (grund, index) {
return { data: grund, label: grund };
})
});
var spGrundText = ["Anderer", "Vandaliert", "Sperrumgehung keine Besserung", "Wiederholter Verstoß gegen die Richtlinen für Weblinks", "Editwar", "IP Adresse mit anhaltenden Missbrauch", "Werbeaccount", "Kein Wille"];
var einklickSperreText = ['Spambot', 'Keine Proxys', 'Vandal', 'Persöhnliche Angriffe', 'Crosswiki', 'Mehrere Accounts', 'IP Vandalismus'];
var einklickSperreZeit = ['indefinite', '345 Days', 'indefinite', 'indefinite', 'indefinite', 'indefinite', '1 day'];
var einklickSperreZf = [spamoderwerbung, proxy, vand, angriffe, crosswiki, sockenpuppen, ipblock];
var oberflaeche = ['Benutzerdefinierte Sperre', 'Schnell sperren', 'Sperrgrund', 'Sperren', 'Eigene Diskussionseite sperren', 'E-Mail-Versand sperren', 'Autoblock', 'Nur Anonyme', 'fertig'];
var einklickSperreautob = ['true', 'false', 'true', 'true', 'true', 'true'];
var einklickSperredisk = ['true', 'false', 'true', 'true', 'true', 'true'];
var einklickSperreanonym = ['', 'true', 'false', 'false', '', 'false'];
var einklickSperremail = ['true', 'false', 'true', 'true', 'true', 'true'];
var einklickSperreselect = new OO.ui.DropdownInputWidget({
options: einklickSperreText.map(function (text, index) {
return { data: einklickSperreZf[index], label: text, onSelect: function () {
fastblock(2, einklickSperreautob[index], einklickSperremail[index], einklickSperredisk[index], einklickSperreanonym[index], einklickSperreZeit[index], einklickSperreZf[index]);
} };
})
});
var dialogForm = new OO.ui.FieldsetLayout({
label: 'Fastblock',
items: [
new OO.ui.FieldLayout(
new OO.ui.TextInputWidget({ value: username, readOnly: true }),
{ label: 'Benutzername' }
),
new OO.ui.FieldLayout(
new OO.ui.DropdownInputWidget({
options: [
{ data: '2 hours', label: '2 Stunden' },
{ data: '6 hours', label: '6 Stunden' },
{ data: '24 hours', label: '1 Tag' },
{ data: '1 Week', label: '1 Woche' },
{ data: '2 Weeks', label: '2 Wochen' },
{ data: '4 Weeks', label: '4 Wochen' },
{ data: '26 Weeks', label: '6 Monate' },
{ data: '52 Weeks', label: '1 Jahr' },
{ data: 'infinite', label: 'Unbeschränkt' }
]
}),
{ label: 'Sperrdauer' }
),
new OO.ui.FieldLayout(spGrundselect, { label: 'Sperrgrund' }),
new OO.ui.FieldLayout(new OO.ui.TextInputWidget({ id: 'grund' }), { label: 'Grund' }),
new OO.ui.FieldLayout(new OO.ui.ButtonWidget({
label: 'Sperren',
flags: ['primary', 'progressive'],
icon: 'block',
onClick: function () {
fastblock(1);
}
}), { align: 'top' }),
new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({ id: 'diskussionsblock' }), { label: 'Eigene Diskussionseite sperren' }),
new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({ id: 'mailblock' }), { label: 'E-Mail-Versand sperren' }),
new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({ id: 'autoblock' }), { label: 'Autoblock' }),
new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({ id: 'nuranonyme' }), { label: 'Nur Anonyme' })
]
});
function openDialog() {
var dialog = new OO.ui.ProcessDialog({
title: 'Benutzer sperren',
actions: [
{ action: 'save', label: 'Fertig', flags: ['primary', 'progressive'] },
{ action: 'cancel', label: 'Abbrechen', flags: 'safe' }
],
initialize: function () {
OO.ui.ProcessDialog.prototype.initialize.apply(this, arguments);
this.content = new OO.ui.PanelLayout({ padded: true });
this.content.$element.append(dialogForm.$element);
this.$body.append(this.content.$element);
},
getActionProcess: function (action) {
if (action === 'save') {
return new OO.ui.Process(function () {
fastblock(1);
});
}
return OO.ui.ProcessDialog.prototype.getActionProcess.call(this, action);
}
});
var windowManager = new OO.ui.WindowManager();
windowManager.addWindows([dialog]);
$(document.body).append(windowManager.$element);
windowManager.openWindow(dialog);
}
$('#firstHeading').append(new OO.ui.ButtonWidget({
label: 'Benutzer sperren',
flags: ['primary', 'progressive'],
icon: 'block',
onClick: openDialog
}).$element);
function fastblock(sperrgrund, autob, email, disk, nanonym, spDauer, sperrgrundschnell) {
var dauer;
var grund;
var mailblock;
var autoblock;
var nuranonyme;
var diskussionsblock;
if (sperrgrund == 2) {
grund = sperrgrundschnell;
dauer = spDauer;
diskussionsblock = disk;
mailblock = email;
autoblock = autob;
nuranonyme = nanonym;
} else {
dauer = document.getElementById('sperrdauer').value;
grund = document.getElementById('grundauswahl').value + document.getElementById('grund').value;
autoblock = document.getElementById('autoblock').checked;
mailblock = document.getElementById('mailblock').checked;
diskussionsblock = document.getElementById('diskussionsblock').checked;
nuranonyme = document.getElementById('nuranonyme').checked;
}
if (confirm('Möchtest du den Benutzer "' + username + '" wirklich mit der Begründung "' + grund + '" für eine Zeit von ' + dauer + ' sperren?\n Mail:' + mailblock + '\n Autoblock:' + autoblock + '\n Nur Anonyme:' + nuranonyme + '\n Eigene Diskussionsseite:' + diskussionsblock)) {
var parameter = {
action: 'block',
allowusertalk: diskussionsblock,
autoblock: autoblock,
nocreate: 'true',
expiry: dauer,
anononly: nuranonyme,
noemail: mailblock,
reason: grund,
user: username
};
new mw.Api().postWithToken('csrf', parameter).done(function (data) {
console.log(data);
if (data && data.block) {
OO.ui.alert('Benutzer erfolgreich gesperrt!', { title: 'Erfolg' });
} else {
OO.ui.alert('Fehler beim Sperren des Benutzers.', { title: 'Fehler' });
}
}).fail(function (error) {
console.error(error);
OO.ui.alert('API Fehler: ' + error, { title: 'Fehler' });
});
} else {
alert('Abgebrochen');
}
}
});