MediaWiki:Common.js: Difference between revisions
From Future Of Mankind
No edit summary |
No edit summary |
||
| Line 43: | Line 43: | ||
console.log('btnHideGerman does not exist'); | console.log('btnHideGerman does not exist'); | ||
} | } | ||
( function ( mw, $ ) { | |||
'use strict'; | |||
/** | |||
* Decodes html-encoded string | |||
* | |||
* @param {string} input | |||
* @return {string} | |||
*/ | |||
function htmlDecode( input ) { | |||
var e = document.createElement( 'textarea' ); | |||
e.innerHTML = input; | |||
return e.childNodes.length === 0 ? '' : e.childNodes[ 0 ].nodeValue; | |||
} | |||
/** | |||
* @param {Object} $context | |||
* @param {boolean} $multiple | |||
*/ | |||
var toolTipTrigger = function ( $context, $multiple = false ) { | |||
if ( $multiple ) { | |||
$context = $context.find( '.regular-tooltips' ); | |||
} | |||
$context.each( function () { | |||
var text = $( this ).attr( 'data-regular-tooltips' ); | |||
text = htmlDecode( text ); | |||
var popup = new OO.ui.PopupButtonWidget( { | |||
icon: 'info', | |||
framed: false, | |||
popup: { | |||
padded: true, | |||
align: 'force-right', | |||
$content: $( '<p>' + text + '</p>' ) | |||
} | |||
} ); | |||
$( this ).append( popup.$element ); | |||
} ); | |||
}; | |||
$( function () { | |||
mw.hook( 'pf.addTemplateInstance' ).add( function ( $elements ) { | |||
toolTipTrigger( $elements, true ); | |||
} ); | |||
$( '.regular-tooltips' ).each( function () { | |||
if( $( this ).closest( '.multipleTemplateList' ).length === 0 ) { | |||
toolTipTrigger( $( this ), false ); | |||
} | |||
} ); | |||
} ); | |||
}( mediaWiki, jQuery ) ); | |||
Revision as of 08:04, 7 March 2023
/* Any JavaScript here will be loaded for all users on every page load. */
//collapsible table column test, based on: https://codepen.io/feger/pen/eDybC
$("#btnHideEnglish").click(function(){
console.log ('Hiding first column of table with an id of report');
$( "table#collapsible_report > tbody:last-child > tr > th:first-child" ).toggle();
$( "table#collapsible_report > tbody:last-child > tr > td:first-child" ).toggle();
if ($(this).text() == "Hide English"){
$(this).text("Show English");
} else {
$(this).text("Hide English");
}
});
$("#btnHideHigh-German").click(function(){
console.log ('Hiding second column of table with an id of report');
$( "table#collapsible_report > tbody:last-child > tr > th:last-child" ).toggle();
$( "table#collapsible_report > tbody:last-child > tr > td:last-child" ).toggle();
if ($(this).text() == "Hide High German"){
$(this).text("Show High German");
} else {
$(this).text("Hide High German");
}
});
$("#btnHideGerman").click(function(){
console.log ('Hiding second column of table with an id of report');
$( "table#collapsible_report > tbody:last-child > tr > th:last-child" ).toggle();
$( "table#collapsible_report > tbody:last-child > tr > td:last-child" ).toggle();
if ($(this).text() == "Hide German"){
$(this).text("Show German");
} else {
$(this).text("Hide German");
}
});
// hide the german by default, on page load, but only if the btnHideGerman element exists on the page
if (document.getElementById("btnHideGerman")) {
console.log('btnHideGerman exists');
//$("#btnHideGerman").click();
} else {
// do stuff
console.log('btnHideGerman does not exist');
}
( function ( mw, $ ) {
'use strict';
/**
* Decodes html-encoded string
*
* @param {string} input
* @return {string}
*/
function htmlDecode( input ) {
var e = document.createElement( 'textarea' );
e.innerHTML = input;
return e.childNodes.length === 0 ? '' : e.childNodes[ 0 ].nodeValue;
}
/**
* @param {Object} $context
* @param {boolean} $multiple
*/
var toolTipTrigger = function ( $context, $multiple = false ) {
if ( $multiple ) {
$context = $context.find( '.regular-tooltips' );
}
$context.each( function () {
var text = $( this ).attr( 'data-regular-tooltips' );
text = htmlDecode( text );
var popup = new OO.ui.PopupButtonWidget( {
icon: 'info',
framed: false,
popup: {
padded: true,
align: 'force-right',
$content: $( '<p>' + text + '</p>' )
}
} );
$( this ).append( popup.$element );
} );
};
$( function () {
mw.hook( 'pf.addTemplateInstance' ).add( function ( $elements ) {
toolTipTrigger( $elements, true );
} );
$( '.regular-tooltips' ).each( function () {
if( $( this ).closest( '.multipleTemplateList' ).length === 0 ) {
toolTipTrigger( $( this ), false );
}
} );
} );
}( mediaWiki, jQuery ) );