MediaWiki:Timeless.js: Difference between revisions
From The HOA
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
mw.loader.using(['mediawiki.api']).then(function () { | mw.loader.using(['mediawiki.api']).then(function () { | ||
var category = "Resources"; // The name of the category | var category = "Resources"; // The name of the category | ||
var sidebar = $("div | var sidebar = $("div#site-navigation"); // Target the site-navigation container | ||
// Log to ensure we're targeting the correct container | |||
if (sidebar.length === 0) { | if (sidebar.length === 0) { | ||
console.error("Sidebar container not found"); | console.error("Sidebar container not found"); | ||
| Line 10: | Line 11: | ||
console.log("Sidebar container found, loading menu..."); | console.log("Sidebar container found, loading menu..."); | ||
// Create a new | // Create a new wrapper for the custom menu | ||
var $menuBlock = $("<div>").addClass("portal").attr("id", "custom-category-menu"); | var $menuWrapper = $("<div>").addClass("portal").attr("id", "custom-category-wrapper"); | ||
// Create a new block for the menu | |||
var $menuBlock = $("<div>").addClass("portal-body").attr("id", "custom-category-menu"); | |||
var $heading = $("<h3>").addClass("portal-heading").text("Pages in " + category); | var $heading = $("<h3>").addClass("portal-heading").text("Pages in " + category); | ||
var $list = $("<ul>").addClass("portal-body"); | var $list = $("<ul>").addClass("portal-body"); | ||
| Line 26: | Line 30: | ||
$list.append($("<li>").append($("<a>").attr("href", mw.util.getUrl(page.title)).text(page.title))); | $list.append($("<li>").append($("<a>").attr("href", mw.util.getUrl(page.title)).text(page.title))); | ||
}); | }); | ||
// Append the heading and list to the new block | // Append the heading and list to the new block | ||
$menuBlock.append($heading).append($list); | $menuBlock.append($heading).append($list); | ||
// Insert the new | // Append the new block to the wrapper | ||
sidebar.append($ | $menuWrapper.append($menuBlock); | ||
// Insert the new wrapper into the site-navigation container | |||
sidebar.append($menuWrapper); // Add the block to the sidebar | |||
console.log("Menu added to sidebar."); | console.log("Menu added to sidebar."); | ||
} else { | } else { | ||
| Line 42: | Line 46: | ||
console.error("API request failed."); | console.error("API request failed."); | ||
}); | }); | ||
// Optionally hide the old category menu (if it exists) | |||
$("#p-navigation").hide(); | |||
}); | }); | ||
Revision as of 07:14, 7 March 2025
mw.loader.using(['mediawiki.api']).then(function () {
var category = "Resources"; // The name of the category
var sidebar = $("div#site-navigation"); // Target the site-navigation container
// Log to ensure we're targeting the correct container
if (sidebar.length === 0) {
console.error("Sidebar container not found");
return;
}
console.log("Sidebar container found, loading menu...");
// Create a new wrapper for the custom menu
var $menuWrapper = $("<div>").addClass("portal").attr("id", "custom-category-wrapper");
// Create a new block for the menu
var $menuBlock = $("<div>").addClass("portal-body").attr("id", "custom-category-menu");
var $heading = $("<h3>").addClass("portal-heading").text("Pages in " + category);
var $list = $("<ul>").addClass("portal-body");
new mw.Api().get({
action: "query",
list: "categorymembers",
cmtitle: "Category:" + category,
cmlimit: 10,
format: "json"
}).done(function (data) {
if (data.query && data.query.categorymembers.length > 0) {
data.query.categorymembers.forEach(function (page) {
$list.append($("<li>").append($("<a>").attr("href", mw.util.getUrl(page.title)).text(page.title)));
});
// Append the heading and list to the new block
$menuBlock.append($heading).append($list);
// Append the new block to the wrapper
$menuWrapper.append($menuBlock);
// Insert the new wrapper into the site-navigation container
sidebar.append($menuWrapper); // Add the block to the sidebar
console.log("Menu added to sidebar.");
} else {
console.log("No pages found in the category.");
}
}).fail(function () {
console.error("API request failed.");
});
// Optionally hide the old category menu (if it exists)
$("#p-navigation").hide();
});
