MediaWiki:Mobile app debug.js

( function { 'use strict';

var mcw = window.mcw = {};

mw.hook( 'wikipage.content' ).add( function( $wikipageContent ) {   ( function { if ( !mcw.animate ) { mcw.animate = setInterval( function {   			$( '.animated' ).each( function { var $elem = $( this ); var $current = $elem.children( '.active' ); var $next = $current.nextAll( ':not(.skip):first' ); // Loop back to the start if ( !$next.length ) { $next = $elem.children( ':not(.skip):first' ); }   				$current.removeClass( 'active' ); $next.addClass( 'active' ); } );   		}, 2000 );    	}    } );

( function {   	var $loadPage = $wikipageContent.find( '.load-page' );    	if ( !$loadPage.length ) {    		return;    	}

// We need the spinner to show loading is happening, but we don't want // to have a delay while the module downloads, so we'll load this now, // regardless of if something is clicked mw.loader.load( 'jquery.spinner' );

// Create button starting with hide text // Will be changed to the show text while calculating the maximum button size var $buttonTemplate = $( ' ' ).addClass( 'mw-editsection-like load-page-button' ) .append( '[', $( ' ' ).addClass( 'jslink' ).text( i18n.hideText ), ']' );

var extractList = function( $contentContainer, listClass ) { var $content = $contentContainer.find( '> ul > li > ul' ).children( ':not(.nbttree-inherited)' ); if ( listClass ) { $content.addClass( listClass ); }

return $content; };

$loadPage.each( function {   		var $body = $( this );    		var page = $body.data( 'page' );    		if ( !page ) {    			return;    		}

var template = $body.data( 'template' ); var treeview = $body.data( 'treeview' ); var treeviewClass = $body.data( 'treeviewclass' ); var $heading; var $contentContainer; var $content; var $button = $buttonTemplate.clone; var $buttonLink = $button.find( '.jslink' ); if ( treeview ) { $heading = $body; $contentContainer = $( ' ' ); } else { $heading = $body.children.first; $contentContainer = $body.find( '.load-page-content' ); }

// Add the button $heading.append( $button );

// Move the edit button to the right spot $contentContainer.find( '.mw-editsection, .mw-editsection-like' ).insertAfter( $button );

// Find max button width, and set its min-width to it   		var hideWidth = $button.width; $buttonLink.text( i18n.showText ); var showWidth = $button.width;

if ( hideWidth !== showWidth ) { $button.css( 'min-width', hideWidth > showWidth ? hideWidth : showWidth ); }

$buttonLink.click( function {   			if ( $body.hasClass( 'pageloader-contentloaded' ) ) {    				if ( $buttonLink.text === i18n.showText ) {    					if ( treeview ) {    						$content.insertAfter( $body );    					} else {    						$contentContainer.show;    					}    					$buttonLink.text( i18n.hideText );    				} else {    					if ( treeview ) {    						$content.detach;    					} else {    						$contentContainer.hide;    					}    					$buttonLink.text( i18n.showText );    				}    				return;    			}

// See if this was loaded elsewhere before making a request var gotContent; $( '.pageloader-contentloaded' ).each( function {   				var $fLoader = $( this );    				if ( $fLoader.data( 'page' ) === page && $fLoader.data( 'pageloader-content' ) ) {    					$contentContainer.html( $fLoader.data( 'pageloader-content' ) ).removeClass( 'noscript' );    					mw.hook( 'wikipage.content' ).fire( $contentContainer );

if ( treeview ) { $body.find( '.noscript' ).remove; $content = extractList( $contentContainer, treeviewClass ); $content.insertAfter( $body ); }

$buttonLink.text( i18n.hideText ); $body.addClass( 'pageloader-contentloaded' ); gotContent = true; return false; }   			} );    			if ( gotContent ) {    				return;    			}

// Just in-case the spinner module is still not ready yet var $spinner = $; mw.loader.using( 'jquery.spinner', function {   				// $spinner will be false if the content somehow loaded before the module did    				if ( $spinner ) {    					$spinner = $.createSpinner.addClass( 'mw-editsection-like' )    						.css( 'min-width', $button.css( 'min-width' ) );    					$button.hide.after( $spinner );    				}    			} );

var requestData = { action: 'parse', prop: 'text' };   			if ( template ) { requestData.page = page; } else { requestData.title = mw.config.get( 'wgPageName' ); requestData.text = '{' + '{:' + page + '}}'; }   			new mw.Api.get( requestData ).done( function( data ) {    				var html = data.parse.text['*'];    				$contentContainer.html( html ).removeClass( 'noscript' );

// Resolve self-links if ( template ) { var curPage = '/' + mw.config.get( 'wgPageName' ); $contentContainer.find( 'a' ).each( function {   						var $link = $( this );    						if ( $link.attr( 'href' ) === curPage ) {    							$link.replaceWith( $( ' ' ).addClass( 'selflink' ).append( $link.contents ) );    						}    					} ); html = $contentContainer.html; }

$body.data( 'pageloader-content', html );

// Fire content hook on the new content, running all this stuff again and more :)   				mw.hook( 'wikipage.content' ).fire( $contentContainer );

if ( treeview ) { $body.find( '.noscript' ).remove; $content = extractList( $contentContainer, treeviewClass ); $content.insertAfter( $body ); }

$spinner.remove; $spinner = false; $buttonLink.text( i18n.hideText ); $button.show; $body.addClass( 'pageloader-contentloaded' ); } ).fail( function( _, error ) { $spinner.remove; $spinner = false; $button.show;

var errorText = ''; if ( error.textStatus ) { errorText = error.textStatus; } else if ( error.error ) { errorText = error.error.info; }

mw.notify( errorText, { title: i18n.loadErrorTitle, autoHide: false } ); } );   		} );    	} );    } );  } ); } );

function scrollAnchor(id) { var scrollTo = $('#' + id).offset.top - 15; window.scrollTo(0, scrollTo); console.log(scrollTo); }

$(document).ready(function { if ($('body').find('> .modal-table').length !== 1) {    $('table').each(function { if (!$(this).hasClass('msgbox') && !$(this).hasClass('modal-table') && $(this).outerWidth > window.innerWidth - 32) { var descText = '';

$(this).hide; $(this).parent.attr('style', '');

if ($(this).data('description')) { descText = $(this).data('description'); }

$(this).before(' View Table' + ($(this).data('description') ? ": " : "") + descText + ' '); }   });  }

$('button.modal-button').click(function {   var tableContainer = $(' ');    var table = this.nextSibling.cloneNode(true);

$(table).appendTo(tableContainer);

table.classList.add('modal-table'); $(table).attr('style', ''); console.log(tableContainer.html); }); });