Cambios

Saltar a: navegación, buscar

MediaWiki:Gadget-Preview.js

9889 bytes añadidos, 09:01 9 abr 2014
Página creada con «// <nowiki> // ------------------------------------------------------------------------------------------------------------- // Shows a "preview" button next to each linke...»
// <nowiki>

// -------------------------------------------------------------------------------------------------------------
// Shows a "preview" button next to each linked article to get a preview of the article right next to the table.
// Much thanks to User:Denny/articlePreview.js, from which I got the idea.
//
// Usage: Enable the gadget Preview in your preferences.
// -------------------------------------------------------------------------------------------------------------

( function ( mw, $ ) {
"use strict";

if ( mw.config.get( 'wgNamespaceNumber' ) !== 0 ) {
return;
}

switch ( mw.config.get( 'wgUserLanguage' ) ) {
case 'de':
case 'de-at':
case 'de-ch':
case 'de-formal':
mw.messages.set( {
'title' : 'Artikelvorschau',
'preview' : 'Vorschau',
'noarticle' : 'Du hast noch keinen Artikel ausgewählt.',
'readmore' : 'Weiterlesen',
'hide' : 'verstecken',
'show' : 'zeigen'
} );
break;
case 'bn':
mw.messages.set( {
'title' : 'নিবন্ধ প্রাকদর্শন',
'preview' : 'প্রাকদর্শন',
'noarticle' : 'আপনি এখনও কোন নিবন্ধ নির্বাচন করেন নি।',
'readmore' : 'আরও পড়ুন',
'hide' : 'আড়াল করো',
'show' : 'দেখাও'
} );
break;
case 'cs':
mw.messages.set( {
'title' : 'Náhled článku',
'preview' : 'náhled',
'noarticle' : 'Zatím není zvolen článek.',
'readmore' : 'Více',
'hide' : 'skryj',
'show' : 'ukaž'
} );
break;
case 'es':
mw.messages.set( {
'title' : 'Previsualización del artículo',
'preview' : 'previsualizar',
'noarticle' : 'Aún no seleccionaste ningún artículo.',
'readmore' : 'Leer más',
'hide' : 'ocultar',
'show' : 'mostar'
} );
break;
case 'fa':
mw.messages.set( {
'title' : 'پیش‌نمایش مقاله',
'preview' : 'پیش‌نمایش',
'noarticle' : 'شما هنوز مقاله‌ای را انتخاب نکرده‌اید.',
'readmore' : 'مطالعهٔ بیشتر',
'hide' : 'پنهان',
'show' : 'نمایش'
} );
break;
case 'fi':
mw.messages.set( {
'title' : 'Artikkelin esikatselu',
'preview' : 'esikatselu',
'noarticle' : 'Et ole vielä valinnut artikkelia.',
'readmore' : 'Lue lisää',
'hide' : 'piilota',
'show' : 'näytä'
} );
break;
case 'fr':
mw.messages.set( {
'title' : 'Visualisation des articles',
'preview' : 'visualiser',
'noarticle' : 'Aucun article n\'est sélectionné.',
'readmore' : 'Lire la suite',
'hide' : 'masquer',
'show' : 'afficher'
} );
break;
case 'gl':
mw.messages.set( {
'title' : 'Previsualización do artigo',
'preview' : 'previsualizar',
'noarticle' : 'Aínda non seleccionaches ningún artigo.',
'readmore' : 'Ler máis',
'hide' : 'ocultar',
'show' : 'amosar'
} );
break;
case 'hu':
mw.messages.set( {
'title' : 'Cikk előnézete',
'preview' : 'előnézet',
'noarticle' : 'Nem választottál cikket.',
'readmore' : 'Tovább',
'hide' : 'elrejt',
'show' : 'mutat'
} );
break;
case 'id':
mw.messages.set( {
'title' : 'Pratayang artikel',
'preview' : 'pratayang',
'noarticle' : 'Anda belum memilih artikel.',
'readmore' : 'Lebih lanjut',
'hide' : 'sembunyikan',
'show' : 'tunjukan'
} );
break;
case 'it':
mw.messages.set( {
'title' : 'Anteprime della voce',
'preview' : 'anteprima',
'noarticle' : 'Non hai ancora selezionato una voce.',
'readmore' : 'Leggi tutto',
'hide' : 'nascondi',
'show' : 'mostra'
} );
break;
case 'ja':
mw.messages.set( {
'title' : '記事のプレビュー',
'preview' : 'プレビュー',
'noarticle' : '記事が選択されていません',
'readmore' : '続きを読む',
'hide' : '非表示',
'show' : '表示'
} );
break;
case 'ko':
mw.messages.set( {
'title' : '문서 미리 보기',
'preview' : '미리 보기',
'noarticle' : '아직 문서를 선택하지 않으셧습니다.',
'readmore' : '더 보기',
'hide' : '숨기기',
'show' : '보이기'
} );
break;
case 'min':
mw.messages.set( {
'title' : 'Pratonton laman',
'preview' : 'pratonton',
'noarticle' : 'Sanak alum mamiliah laman.',
'readmore' : 'Labiah lanjuik',
'hide' : 'suruakan',
'show' : 'tunjuakan'
} );
break;
case 'nl':
mw.messages.set( {
'title' : 'Voorbeeld van artikel',
'preview' : 'voorbeeld',
'noarticle' : 'Je hebt nog geen artikel geselecteerd.',
'readmore' : 'Meer lezen',
'hide' : 'Verbergen',
'show' : 'Tonen'
} );
break;
case 'zh':
case 'zh-cn':
case 'zh-hans':
case 'zh-my':
case 'zh-sg':
mw.messages.set( {
'title' : '条目预览',
'preview' : '预览',
'noarticle' : '您尚未选择一个条目。',
'readmore' : '阅读更多',
'hide' : '隐藏',
'show' : '显示'
} );
break;
case 'zh-hant':
case 'zh-hk':
case 'zh-mo':
case 'zh-tw':
mw.messages.set( {
'title' : '條目預覽',
'preview' : '預覽',
'noarticle' : '您尚無選擇一個條目。',
'readmore' : '閱讀更多',
'hide' : '隱藏',
'show' : '顯示'
} );
break;
default:
case 'en':
mw.messages.set( {
'title' : 'Article preview',
'preview' : 'preview',
'noarticle' : 'You have not selected an article yet.',
'readmore' : 'Read more',
'hide' : 'hide',
'show' : 'show'
} );
}

/**
* The cached previews.
*/
var cache = {};

/**
* Initialising the links.
*/
function init() {
var lang = mw.config.get( 'wgUserLanguage' );
var wiki = lang + 'wiki'; // Guess default wiki
$( '.wb-widget-container' ).html(
$( '<div>' )
.attr( {
id: 'x-articlepreview',
style: 'width: 35em; margin-left: 30px;'
} )
.append(
$( '<h3>' )
.text( mw.msg( 'title' ) )
)
.append(
$( '<div>' )
.attr( 'id', 'x-articlepreview-content' )
.append(
$( '<p>' )
.attr( 'style', 'font-style: italic;' )
.text( mw.msg( 'noarticle' ) )
)
)
);

if ( $( '.wb-sitelinks-link-' + wiki + ' a' ).text() ) {
$( '#x-articlepreview-content p' )
.append( '<br>&nbsp;&rarr;&nbsp;' )
.append(
$( '<a>' )
.attr( 'href', '#' )
.text( $( '.wb-sitelinks-link-' + wiki + ' a' ).text() )
.click( function () {
preview( wiki );
return false;
} ) // </a>
);
}

$( document )
.on( 'mouseenter', '.wb-sitelinks tbody tr .wb-sitelinks-link', function () {
var wiki = $( this ).parent().find( '.wb-sitelinks-siteid' ).text();
$( this ).append(
$( '<span>' )
.append(
$( '<a>' )
.attr( 'href', '#x-articlepreview' )
.css( 'float', $( this ).attr( 'dir' ) === 'rtl' ? 'left' : 'right' )
.text( mw.msg( 'preview' ) )
.click( function () {
preview( wiki );
//return false;
} )
)
);
} )
.on( 'mouseleave', '.wb-sitelinks tbody tr .wb-sitelinks-link', function () {
$( this ).find( 'span' ).remove();
} );
}

/**
* Showing the preview got by an http request. Requests are cached.
*
* @param wiki the article's wiki
*/
function preview( wiki ) {
console.log( 'wiki: ' + wiki );
var title = $( '.wb-sitelinks-link-' + wiki + ' a:eq(0)' ).text();
var site = wikibase.getSite( wiki );
var lang = site.getLanguage();
console.log( 'title: ' + title );
console.log( site );
if ( !title ) {
return;
}
if ( cache.hasOwnProperty( wiki ) ) {
showPreview( cache[wiki] );
}
else {
mw.loader.using( ['jquery.spinner'], function () {
$( '#x-articlepreview-content' ).html( '' );
$.createSpinner( {
size: 'small',
type: 'block'
} ).appendTo( '#x-articlepreview-content' );
$.getJSON(
site.getApi() + '?callback=?',
{
action: 'query',
prop: 'extracts',
exintro: true,
exchars: 1000,
titles: title,
format: 'json'
},
function ( data ) {
var $preview = $( '<span>' )
.css( 'float', lang.dir === 'ltr' ? 'right' : 'left' )
.append( '[' )
.append(
$( '<a>' )
.attr( {
href: '#',
id: 'x-articlepreview-toggle'
} )
.text( mw.msg( 'hide' ) ) // </a>
)
.append( ']' )
.after(
$( '<h4>' )
.attr( 'dir', lang.dir )
.attr( 'lang', lang.code )
.text( $( '.wb-sitelinks-sitename-' + wiki ).text() + ' ' )
.append(
$( '<span>' )
.attr( 'dir', 'ltr' )
.attr( 'lang', 'en' )
.text( '(' + wiki + ')' )
)
)
.after(
$( '<div>' )
.attr( {
id: 'x-articlepreview-article',
'class': 'mw-content-' + lang.dir,
dir: lang.dir,
lang: lang.code
} )
.html( data.query.pages[Object.keys( data.query.pages )[0]].extract.replace( /<\/p>(…|...)/, '…</p>' ) )
.append(
$( '<p>' )
.append(
$( '<a>' )
.attr( {
'href': site.getUrlTo( title ),
'title': wiki + ':' + title
} )
.text( mw.msg( 'readmore' ) )
) // </a>
) // </p>
); // </span>
cache[wiki] = $preview;
showPreview( $preview );
}
);
} );
}
}

/**
* Adds the preview to the document.
*
* @param preview the preview in html format
*/
function showPreview( preview ) {
$( '#x-articlepreview-content' ).html( preview );
// toggle link
$( '#x-articlepreview-toggle' ).toggle( function () {
$( '#x-articlepreview-article' ).slideUp();
$( this ).text( mw.msg( 'show' ) );
}, function () {
$( '#x-articlepreview-article' ).slideDown();
$( this ).text( mw.msg( 'hide' ) );
} );
}

$( document ).ready( init );
} )( mediaWiki, jQuery );

// </nowiki>
552
ediciones

Menú de navegación