MediaWiki:Gadget-Page descriptions.js

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Catatan: Setelah menyimpan, Anda harus memintas tembolok (cache) peramban Anda untuk melihat perubahannya. Google Chrome, Firefox, Microsoft Edge dan Safari: Tahan tombol Shift dan klik Muat ulang (Reload) di tombol bilah alat. Untuk detail dan instruksi tentang peramban lain, lihat halaman menghapus singgahan (Inggris).

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 = $( '<span>' )
					.addClass( 'mw-page-description' )
					.text( pageDescription );
				if ( response.query.pages[ 0 ].descriptionsource !== 'local' && isEditor ) {
					$description.append(
						' (',
						$( '<a>' )
							.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 = $( '<span>' )
					.css( 'color', 'red' )
					.append(
						'Belum tersedia ',
						$( '<a>' )
							.attr( 'href', '/wiki/Template:Short_description' )
							.text( 'deskripsi halaman' ),
						'. '
					);
			}
			if ( $description ) {
				$( '#siteSub' ).prepend( $description );
			}
		} );
	} );
}