मिडियाविकी:Gadget-AdvancedSiteNotices.js

विकिपीडिया, मुक्‍त ज्ञानकोशातून
(Gadget-AdvancedSiteNotices.js या पानावरून पुनर्निर्देशित)

नोंद: साठवून ठेवल्यानंतर बदल पहाण्यासाठी कदाचित तुमच्या ब्राऊजरच्या कॅचेला बायपास करावे लागेल.

  • फ़ायरफ़ॉक्स / सफ़ारी: धरुन ठेवा Shift टिचकी मारताना Reload, किंवा हे दाबताना Ctrl-F5 किंवा Ctrl-R (⌘-R मॅकवर)
  • गुगल क्रोम: दाबा Ctrl-Shift-R (⌘-Shift-R मॅकसाठी)
  • ओपेरा: कडे जा Menu → Settings (ओपेरा → पसंतीक्रम on a Mac) आणि मग गोपनियता आणि सुरक्षा → ब्राउजिंग डाटा काढून टाका → कॅचे छायाचित्रे आणि धारिणी.
mw.loader.using( ['mediawiki.cookie', 'mediawiki.util'] ).done( function () {

(function ($, mw) {
    /** Advanced Site Notices ********
     * Allow to custom dynamic site notices
     * Maintainer: [[:zh:User:PhiLiP]]
     */
    if (typeof(window.customASNInterval) == 'undefined') {
        window.customASNInterval = 10;
    }
    $(function () {
        $('#mw-dismissable-notice').css('display', 'none');
        if (window.closeASNForever || mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit') {
            return;
        }

        var ln = $('#siteNotice');डिसमॅस एयसन
        if (!ln.length) {
            return;
        }
        var cname = 'dismissASN';
        var cval = mw.cookie.get(cname);
        if (cval == '') {
            cval = 0;
        }
        var rev = 0;
        var toid = null;

        var tb = $('<table id="asn-dismissable-notice" width="100%" style="background: transparent;"/>');
        var ct = $('<div id="advancedSiteNotices" style="height: 85px;"/>');
        var sd = $('<a href="#" title="बंद करा (ब्राउझरमध्ये डिसमॅस एयसन कुकी काढून टाकून पुन्हा उघडा)"><img src="//upload.wikimedia.org/wikipedia/commons/f/f9/Closewindow14x14.png" alt="बंद करा (ब्राउझरमध्ये डिसमॅस एयसन कुकी काढून टाकून पुन्हा उघडा)" border="0"></a>');
        tb.append($('<tr/>').append($('<td/>').append(ct)).append($('<td style="vertical-align: top;"/>').append(sd)));
        var nts = null;

        sd.click(function () {
            mw.cookie.set(cname, rev, {
                expires: 30,
                path: '/'
            });
            clearTimeout(toid);
            tb.remove();
            return false;
        });

        var getAttrs = function (nt) {
            var only = {
                sysop: nt.hasClass('only_sysop'),
                logged: nt.hasClass('only_logged'),
                anon: nt.hasClass('only_anon'),
            };
            only['usr'] = only['sysop'] || only['logged'] || only['anon'];
            return only;
        };

        var loadNotices = function (pos) {
            if (!tb.length) {
                return;
            }
            ct.css('min-height', ct.height() + 'px');
            var l = nts.length;
            var nt = null;
            var rt = 0;
            while (!nt || nt.attr('class')) {
                if (nt) {
                    var only = getAttrs(nt);
                    if (!only['usr'] || (($.inArray('sysop', mw.config.get('wgUserGroups')) != -1) && only['sysop']) || (mw.config.get('wgUserName') && only['logged']) || (!mw.config.get('wgUserName') && only['anon'])) {
                        break;
                    }
                }
                pos = pos % l;
                nt = $(nts[pos++]);
                rt++;
                if (rt == l) {
                    return;
                }
            }
            nt = nt.html();
            if (ct.html()) {
                ct.stop().fadeOut(function () {
                    ct.html(nt).fadeIn();
                });
            } else if (rev == cval) {
                return;
            } else {
                tb.appendTo(ln);
                ct.html(nt).fadeIn();
            }
            toid = setTimeout(function () {
                loadNotices(pos)
            }, window.customASNInterval * 1000);
        };

        $.get(mw.util.wikiScript( 'api' ), {
            page: 'Template:AdvancedSiteNotices/ajax',
            prop: 'text',
            action: 'parse',
            format: 'json',
            maxage: 3600,
            smaxage: 3600
        }, function (d) {
            d = $( '<div />' ).html( d.parse.text['*'] ).find( 'ul.sitents' );
            nts = $('li', d);
            rev = d.data( 'asn-version' );
            var l = nts.length;
            loadNotices(Math.floor(Math.random() * l));
        });
    });
})(jQuery, mediaWiki);

} );