Aller au contenu

Utilisateur:Tomybrz/script/omega.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
// <nowiki>
mw.loader.using('oojs-ui-core').done(function () {
    var script_params = {
        report_tool_form: 'Wikipédia:Vandalisme_en_cours/reporttool',
        report_tool_page: 'Wikipédia:Vandalisme_en_cours',
    };
    mw.util.addPortletLink('p-tb', '/wiki/' + script_params.report_tool_form, 'Signalement vandalisme', 't-reporttool');
    if (mw.config.get('wgPageName') == script_params.report_tool_form && mw.config.get('wgAction') == 'view') {
        $(function () {

            var label1 = new OO.ui.LabelWidget({
                label: new OO.ui.HtmlSnippet('<strong>Auteur du vandalisme</strong>')
            });
            var user_input = new OO.ui.TextInputWidget({
                required: true,
                placeholder: 'Nom d\'utilisateur',
                id: 'report-tool_user',
                validate: 'non-empty'
            });
            var checkbox_VAND = new OO.ui.CheckboxInputWidget({
                    value: 'VAND',
                    id: 'report-tool_VAND',
                    name: 'report-tool-checkbox',
                    selected: true
                }),
                checkbox_CCPV = new OO.ui.CheckboxInputWidget({
                    value: 'CCPV',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_CCPV',
                }),
                checkbox_VIPP = new OO.ui.CheckboxInputWidget({
                    value: 'VIPP',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_VIPP'
                }),
                checkbox_IDIF = new OO.ui.CheckboxInputWidget({
                    value: 'IDIF',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_IDIF'
                }),
                checkbox_MNOC = new OO.ui.CheckboxInputWidget({
                    value: 'MNOC',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_MNOC'
                }),
                checkbox_SCSJ = new OO.ui.CheckboxInputWidget({
                    value: 'SCSJ',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_SCSJ'
                }),
                checkbox_FNEZ = new OO.ui.CheckboxInputWidget({
                    value: 'FNEZ',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_FNEZ'
                }),
                checkbox_BLOC = new OO.ui.CheckboxInputWidget({
                    value: 'BLOC',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_BLOC'
                }),
                checkbox_SPAM = new OO.ui.CheckboxInputWidget({
                    value: 'SPAM',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_SPAM'
                }),
                checkbox_ICAS = new OO.ui.CheckboxInputWidget({
                    value: 'ICAS',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_ICAS'
                }),
                checkbox_CCAA = new OO.ui.CheckboxInputWidget({
                    value: 'CCAA',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_CCAA'
                }),
                checkbox_TIOH = new OO.ui.CheckboxInputWidget({
                    value: 'TIOH',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_TIOH'
                }),
                checkbox_NAMC = new OO.ui.CheckboxInputWidget({
                    value: 'NAMC',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_NAMC'
                }),
                checkbox_BANU = new OO.ui.CheckboxInputWidget({
                    value: 'BANU',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_BANU',
                    disabled: true
                }),
                checkbox_BLAV = new OO.ui.CheckboxInputWidget({
                    value: 'BLAV',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_BLAV',
                    disabled: true
                }),
                checkbox_REMU = new OO.ui.CheckboxInputWidget({
                    value: 'REMU',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_REMU'
                }),
                checkbox_PROU = new OO.ui.CheckboxInputWidget({
                    value: 'PROU',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_PROU'
                }),
                checkbox_POIN = new OO.ui.CheckboxInputWidget({
                    value: 'POIN',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_POIN'
                }),
                checkbox_COPY = new OO.ui.CheckboxInputWidget({
                    value: 'COPY',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_COPY'
                }),
                checkbox_APOI = new OO.ui.CheckboxInputWidget({
                    value: 'APOI',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_APOI'
                }),
                checkbox_DCAR = new OO.ui.CheckboxInputWidget({
                    value: 'DCAR',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_DCAR'
                }),
                checkbox_NAMF = new OO.ui.CheckboxInputWidget({
                    value: 'NAMF',
                    name: 'report-tool-checkbox',
                    id: 'report-tool_NAMF'
                }),
                // Create a fieldset layout with fields for each checkbox.
                fieldset = new OO.ui.FieldsetLayout({
                    label: 'Motifs fréquents'
                });
            fieldset.addItems([
                new OO.ui.FieldLayout(checkbox_VAND, {
                    label: 'Vandalisme',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_CCPV, {
                    label: 'Compte créé pour vandaliser',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_VIPP, {
                    label: 'Vandalisme d\'IP partagée',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_IDIF, {
                    label: 'Insertion d\'informations fausses',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_MNOC, {
                    label: 'Modifications non constructives',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_SCSJ, {
                    label: 'Suppression de contenu sans justification',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_FNEZ, {
                    label: 'Abus d\'utilisation de comptes multiples (faux-nez)',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_BLOC, {
                    label: 'Contournement de blocage',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_SPAM, {
                    label: 'Insertion répétée de liens externes publicitaires (spam)',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_ICAS, {
                    label: ' Insertion de contenu sans aucun sens',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_CCAA, {
                    label: 'Création répétée d\'articles non encyclopédiques',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_TIOH, {
                    label: 'Tentative d\'intimidation ou harcèlement',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_NAMC, {
                    label: 'Nom d\'utilisateur d\'une marque, entreprise, association ou personne morale',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_COPY, {
                    label: 'Insertion répétée de texte sous copyright non libre',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_NAMF, {
                    label: 'Nom d\'utilisateur inapproprié, injurieux ou diffamant',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_APOI, {
                    label: 'Attaques personnelles ou insultes',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_PROU, {
                    label: 'Proxy ouvert',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_POIN, {
                    label: 'Désorganisation de Wikipédia pour une argumentation personnelle',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_REMU, {
                    label: 'Non-respect de l\'obligation de transparence malgré un ou plusieurs avertissements.',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_DCAR, {
                    label: 'Décision du Comité d\'arbitrage',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_BLAV, {
                    label: 'Blocage indéfini du compte après plusieurs avertissements et des blocages limités',
                    align: 'inline'
                }),
                new OO.ui.FieldLayout(checkbox_BANU, {
                    label: 'Bannissement du détenteur du compte après plusieurs bilans négatifs de sa participation',
                    align: 'inline'
                }),
            ]);
            var button_report = new OO.ui.ButtonWidget({
                label: 'Signaler',
                id: 'report_button',
                icon: 'add'
            });
            var button_emergency = new OO.ui.ButtonWidget({
                label: 'Urgence',
                id: 'emergency_button',
                icon: 'alert',
                flags: [
                    'primary',
                    'destructive'
                ],
                href: '/wiki/WP:SOS'
            });
            button_report.on('click', function () {
                button_report.setDisabled(true);
                let report_user = user_input.getValue();
                let report_body = '<ul>';
                if ($('input[value=VAND]').prop('checked')) report_body += '<li>[[Wikipédia:Vandalisme|Vandalisme]]</li>';
                if ($('input[value=CCPV]').prop('checked')) report_body += '<li>Compte créé pour vandaliser</li>';
                if ($('input[value=VIPP]').prop('checked')) report_body += '<li>Vandalisme d\'IP partagée</li>';
                if ($('input[value=IDIF]').prop('checked')) report_body += '<li>Insertion d\'informations fausses</li>';
                if ($('input[value=MNOC]').prop('checked')) report_body += '<li>Modifications non constructives</li>';
                if ($('input[value=SCSJ]').prop('checked')) report_body += '<li>Suppression de contenu sans justification</li>';
                if ($('input[value=FNEZ]').prop('checked')) report_body += '<li>Abus d\'utilisation de comptes multiples ([[Wikipédia:Faux-nez|faux-nez]])</li>';
                if ($('input[value=BLOC]').prop('checked')) report_body += '<li>Contournement de blocage</li>';
                if ($('input[value=SPAM]').prop('checked')) report_body += '<li>Insertion répétée de [[Wikipédia:Liens externes|liens externes]] publicitaires (spam)</li>';
                if ($('input[value=ICAS]').prop('checked')) report_body += '<li>Insertion de contenu sans aucun sens</li>';
                if ($('input[value=CCAA]').prop('checked')) report_body += '<li>Création répétée d\'articles non encyclopédiques</li>';
                if ($('input[value=TIOH]').prop('checked')) report_body += '<li>Tentative d\'intimidation ou harcèlement</li>';
                if ($('input[value=NAMC]').prop('checked')) report_body += '<li>[[Wikipédia:Nom d\'utilisateur|Nom d\'utilisateur]] d\'une marque, entreprise, association ou personne morale</li>';
                if ($('input[value=NAMF]').prop('checked')) report_body += '<li>[[Wikipédia:Nom d\'utilisateur|Nom d\'utilisateur]] inacceptable, injurieux ou diffamant</li>';
                if ($('input[value=DCAR]').prop('checked')) report_body += '<li>Décision du [[Wikipédia:Comité d\'arbitrage|Comité d\'arbitrage]]</li>';
                if ($('input[value=APOI]').prop('checked')) report_body += '<li>[[Wikipédia:Pas d\'attaque personnelle|Attaques personnelles ou insultes]]</li>';
                if ($('input[value=COPY]').prop('checked')) report_body += '<li>Insertion répétée de [[Aide:violation du droit d\'auteur|texte sous copyright non libre]]</li>';
                if ($('input[value=POIN]').prop('checked')) report_body += '<li>[[Wikipédia:Ne pas désorganiser Wikipédia pour une argumentation personnelle|Désorganisation de Wikipédia pour une argumentation personnelle]]</li>';
                if ($('input[value=PROU]').prop('checked')) report_body += '<li>[[Wikipédia:Proxy ouvert|Proxy ouvert]]</li>';
                if ($('input[value=REMU]').prop('checked')) report_body += '<li>Non-respect de l\'[[Aide:Contributions_rémunérées|obligation de transparence]] malgré un ou plusieurs avertissements. Ce compte pourra être débloqué une fois l\'obligation remplie.</li>';
                if ($('input[value=BLAV]').prop('checked')) report_body += '<li>Blocage indéfini du compte après plusieurs avertissements et des blocages limités</li>';
                if ($('input[value=BANU]').prop('checked')) report_body += '<li>Bannissement du détenteur du compte après plusieurs bilans négatifs de sa participation</li>';
                report_body += '</ul>';
                console.log(report_user + report_body);
                if (!report_user || report_user.trim() === '') {
                    mw.notify('Veuillez remplir le nom d\'utilisateur');
                    button_report.setDisabled(false);
                } else {
                    var params = {
                        action: "edit",
                        format: "json",
                        title: script_params.report_tool_page,
                        section: "new",
                        sectiontitle: "Demande de blocage de " + report_user,
                        text: `
* Auteur du vandalisme : {{u+|${report_user}}}
* Type de dégâts : ${report_body}

Message déposé par ~~~~
<!-- Script omega -->
                    `,
                        summary: "Demande de blocage de " + report_user,
                        notminor: 1,
                    };
                    api = new mw.Api();

                    api.postWithToken('csrf', params).done(function (data) {
                        console.log(data.edit);
                        if (data.edit.result == "Success") {
                            mw.notify('Signalement effectué avec succès !');
                            window.location.href = ('/wiki/' + data.edit.title);
                        } else {
                            mw.notify('Erreur, veuillez réessayer');
                            button_report.setDisabled(false);
                        }
                    });
                }
            });
            $("#mw-content-text").html('');
            $("#mw-content-text").append('<h2>Signaler un vandale</h2>');
            $("#mw-content-text").append(label1.$element);
            $("#mw-content-text").append(user_input.$element, "<br>");
            $("#mw-content-text").append(fieldset.$element, "<br>");
            $("#mw-content-text").append(button_report.$element);
            $("#mw-content-text").append(button_emergency.$element);
        });
    }
});
// </nowiki>