MediaWiki:Gadget-DetectorHomonimos.js: Diferenzas entre revisións
Contido eliminado Contido engadido
Migration: importScriptURI → mw.loader.load |
Sync with de:Special:PermaLink/145531452, which does not use sajax_init_object() (deprecated function removed from MediaWiki. See mw:ResourceLoader/Migration guide (users)#Sajax) |
||
Liña 1:
//===========================================================================
// Basado en
// obra do usuario APPER
// Highlight links to disambiguation pages with the CSS class 'bkl-link',
// In both the normal page view and in the preview
//===========================================================================
// Example: [[Antrazith]] (misspelling) -> [[Anthrazit]] (disambiguation)
window.bklCheck = {
cat : {
'Categoría:Homónimos' : {
className : 'bkl-link bkl-link-inner', // bkl-link-inner kept for b/c reasons
titleAppend : ' (homónimos)',
htmlAppend : '<sup class="bkl-link-sup">HOMÓNIMOS</sup>'},
Liña 17 ⟶ 20:
},
queryParamsView : {
action: 'query',
generator: 'links',
redirects: '',
gpllimit: 'max',
gplnamespace: 0,
cllimit: 'max',
indexpageids: '',
requestid: mw.config.get('wgCurRevisionId') // Break client caching, when page has been edited
queryParamsPreview : {
action: 'query',
prop: 'categories',
cllimit: 'max',
redirects: '',
indexpageids: ''
},
titles : {},
count : 0,
Liña 28 ⟶ 44:
execute : function () {
if ( window.bklCheckOnlyCheckMainNS && mw.config.get(
var api = new mw.Api();
// Use &clcategories to reduce needed queries var cats = [];
for ( var name in bklCheck.cat ) if ( bklCheck.cat[name].className )
cats.push
bklCheck.
bklCheck.
if ( action === 'submit' ) bklCheck.doPreviewQueries( api ); else if (
else { // "Show preview on first edit" enabled?
var prev = document.getElementById( 'wikiPreview' );
if ( prev && prev.firstChild )
}
},
Liña 57 ⟶ 71:
redirects[r.to].push( r.from );
}
for (
var page = q.pages[q.pageids[i]];
if ( page.missing === '' || page.ns !== 0 || !page.categories ) continue;
Liña 79 ⟶ 93:
if ( !links ) return;
for ( var i = 0; i < links.length; i++ ) {
if ( links[i].className === 'image' || links[i].className.indexOf('external') !== -1 ) continue; // Don't mess with images or external links!
var title = links[i].title || ( links[i].childNodes[0] && links[i].childNodes[0].nodeValue );
if ( title ) title = title.charAt(0).toUpperCase() + title.slice(1); // make first character uppercase
Liña 85 ⟶ 99:
if ( !cat ) continue;
links[i].innerHTML = '<span class="' + cat.className + '" title="' +
}
},
viewResultArrived : function ( api, res ) {
bklCheck.storeTitles( res );
if ( res && res['
▲ if ( c.categories ) {
}▼
} else bklCheck.markLinks();
},
PreviewQuery : function ( api, titles ) {
bklCheck.previewQueryCount++;
//We have to keep the titles in memory in case we get a query-continue
this.doQuery( api, bklCheck.
},
doPreviewQueries : function ( api ) {
var links = bklCheck.getLinks( 'wikiPreview' );
if ( !links ) return;
var titles=[]; var m;
var unique = {};
var siteRegex = new RegExp(
▲ var siteRegex = new RegExp( rxEscape( mw.config.get( 'wgServer' ) ) + rxEscape( mw.config.get( 'wgArticlePath' ).replace( /\$1/, '' ) ) + '([^#]*)' );
//We only care for main ns pages, so we can filter out the most common cases to save some requests
var namespaceRegex = /^((User|Wikipedia|File|MediaWiki|Template|Help|Category|Portal)(_talk)?|Special|Talk):/i;
Liña 123 ⟶ 128:
if ( !( m = links[i].href.match( siteRegex ) )
|| m[1].match( namespaceRegex ) || unique[m[1]] ) continue;
unique[m[1]] = true; // Avoid requesting same title multiple times
titles.push( decodeURIComponent( m[1].replace( /_/g, '%20' ) ) ); // Avoid normalization of titles
if ( titles.length < 50 ) continue;
titles=[];
}
if ( titles.length )
},
Liña 138 ⟶ 143:
};
bklCheck
api.get(
$.extend( {}, queryParams, continueParams || { 'continue': '' } )
} ).fail( function( code, data ) {
var extraText;
if (
+ ( data.textStatus ? '' + data.textStatus + ( data.exception ? ': ' : '' ) : '' )
▲ };
+ ( data.exception ? '' + data.exception : '' );
} else {
extraText = code + ( data && data.error && data.error.info ? ': ' + data.error.info : '' );
mw.notify(
'BKL-Check: Fehler beim Ermitteln der Begriffsklärungen' +
' (' + extraText + ')',
{ tag: 'bklCheck-error' }
);
} );
};
bklCheck
bklCheck.storeTitles( res );
if ( res && res['
this.doQuery( api, bklCheck.
} else bklCheck.previewQueryCount--;
if ( !bklCheck.previewQueryCount ) bklCheck.markLinks();
|