MediaWiki:Common.js

MediaWiki interface page

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

$(function () {
	$("#skin-citizen-search-trigger").click(function () {
		$("#citizen-search__buttonCheckbox").click();
	});
});


(function() {
	var currentPopup = $("<div/>")
		.attr("class", "n1gp-popup")
		.css("display", "none");
	var currentPopupEl = null;

	$("#mw-content-text").append(currentPopup);

	var chipPopups = {};
	var navicustPartPopups = {};

	$("[data-chip-popup]").hover(function () {
		var $el = $(this);
		currentPopupEl = this;
		var pos = $el.offset();
		var title = $el.data("chip-popup");
		if (!Object.prototype.hasOwnProperty.call(chipPopups, title)) {
			chipPopups[title] = $.ajax({
				url: "/api.php",
				type: "GET",
				data: {
					action: "parse",
					format: "json",
					props: "text",
					title: title,
					text: "{{Chip popup}}"
				},
				dataType: 'json',
			});
		}

		chipPopups[title].done(function (resp) {
			var text = resp.parse.text['*'];
			if (currentPopupEl == this) {
				currentPopup
					.css("top", pos.top + 20 + "px")
					.css("left", pos.left + "px")
					.css("display", "block")
					.html(text);
			}
		});
	}, function () {
		currentPopup.css("display", "none");
		currentPopupEl = null;
	});
	
	$("[data-navicust-part-popup]").hover(function () {
		var $el = $(this);
		currentPopupEl = this;
		var pos = $el.offset();
		var title = $el.data("navicust-part-popup");
		if (!Object.prototype.hasOwnProperty.call(navicustPartPopups, title)) {
			navicustPartPopups[title] = $.ajax({
				url: "/api.php",
				type: "GET",
				data: {
					action: "parse",
					format: "json",
					props: "text",
					title: title,
					text: "{{NaviCust part popup}}"
				},
				dataType: 'json',
			});
		}

		navicustPartPopups[title].done(function (resp) {
			var text = resp.parse.text['*'];
			if (currentPopupEl == this) {
				currentPopup
					.css("top", pos.top + 20 + "px")
					.css("left", pos.left + "px")
					.css("display", "block")
					.html(text);
			}
		});
	}, function () {
		currentPopup.css("display", "none");
		currentPopupEl = null;
	});
})();