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 ) );