सदस्य:SM7/test.js

मुक्त ज्ञानकोश विकिपीडिया से

सूचना: यह पृष्ठ सुरक्षित करने बाद, परिवर्तनों को देखने लिए ब्राउज़र का कैश ख़ाली करने की आवश्यकता हो सकती है।

  • मोज़िला / फ़ायरफ़ॉक्स / सफ़ारी: shift hold करें जब आप reload क्लिक करते है, या Ctrl-Shift-R (अपल मैक में Cmd-Shift-R) दबाएँ;
  • गूगल क्रोम: Ctrl-shift-R (मैक में Cmd-Shift-R) दबाएँ
  • इंटरनेट एक्सप्लोरर: Ctrl hold करें जब आप refresh क्लिक करते हैं, या Ctrl-F5 क्लिक करते हैं;
  • कॉङ्करर: सिर्फ़ Reload बटन पर क्लिक करें, या F5 क्लिक करें;
  • ऑपरा सदस्य को Tools→Preferences में सम्पूर्ण कैश ख़ाली करने की ज़रूरत हो सकती है।
/**
 * Outils pour réverter
 *
 * fournit des liens dans les pages de diff pour révoquer facilement une modification et avertir son auteur
 *
 * Auteurs : Lorian (en), Chphe (fr)
 * Dernière révision : 28 octobre 2018
 * {{Projet:JavaScript/Script|RevertDiff}}
 */
//<nowiki>

mw.loader.using('mediawiki.util', function () {
    $(function ($) {

        var Texts = {
            Annul        : 'रोलबैक',
            Revert       : 'प्रत्यावर्तन',
            Message      : 'संदेश के साथ',
            Warn         : 'चेतावनी',
            MessageAlert : 'Quel message faut-il laisser ?',
            AnnulResume  : 'Annulation des modifications de [[Special:Contributions/$2|$2]] (retour à la version précédente de [[Special:Contributions/$1|$1]])',
            RevertResume : 'Révocation des modifications de [[Special:Contributions/$2|$2]] (retour à la version précédente de [[Special:Contributions/$1|$1]])',
        };

        var Warns = [
            {text: 'परीक्षण1',        template: '{{subst:Test 1|$page}} ~~~~'},
            {text: 'परीक्षण2',        template: '{{subst:Test 2}} ~~~~'},
            {text: 'परीक्षण3',        template: '{{subst:Test 3}} ~~~~'},
            {text: 'परीक्षण4',        template: '{{subst:Seul avertissement}} ~~~~'},
            {text: 'Lien externe', template: '{{subst:Bienvenue spammeur|$page}} ~~~~'},
            {text: 'Faut sourcer', template: '{{subst:Faut sourcer|$page}} ~~~~'},
            {text: 'Bienvenue',    template: '{{Bienvenue nouveau|sign=~~~~}}'},
            {text: 'BienvenueIP',  template: '{{subst:Bienvenue IP}} ~~~~'},
            {text: 'MerciIP',      template: '{{Bienvenue IP méritante|sign=~~~~}}'},
        ];

        function isDiffPage() {
            return !!mw.config.get('wgDiffNewId');
        }

        function processAnnulOrRevert(oldid, action, user1, user2, withMessage) {
            var params = {
                action: 'edit',
                oldid: oldid,
                revertdiff_action: action,
                revertdiff_user1: user1,
                revertdiff_user2: user2,
            };
            if (withMessage) {
                var message = prompt(Texts.MessageAlert);
                if (message) {
                    params.revertdiff_message = message;
                } else {
                    return;
                }
            }
            window.location = mw.util.getUrl(null, params);
        }

        function submitOldRevision(summaryTemplate) {
            var summary = summaryTemplate
                .split('$1').join(mw.util.getParamValue('revertdiff_user1'))
                .split('$2').join(mw.util.getParamValue('revertdiff_user2'));
            var message = mw.util.getParamValue('revertdiff_message');
            if (message) {
                summary += '\xA0: ' + message;
            }
            var summaryEl = document.getElementById('wpSummary');
            // only possible if using standard editor
            if(summaryEl) {
            	summaryEl.value = summary;
            }
            var editform = document.getElementById('editform');

            if(editform)editform.submit();
        }

        if (isDiffPage()) {
            // Get username of submitter
            var $user1TD = $('td.diff-otitle');
            var $user2TD = $('td.diff-ntitle');
            if (!$user1TD.length || !$user2TD.length) return;

            // Récupération du oldid de la version à rétablir
            var chemin = $user1TD.find('span.mw-diff-edit a').attr('href');
            var oldid = mw.util.getParamValue('oldid', chemin);

            var user1 = $user1TD.find('a.mw-userlink').text();
            var user2 = $user2TD.find('a.mw-userlink').text();

            var $linkAnnulDirect = $('<a>')
                .attr('href', '#')
                .text(Texts.Annul)
                .click(function (e) {
                    e.preventDefault();
                    processAnnulOrRevert(oldid, 'annul', user1, user2, false);
                });

            var $linkAnnulMessage = $('<a>')
                .attr('href', '#')
                .text(Texts.Message)
                .click(function (e) {
                    e.preventDefault();
                    processAnnulOrRevert(oldid, 'annul', user1, user2, true);
                });

            var $linkRevertDirect = $('<a>')
                .attr('href', '#')
                .text(Texts.Revert)
                .click(function (e) {
                    e.preventDefault();
                    processAnnulOrRevert(oldid, 'revert', user1, user2, false);
                });

            var $linkRevertMessage = $('<a>')
                .attr('href', '#')
                .text(Texts.Message)
                .click(function (e) {
                    e.preventDefault();
                    processAnnulOrRevert(oldid, 'revert', user1, user2, true);
                });

            var $links = $('<span>');

            $links.append('(', $linkAnnulDirect, ' / ', $linkAnnulMessage, ') (', $linkRevertDirect, ' / ', $linkRevertMessage, ')');

            $links.append(' (' + Texts.Warn + ' : ');

            Warns.forEach(function (Warn, index) {
                if (index !== 0) {
                    $links.append(' / ');
                }

                var href = mw.util.getUrl('सदस्य_वार्ता:' + user2, {
                    action: 'edit',
                    section: 'new',
                    revertdiff_action: 'warn',
                    revertdiff_warn: index,
                    revertdiff_src: mw.config.get('wgPageName'),
                });

                var $linkWarn = $('<a>')
                    .attr('href', href)
                    .attr('title', Warn.template)
                    .text(Warn.text);

                $links.append($linkWarn);
            });

            $links.append(')');

            if (!document.getElementById('contentSub')) {
                $('<div id="contentSub"></div>').insertBefore('#mw-content-text');
            }
            $('#contentSub').append($links);

        } else {
            var action = mw.util.getParamValue('revertdiff_action');
            if (action) {
                if (action === 'annul') {
                    submitOldRevision(Texts.AnnulResume);

                } else if (action === 'revert') {
                    submitOldRevision(Texts.RevertResume);

                } else if (action === 'warn') {
                    var warnIndex = mw.util.getParamValue('revertdiff_warn');

                    if (warnIndex && Warns[warnIndex]) {
                        var Template = Warns[warnIndex].template;
                        Template = Template.split('$page').join(mw.util.getParamValue('revertdiff_src').replace(/_/g, ' '));
                        Template = Template.split('$user').join(mw.config.get('wgUserName'));

                        var tb = document.getElementById('wpTextbox1');

                        var editform = document.getElementById('editform');
                        if(tb)tb.value = Template;
                        if(editform) editform.submit();
                    }
                }
            }
        }

    });
});

//</nowiki>