MediaWiki:Gadget-QuickDelete.js

Versione del 20 set 2014 alle 14:08 di Rotpunkt (discussione | contributi) (fix username se pagina utente non esiste)

Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.


Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.

/**
 * Gadget-QuickDelete.js
 * Nel namespace File: aggiunge cinque link al portlet Strumenti per inserire
 * automaticamente il template unverdata all'immagine e un avviso all'utente.
 * Riscritto da zero a partire da:
 * http://it.wikipedia.org/w/index.php?title=MediaWiki:Gadget-QuickDelete.js&oldid=51134251
 *
 * @author [[Utente:Rotpunkt]]
 */
/*jslint unparam: true */
/*global alert: false, document: false, window: false, mediaWiki: false, jQuery: false */
/* <nowiki> */

(function (mw, $) {
    'use strict';

    // se impostato a true la pagina viene salvata automaticamente
    var autosave = true,
    // portlet links
        portletLinks = {
            licenza: {
                name: 'Immagine senza licenza',
                summary: 'Immagine senza licenza',
                template: '{{subst:Avvisoimmagine|immagine=[[:$1]]}}'
            },
            fonte: {
                name: 'Immagine senza fonte/autore',
                summary: 'Informazioni mancanti',
                template: '{{subst:Avvisoimmagine3|$1}}'
            },
            otrs: {
                name: 'Immagine senza OTRS',
                summary: 'Informazioni mancanti',
                template: '{{subst:AvvisoOTRS|$1}}'
            },
            edp: {
                name: 'Immagine EDP non accettabile',
                summary: 'EDP non rispettata',
                template: '{{subst:AvvisoEDP|$1}}'
            },
            altro: {
                name: 'Immagine senza altre informazioni',
                summary: 'Immagine senza informazioni',
                template: '{{subst:Avvisoimmagine2|immagine=[[:$1]]}}'
            }
        };

    // modifica la pagina dell'immagine
    function editFile() {
        if ($('#wpTextbox1').length && $('#wpSummary').length && $('#wpSave').length) {
            $('#wpTextbox1').val(function (i, text) {
                return '{{subst:unverdata}}\n' + text;
            });
            $('#wpSummary').val('Segnalazione di immagine [[Wikipedia:Immagini da verificare|' +
                                'da verificare]] (unverified). Se non verificata questa immagine ' +
                                'sarà cancellata tra 7 giorni.');
            if (autosave) {
                $('#wpSave').click();
            }
        }
    }

    // modifica la pagina di discussione dell'utente
    function editUserTalk(gqdaction, gqdpage) {
        if ($('#wpTextbox1').length && $('#wpSummary').length && $('#wpSave').length) {
            $('#wpTextbox1').val(function (i, text) {
                return text + '\n== ' + portletLinks[gqdaction].summary + ' ==\n' +
                       portletLinks[gqdaction].template.replace('$1', decodeURIComponent(gqdpage)) +
                       '~~~~\n';
            });
            $('#wpSummary').val(portletLinks[gqdaction].summary);
            if (autosave) {
                $('#wpSave').click();
            }
        }
    }

    function addPortletLinks() {
        $.each(portletLinks, function (key, portletLink) {
            var link = mw.util.addPortletLink('p-tb', '#', portletLink.name);
            $(link).click(function (event) {
                event.preventDefault();
                var username = $('table[class="wikitable filehistory"] tr:eq(1) td:eq(-2):first a').filter('[title]');
                username = username.length ? username.attr('title').split(':') : null;
                if (username && username[0] === 'Utente') {
                    username[1] = username[1].replace('(la pagina non esiste)', '');
                    window.open(mw.config.get('wgScript') +
                            '?action=edit&title=Discussioni_utente:' + username[1] + '&gqdaction=' + key +
                            '&gqdpage=' + encodeURIComponent(mw.config.get('wgPageName')), '_blank');
                    document.___location = mw.config.get('wgScript') +
                                        '?title=' + mw.config.get('wgPageName') +
                                        '&action=edit&gqdaction=unverdata';
                } else {
                    alert('[Gadget-QuickDelete] username non trovato');
                }
            });
        });
    }

    $(document).ready(function () {
        var nsNum = mw.config.get('wgNamespaceNumber'),
            gqdaction = mw.util.getParamValue('gqdaction'),
            gqdpage = mw.util.getParamValue('gqdpage');
        if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
            // edit richiamato dallo script stesso per modificare la pagina dell'immagine o dell'utente
            if (nsNum === 6 && gqdaction && gqdaction === 'unverdata') {
                editFile();
            } else if (nsNum === 3 && gqdaction && gqdpage) {
                editUserTalk(gqdaction, gqdpage);
            }
        } else if (nsNum === 6) {
            addPortletLinks();
        }
    });
}(mediaWiki, jQuery));

/* </nowiki> */