User:Euphoria/common.js: Difference between revisions

From Test Wiki
Content deleted Content added
fix
Tag: Reverted
No edit summary
Tag: Manual revert
Line 33: Line 33:
// Handle VfD action for a target page
// Handle VfD action for a target page
function handleAction(targetPage, actionName) {
function handleAction(targetPage, actionName) {
// If on main page, close the subpage instead
const pageToEdit = (currentPage === pagePrefix) ? pagePrefix + '/' + targetPage : currentPage;
const pageToEdit = (currentPage === pagePrefix) ? pagePrefix + '/' + targetPage : currentPage;


Line 142: Line 143:
if (!confirm(`Are you sure you want to close as ${actionObj.name}?`)) return;
if (!confirm(`Are you sure you want to close as ${actionObj.name}?`)) return;


// Disable all buttons under this heading
$(heading).find('.vfd-action-link').each((i, b) => {
$(heading).find('.vfd-action-link').each((i, b) => {
b.style.opacity = '0.5';
b.style.opacity = '0.5';
Line 164: Line 166:
if (categories.includes('VfD archive entries')) return;
if (categories.includes('VfD archive entries')) return;


// Look at all h2 headings
// Look for all h2 headings (works on both main page and subpages)
$('#mw-content-text').find('h2').each(function () {
$('#mw-content-text').find('h2').each(function () {
const heading = $(this);
const headingText = $(this).text().trim();
if (!headingText) return;


let targetPage = headingText;
// On main page, show buttons only if heading contains a link to a subpage
if (currentPage === pagePrefix) {
const firstLink = heading.find('a').first();
if (!firstLink.length) return; // skip headings with no link


const linkTitle = firstLink.attr('title');
// On main page, detect the linked subpage if heading contains a link
if (!linkTitle || !linkTitle.startsWith(pagePrefix + '/')) return; // skip headings not linking to subpages
if (currentPage === pagePrefix) {
const link = $(this).find('a').first().attr('title');

const targetPage = linkTitle.replace(pagePrefix + '/', '');
if (link && link.startsWith(pagePrefix + '/')) {
createButtonsForHeading(this, targetPage);
targetPage = link.replace(pagePrefix + '/', '');
} else {
}
// On subpages, original behavior
const headingText = heading.text().trim();
if (!headingText) return;
createButtonsForHeading(this, headingText);
}
}

createButtonsForHeading(this, targetPage);
});
});
});
});