MediaWiki:Common.js: Difference between revisions

From Resistance in Belgium
No edit summary
Tag: Reverted
No edit summary
 
(33 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */


/* 2024-07-18 PVO Added 2 lines below as part of installation instructions new homepage */
/* 2024-07-18 PVO Added 2 lines below as part of installation instructions new homepage */
Line 90: Line 92:
     });
     });
});
});




Line 98: Line 98:
     // Définir les textes multilingues avec les liens appropriés
     // Définir les textes multilingues avec les liens appropriés
     var texts = {
     var texts = {
     'fr': 'Pour en savoir plus sur la consultation des archives papier, veuillez consulter la <a href="https://data.arch.be/wiki/FAQ/fr#Consultation_des_archives_papier" style="color: #158f68 !important; text-decoration: underline !important;">FAQ</a>.',
     'fr': ' 📂  Pour la consultation des archives papier, veuillez <a href="https://data.arch.be/wiki/FAQ/fr#Consultation_des_archives_papier" class="archive-link">consulter la FAQ</a>.',
     'en': 'For further information on accessing paper archives, please refer to the <a href="https://data.arch.be/wiki/Special:Mylanguage/FAQ#Access_to_paper_archives" style="color: #158f68 !important; text-decoration: underline !important;">FAQ</a>.',
     'en': ' 📂  For accessing paper archives, please <a href="https://data.arch.be/wiki/Special:Mylanguage/FAQ#Access_to_paper_archives" class="archive-link">refer to the FAQ</a>.',
     'nl': 'Voor meer informatie over het raadplegen van papieren archieven, raadpleeg de <a href="https://data.arch.be/wiki/FAQ/nl#Papieren_archieven_raadplegen" style="color: #158f68 !important; text-decoration: underline !important;">FAQ</a>.',
     'nl': ' 📂  Voor de raadpleging van papieren archieven, <a href="https://data.arch.be/wiki/FAQ/nl#Papieren_archieven_raadplegen" class="archive-link">zie de FAQ</a>.',
     'de': 'Weitere Informationen zur Einsichtnahme in Papierarchive finden Sie in der <a href="https://data.arch.be/wiki/FAQ/de#Einsichtnahme_in_Papierarchive" style="color: #158f68 !important; text-decoration: underline !important;">FAQ</a>.'
     'de': ' 📂  Für die Einsichtnahme in Papierarchive <a href="https://data.arch.be/wiki/FAQ/de#Einsichtnahme_in_Papierarchive" class="archive-link">finden Sie in der FAQ</a>.'
     };
     };


Line 115: Line 115:
     // Vérifier si l'élément cible existe
     // Vérifier si l'élément cible existe
     if ($target.length) {
     if ($target.length) {
        // Créer le nouvel élément avec le texte, le style, et le texte en italique
      // Créer le paragraphe avec la classe CSS pour le styliser
         var $newText = $('<p style="text-transform: none; color: #158f68; font-weight: normal; font-style: italic; font-family: Roboto, sans-serif; font-size:14px;">' + message + '</p>');
         var $newText = $('<p class="archive-paragraph">' + message + '</p>');


         // Insérer le texte sous l'élément span avec l'ID archives
         // Insérer le texte sous l'élément span avec l'ID archives
Line 123: Line 123:
         console.log('Élément cible avec ID #archives introuvable.');
         console.log('Élément cible avec ID #archives introuvable.');
     }
     }
});
// 16/09/24 Essayer d'implémenter une fonctionnalité de tri par défaut dans les tableaux affichés avec l'extension Linked-Wiki //
// 16/09/24 Essayer d'implémenter une fonctionnalité de tri par défaut dans les tableaux affichés avec l'extension Linked-Wiki //
<script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.21/css/jquery.dataTables.min.css">
    // Une fois le script chargé, initialiser DataTables
    $(document).ready(function() {
        $('table.my-table-class').DataTable({
            "paging": true,
            "ordering": true,  // Activation du tri
            "info": true,
            "scrollX": true    // Défilement horizontal activé
        });
    });
});
});

Latest revision as of 20:50, 8 October 2024

/* Any JavaScript here will be loaded for all users on every page load. */



/* 2024-07-18 PVO Added 2 lines below as part of installation instructions new homepage */
  document.querySelector( '.mw-logo' ).setAttribute( 'href', '/?lang=' + mw.config.get( 'wgUserLanguage' ) ); 

/* 2024-08-20 ACH modified the line below as part of installation instructions new homepage */ 
/* document.querySelector( '.mw-logo' ).setAttribute( 'href', 'https://data.arch.be/?lang=' + mw.config.get( 'wgUserLanguage' ) ); */


// Replace Wikidata IDs with their [label, description]
// From/depuis: https://lingualibre.fr/wiki/MediaWiki:Common.js
if ( $( '.wb-external-id' ).length > 0 ) {
	mw.loader.using( 'mediawiki.ForeignApi', function() {
		$( '.wb-external-id' ).each( function() {
			var href = $( this ).attr( 'href' );
			if ( href && href.lastIndexOf( 'https://www.wikidata.org', 0 ) === 0 ) {
				var wikidataApi = new mw.ForeignApi( 'https://www.wikidata.org/w/api.php', {
						anonymous: true,
						parameters: { 'origin': '*' },
						ajax: { timeout: 10000 }
					} ),
					lang = mw.config.get( 'wgUserLanguage' ),
					node = $( this );
				wikidataApi.get( {
					'action': 'wbgetentities',
					'format': 'json',
					'ids': node.text(),
					'props': 'labels|descriptions',
					'languages': lang + ( lang !== 'fr' ? '|fr' : ''),
					'languagefallback': 1,
					'origin': '*'
				} ).then( function( data ) {
                    
					var entity = data.entities[ node.text() ];
					lang = entity.labels[ lang ] === undefined && lang !== 'fr' ? 'fr' : lang;
					var label = ( entity.labels[ lang ] !== undefined ? entity.labels[ lang ].value + ' <i>(' + node.text() + ')</i>' : node.text() ),
					    description = ( entity.descriptions[ lang ] !== undefined ? '<small>' + entity.descriptions[ lang ].value + '</small>' : '' );
					
					node.html( label + '<br>' + description );
				} );
			}
		} );
	} );
}



// Script pour masquer tout le contenu après le formulaire WhatLinksHere
/* document.addEventListener("DOMContentLoaded", function () {
    // Sélectionner le formulaire par sa classe et action
    var formElement = document.querySelector('form[action="/wiki/Special:WhatLinksHere"]');

    if (formElement) {
        // Masquer tous les éléments qui suivent le formulaire
        let nextElement = formElement.nextElementSibling;
        while (nextElement) {
            nextElement.style.display = 'none';
            nextElement = nextElement.nextElementSibling;
        }
    }
}); */


$(document).ready(function() {
    // Sélectionner les éléments
    var $toggler = $('.wikibase-entitytermsview-entitytermsforlanguagelistview-toggler');
    var $container = $('.wikibase-entitytermsview-entitytermsforlanguagelistview');
    var $configureLink = $('.wikibase-entitytermsview-entitytermsforlanguagelistview-configure');

    // Replier le toggler et cacher le container par défaut
    if (!$toggler.hasClass('ui-toggler-toggle-collapsed')) {
        $toggler.addClass('ui-toggler-toggle-collapsed');
        $container.hide();
        $configureLink.hide(); // Masquer le lien "Configurer" si le toggler est replié
    }

    // Ajouter un écouteur d'événements pour le toggler
    $toggler.on('click', function() {
        // Basculer l'état du toggler
        $toggler.toggleClass('ui-toggler-toggle-collapsed');
        
        // Afficher ou cacher le container en fonction de l'état du toggler
        if ($toggler.hasClass('ui-toggler-toggle-collapsed')) {
            $container.slideUp();
            $configureLink.hide(); // Masquer le lien "Configurer" lorsque le toggler est replié
        } else {
            $container.slideDown();
            $configureLink.show(); // Afficher le lien "Configurer" lorsque le toggler est déplié
        }
    });
});



$(document).ready(function() {
    // Définir les textes multilingues avec les liens appropriés
    var texts = {
    'fr': ' 📂  Pour la consultation des archives papier, veuillez <a href="https://data.arch.be/wiki/FAQ/fr#Consultation_des_archives_papier" class="archive-link">consulter la FAQ</a>.',
    'en': ' 📂  For accessing paper archives, please <a href="https://data.arch.be/wiki/Special:Mylanguage/FAQ#Access_to_paper_archives" class="archive-link">refer to the FAQ</a>.',
    'nl': ' 📂  Voor de raadpleging van papieren archieven, <a href="https://data.arch.be/wiki/FAQ/nl#Papieren_archieven_raadplegen" class="archive-link">zie de FAQ</a>.',
    'de': ' 📂  Für die Einsichtnahme in Papierarchive <a href="https://data.arch.be/wiki/FAQ/de#Einsichtnahme_in_Papierarchive" class="archive-link">finden Sie in der FAQ</a>.'
    };

    // Déterminer la langue actuelle
    var userLang = mw.config.get('wgUserLanguage'); // Langue de l'utilisateur, ex: 'en', 'fr', 'de', 'nl'

    // Sélectionner le texte en fonction de la langue
    var message = texts[userLang] || texts['en']; // Texte par défaut en anglais

    // Sélecteur pour le bloc avec l'ID spécifique
    var $target = $('#archives'); // Cibler le span avec l'ID archives

    // Vérifier si l'élément cible existe
    if ($target.length) {
      // Créer le paragraphe avec la classe CSS pour le styliser
        var $newText = $('<p class="archive-paragraph">' + message + '</p>');

        // Insérer le texte sous l'élément span avec l'ID archives
        $target.after($newText);
    } else {
        console.log('Élément cible avec ID #archives introuvable.');
    }
});