MediaWiki:Common.js

Материал из Guild Wars 2 wiki
Перейти к: навигация, поиск
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */

// Scripts to use when viewing articles
if (mw.config.get('wgIsArticle') || window.location.href.indexOf('action=submit') > -1 || mw.config.get('wgNamespaceNumber') == -1) {
    mw.loader.load( '/index.php?title=MediaWiki:CollapsibleTables.js&action=raw&ctype=text/javascript' );
    mw.loader.load( '/index.php?title=MediaWiki:TPprices.js&action=raw&ctype=text/javascript' );
    mw.loader.load( '/index.php?title=MediaWiki:GameLinks.js&action=raw&ctype=text/javascript' );
    mw.loader.load( '/index.php?title=MediaWiki:CurrentTime.js&action=raw&ctype=text/javascript' );
    mw.loader.load( '/index.php?title=MediaWiki:Snowflakes.js&action=raw&ctype=text/javascript' );
    mw.loader.load( '/index.php?title=MediaWiki:BloodTest.js&action=raw&ctype=text/javascript' );
    $(function() {
        autoConvertUTC();
    });
}

/**
 * autoConvertUTC (see [[Template:UTC time]])
 */
function autoConvertUTC () {
    function pad (s) {  return (s < 10 ? '0' : '') + s; }
    var days = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'];
    $('.utc-auto-convert').each(function(i,v){
        // Get UTC time using MediaWiki {{#time: U}} epoch format
        var utcseconds = v.getAttribute('data-time');
        if (utcseconds == 'error') {
            return;
        }
        var d = new Date(0);
        d.setUTCSeconds(utcseconds);
        var offset = (-1 * d.getTimezoneOffset() / 60);
        var offsetstring = '';
        if (offset > 0) { offsetstring = '+' + offset; }
        if (offset < 0) { offsetstring = offset;       }
        
        // Default to showing the time only
        var datestring = pad(d.getHours()) + ':' + pad(d.getMinutes()) + ' UTC' + offsetstring;
        var titlestring = pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ' UTC';
        
        // But check for different formatting in case there is a day of the week given inside the span
        if (!v.textContent.match(/^\d/)) {
            datestring  = days[d.getDay()] + ' ' + datestring;
            titlestring = days[d.getUTCDay()] + ' ' + titlestring;
        }
        
        // Show result
        $(v).html('<span style="cursor:help; border-bottom:1px dotted silver;" title="'+titlestring+'">'+datestring+'</span>');
    });
}

/**
 * Helper script for .hlist class in Common.css
 *   add pseudo-selector class to last-child list items in IE8
 *   @source mediawiki.org/wiki/Snippets/Horizontal_lists
 *   @revision 6 (2014-08-23)
 *   @author mediawiki.org/wiki/User:Edokter
 */
(function ( mw, $ ) {
    var profile = $.client.profile();
    if ( profile.name === 'msie' && profile.versionNumber === 8 ) {
        mw.hook( 'wikipage.content' ).add( function ( $content ) {
            $content.find( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
                .addClass( 'hlist-last-child' );
        } );
    }
}) (mediaWiki, jQuery);