(Go: >> BACK << -|- >> HOME <<)

Zum Inhalt springen

Nutza:WikiBayer/js/block.js: Unterschied zwischen den Versionen

Aus Wikipedia
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',
actions: [
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);
});
});
}
return OO.ui.ProcessDialog.prototype.getActionProcess.call(this, action);
}
}
});
return OO.ui.ProcessDialog.prototype.getActionProcess.call(this, action);
}
});


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);
windowManager.openWindow(dialog);
}


$('#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: function () {
onClick: openDialog
windowManager.openWindow(dialog);
}
}).$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');
        }
    }
});