/**
* Wikibugs loader.
* See: ]
*/
/* global mw, $ */
// <nowiki>
var config = mw.config.get( [
'wgNamespaceNumber',
'wgPageName',
] );
/**
* A name of a page where report link-buttons are.
*/
var reportPage = 'Wikipedia:Zgłoś błąd w artykule';
// basic messages
mw.messages.set( {
'wikibugs-link': 'Zgłoś błąd',
'wikibugs-ns0': ' w artykule',
'wikibugs-ns5': ' na stronie',
'wikibugs-ns6': ' w pliku',
'wikibugs-ns10': ' w szablonie',
'wikibugs-ns14': ' w kategorii',
} );
// make sure both utils and page is ready
$.when( mw.loader.using( ), $.ready ).then( function () {
// 0 (artykuł), 6 (Plik), 10 (Szablon), 14 (Kategoria), 5 (Dyskusja_Wikipedii)
if (config.wgNamespaceNumber == 0 || config.wgNamespaceNumber == 6
|| config.wgNamespaceNumber == 5
|| config.wgNamespaceNumber == 10 || config.wgNamespaceNumber == 14)
{
initSidebar(config.wgNamespaceNumber);
lazyLoad();
}
// reportPage = 'Wikipedia:Zgłoś błąd w artykule'; (ns = 4)
if ( mw.util.getUrl( config.wgPageName ) == mw.util.getUrl( reportPage ) ) {
initInnerButton();
lazyLoad();
}
});
var lazyOpenWindow = function () {
console.warn('', 'not loaded before click');
lazyLoad(true);
}
function lazyLoad(open) {
mw.loader.using( );
mw.hook('userjs.wikibugs.loaded').add( function(lazyOpen) {
// console.log('', 'loaded before click');
// replace when loaded
lazyOpenWindow = lazyOpen;
if (open) {
lazyOpen();
}
} );
}
/** Init links. */
function initSidebar(ns) {
// add
var portletId = mw.config.get( 'skin' ) === 'timeless' ? 'p-pagemisc' : 'p-tb';
var linkTitle = mw.msg( 'wikibugs-link' ) + ' ' + mw.msg( 'wikibugs-ns' + ns );
var link = mw.util.addPortletLink( portletId, '#', linkTitle, 'wikibugs-tool-link' );
// behaviour
$( link )
.on( 'click', function ( evt ) {
evt.preventDefault();
lazyOpenWindow();
} )
;
}
/** Init button(s) in content. */
function initInnerButton() {
// Link on the report-an-error page itself
$( '#report-bug-link a' ).on( 'click', function ( evt ) {
evt.preventDefault();
lazyOpenWindow();
} );
}
// </nowiki>