MediaWiki:Gadget-CitationTemplatesExtracts.js
Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.
- Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
- Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
var config = mw.config.get( [
'wgTitle'
] ),
TARGET_TITLE = 'Plantillas de fuentes y autorizaciones';
if ( config.wgTitle.indexOf( TARGET_TITLE ) === config.wgTitle.length - TARGET_TITLE.length ) {
mw.loader.using( 'mediawiki.api' ).done( function () {
var API_DELAY = 100,
api = new mw.Api();
function makeRequest( template ) {
return api.parse( mw.format( '{' + '{$1}}', template ), {
title: 'título',
prop: 'text',
disablelimitreport: true
} );
}
mw.hook( 'wikipage.content' ).add( function ( $content ) {
$content.find( '#mw-pages' ).find( 'li > a[title^="Plantilla:"]' ).each( function () {
var popup,
$el = $( this );
$el.data( 'title', $el.attr( 'title' ) ).removeAttr( 'title' );
$el.on( 'mouseenter.popup-ref', function ( evt ) {
if ( popup ) {
popup.toggle( true );
return;
}
$el.data( 'timer-id', setTimeout( function () {
var template = $el.data( 'title' ).replace( /^Plantilla:/, '' ),
request = makeRequest( template );
$el.data( 'request', request ).removeData( 'timer-id' );
$.when(
request,
mw.loader.using( 'oojs-ui-core' )
).done( function ( wikitext ) {
$el.removeData( 'request' );
popup = new OO.ui.PopupWidget( {
$content: $( wikitext ),
$floatableContainer: $el,
padded: true
} );
$( document.body ).append( popup.$element );
popup.toggle( true );
if ( $el.is( ':hover' ) ) {
$el.trigger( 'mouseenter' );
}
} );
}, API_DELAY ) );
} );
$el.on( 'mouseleave.popup-ref', function ( evt ) {
var timerID = $el.data( 'timer-id' ),
request = $el.data( 'request' );
if ( timerID !== undefined ) {
clearTimeout( timerID );
}
if ( request !== undefined ) {
request.abort();
}
$el.removeData( [ 'timer-id', 'request' ] );
if ( popup ) {
popup.toggle( false );
}
} );
} );
} );
} );
}