MediaWiki:Gadget-Page descriptions.js

if ( mw.config.get( 'wgNamespaceNumber' ) === 0 && mw.config.get( 'wgAction' ) === 'view' ) {

mw.loader.using( 'mediawiki.api' ).then( function () {

// Adds a page description just below the "page title"

// Behaves a lot like the mobile version

var wgQid = mw.config.get( 'wgWikibaseItemId' ),

api = new mw.Api(),

callPromise = api.get( {

action: 'query',

titles: mw.config.get( 'wgTitle' ),

prop: 'description',

formatversion: 2

} ),

isEditor = mw.config.get( 'wgUserGroups' ).indexOf( 'autoconfirmed' ) !== -1;

$.when( callPromise, $.ready ).then( function ( results ) {

var pageDescription, $description,

response = results[ 0 ];

if (

response.query &&

response.query.pages &&

response.query.pages[ 0 ].description

) {

pageDescription = response.query.pages[ 0 ].description;

$description = $( '' )

.addClass( 'mw-page-description' )

.text( pageDescription );

if ( response.query.pages[ 0 ].descriptionsource !== 'local' && isEditor ) {

$description.append(

' (',

$( '' )

.attr( 'href', 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' + wgQid + '/' + mw.config.get( 'wgContentLanguage' ) )

.css( 'color', 'darkorange' )

.text( 'Wikidata' ),

')'

);

}

$description.append( '. ' );

} else if ( isEditor ) {

$description = $( '' )

.css( 'color', 'red' )

.append(

'Missing ',

$( '' )

.attr( 'href', '/wiki/Template:Short_description' )

.text( 'page description' ),

'. '

);

}

if ( $description ) {

$( '#siteSub' ).prepend( $description );

}

} );

} );

}