MediaWiki:Common.js: Difference between revisions

From Future Of Mankind
No edit summary
Tag: Reverted
No edit summary
Tag: Reverted
Line 44: Line 44:
         $(this).attr('data-tooltip', 'Explanation of the Plejaren language scientists, given to Billy on the 27th of August 2010: Ausartung means a very bad get-out of the control of the good human nature.');
         $(this).attr('data-tooltip', 'Explanation of the Plejaren language scientists, given to Billy on the 27th of August 2010: Ausartung means a very bad get-out of the control of the good human nature.');


         // Adjust tooltip position
         // Create the tooltip element if it doesn't exist
         var tooltip = $(this).find(':before');
         var tooltip = $(this).find('.tooltip');
        if (tooltip.length === 0) {
            tooltip = $('
').appendTo('body');
        }
 
        // Set the tooltip content
        tooltip.text($(this).attr('data-tooltip'));
 
        // Get the dimensions of the tooltip
         var tooltipWidth = tooltip.outerWidth();
         var tooltipWidth = tooltip.outerWidth();
         var leftPosition = Math.max(0, (this.offsetLeft + (this.offsetWidth / 2)) - (tooltipWidth / 2));
         var tooltipHeight = tooltip.outerHeight();
 
        // Calculate the left position
        var leftPosition = this.offsetLeft + (this.offsetWidth / 2) - (tooltipWidth / 2);
        var topPosition = this.offsetTop - tooltipHeight - 10; // Position above the element


         // Check if the tooltip goes off the right edge of the screen
         // Adjust left position if it goes off the right edge
         var rightEdge = leftPosition + tooltipWidth;
         if (leftPosition + tooltipWidth > $(window).width()) {
        if (rightEdge > $(window).width()) {
             leftPosition = $(window).width() - tooltipWidth - 10; // 10px padding from the right edge
             leftPosition = $(window).width() - tooltipWidth - 10; // 10px padding from the right edge
         }
         }


         // Check if the tooltip goes off the left edge of the screen
         // Adjust left position if it goes off the left edge
         if (leftPosition < 0) {
         if (leftPosition < 0) {
             leftPosition = 10; // 10px padding from the left edge
             leftPosition = 10; // 10px padding from the left edge
         }
         }


         tooltip.css('left', leftPosition + 'px');
        // Adjust top position if it goes off the top edge
        if (topPosition < 0) {
            topPosition = this.offsetTop + this.offsetHeight + 10; // Position below the element
        }
 
        // Set the tooltip position
         tooltip.css({
            left: leftPosition + 'px',
            top: topPosition + 'px',
            display: 'block' // Show the tooltip
        });
     }, function() {
     }, function() {
         // Clear the tooltip content
         // Clear the tooltip content and hide it
         $(this).attr('data-tooltip', '');
         $(this).attr('data-tooltip', '');
        $(this).find('.tooltip').remove(); // Remove the tooltip element
     });
     });
});
});

Revision as of 08:16, 12 September 2024

/* 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, table#collapsible_report > tbody:last-child > tr > td:first-child").toggle();
    $(this).text($(this).text() == "Hide English" ? "Show English" : "Hide English");
    $("table#collapsible_report").css({
        "width": $(this).text() == "Show English" ? "80%" : "100%"
    });
});

$(".btnHideHigh-German").click(function() {
    console.log('Hiding first column of table with an id of report');
    $("table#collapsible_report > tbody:last-child > tr > th:last-child, table#collapsible_report > tbody:last-child > tr > td:last-child").toggle();
    $(this).text($(this).text() == "Hide High German" ? "Show High German" : "Hide High German");
    $("table#collapsible_report").css({
        "width": $(this).text() == "Show High German" ? "80%" : "100%"
    });
});

$(".btnHideGerman").click(function() {
    console.log('Hiding first column of table with an id of report');
    $("table#collapsible_report > tbody:last-child > tr > th:last-child, table#collapsible_report > tbody:last-child > tr > td:last-child").toggle();
    $(this).text($(this).text() == "Hide German" ? "Show German" : "Hide German");
    $("table#collapsible_report").css({
        "width": $(this).text() == "Show German" ? "80%" : "100%"
    });
});

// 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');
}


$(document).ready(function() {
    $('.WD-Ausartung, .WD-Gewalt').hover(function() {
        // Set the tooltip content from the data attribute
        $(this).attr('data-tooltip', 'Explanation of the Plejaren language scientists, given to Billy on the 27th of August 2010: Ausartung means a very bad get-out of the control of the good human nature.');

        // Create the tooltip element if it doesn't exist
        var tooltip = $(this).find('.tooltip');
        if (tooltip.length === 0) {
            tooltip = $('
').appendTo('body');
        }

        // Set the tooltip content
        tooltip.text($(this).attr('data-tooltip'));

        // Get the dimensions of the tooltip
        var tooltipWidth = tooltip.outerWidth();
        var tooltipHeight = tooltip.outerHeight();

        // Calculate the left position
        var leftPosition = this.offsetLeft + (this.offsetWidth / 2) - (tooltipWidth / 2);
        var topPosition = this.offsetTop - tooltipHeight - 10; // Position above the element

        // Adjust left position if it goes off the right edge
        if (leftPosition + tooltipWidth > $(window).width()) {
            leftPosition = $(window).width() - tooltipWidth - 10; // 10px padding from the right edge
        }

        // Adjust left position if it goes off the left edge
        if (leftPosition < 0) {
            leftPosition = 10; // 10px padding from the left edge
        }

        // Adjust top position if it goes off the top edge
        if (topPosition < 0) {
            topPosition = this.offsetTop + this.offsetHeight + 10; // Position below the element
        }

        // Set the tooltip position
        tooltip.css({
            left: leftPosition + 'px',
            top: topPosition + 'px',
            display: 'block' // Show the tooltip
        });
    }, function() {
        // Clear the tooltip content and hide it
        $(this).attr('data-tooltip', '');
        $(this).find('.tooltip').remove(); // Remove the tooltip element
    });
});