MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
No edit summary
(Added styles for post-load references)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
$('.wikipedia-excerpt .card-indicator .pulse').css('border', '2px solid #D29B31');
$('.wikipedia-excerpt .card-indicator .circle').css('background-color', '#D29B31');
$( window ).on( "load", function() {
$( window ).on( "load", function() {
// Add link to main page
// Add link to main page
if (!window.location.pathname.includes(':') && window.location.pathname.includes('/wiki/')) {
if (!window.location.pathname.includes(':') && window.location.pathname.includes('/wiki/') && !window.location.pathname.includes('Main_Page')) {
$("#siteSub").empty();
$("#siteSub").empty();
$("#siteSub").append("<a href='https://accountablebrand.org/b"+window.location.pathname.substring(5)+"'>&lt; Open in Main Site</a>");
$("#siteSub").append("<a href='https://accountablebrand.org/b"+window.location.pathname.substring(5)+"'>&lt; Open in Main Site</a>");
Line 24: Line 20:
// Move all references below Reports
// Move all references below Reports
if ($('.mw-parser-output .mw-parser-output .mw-references-wrap').length > 0 && $('ul.mw-prefixindex-list').siblings('div.mw-inputbox-centered').length > 0) {
if ($('.mw-parser-output .mw-parser-output .mw-references-wrap').length > 0 && $('ul.mw-prefixindex-list').siblings('div.mw-inputbox-centered').length > 0) {
$('.mw-references-wrap').last().append($('.mw-parser-output .mw-parser-output .mw-references-wrap'));
if ($('.mw-references-wrap').length > 1) {
$('.mw-references-wrap').last().prepend('<p>Imported References</p>');
$('.mw-references-wrap').last().append($('.mw-parser-output .mw-parser-output .mw-references-wrap'));
$('.mw-references-wrap').last().prepend('<p>Imported References</p>');
}
else {
$('.mw-inputbox-centered').after($('.mw-parser-output .mw-parser-output .mw-references-wrap'));
$('.mw-references-wrap').last().prepend('<p>Imported References</p>');
$('.mw-references-wrap').last().css('margin-top', 'var(--space-md)');
$('.mw-references-wrap').last().css('font-size', '0.8125rem');
$('.mw-references-wrap').last().css('color', 'var(--color-base)');
}
}
}
Line 31: Line 37:
$('.wikipedia-excerpt').each(function(excerptIndex) {
$('.wikipedia-excerpt').each(function(excerptIndex) {
var classList = $(this).attr('class').split(/\s+/);
var classList = $(this).attr('class').split(/\s+/);
console.log('Considering classlist: ', classList);
// console.log('Considering classlist: ', classList);
for (var i = 0; i < classList.length; i++) {
for (var i = 0; i < classList.length; i++) {
     if (classList[i].includes('num-paragraphs-') && classList[i].length > 'num-paragraphs-'.length) {
     if (classList[i].includes('num-paragraphs-')) {
     var paragraphLength = Number(classList[i].substring('num-paragraphs-'.length).trim());
     var paragraphLength = Number(classList[i].substring('num-paragraphs-'.length).trim());
     console.log('Length is supposed to be: ', paragraphLength);
     // console.log('Length is supposed to be: ', paragraphLength);
    if (paragraphLength == 0)
    paragraphLength = -1;
    
    
     // Remove extra paragraphs
     // Remove extra paragraphs
     var paragraphs = $(this).find('.mw-parser-output p');
     var paragraphs = $(this).find('.mw-parser-output p');
     console.log('Found paragraphs: ', paragraphs);
     // console.log('Found paragraphs: ', paragraphs);
    
    
     paragraphs.each(function(index) {
     paragraphs.each(function(index) {
     console.log('Considering paragraph number: ', paragraphLength);
     // console.log('Considering paragraph number: ', paragraphLength);
     if (paragraphLength > 0 && ($(this).children().length > 1 || ($(this).text() != '' && $(this).text() != '<br/>'))) {
     if (paragraphLength != 0 && ($(this).find('.error').length == 0 && ($(this).children().length > 1 || ($(this).text() != '' && $(this).text() != '<br/>')))) {
    // Keep this paragraph
     paragraphLength --;
     paragraphLength --;
     console.log('Keeping: ', $(this));
     // console.log('Keeping: ', $(this));
     } else {
     } else {
     console.log('Removing: ', $(this));
     // console.log('Removing: ', $(this));
     $(this).remove();
     $(this).remove();
     }
     }
Line 55: Line 62:
     }
     }
}
}
 
if ($(this).find('.mw-parser-output p').length == 0) {
if ($(this).find('.mw-parser-output p').length == 0) {
     $(this).find('.card-indicator .pulse').css('border', '2px solid #BF211E');
     $(this).find('.card-indicator .pulse').css('border', '2px solid #BF211E');

Latest revision as of 19:33, 7 February 2024

/* Any JavaScript here will be loaded for all users on every page load. */
$( window ).on( "load", function() {
	
	// Add link to main page
	if (!window.location.pathname.includes(':') && window.location.pathname.includes('/wiki/') && !window.location.pathname.includes('Main_Page')) {
		$("#siteSub").empty();
		$("#siteSub").append("<a href='https://accountablebrand.org/b"+window.location.pathname.substring(5)+"'>&lt; Open in Main Site</a>");
	}
	
	// Remove empty p tags
	$("p").each(function() {
    	var $this = $(this);
    	if( $.trim($this.text()) == "" || $.trim($this.text()) == "\n") $this.remove();
	});
	
	
	// Wikipedia Excerpt methods
	if ($('.wikipedia-excerpt').length > 0) {
		
		// Move all references below Reports
		if ($('.mw-parser-output .mw-parser-output .mw-references-wrap').length > 0 && $('ul.mw-prefixindex-list').siblings('div.mw-inputbox-centered').length > 0) {
			if ($('.mw-references-wrap').length > 1) {
				$('.mw-references-wrap').last().append($('.mw-parser-output .mw-parser-output .mw-references-wrap'));
				$('.mw-references-wrap').last().prepend('<p>Imported References</p>');
			}
			else {
				$('.mw-inputbox-centered').after($('.mw-parser-output .mw-parser-output .mw-references-wrap'));
				$('.mw-references-wrap').last().prepend('<p>Imported References</p>');
				$('.mw-references-wrap').last().css('margin-top', 'var(--space-md)');
				$('.mw-references-wrap').last().css('font-size', '0.8125rem');
				$('.mw-references-wrap').last().css('color', 'var(--color-base)');
			}
			
		}
		
		// Find paragraph marker class
		$('.wikipedia-excerpt').each(function(excerptIndex) {
			var classList = $(this).attr('class').split(/\s+/);
			// console.log('Considering classlist: ', classList);
			for (var i = 0; i < classList.length; i++) {
    			if (classList[i].includes('num-paragraphs-')) {
    				var paragraphLength = Number(classList[i].substring('num-paragraphs-'.length).trim());
    				// console.log('Length is supposed to be: ', paragraphLength);
    				if (paragraphLength == 0)
    					paragraphLength = -1;
    				
    				// Remove extra paragraphs
    				var paragraphs = $(this).find('.mw-parser-output p');
    				// console.log('Found paragraphs: ', paragraphs);
    				
    				paragraphs.each(function(index) {
    					// console.log('Considering paragraph number: ', paragraphLength);
    					if (paragraphLength != 0 && ($(this).find('.error').length == 0 && ($(this).children().length > 1 || ($(this).text() != '' && $(this).text() != '<br/>')))) {
    						paragraphLength --;
    						// console.log('Keeping: ', $(this));
    					} else {
    						// console.log('Removing: ', $(this));
    						$(this).remove();
    					}
    				});
    				
    			}
			}

			if ($(this).find('.mw-parser-output p').length == 0) {
    			$(this).find('.card-indicator .pulse').css('border', '2px solid #BF211E');
    			$(this).find('.card-indicator .circle').css('background-color', '#BF211E');
    			$(this).find('.card-content').append('<p>Error finding Wikipedia excerpt. Check if Wikipedia page exists and edit this template with the correct page name.</p>');
    		}
    		else {
    			$(this).find('.card-indicator .pulse').css('border', '2px solid #62bd19');
    			$(this).find('.card-indicator .circle').css('background-color', '#62bd19');
    		}
			
		});
	}
});