|
|
Line 61: |
Line 61: |
| });// end each() | | });// end each() |
| } // END if any autotable | | } // END if any autotable |
− | };
| |
− |
| |
− | /**
| |
− | * @description: Collapse the TOC using id="toc-autocollapse"
| |
− | * @returns {undefined}
| |
− | */
| |
− | window.initTOCautocollapse = function () {
| |
− | if ($('#toc-autocollapse').length) {
| |
− | $('#togglelink').click();
| |
− | }
| |
− | };// end initTOCautocollapse()
| |
− |
| |
− | /**
| |
− | * Add a placeholder message and checks on Special:Contact
| |
− | *
| |
− | * Due to e-mail configurations all non @mfn-berlin.de addresses fail to work
| |
− | * as from-address on Special:Contact. This functions adds a placeholder and checks the
| |
− | * user’s input
| |
− | * @requires extension:ContactPage
| |
− | * @requires mw.config
| |
− | * @requires jQuery
| |
− | */
| |
− | window.prepareSpecialContact4Info = function () {
| |
− | var placeholderMessage = '', warningMessageDoesNotWork = '';
| |
− | switch (mw.config.get( 'wgCanonicalSpecialPageName' )) {
| |
− | case 'Contact': // is a Special:Contact page regardless of language
| |
− | switch (mw.config.get('wgPageName')) {
| |
− | case 'Special:Contact':
| |
− | case 'Spécial:Contact':
| |
− | placeholderMessage = 'Leave it empty or add e-mail in message (mfn-berlin.de works only)';
| |
− | warningMessageDoesNotWork = 'Only mfn-berlin.de addresses do work. Leave it empty please and add your address in the message. Thank you.';
| |
− | break;
| |
− | case "Spezial:Kontakt":
| |
− | placeholderMessage = 'E-Mail in Nachricht dazu oder leer lassen (nur mfn-berlin.de geht)';
| |
− | warningMessageDoesNotWork = 'Nur mfn-berlin.de Adressen können verarbeitet werden. Bitte leer lassen oder E-Mail im Text angeben. Danke.';
| |
− | break;
| |
− | default:
| |
− | placeholderMessage = 'Leave it empty or add e-mail in message (mfn-berlin.de works only)';
| |
− | warningMessageDoesNotWork = 'Only mfn-berlin.de addresses do work. Leave it empty please and add your address in the message. Thank you.';
| |
− | break;
| |
− | }
| |
− | // check input
| |
− | if (!$('input[name="wpFromAddress"]').val() || $('input[name="wpFromAddress"]').val().match(/.*@mfn-berlin.de/)) {
| |
− | $('input[name="wpFromAddress"]')
| |
− | .css({'background-color': '', 'cursor': ''})
| |
− | .attr({'title': ''});
| |
− | } else {
| |
− | $('input[name="wpFromAddress"]')
| |
− | .css({'background-color': 'orange', 'cursor': 'help'})
| |
− | .attr({'title': warningMessageDoesNotWork});
| |
− | }
| |
− | $('input[name="wpFromAddress"]').on('focusout', function () {
| |
− | if (!$(this).val() || $(this).val().match(/.*@mfn-berlin.de/)) {
| |
− | $(this).css({'background-color': '', 'cursor': 'help'}).attr({'title': warningMessageDoesNotWork});
| |
− | } else {
| |
− | $(this).css({'background-color': 'orange', 'cursor': 'help'}).attr({'title': warningMessageDoesNotWork});
| |
− | }
| |
− | });
| |
− | $('input[name="wpFromAddress"]').attr({'placeholder': placeholderMessage});
| |
− |
| |
− | break;
| |
− | }// switch is a contact page
| |
− | };// end prepareSpecialContact4Info()
| |
− |
| |
− |
| |
− | ///////////////////////
| |
− | // specific to http://offene-naturfuehrer.de
| |
− | // Page-specific scripts:
| |
− | switch (mw.config.get( 'wgPageName' )) { // Minimize the pages on which the code will be loaded
| |
− | // vielleicht später auch woanders, d.h. als vorgewählte Suche auf Taxaseiten beispielsweise?
| |
− | case 'Datenquellen':
| |
− | case 'Hilfe:Datenquellen':
| |
− | case 'Online-Überprüfung_von_Bestimmungen':
| |
− | case 'Hilfe:Online-Überprüfung_von_Bestimmungen':
| |
− | case 'Tipps_zur_Bildersuche':
| |
− | case 'Hilfe:Tipps_zur_Bildersuche':
| |
− |
| |
− | case 'Spezial:Suche':
| |
− | mw.loader.load( '/w/index.php?title=MediaWiki:SearchTools.js&action=raw&ctype=text/javascript' );
| |
− | break;
| |
− | case 'Hilfe:Nummerierungen_im_jKey_abändern_(Lead_Nummern)':
| |
− | mw.loader.load( '/w/index.php?title=MediaWiki:JKeyRenumberingTool.js&action=raw&ctype=text/javascript' );
| |
− | break;
| |
− | case 'Hilfe:Konvertierung_geschachtelt-eingerückter_Schlüssel_in_das_ON-Format':
| |
− | case 'Testseite':
| |
− | mw.loader.load( '/w/index.php?title=MediaWiki:JKeyTextToLeadTemplateTool.js&action=raw&ctype=text/javascript' );;
| |
− | break;
| |
− | }
| |
− |
| |
− | // Page-specific scripts more flexible:
| |
− | if (mw.config.get('wgPageName').match(/^Basismerkmale_für/i)
| |
− | || mw.config.get('wgPageName').match(/^Vorlage:Character_State/i)
| |
− | || mw.config.get('wgPageName').match(/^Vorlage:Character_Definition/i)
| |
− | ) {
| |
− | mw.loader.load( '/w/index.php?title=MediaWiki:ToolGetRandomId.js&action=raw&ctype=text/javascript' );;
| |
− | }
| |
− |
| |
− | /*
| |
− | See also https://www.mediawiki.org/w/index.php?title=ResourceLoader/Legacy_JavaScript&oldid=2090764
| |
− | When document is completely loaded
| |
− | */
| |
− | jQuery(document).ready(function($) {
| |
− | reference_footnote_tooltips();
| |
− | initImageZooming();
| |
− | initTargetHighlighting(); // page-internal jumps
| |
− | initmoveTOC(); // TOC CSS position fixed or static
| |
− | initTOCautocollapse(); // auto collapse on #toc-autocollapse e.g. Template:Artinformation BiolFlor
| |
− | prepareSpecialContact4Info(); // check from-Email at Special:Contact
| |
− | // specific to http://offene-naturfuehrer.de
| |
− | initTableFilterSort(); // tests internally whether table with corresponding classes exist
| |
− | mw.loader.load( mw.config.get('wgScript') + '?title=MediaWiki:AddNewOpenMediaFileVersion.js&action=raw&ctype=text/javascript' );;// namespace specific button on top to upload file at OpenMedia
| |
− | if(mw.config.get( 'wgAction' )==='view') {
| |
− | if($('.decisiontree').length !== 0) {
| |
− | mw.loader.load( mw.config.get('wgScript') + '?title=MediaWiki:JKeyRenderLanguageTaggedText2wgUserLanguage.js&action=raw&ctype=text/javascript' );;
| |
− | }
| |
− | }
| |
− | switch(mw.config.get( 'wgAction' )) {
| |
− | case 'edit':
| |
− | case 'view':
| |
− | /* case 'submit': does not work somehow in MW. 1.20.7 */
| |
− | init_character_ui_tabs();
| |
− | }
| |
− | // page specific
| |
− | if(mw.config.get( 'wgAction' )==='formedit'
| |
− | || mw.config.get( 'wgCanonicalSpecialPageName' )==='FormEdit'){
| |
− | // initConfirmDeleteSubform();
| |
− | markHiddenFormFields();
| |
− | initUiTabsInForms();
| |
− | }
| |
− | initCluetips();
| |
− | // specific to http://offene-naturfuehrer.de
| |
− | initCollapseBox(); //collapsible parts
| |
− | }); // end $(document).ready()
| |
− | // </syntaxhighlight>
| |
− | /**
| |
− | * Footenote tooltips from <references>
| |
− | * @description Footnotes as unformatted tooltip - from it.wikipedia.org under same license
| |
− | * Note (2015-12-21 14:19:20): Use of 'addOnloadHook' is deprecated. Use jQuery instead.
| |
− | * @returns {undefined}
| |
− | */
| |
− | window.reference_footnote_tooltips = function () {
| |
− | var sups = document.getElementsByTagName('sup');
| |
− | for (var i=0; i < sups.length; i++) {
| |
− | var note_id = sups[i].childNodes[0].href;
| |
− | if (note_id && (note_id.indexOf('#') !== -1)) {
| |
− | note_id = document.getElementById(note_id.substr(note_id.indexOf('#')+1));
| |
− | if (note_id) {
| |
− | if (document.all) {
| |
− | sups[i].title = note_id.innerText;
| |
− | sups[i].childNodes[0].title = note_id.innerText;
| |
− | } else {
| |
− | sups[i].title = note_id.textContent;
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | };
| |
− | /**
| |
− | * @namespace resource string dictionary
| |
− | *
| |
− | * Note: Commons uses collapse/expand ▲/▼, but this looks better in strict box
| |
− | * layouts that in the free-wrapping key statements
| |
− | *
| |
− | * Nomenclature proposal: if an extra plugin is used, strings can be designated as
| |
− | * “plugin_toolTipSomthing” otherwise just “toolTipSomthing” (global string). So it’s more clear if
| |
− | * somebody wants to deactivate a plugin and remove strings from the resource dictionary.
| |
− | * @augments $
| |
− | * @type object
| |
− | */
| |
− | $.jI18n = {
| |
− | en: {
| |
− | ClueTip_newWindow : '(New Window …)',
| |
− | ClueTip_toolTipClose : 'Click to close',
| |
− | ClueTip_toolTipNewWindow : '(click to open content in a new window or tab)',
| |
− | ClueTip_toolTipNoContentLoadable:'<i>No content could be loaded</i>',
| |
− | CollapseBox_captionCollapse : ' (show less) ',
| |
− | CollapseBox_captionExpand : ' (more...) ',
| |
− | CollapseBox_toolTipCollapse : '(click to hide information below)',
| |
− | CollapseBox_toolTipExpand : '(click to show more information below)',
| |
− | HeadingLink_toolTipHeadingLink: 'Click to show (permanent) link to this headline', // MediaWiki:Gadget-HeadingLink
| |
− | HeadingLink_toolTipHeadingLinkHelp: '(1) Normal link to this head line or (2) the permanent link with version number:',// MediaWiki:Gadget-HeadingLink
| |
− | ImageZoom1st_iconCloseWindow : 'https://upload.wikimedia.org/wikipedia/commons/8/87/Close_icon_default.jpg',
| |
− | ImageZoom1st_iconCloseWindowHover : 'https://upload.wikimedia.org/wikipedia/commons/d/d0/Close_icon_hover.jpg',
| |
− | ImageZoom1st_imageMetadataLink : '(Information about Creator, License and Copyright)',
| |
− | ImageZoom1st_toolTipImageZooming : 'Images can be enlarged by clicking on it',
| |
− | ImageZoom1st_zoomNotPossible : '(This image can not be further enlarged)',
| |
− | // see MediaWiki:Jquery.zoomImage.js
| |
− | ImageZoom2nd_iconMagnifier: 'https://species-id.net/o/media/f/f7/Iviewer.zoom_in.gif',
| |
− | ImageZoom2nd_iconMagnifierHover: 'https://species-id.net/o/media/5/5c/Iviewer.zoom_out.gif',
| |
− | ImageZoom2nd_iconLoader: 'https://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif',
| |
− | ImageZoom2nd_toolTipLoad : '(click to load largest available image; this may take considerable time to load)',
| |
− | ImageZoom2nd_textZoomOrig: 'Zooming facility',
| |
− | MoveTOC_toolTipFloatleft : 'floating on the left side',
| |
− | MoveTOC_toolTipFloatright: 'floating on the right side',
| |
− | MoveTOC_toolTipNavigatePagetop : 'Top of page',
| |
− | MoveTOC_toolTipUnfloat: 'back to default position',
| |
− | // see MediaWiki:jKey.js
| |
− | jKey_expandAll : 'Show all extras',
| |
− | jKey_iconOverview : 'https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/View-pause_Gion_simple.svg/20px-View-pause_Gion_simple.svg.png',
| |
− | jKey_iconResume : 'https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/View-playback_Gion_simple.svg/20px-View-playback_Gion_simple.svg.png',
| |
− | jKey_iconStart1st : 'https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/View-playback_Gion_simple.svg/20px-View-playback_Gion_simple.svg.png',
| |
− | jKey_iconStartNew : 'https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/View-refresh_Gion_simple.svg/20px-View-refresh_Gion_simple.svg.png'
| |
− | },
| |
− | de: {
| |
− | ClueTip_newWindow : '(Neues Fenster …)',
| |
− | ClueTip_toolTipClose : 'Zum Schließen klicken',
| |
− | ClueTip_toolTipNewWindow : '(klicken um Inhalt in neuem Fenster oder Reiter zu öffnen)',
| |
− | ClueTip_toolTipNoContentLoadable:'<i>Leider konnte der Inhalt nicht geladen werden.</i>',
| |
− | CollapseBox_captionCollapse : ' (weniger anzeigen) ',
| |
− | CollapseBox_captionExpand : ' (mehr...) ',
| |
− | CollapseBox_toolTipCollapse : '(klicken um Zusatzinformationen zu verbergen)',
| |
− | CollapseBox_toolTipExpand : '(klicken um Zusatzinformationen anzuzeigen)',
| |
− | HeadingLink_toolTipHeadingLink: 'Klicken um (permanenten) Link dieser Überschrift anzuzeigen',// MediaWiki:Gadget-HeadingLink
| |
− | HeadingLink_toolTipHeadingLinkHelp: '(1) Link zu dieser Überschrift oder (2) Link mit Versionsnummer:',// MediaWiki:Gadget-HeadingLink
| |
− | ImageZoom1st_imageMetadataLink : '(Informationen zu Autor, Lizenz und Copyright)',
| |
− | ImageZoom1st_toolTipImageZooming : 'Bilder können durch Anklicken vergrößert betrachtet werden',
| |
− | ImageZoom1st_zoomNotPossible : '(Dieses Bild kann nicht weiter vergrößert werden)',
| |
− | // see MediaWiki:zoomImage.js
| |
− | ImageZoom2nd_toolTipLoad : '(klicken um Originalbild nachzuladen; bei großen Bildern kann dies u. U. langsam sein)',
| |
− | ImageZoom2nd_textZoomOrig: 'Vergrößerungsfunktion',
| |
− | MoveTOC_toolTipFloatleft : 'Links schwebend',
| |
− | MoveTOC_toolTipFloatright: 'Rechts schwebend',
| |
− | MoveTOC_toolTipNavigatePagetop : 'Zum Seitenanfang',
| |
− | MoveTOC_toolTipUnfloat: 'Zurück zur Normalposition',
| |
− | jKey_expandAll : 'Alle Zusatzinformationen zeigen'
| |
− | },
| |
− | it: {
| |
− | ClueTip_toolTipClose : 'Clicca per chiudere',
| |
− | CollapseBox_captionCollapse : ' (mostra di meno) ',
| |
− | CollapseBox_captionExpand : ' (più...) ',
| |
− | ImageZoom1st_imageMetadataLink : '(Informazione sull’Autore, Licenza e Copyright)',
| |
− | ImageZoom1st_toolTipImageZooming : 'Le immagini possono essere ingrandite cliccandoci sopra',
| |
− | ImageZoom1st_zoomNotPossible : '(Al momento non è possibilie ingrandire questa immagine)', // TODO translation see en version
| |
− | jKey_expandAll : 'Mostra tutti informazione' //REVISE
| |
− | }
| |
− | };
| |
− |
| |
− |
| |
− | /**
| |
− | * @description Get resource string (text, image URLs) for a given language, based on a string-key
| |
− | * If no resource is defined in a given language for a resource key, the resource for 'en' will be returned,
| |
− | * if this is missing as well an error message.
| |
− | * @augments $
| |
− | * @requires mw.config for getting global variables
| |
− | * @param {string} resourceKey key for the resource
| |
− | * @returns {String}
| |
− | */
| |
− | $.resource = function (resourceKey) {
| |
− | var lang = mw.config.get('wgUserLanguage').split('-')[0]; // language: 'pt-BR', 'de-formal', etc.
| |
− | return ($.jI18n[lang] && $.jI18n[lang][resourceKey] ?
| |
− | $.jI18n[lang][resourceKey] :
| |
− | ($.jI18n.en[resourceKey]) ? $.jI18n.en[resourceKey] : 'MISSING RESOURCE: no $.jI18n.en.' + resourceKey + ' defined.');
| |
− | };
| |
− |
| |
− | /**
| |
− | * @description Create html string for link with image and/or text content
| |
− | * @requires $.resource()
| |
− | * @param {string} txtResourceKey resource keys (multilingual {@link $.resource()}
| |
− | * @param {html} txtContent displayed content of a link
| |
− | * @param {url} href
| |
− | * @param {string} attributes string of combined other attributes of link element; must use ' as inner quotes, and \" inside event functions
| |
− | * @returns {@exp;txtResourceKey@pro;length|String|@exp;txtContent@pro;length@exp;txtResourceKey@pro;length}
| |
− | */
| |
− | $.linkBuilder = function (txtResourceKey, txtContent, href, attributes) {
| |
− | return (txtResourceKey.length ? '<a '
| |
− | + ' href="' + href + '"'
| |
− | + ' ' + (attributes.length ? attributes : '') + '>'
| |
− | + $.resource(txtResourceKey)
| |
− | + '</a>' : (txtContent.length ? '<a '
| |
− | + ' href="' + href + '" '
| |
− | + ' ' + (attributes.length ? attributes : '') + '>'
| |
− | + txtContent +
| |
− | '</a>' : '')
| |
− | );
| |
− | };
| |
− | /**
| |
− | *
| |
− | * @param {string} imgResourceKey resource key {@link $.resource()}
| |
− | * @param {string} txtResourceKey resource key {@link $.resource()}
| |
− | * @param {string} attributes HTML
| |
− | * @requiers: $.linkBuilder
| |
− | * @returns {String}
| |
− | */
| |
− | $.imglinkBuilder = function (imgResourceKey, txtResourceKey, attributes) {
| |
− | return (imgResourceKey.length ? '<a '
| |
− | + ' href="#"' + (attributes.length ? ' ' + attributes : '') + '><img src="' + $.resource(imgResourceKey) + '" /></a> ' : '')
| |
− | + $.linkBuilder(txtResourceKey, '', '#', attributes);
| |
− | };
| |
− |
| |
− | /**
| |
− | * @description return a random integer
| |
− | * @param {integer} min
| |
− | * @param {integer} max
| |
− | * @returns {@exp;@call;parseInt}
| |
− | */
| |
− | $.random = function (min, max) { // NO CHECKS: if(min>max) {return -1;} if(min==max) {return min;}
| |
− | return (min + parseInt(Math.random() * (max - min + 1), 10));
| |
| }; | | }; |