User:Euphoria/common.js: Difference between revisions

From Test Wiki
Content deleted Content added
No edit summary
fix
Tag: Reverted
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 143: Line 142:
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 166: Line 164:
if (categories.includes('VfD archive entries')) return;
if (categories.includes('VfD archive entries')) return;


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


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


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

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

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