Aan de totstandkoming van deze digitale encyclopedie wordt nog gewerkt.

MediaWiki:Common.js: verschil tussen versies

Uit De historische en eigentijdse encyclopedie van Eindhoven
Ga naar: navigatie, zoeken
(Nieuwe pagina aangemaakt met 'JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers, JL 6 aug. 2013: /*jslint browser: true, continue: true, sloppy: true, ...')
 
(Tekst vervangen door "JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers: ")
 
Regel 1: Regel 1:
/* JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers, JL 6 aug. 2013 */
+
/* JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers */
/*jslint browser: true, continue: true, sloppy: true, vars: true, plusplus: true*/
 
/*global mediaWiki, jQuery, importScript, jsMsg*/
 
(function (mw, $) {
 
 
 
/**
 
* Laad volglijst script
 
*/
 
if (mw.config.get('wgCanonicalSpecialPageName') === 'Watchlist') {
 
importScript("MediaWiki:Common.js/watchlist.js");
 
}
 
 
 
/**
 
* Extra knopje in de monobook toolbar
 
*
 
* Gebaseerd op [[:en:Wikipedia:Tools/Editing tools]].
 
* Maintainers: [[:en:User:MarkS|User:MarkS]]?, [[:en:User:Voice of All|User:Voice of All]], [[:en:User:R. Koot|User:R. Koot]]
 
*/
 
if (mw.toolbar) {
 
mw.toolbar.addButton({
 
'imageFile': '//upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png',
 
'speedTip': 'Voeg tabel in',
 
'tagOpen': '{| class="wikitable"\n|-\n',
 
'tagClose': "\n|}",
 
'sampleText': "! kop 1\n! kop 2\n! kop 3\n|-\n| rij 1, cel 1\n| rij 1, cel 2\n| rij 1, cel 3\n|-\n| rij 2, cel 1\n| rij 2, cel 2\n| rij 2, cel 3"
 
});
 
}
 
 
 
/**
 
* Uitgelicht in andere talen
 
*
 
* Sterren voor interwikilinks van de [[Wikipedia:Etalage]]-artikelen van andere Wikipedia's.
 
* Zie {{tl|Link FA}}. Overgenomen van [[:de:MediaWiki:Common.js]]
 
* Om zetten: <code>window.enable_linkFA = false;</code> in [[Special:Mypage/common.js]].
 
*
 
* @revision 2013-01-26
 
* @maintainer Krinkle
 
*/
 
function linkFA() {
 
var i;
 
if (window.enable_linkFA === false) {
 
return;
 
}
 
 
 
// links are to replaced in p-lang only
 
var pLang = document.getElementById('p-lang');
 
if (!pLang) {
 
return;
 
}
 
var lis = pLang.getElementsByTagName('li');
 
for (i = 0; i < lis.length; i++) {
 
var li = lis[i];
 
// alleen links met een Link FA-sjabloon
 
if (!document.getElementById(li.className + '-fa')) {
 
continue;
 
}
 
 
 
// Extra css-klasse zodat het effect verborgen kan worden met CSS
 
li.className += ' FA';
 
 
 
// Verander titel
 
li.title = 'Dit is een etalage-artikel in een andere taal.';
 
}
 
}
 
$(linkFA);
 
 
 
/**
 
* Goede artikelen in andere talen
 
*
 
* Sterren voor interwikilinks van de 'goede artikelen' van andere Wikipedia's.
 
* Zie {{tl|Link GA}}.
 
* Om zetten: <code>window.enable_linkGA = false;</code> in [[Special:Mypage/common.js]].
 
*
 
* @revision 2013-01-26
 
* @maintainer Krinkle
 
*/
 
function linkGA() {
 
var i;
 
if (window.enable_linkGA === false) {
 
return;
 
}
 
 
 
// links are to replaced in p-lang only
 
var pLang = document.getElementById('p-lang');
 
if (!pLang) {
 
return;
 
}
 
var lis = pLang.getElementsByTagName('li');
 
for (i = 0; i < lis.length; i++) {
 
var li = lis[i];
 
// alleen links met een Link GA-sjabloon
 
if (!document.getElementById(li.className + '-ga')) {
 
continue;
 
}
 
 
 
// Extra css-klasse zodat het effect verborgen kan worden met CSS
 
li.className += ' GA';
 
 
 
// Verander titel
 
li.title = 'Dit is een goed artikel in een andere taal.';
 
}
 
}
 
$(linkGA);
 
 
 
/**
 
* Autotekst in uploadpagina voor bestanden
 
*
 
* Script voor Speciaal:Uploaden
 
* Maintainers: [[:commons:User:Yonidebest]], [[:commons:User:Dschwen]]
 
*/
 
if (mw.config.get('wgCanonicalSpecialPageName') === 'Upload') {
 
importScript('MediaWiki:Upload.js');
 
}
 
 
 
/**
 
* Meerdere sets speciale tekens
 
*
 
* Geeft menu in [[MediaWiki:Edittools]] waarmee meerdere sets speciale
 
* tekens kunnen worden geraadpleegd. Zie ook [[MediaWiki:Onlyifediting.js]]
 
*/
 
if (mw.config.get('wgAction')  === 'edit' || mw.config.get('wgAction') === 'submit') {
 
importScript('MediaWiki:Onlyifediting.js');
 
}
 
 
 
/**
 
* NavFrame
 
*
 
* Van [[:en:MediaWiki:Common.js]]
 
* Test if an element has a certain class
 
* Description: Uses regular expressions and caching for better performance.
 
* Maintainers: [[:en:User:Mike Dillon]], [[:en:User:R. Koot]], [[:en:User:SG]]
 
*/
 
var hasClass = (function () {
 
var reCache = {};
 
return function (element, className) {
 
return (reCache[className] || (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
 
};
 
}());
 
 
 
/**
 
* Collapsible tables
 
* Allows tables to be collapsed, showing only the header. See [[:en:Wikipedia:NavFrame]].
 
* Maintainers: [[:en:User:R. Koot]]
 
*/
 
var autoCollapse = 2;
 
var collapseCaption = 'verberg';
 
var expandCaption = 'toon';
 
 
 
function collapseTable(tableIndex) {
 
var Button = document.getElementById('collapseButton' + tableIndex);
 
var Table = document.getElementById('collapsibleTable' + tableIndex);
 
var i;
 
 
 
if (!Table || !Button) {
 
return false;
 
}
 
 
 
var Rows = Table.getElementsByTagName('tr');
 
 
 
if (Button.firstChild.data === collapseCaption) {
 
for (i = 1; i < Rows.length; i++) {
 
Rows[i].style.display = 'none';
 
}
 
Button.firstChild.data = expandCaption;
 
} else {
 
for (i = 1; i < Rows.length; i++) {
 
Rows[i].style.display = Rows[0].style.display;
 
}
 
Button.firstChild.data = collapseCaption;
 
}
 
}
 
 
 
function createCollapseButtons() {
 
var tableIndex = 0;
 
var NavigationBoxes = {};
 
var Tables = document.getElementsByTagName('table');
 
var i;
 
 
 
for (i = 0; i < Tables.length; i++) {
 
if (hasClass(Tables[i], 'collapsible')) {
 
NavigationBoxes[tableIndex] = Tables[i];
 
Tables[i].setAttribute('id', 'collapsibleTable' + tableIndex);
 
 
 
var Button = document.createElement('span');
 
var ButtonLink = document.createElement('a');
 
var ButtonText = document.createTextNode(collapseCaption);
 
 
 
Button.style.styleFloat = 'right';
 
Button.style.cssFloat = 'right';
 
Button.style.fontWeight = 'normal';
 
Button.style.textAlign = 'right';
 
Button.style.width = "6em";
 
 
 
ButtonLink.setAttribute('id', 'collapseButton' + tableIndex);
 
$(ButtonLink).data('mwCollapsibleTableIndex', tableIndex).click(function (e) {
 
collapseTable($(this).data('mwCollapsibleTableIndex'));
 
e.preventDefault();
 
});
 
ButtonLink.appendChild(ButtonText);
 
 
 
Button.appendChild(document.createTextNode('['));
 
Button.appendChild(ButtonLink);
 
Button.appendChild(document.createTextNode(']'));
 
 
 
var Header = Tables[i].getElementsByTagName('tr')[0].getElementsByTagName('th')[0];
 
/* only add button and increment count if there is a header row to work with */
 
if (Header) {
 
Header.insertBefore(Button, Header.childNodes[0]);
 
tableIndex++;
 
}
 
}
 
}
 
 
 
for (i = 0;  i < tableIndex; i++) {
 
if (hasClass(NavigationBoxes[i], 'collapsed') || (tableIndex >= autoCollapse && hasClass(NavigationBoxes[i], 'autocollapse'))) {
 
collapseTable(i);
 
}
 
}
 
}
 
 
 
$(createCollapseButtons);
 
 
 
/**
 
* Overige
 
*
 
* pickUpText(aParentElement)
 
* similar to innerHTML, but only returns the text portions of the insides, excludes HTML
 
* Overblijfsel van de RealTitle functie
 
* Maintainers op enwiki: [[:en:User:Interiot|User:Interiot]], [[:en:User:Mets501|User:Mets501]]
 
*/
 
function pickUpText(aParentElement) {
 
var str = '';
 
function pickUpTextInternal(aElement) {
 
var child = aElement.firstChild;
 
while (child) {
 
// ELEMENT_NODE
 
if (child.nodeType === 1) {
 
pickUpTextInternal(child);
 
 
 
// TEXT_NODE
 
} else if (child.nodeType === 3) {
 
str += child.nodeValue;
 
}
 
 
 
child = child.nextSibling;
 
}
 
}
 
 
 
pickUpTextInternal(aParentElement);
 
 
 
return str;
 
}
 
 
 
/**
 
* SpecialSearchEnhanced
 
*
 
* Dit voegt twee externe zoekmachines toe aan Speciaal:Search
 
* Het is een bewerking van fr:MediaWiki:Monobook.js
 
* en en:MediaWiki:Common.js
 
* wat gemaakt is door fr:User:Dake en de auteurs van
 
* en:MediaWiki:Common.js onder de licentie GFDL
 
* Deze functie is aangepast aan MWSearch.
 
*/
 
function SpecialSearchEnhanced() {
 
var searchForm, searchBox;
 
if (document.forms.powersearch) {
 
searchForm = document.forms.powersearch;
 
}
 
if (document.forms.search) {
 
searchForm = document.forms.search;
 
}
 
if (searchForm.lsearchbox) {
 
searchBox = searchForm.lsearchbox;
 
} else {
 
searchBox = searchForm.search;
 
}
 
 
 
var searchValue = searchBox.value;
 
var safeSearchValue = mw.html.escape(searchValue);
 
 
 
var node = document.createElement('div');
 
 
 
var SearchEnhancedText = '<p/><br/>U kunt ook met onderstaande externe zoekmachines zoeken in Wikipedia. Deze kunnen resultaten opleveren die met de interne zoekmachine niet gevonden worden. Bij Google kunt u ook andere taalversies van Wikipedia selecteren.';
 
 
 
var googleSearch =  '<p/><table width=100%><tr valign=top><td align=left>';
 
googleSearch += '<form method=get action="http://www.google.nl/search">';
 
googleSearch += '<input type=text name=q value="' + safeSearchValue + '">';
 
googleSearch += '<input type=hidden name=hl value=nl>';
 
googleSearch += '&#32;<select name=sitesearch>';
 
googleSearch += '<option value="nl.wikipedia.org"> Nederlands </option>';
 
googleSearch += '<option value="en.wikipedia.org"> Engels </option>';
 
googleSearch += '<option value="de.wikipedia.org"> Duits </option>';
 
googleSearch += '<option value="fr.wikipedia.org"> Frans </option>';
 
googleSearch += '<option value="es.wikipedia.org"> Spaans </option>';
 
googleSearch += '<option value="pt.wikipedia.org"> Portugees </option>';
 
googleSearch += '<option value="it.wikipedia.org"> Italiaans </option>';
 
googleSearch += '<option value="sv.wikipedia.org"> Zweeds </option>';
 
googleSearch += '<option value="no.wikipedia.org"> Noors </option>';
 
googleSearch += '<option value="da.wikipedia.org"> Deens </option>';
 
googleSearch += '<option value="pl.wikipedia.org"> Pools </option>';
 
googleSearch += '<option value="fy.wikipedia.org"> Fries </option>';
 
googleSearch += '<option value="li.wikipedia.org"> Limburgs </option>';
 
googleSearch += '<option value="nds-nl.wikipedia.org"> Nedersaksisch </option>';
 
googleSearch += '<option value="vls.wikipedia.org"> West-Vlaams </option>';
 
googleSearch += '<option value="wikipedia.org"> Alle talen </option>';
 
googleSearch += '</select>&#32;<input type=submit value="Zoek met Google">';
 
googleSearch += '</form></td>';
 
 
 
var wikiwixSearch =  '<td>&nbsp;</td><td align=right>';
 
wikiwixSearch += '<form method=get action="http://nl.wikiwix.com/">';
 
wikiwixSearch += '<input type=text name=action value="' + safeSearchValue + '">';
 
wikiwixSearch += '&#32;<input type=submit value="Zoek met Wikiwix">';
 
wikiwixSearch += '</form></td>';
 
 
 
var yahooSearch =  '<td>&nbsp;</td><td align=right>';
 
yahooSearch += '<form method=get action="http://nl.search.yahoo.com/search">';
 
yahooSearch += '<input type=text name=p value="' + safeSearchValue + '">';
 
yahooSearch += '<input type=hidden name=vs value=nl.wikipedia.org>';
 
yahooSearch += '&#32;<input type=submit value="Zoek met Yahoo">';
 
yahooSearch += '</form></td></tr></table><br/>';
 
 
 
node.innerHTML = node.innerHTML + SearchEnhancedText + googleSearch + wikiwixSearch + yahooSearch;
 
 
 
var nonefound = document.getElementById('nonefound');
 
if (nonefound) {
 
nonefound.innerHTML = nonefound.innerHTML + '<div>' + node.innerHTML + '</div>';
 
 
 
} else {
 
searchForm.parentNode.insertBefore(node, searchForm.nextSibling);
 
}
 
}
 
 
 
if (mw.config.get('wgCanonicalSpecialPageName') === 'Search') {
 
$(SpecialSearchEnhanced);
 
}
 
 
 
 
 
// ============================================================
 
// BEGIN Dynamisch inklapbare div
 
 
 
// set up the words in your language
 
var UitklapDivHide = 'Inklappen';
 
var UitklapDivShow = 'Uitklappen';
 
 
 
// shows and hides content of Uitklap divs
 
// Parameters:
 
// indexUitklapDiv: the index of Uitklap div to be toggled
 
window.toggleUitklapDiv = function(indexUitklapDiv) {
 
var UitklapToggle = document.getElementById('UitklapToggle' + indexUitklapDiv);
 
var UitklapFrame = document.getElementById('UitklapFrame' + indexUitklapDiv);
 
var UitklapChild;
 
 
 
if (!UitklapFrame || !UitklapToggle) {
 
return false;
 
}
 
 
 
// if shown now
 
if (UitklapToggle.firstChild.data === UitklapDivHide) {
 
for (
 
UitklapChild = UitklapFrame.firstChild;
 
UitklapChild != null;
 
UitklapChild = UitklapChild.nextSibling
 
) {
 
if (UitklapChild.className === 'UitklapContent') {
 
UitklapChild.style.display = 'none';
 
}
 
if (UitklapChild.className === 'UitklapToggle') {
 
UitklapChild.firstChild.data = UitklapDivShow;
 
}
 
}
 
 
 
// if hidden now
 
} else if (UitklapToggle.firstChild.data === UitklapDivShow) {
 
for (
 
UitklapChild = UitklapFrame.firstChild;
 
UitklapChild != null;
 
UitklapChild = UitklapChild.nextSibling
 
) {
 
if (UitklapChild.className === 'UitklapContent') {
 
UitklapChild.style.display = 'block';
 
}
 
if (UitklapChild.className === 'UitklapToggle') {
 
UitklapChild.firstChild.data = UitklapDivHide;
 
}
 
}
 
}
 
}
 
 
 
// adds show/hide-button to navigation bars
 
function createUitklapDivToggleButton() {
 
var indexUitklapDiv = 0;
 
var i, u, UitklapFrame;
 
// iterate over all < div >-elements
 
for (i = 0; UitklapFrame = document.getElementsByTagName('div')[i]; i++) {
 
// if found a navigation bar
 
if (UitklapFrame.className === 'UitklapFrame' || UitklapFrame.className === 'UitklapFrameNoClear') {
 
 
 
indexUitklapDiv++;
 
var UitklapToggle = document.createElement('a');
 
UitklapToggle.className = 'UitklapToggle';
 
UitklapToggle.setAttribute('id', 'UitklapToggle' + indexUitklapDiv);
 
$(UitklapToggle).data('mwUitklapFrameIndex', indexUitklapDiv).click(function (e) {
 
toggleUitklapDiv($(this).data('mwUitklapFrameIndex'));
 
e.preventDefault();
 
});
 
 
 
var UitklapToggleText = document.createTextNode(UitklapDivHide);
 
UitklapToggle.appendChild(UitklapToggleText);
 
 
 
// add NavToggle-Button as first div-element
 
// in < div class="UitklapFrame" >
 
UitklapFrame.insertBefore(UitklapToggle, UitklapFrame.firstChild);
 
UitklapFrame.setAttribute('id', 'UitklapFrame' + indexUitklapDiv);
 
}
 
}
 
for (u = 1; u <= indexUitklapDiv; u++) {
 
toggleUitklapDiv(u);
 
}
 
}
 
 
 
$(createUitklapDivToggleButton);
 
 
 
// EIND Dynamisch inklapbare div
 
// ============================================================
 
 
 
 
 
/**
 
* Extraheer waarde uit de huidige of een gegeven adres
 
* @deprecated since MediaWiki 1.17: Gebruik mw.util.getParamValue
 
*/
 
function getParamValue(paramName, url) {
 
return mw.util.getParamValue(paramName, url);
 
}
 
 
 
/**
 
* Load withJS & withCSS
 
*
 
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
 
* @rev 3
 
*/
 
mw.loader.using( ['mediawiki.util', 'mediawiki.notify'], function () {
 
var extraJS = mw.util.getParamValue( 'withJS' );
 
if ( extraJS ) {
 
// Disallow some characters in file name
 
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
 
importScript( extraJS );
 
// Dont use alert but the jsMsg system. Run jsMsg only once the DOM is ready.
 
} else {
 
$(document).ready( function() {
 
mw.notify( 'Invalid javascript URL; only javascript pages from MediaWiki: space are allowed.', { title: 'Error' } );
 
} );
 
}
 
}
 
var extraCSS = mw.util.getParamValue( 'withCSS' );
 
if ( extraCSS ) {
 
// Disallow some characters in file name
 
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
 
importStylesheet( extraCSS );
 
// Dont use alert but the jsMsg system. Run jsMsg only once the DOM is ready.
 
} else {
 
$(document).ready( function() {
 
mw.notify( 'Invalid stylesheet URL; only stylesheet pages from MediaWiki: space are allowed.', { title: 'Error' } );
 
} );
 
}
 
}
 
} );
 
 
 
function loggedOutTalkPage() {
 
var loggedOut = mw.util.addPortletLink('p-personal', '#', 'Niet aangemeld', 'pt-userpage', null, null, '#pt-login');
 
loggedOut.innerHTML = '<span style="color: gray;">Niet aangemeld</span>';
 
 
 
mw.util.addPortletLink('p-personal', '//nl.wikipedia.org/wiki/Special:MyTalk', 'Overlegpagina IP-adres', 'pt-mytalk', 'Overlegpagina IP-adres', 'n', '#pt-login');
 
mw.util.addPortletLink('p-personal', '//nl.wikipedia.org/wiki/Special:MyContributions', 'Bijdragen IP-adres', 'pt-mycontris', 'Bijdragen IP-adres', 'y', '#pt-login');
 
}
 
 
 
mw.loader.using('mediawiki.user', function () {
 
if (mw.user.anonymous()) {
 
$(document).ready(loggedOutTalkPage);
 
}
 
});
 
 
 
// Bewerken en overleg bij een afbeelding op Commons linken naar Commons (kopie van de Duitse Wikipedia)
 
 
 
if (mw.config.get('wgNamespaceNumber') === 6) {
 
$(function () {
 
if (window.keepLocalFileTabs) {
 
return;
 
}
 
if (document.getElementById('ca-history')) {
 
// Lokale beschrijving aanwezig?
 
return;
 
}
 
if (!$('.sharedUploadNotice').length) {
 
// Alleen doen bij afbeeldingen op Commons
 
return;
 
}
 
 
 
var path = '//commons.wikimedia.org/wiki/';
 
var link, talk, edit;
 
 
 
// Andere link voor overlegpagina
 
// vector uses ca-image_talk
 
talk = document.getElementById('ca-talk') || document.getElementById('ca-image_talk');
 
if (talk && $(talk).hasClass('new')) {
 
link = talk.getElementsByTagName('a')[0];
 
link.href = path + 'File_talk:' + mw.util.wikiUrlencode(mw.config.get('wgTitle')) + '?uselang=' + mw.config.get('wgUserLanguage');
 
link.className  += ' commonstab';
 
}
 
 
 
// Bewerken link
 
edit = document.getElementById('ca-edit') || document.getElementById('ca-viewsource');
 
if (edit) {
 
link = edit.getElementsByTagName('a')[0];
 
link.href = path + 'File:' + mw.util.wikiUrlencode(mw.config.get('wgTitle')) + '?uselang=' + mw.config.get('wgUserLanguage') + '&action=edit';
 
link.className  += ' commonstab';
 
link.firstChild.nodeValue = 'Bewerken';
 
}
 
});
 
}
 
 
 
 
 
 
 
/**
 
* Icons on the top right of the article.
 
* See also CSS
 
*
 
* @source: www.mediawiki.org/wiki/Snippets/Top_icons
 
* @rev: 3
 
*/
 
$(document).ready(function () {
 
$('.Top_icon_raw')
 
.removeClass('Top_icon_raw')
 
.addClass('Top_icon_dynamic')
 
.prependTo('#firstHeading');
 
});
 
 
 
        /**
 
        * Gebruik 4 tildes zonder '--' voor ondertekening in de (oude) toolbar
 
        */
 
        $(document).ready(function () {
 
    $( '#mw-editbutton-signature' ).unbind('click');
 
    $( '#mw-editbutton-signature' ).click( function () { window.insertTags( '~~' + '~~' ); } );
 
        });
 
 
 
        /**
 
        * Gebruik 4 tildes zonder '--' voor ondertekening in de uitgebreide werkbalk
 
        */
 
        $(document).ready(function () {
 
    $( '#wpTextbox1' ).bind( 'wikiEditor-toolbar-buildSection-main', function( event, section ) {
 
  section.groups.insert.tools.signature.action.options.pre = '~~'+'~~';
 
    });
 
        });
 
 
 
        /**
 
        * Tijdelijke oplossing voor het probleem dat een paar items in het linkermenu niet in het Nederlands worden
 
        * weergegeven.
 
        * http://nl.wikipedia.org/w/index.php?title=Wikipedia:De_kroeg&oldid=37918851#Heuh.3F.21_Engelstalige_linkwoorden
 
        */
 
        $(document).ready(function () {
 
            if (mw.config.get( 'wgUserLanguage' ) === "nl" || mw.config.get( 'wgUserId' ) == null ) {
 
                $("#n-Etalage>a").html("Etalage");
 
                $("#n-Vind-een-artikel>a").html("Zoek een artikel");
 
                $("#n-Snelcursus>a").html("Snelcursus");
 
            }
 
        });
 
 
 
 
 
}(mediaWiki, jQuery));
 

Huidige versie van 6 aug 2013 om 11:03

/* JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers */