MediaWiki:Gadget-UTCLiveClock.js — различия между версиями
Материал из CelestePedia
SoulTrain (обсуждение | вклад) |
SoulTrain (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
( function( mw, $ ) { | ( function( mw, $ ) { | ||
− | |||
− | |||
− | |||
− | |||
− | + | function showTime( $target ) { | |
− | + | var now = new Date(), | |
− | + | hh = now.getUTCHours(), | |
− | + | mm = now.getUTCMinutes(), | |
− | + | ss = now.getUTCSeconds(), | |
− | + | time = ( hh < 10 ? '0' + hh : hh ) + ':' + ( mm < 10 ? '0' + mm : mm ) + ':' + ( ss < 10 ? '0' + ss : ss ); | |
− | + | $target.text( time ); | |
− | + | } | |
+ | |||
+ | function liveClock() { | ||
+ | mediaWiki.util.addCSS( '#utcdate a { font-weight:bolder; font-size:120%; }' ); | ||
+ | |||
+ | var $container = $( '#p-personal ul:first' ); | ||
+ | if ( !$container.length ) { | ||
+ | return false; | ||
+ | } | ||
+ | var $link = $( '<a href="#">' ); | ||
+ | $link.on( 'click', function( e ) { | ||
+ | e.preventDefault(); | ||
− | + | $.ajax( { | |
− | + | url: '//' + location.host + '/w/api.php', | |
− | + | data: { | |
− | + | 'action': 'purge', | |
− | + | 'titles': mw.config.get( 'wgPageName' ) | |
− | + | }, | |
− | + | method: 'GET' | |
− | + | } ).done( function( data ) { | |
− | + | location.reload(); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} ); | } ); | ||
− | + | } ); | |
− | |||
− | + | $( '<li id="utcdate">' ) | |
− | + | .append( $link ) | |
− | + | .appendTo( $container ); | |
− | + | ||
− | + | showTime( $link ); | |
− | + | var interval = setInterval( function() { | |
+ | try { | ||
+ | showTime( $link ); | ||
+ | } catch(e) { | ||
clearInterval( interval ); | clearInterval( interval ); | ||
− | + | } | |
− | + | }, 1000 ); | |
− | + | return true; | |
− | }( mediaWiki, jQuery | + | } |
+ | |||
+ | if ( !liveClock() ) { | ||
+ | $( document ).ready( liveClock ); | ||
+ | } | ||
+ | |||
+ | } )( mediaWiki, jQuery ); |
Текущая версия на 16:06, 22 апреля 2018
( function( mw, $ ) {
function showTime( $target ) {
var now = new Date(),
hh = now.getUTCHours(),
mm = now.getUTCMinutes(),
ss = now.getUTCSeconds(),
time = ( hh < 10 ? '0' + hh : hh ) + ':' + ( mm < 10 ? '0' + mm : mm ) + ':' + ( ss < 10 ? '0' + ss : ss );
$target.text( time );
}
function liveClock() {
mediaWiki.util.addCSS( '#utcdate a { font-weight:bolder; font-size:120%; }' );
var $container = $( '#p-personal ul:first' );
if ( !$container.length ) {
return false;
}
var $link = $( '<a href="#">' );
$link.on( 'click', function( e ) {
e.preventDefault();
$.ajax( {
url: '//' + location.host + '/w/api.php',
data: {
'action': 'purge',
'titles': mw.config.get( 'wgPageName' )
},
method: 'GET'
} ).done( function( data ) {
location.reload();
} );
} );
$( '<li id="utcdate">' )
.append( $link )
.appendTo( $container );
showTime( $link );
var interval = setInterval( function() {
try {
showTime( $link );
} catch(e) {
clearInterval( interval );
}
}, 1000 );
return true;
}
if ( !liveClock() ) {
$( document ).ready( liveClock );
}
} )( mediaWiki, jQuery );