Difference between revisions of "MediaWiki:Common.js"

From Summertime Saga Wiki
Jump to: navigation, search
Line 23: Line 23:
 
});
 
});
 
}
 
}
 +
 +
  (function () {
 +
    const savedTab = localStorage.getItem("preferredVersion") || "current";
 +
 +
    function activateTab(tab) {
 +
      // Hide all tab contents
 +
      $("div.vt-content").hide();
 +
      // Show the selected one
 +
      $("div.vt-" + tab).show();
 +
 +
      // Update active class on <li> tabs
 +
      $("ul.version-tabs li").removeClass("active");
 +
      $("ul.version-tabs li[data-tab='" + tab + "']").addClass("active");
 +
 +
      // Save selection
 +
      localStorage.setItem("preferredVersion", tab);
 +
    }
 +
 +
    // Click handler for tab <li>
 +
    $("ul.version-tabs li").click(function () {
 +
      const selected = $(this).data("tab");
 +
      activateTab(selected);
 +
    });
 +
 +
    // Initialize the tab from saved preference or default
 +
    activateTab(savedTab);
 +
  })();
 
}());
 
}());

Revision as of 21:53, 9 October 2025

/* Any JavaScript here will be loaded for all users on every page load. */

// Wait for document ready
$(function() {
	var htmle = function(str) {
		return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
	};

	if ($('body').hasClass('page-Summertime_Saga_Wiki') && $('body').hasClass('action-view') && $('body').hasClass('skin-vector') && $('#ajax-posts').length && $('#ajax-version').length) {
		var maxPosts = 5;

		$.getJSON('/ssdata.json', function(data) {
			$('#ajax-version').text(data.version);
			$('#ajax-posts').html('');

			data.posts.forEach(function(post, i) {
				if (i >= maxPosts) {
					return;
				}

				$('#ajax-posts').append('<dd><b>▪ ' + htmle(post.date) + ':</b> <a rel="nofollow" class="external text" href="https://www.patreon.com' + htmle(post.url) + '">' + htmle(post.title) + '</a></dd>');
			});
		});
	}

  (function () {
    const savedTab = localStorage.getItem("preferredVersion") || "current";

    function activateTab(tab) {
      // Hide all tab contents
      $("div.vt-content").hide();
      // Show the selected one
      $("div.vt-" + tab).show();

      // Update active class on <li> tabs
      $("ul.version-tabs li").removeClass("active");
      $("ul.version-tabs li[data-tab='" + tab + "']").addClass("active");

      // Save selection
      localStorage.setItem("preferredVersion", tab);
    }

    // Click handler for tab <li>
    $("ul.version-tabs li").click(function () {
      const selected = $(this).data("tab");
      activateTab(selected);
    });

    // Initialize the tab from saved preference or default
    activateTab(savedTab);
  })();
}());