MediaWiki:Gadget-Descriptions.js
Jump to navigation
Jump to search
Note: After saving, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
// required modules: mediawiki.api, jquery.wikibase.wbtooltip ( function ( mw, $, wb ) { // only works for items if ( !mw.config.exists( 'wbEntityId' ) ) { return; } /* T222491, hovercards were uninstalled // disable when hovercards are activated if ( mw.user.options.get( 'popups' ) === "1" ) { return; } */ function init() { var api = new mw.Api(), userLang = mw.config.get( 'wgUserLanguage' ), ids = [], anchors = {}, $tooltip = $( '<span>' ) .appendTo( 'body' ); $( '.wikibase-statementgroupview a[href^="/wiki/"]' ) .each( function () { var $anchor = $( this ), id = $anchor.attr( 'href' ).replace( /.*Item:(Q\d+)/, '$1' ).replace( /.*Property:(P\d+)/, '$1' ); if ( id.indexOf( 'Q' ) !== 0 && id.indexOf( 'P' ) !== 0 ) { return; } ids.push( id ); if ( anchors[ id ] ) { anchors[ id ].push( $anchor ); } else { anchors[ id ] = [ $anchor ]; } } ); if ( ids.length === 0 ) { return; } api.get( { action: 'wbgetentities', ids: ids, props: [ 'descriptions' ], languages: userLang, languagefallback: 1, } ) .then( function ( data ) { $.each( data.entities || {}, function ( id, entity ) { if ( !entity.descriptions[ userLang ] || !anchors[ id ] ) { return; } $.each( anchors[ id ], function ( i, $anchor ) { $anchor.hover( function () { $tooltip .wbtooltip( { content: $( '<span>' ).text( entity.descriptions[ userLang ].value ), permanent: true, gravity: 'nw', $anchor: $anchor } ) .data( 'wbtooltip' ).show(); }, function () { $tooltip.data( 'wbtooltip' ).hide(); } ); } ); } ); } ); } $( init ); } ( mediaWiki, jQuery, wikibase ) );