User:Euphoria/common.js: Difference between revisions

From Test Wiki
Content deleted Content added
No edit summary
Tag: Manual revert
No edit summary
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, only headings with a link to a subpage
let targetPage = headingText;

// On main page, detect the linked subpage if heading contains a link
if (currentPage === pagePrefix) {
if (currentPage === pagePrefix) {
const link = $(this).find('a').first().attr('title');
const firstLink = heading.find('a').first();
if (link && link.startsWith(pagePrefix + '/')) {
if (!firstLink.length) return; // no link → skip
targetPage = link.replace(pagePrefix + '/', '');
}
}


const linkTitle = firstLink.attr('title');
createButtonsForHeading(this, targetPage);
if (!linkTitle || !linkTitle.startsWith(pagePrefix + '/')) return; // not a subpage → skip

const targetPage = linkTitle.replace(pagePrefix + '/', '');
createButtonsForHeading(this, targetPage);

} else {
// Subpages: original behavior
const headingText = heading.text().trim();
if (!headingText) return;
createButtonsForHeading(this, headingText);
}
});
});
});
});