MediaWiki:Common.js

From Chew Inclusive Terminology Glossary
Revision as of 08:51, 6 December 2023 by MikeSaunders (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
//datatables
//styles
$('head').append( $('<link rel="stylesheet" type="text/css" />').attr('href', 'https://cdn.datatables.net/1.13.7/css/jquery.dataTables.css') );
$('head').append( $('<link rel="stylesheet" type="text/css" />').attr('href', 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/themes/base/jquery-ui.min.css') );
$('head').append( $('<link rel="stylesheet" type="text/css" />').attr('href', 'https://cdn.datatables.net/v/ju/jszip-3.10.1/dt-1.13.7/b-2.4.2/b-html5-2.4.2/fh-3.4.0/kt-2.11.0/sp-2.2.0/sl-1.7.0/datatables.min.css') );

//scripts
$.when(
    mw.loader.getScript( 'https://cdn.datatables.net/1.13.7/js/jquery.dataTables.js' ),
    mw.loader.getScript( 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js' ),
    mw.loader.getScript( 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js' ),
    mw.loader.getScript( 'https://cdn.datatables.net/v/ju/jszip-3.10.1/dt-1.13.7/b-2.4.2/b-html5-2.4.2/fh-3.4.0/kt-2.11.0/sp-2.2.0/sl-1.7.0/datatables.min.js' ),
    mw.loader.getScript( 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js' )
)
.then(
    function () {
// implement datatable
$(document).ready(function(){
$('#table').DataTable( {
  paging: false,
  ordering: false,
  fixedHeader: true,
  keys: true,
  dom: 'fPBrtip',
  "language": {
    "search": "Search this table: _INPUT_"
  },
  buttons: [
      'excelHtml5',
      'csvHtml5',
      'pdfHtml5'
  ],
        columnDefs: [
            {
                searchPanes: {
                    initCollapsed: true,
                    show: true
                },
                targets: [2]
            },
            {
                searchPanes: {
                    show: false
                },
                targets: [0,1,3]
            }
        ]
  } );
$("div#table_filter").after( $("<div id='search_explain'>You can use terms from multiple columns in the same search, eg: 'African 1800'</div>") );  
} );
    },
    function ( e ) {
        // A script failed, and is not available
        mw.log.error( e.message ); // => "Failed to load script"
    }
);

// add a search box (commendted out after datatable search)
//$(document).ready(function(){
//  $("#bodySearchInputsearchInput").on("keyup", function() {
//    var value = $(this).val().toLowerCase();
//    $("#table tr").filter(function() {
//      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
//    });
//  });
//});

$(document).ready(function(){
   // Remove the action from the Inputbox search form
   $("#bodySearchsearchInput").attr('action', 'javascript:void(0);');
});

// content warning message
$(function() {
  if (localStorage.getItem("firstTime") == null) {
    document.getElementById("siteNotice").style.display = "block";
    localStorage.setItem("firstTime", "done");
  }
});

/////////////////////////////////////////////////////////
// Code snippet to make your sidebar items expandable. 
// Use this code ONLY for the Monobook skin. 
/////////////////////////////////////////////////////////

$( document ).ready( function() {
	// Set the default expanded items by their headline
	var defaultExpandItems = ['Navigation', 'Orga'];
	// Set the basic-name for the cookies, which save the current state of expanding
	var expandCookieName = 'disdance_project_wiki_nav_expanded_';

var maxHeights = [];
	var expandeds = [];
	var labels = [];
	initNav();
});

function initNav() {
	$( '#p-logo' ).css({'position': 'relative', 'display': 'block'});
	$( '.generated-sidebar h5,#p-tb h5 ').each( function( i ) {
		var id = $( this ).parent().attr( 'id' );
		maxHeights[id] = $( this ).next( 'div' ).height();
		var str = $( this ).html();
		labels[id] = str;

if ( $.cookie( expandCookieName + id ) == 'false' ) {
			expandeds[id] = false;
			minimize( $( this ) );
		} else if ( $.cookie( expandCookieName + id ) == 'true' ) {
			expandeds[id] = true;
			maximize( $( this ) );
		} else if ( defaultExpandItems.indexOf( str ) == -1 ) {
			expandeds[id] = false;
			minimize( $( this ) );
		} else {
			expandeds[id] = true;
			maximize( $( this ) );
		}
		$( this ).css({'cursor': 'pointer'});
		$( this ).click( toggleNav );
	} );
}

function minimize( target ) {
	var id = $( target ).parent().attr( 'id' );
	// You can change the expires parameter to save the cookie longer/shorter than 7 days like in this code
	$.cookie( expandCookieName + id, 'false', { expires: 7} );
	var str = labels[id] + '  ►';
	$( target ).next( 'div' ).animate({'height': '0px'});
	$( target ).html( str );
}

function maximize( target ) {
	var id = $( target ).parent().attr( 'id' );
	// You can change the expires parameter to save the cookie longer/shorter than 7 days like in this code
	$.cookie( expandCookieName + id, 'true', { expires: 7} );
	var str = labels[id] + '  ▼';
	var newHeight = maxHeights[id];
	$( target ).next( 'div' ).animate({'height': newHeight + 'px'});
	$( target ).html( str );
}

function toggleNav( e ) {
	var id = $(e.target ).parent().attr( 'id' );
	expandeds[id] = !expandeds[id];
	if( expandeds[id] == true ) {
		maximize( e.target );
	} else {
		minimize( e.target );
	}
}

///////////////////////////////////////////////////////
///////////////////////////////////////////////////////