|
|
(133 intermediate revisions by 7 users not shown) |
Line 1: |
Line 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */ | | /* Add Adobe Analytics Tracking Details 2022-11-17 */ |
| | // First listen to an event that is fired when the FS object is available |
| | window.addEventListener('ExReady', function(){ |
| | |
| | // Call setTimeout to avoid a flaw in FS that triggers infinite recursion |
| | setTimeout(function(){ |
|
| |
|
| | // Now configure the page data and manually trigger the page view |
| | FS.Analytics.updatePageViewData({ |
| | page_channel: 'Wiki', |
| | page_detail: 'Wiki Test' |
| | }); |
| | FS.Analytics.trackPageView(); |
| | }); |
| | }); |
| | /* End Adobe Analytics Tracking Details */ |
|
| |
|
| /* --- WalkMe Snippet NEW 11/16/2017---*/ | | /* Fix for <imagemap>s to prevent them from resizing */ |
| | $( document ).ready(function() { |
| | $('[usemap]').each(function() { |
| | $(this).css('min-width', parseInt($(this).attr('width'))); |
| | }); |
| | }); |
|
| |
|
| (function() {var walkme = document.createElement('script'); walkme.type = 'text/javascript'; walkme.async = true; walkme.src = 'https://cdn.walkme.com/users/70d691a8f9e74afca1b8d8b935598004/walkme_70d691a8f9e74afca1b8d8b935598004_https.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(walkme, s); window._walkmeConfig = {smartLoad:true}; })();
| | /* Add obvious background color to Beta */ |
| | | if (document.location.origin.indexOf("beta") > -1) { |
| /* --- WalkMe Snippet ---*/ | | document.getElementById("mw-head").style.backgroundColor = "#ffb3b3"; |
| | |
| (function() { | |
| var css = document.createElement('link');
| |
| css.rel = 'stylesheet';
| |
| css.href = window.location.protocol + '//' + window.location.host + '/hf/hf.css';
| |
| var head = document.querySelector('head');
| |
| head.insertBefore(css, head.childNodes[0]);
| |
| var body = document.querySelector('body');
| |
| body.insertBefore(document.createElement('header'), body.childNodes[0]);
| |
| body.appendChild(document.createElement('footer'));
| |
| })();
| |
| | |
| (function() {
| |
| var meta = document.createElement('meta');
| |
| meta.name = 'hf_base_url';
| |
| meta.content = window.location.protocol + '//' + window.location.host;
| |
| var head = document.querySelector('head');
| |
| head.insertBefore(meta, head.childNodes[0]);
| |
| })();
| |
| | |
| (function() {
| |
| var fs = document.createElement('script');
| |
| fs.type = 'text/javascript';
| |
| fs.async = true;
| |
| var base_url = window.location.protocol + '//' + window.location.host;
| |
| fs.src = window.location.protocol + '//' + window.location.host + '/hf/hf.js' + (base_url === "" ? "" : "?base_url=" + base_url);
| |
| var s = document.getElementsByTagName('script')[0];
| |
| s.parentNode.insertBefore(fs, s);
| |
| })();
| |
| function getCookie(name) {
| |
| var re = new RegExp(name + "=([^;]+)");
| |
| var value = re.exec(document.cookie);
| |
| return (value !== null) ? unescape(value[1]) : null;
| |
| }
| |
| setTimeout(function() {
| |
| var templeCookie = getCookie('fs-highconf') || getCookie('fs-templeinfo');
| |
| if (templeCookie && templeCookie.indexOf('true') > -1) {
| |
| var body = document.querySelector('body');
| |
| body.classList.add('templeMember');
| |
| }
| |
| }, 2000);
| |
| /* Fix for double title */
| |
| (function(){
| |
| var mainTitle = document.querySelector('#firstHeading'); | |
| var secondTitle = document.querySelector('#mw-content-text > h1');
| |
| if(mainTitle && secondTitle){
| |
| mainTitle.hidden = true;
| |
| }
| |
| })();
| |
| /**
| |
| * Test if an element has a certain class
| |
| * @deprecated: Use $(element).hasClass() instead.
| |
| */
| |
| mw.log.deprecate( window, 'hasClass', function ( element, className ) {
| |
| return $( element ).hasClass( className );
| |
| }, 'Use jQuery.hasClass() instead' );
| |
| | |
| /**
| |
| * Collapsible tables
| |
| *
| |
| * Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]].
| |
| *
| |
| * @version 2.0.3 (2014-03-14)
| |
| * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
| |
| * @author [[User:R. Koot]]
| |
| * @author [[User:Krinkle]]
| |
| * @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
| |
| * is supported in MediaWiki core.
| |
| */
| |
| | |
| var autoCollapse = 2;
| |
| var collapseCaption = 'hide';
| |
| var expandCaption = 'show';
| |
| var tableIndex = 0;
| |
| | |
| function collapseTable( tableIndex ) {
| |
| var Button = document.getElementById( 'collapseButton' + tableIndex );
| |
| var Table = document.getElementById( 'collapsibleTable' + tableIndex );
| |
| | |
| if ( !Table || !Button ) {
| |
| return false;
| |
| }
| |
| | |
| var Rows = Table.rows;
| |
| var i;
| |
| | |
| if ( Button.firstChild.data === collapseCaption ) {
| |
| for ( i = 1; i < Rows.length; i++ ) {
| |
| Rows[i].style.display = 'none';
| |
| }
| |
| Button.firstChild.data = expandCaption;
| |
| } else {
| |
| for ( i = 1; i < Rows.length; i++ ) {
| |
| Rows[i].style.display = Rows[0].style.display;
| |
| }
| |
| Button.firstChild.data = collapseCaption;
| |
| }
| |
| }
| |
| | |
| function createClickHandler( tableIndex ) {
| |
| return function ( e ) {
| |
| e.preventDefault();
| |
| collapseTable( tableIndex );
| |
| };
| |
| }
| |
| | |
| function createCollapseButtons( $content ) {
| |
| var NavigationBoxes = {};
| |
| var $Tables = $content.find( 'table' );
| |
| var i;
| |
| | |
| $Tables.each( function( i, table ) {
| |
| if ( $(table).hasClass( 'collapsible' ) ) {
| |
| | |
| /* only add button and increment count if there is a header row to work with */
| |
| var HeaderRow = table.getElementsByTagName( 'tr' )[0];
| |
| if ( !HeaderRow ) {
| |
| return;
| |
| }
| |
| var Header = table.getElementsByTagName( 'th' )[0];
| |
| if ( !Header ) {
| |
| return;
| |
| }
| |
| | |
| NavigationBoxes[ tableIndex ] = table;
| |
| table.setAttribute( 'id', 'collapsibleTable' + tableIndex );
| |
| | |
| var Button = document.createElement( 'span' );
| |
| var ButtonLink = document.createElement( 'a' );
| |
| var ButtonText = document.createTextNode( collapseCaption );
| |
| // Styles are declared in [[MediaWiki:Common.css]]
| |
| Button.className = 'collapseButton';
| |
| | |
| ButtonLink.style.color = Header.style.color;
| |
| ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
| |
| ButtonLink.setAttribute( 'href', '#' );
| |
| $( ButtonLink ).on( 'click', createClickHandler( tableIndex ) );
| |
| ButtonLink.appendChild( ButtonText );
| |
| | |
| Button.appendChild( document.createTextNode( '[' ) );
| |
| Button.appendChild( ButtonLink );
| |
| Button.appendChild( document.createTextNode( ']' ) );
| |
| | |
| Header.insertBefore( Button, Header.firstChild );
| |
| tableIndex++;
| |
| }
| |
| } );
| |
| | |
| for ( i = 0; i < tableIndex; i++ ) {
| |
| if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) ||
| |
| ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) )
| |
| ) {
| |
| collapseTable( i );
| |
| }
| |
| else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
| |
| var element = NavigationBoxes[i];
| |
| while ((element = element.parentNode)) {
| |
| if ( $( element ).hasClass( 'outercollapse' ) ) {
| |
| collapseTable ( i );
| |
| break;
| |
| }
| |
| }
| |
| }
| |
| }
| |
| }
| |
| | |
| mw.hook( 'wikipage.content' ).add( createCollapseButtons );
| |
| | |
| /**
| |
| * Dynamic Navigation Bars (experimental)
| |
| *
| |
| * Description: See [[Wikipedia:NavFrame]].
| |
| * Maintainers: UNMAINTAINED
| |
| */
| |
| | |
| /* set up the words in your language */
| |
| var NavigationBarHide = '[' + collapseCaption + ']';
| |
| var NavigationBarShow = '[' + expandCaption + ']';
| |
| var indexNavigationBar = 0;
| |
| | |
| /**
| |
| * Shows and hides content and picture (if available) of navigation bars
| |
| * Parameters:
| |
| * indexNavigationBar: the index of navigation bar to be toggled
| |
| **/
| |
| window.toggleNavigationBar = function ( indexNavigationBar, event ) {
| |
| var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
| |
| var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
| |
| var NavChild;
| |
| | |
| if ( !NavFrame || !NavToggle ) {
| |
| return false;
| |
| }
| |
| | |
| /* if shown now */
| |
| if ( NavToggle.firstChild.data === NavigationBarHide ) {
| |
| for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
| |
| if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
| |
| NavChild.style.display = 'none';
| |
| }
| |
| }
| |
| NavToggle.firstChild.data = NavigationBarShow;
| |
| | |
| /* if hidden now */
| |
| } else if ( NavToggle.firstChild.data === NavigationBarShow ) {
| |
| for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
| |
| if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
| |
| NavChild.style.display = 'block';
| |
| }
| |
| }
| |
| NavToggle.firstChild.data = NavigationBarHide;
| |
| }
| |
| | |
| event.preventDefault();
| |
| };
| |
| | |
| /* adds show/hide-button to navigation bars */
| |
| function createNavigationBarToggleButton( $content ) {
| |
| var NavChild;
| |
| /* iterate over all < div >-elements */
| |
| var $divs = $content.find( 'div' );
| |
| $divs.each( function ( i, NavFrame ) {
| |
| /* if found a navigation bar */
| |
| if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {
| |
| | |
| indexNavigationBar++;
| |
| var NavToggle = document.createElement( 'a' );
| |
| NavToggle.className = 'NavToggle';
| |
| NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
| |
| NavToggle.setAttribute( 'href', '#' );
| |
| $( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );
| |
| | |
| var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );
| |
| /**
| |
| * Check if any children are already hidden. This loop is here for backwards compatibility:
| |
| * the old way of making NavFrames start out collapsed was to manually add style="display:none"
| |
| * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make
| |
| * the content visible without JavaScript support), the new recommended way is to add the class
| |
| * "collapsed" to the NavFrame itself, just like with collapsible tables.
| |
| */
| |
| for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) {
| |
| if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
| |
| if ( NavChild.style.display === 'none' ) {
| |
| isCollapsed = true;
| |
| }
| |
| }
| |
| }
| |
| if ( isCollapsed ) {
| |
| for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
| |
| if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
| |
| NavChild.style.display = 'none';
| |
| }
| |
| }
| |
| }
| |
| var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : NavigationBarHide );
| |
| NavToggle.appendChild( NavToggleText );
| |
| | |
| /* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */
| |
| for( var j = 0; j < NavFrame.childNodes.length; j++ ) {
| |
| if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
| |
| NavToggle.style.color = NavFrame.childNodes[j].style.color;
| |
| NavFrame.childNodes[j].appendChild( NavToggle );
| |
| }
| |
| }
| |
| NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
| |
| }
| |
| } );
| |
| }
| |
| | |
| mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
| |
| | |
| /* The following adds 'Sandbox' link to the Tools menu in left Sidebar.*/
| |
| /* begin sandbox code */
| |
| | |
| function ModifySidebar( action, section, name, link ) {
| |
| try {
| |
| switch ( section ) {
| |
| case 'languages':
| |
| var target = 'p-lang';
| |
| break;
| |
| case 'toolbox':
| |
| var target = 'p-tb';
| |
| break;
| |
| case 'navigation':
| |
| var target = 'p-navigation';
| |
| break;
| |
| default:
| |
| var target = 'p-' + section;
| |
| break;
| |
| }
| |
| | |
| if ( action == 'add' ) {
| |
| var node = document.getElementById( target )
| |
| .getElementsByTagName( 'div' )[0]
| |
| .getElementsByTagName( 'ul' )[0];
| |
| | |
| var aNode = document.createElement( 'a' );
| |
| var liNode = document.createElement( 'li' );
| |
| | |
| aNode.appendChild( document.createTextNode( name ) );
| |
| aNode.setAttribute( 'href', link );
| |
| liNode.appendChild( aNode );
| |
| liNode.className = 'plainlinks';
| |
| node.appendChild( liNode );
| |
| }
| |
| | |
| if ( action == 'remove' ) {
| |
| var list = document.getElementById( target )
| |
| .getElementsByTagName( 'div' )[0]
| |
| .getElementsByTagName( 'ul' )[0];
| |
| | |
| var listelements = list.getElementsByTagName( 'li' );
| |
| | |
| for ( var i = 0; i < listelements.length; i++ ) {
| |
| if (
| |
| listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
| |
| listelements[i].getElementsByTagName( 'a' )[0].href == link
| |
| )
| |
| {
| |
| list.removeChild( listelements[i] );
| |
| }
| |
| }
| |
| }
| |
| | |
| } catch( e ) {
| |
| // let's just ignore what's happened
| |
| return;
| |
| }
| |
| }
| |
| | |
| function CustomizeModificationsOfSidebar() {
| |
| // adds [[Special:MyPage/Sandbox]] to Tools menu in sidebar
| |
| ModifySidebar( 'add', 'toolbox', 'Personal Sandbox', '/wiki/en/Special:MyPage/Sandbox' );
| |
| // example code below that removes [[Special:Upload]] from toolbox
| |
| //ModifySidebar( 'remove', 'toolbox', 'Upload file', '/wiki/Special:Upload' );
| |
| } | | } |
| if ( mw.config.get('wgUserGroups') && mw.config.get('wgUserGroups').indexOf( 'bureaucrat' ) !== -1 ) {
| |
| jQuery( CustomizeModificationsOfSidebar ); }
| |
|
| |
| /* end sandbox code */
| |
|
| |
|
| |
| /* Added for Accordion button */
| |
| (function() {
| |
| var acc = document.getElementsByClassName("accordion");
| |
| var i;
| |
|
| |
| for (i = 0; i < acc.length; i++) {
| |
| acc[i].onclick = function(){
| |
| /* Toggle between adding and removing the "active" class,
| |
| to highlight the button that controls the panel */
| |
| this.classList.toggle("active");
| |
|
| |
| /* Toggle between hiding and showing the active panel */
| |
| var panel = this.nextElementSibling;
| |
| if (panel.style.display === "block") {
| |
| panel.style.display = "none";
| |
| } else {
| |
| panel.style.display = "block";
| |
| }
| |
| }
| |
| }
| |
| })();
| |
|
| |
| /* end Accordion button */
| |
|
| |
| /* This is where the code for inserting the Location Map starts. */
| |
| (function() {
| |
| if (document.querySelector('h1#firstHeading').innerHTML === "Guided Research for Online Records") {
| |
|
| |
| var polyfill = document.createElement('script');
| |
| polyfill.type = 'text/javascript';
| |
| polyfill.async = true;
| |
| polyfill.src = 'https://edge.fscdn.org/assets/components/webcomponentsjs/webcomponents-lite.min-32b5a9b7ada86304bec6b43d3f2194f0.js';
| |
| var s = document.getElementsByTagName('script')[0];
| |
| s.parentNode.insertBefore(polyfill, s);
| |
|
| |
| var locationMap = document.createElement('link');
| |
| locationMap.rel = 'import';
| |
| locationMap.href = 'https://gist.githubusercontent.com/ecollett1/6acc6d3d51f82f9b142e7f5274ae8592/raw/7177fc97ea3b1a6c7590b12a66ceb5f9150bbd01/location-map.html';
| |
| var s = document.getElementsByTagName('script')[0];
| |
| s.parentNode.insertBefore(locationMap, s);
| |
|
| |
| document.querySelector('#mw-content-text p').innerHTML = "<div style='width: 1000px; height:500px;'><location-map></location-map></div>";
| |
| }
| |
| })();
| |