MediaWiki:Gadget/Friendly/friendlyclock.js

From OpenWetWare
Jump to: navigation, search
// If FriendlyConfig aint exist.
if( typeof( FriendlyConfig ) == 'undefined' ) {
    FriendlyConfig = {};
}

/**
 FriendlyConfig.enableClock ( boolean )
 */
if( typeof( FriendlyConfig.enableClock ) == 'undefined' ) {
    FriendlyConfig.enableClock = true;
}

/**
 FriendlyConfig.clockStyle ( String )
 */
if( typeof( FriendlyConfig.clockStyle ) == 'undefined' ) {
    FriendlyConfig.clockStyle = 'dynamic';
}

friendlyclock = {
    showClock: function() {
        var query = {
            'action': 'purge',
            'title': wgPageName
        };
        friendlyclock.clockNode = addPortletLink( 'p-personal', wgServer + wgScriptPath + '/index.php?' + QueryString.create( query ), '--:--:-- UTC', 'friendly-clock', 'Purge this page', '' );
        friendlyclock.clockNode.style.fontSize = 'normal';
        friendlyclock.clockNode.style.fontWeight = 'bold';
        friendlyclock.clockNode.style.textTransform = 'uppercase';
        
        friendlyclock.updateTime();
        if( FriendlyConfig.clockStyle != 'static' ) {
            friendlyclock.intervalId = window.setInterval(friendlyclock.updateTime, 1000);
        }
    },
    updateTime: function() {
        if( !friendlyclock.clockNode ) {
            return;
        }
        var now = new Date();
        var hh = now.getUTCHours();
        var mm = now.getUTCMinutes();
        var ss = now.getUTCSeconds();
        var time = ( hh < 10 ? '0' + hh : hh ) + ':' + ( mm < 10 ? '0' + mm : mm ) + ':' + ( ss < 10 ? '0' + ss : ss) + ' UTC';
        friendlyclock.clockNode.firstChild.innerHTML = time;
    }
}

addOnloadHook( function() {
        if( FriendlyConfig.enableClock ) {
            friendlyclock.showClock();
        }
    }
);