Jump to content

User:Macaw*/NBE.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Macaw* (talk | contribs) at 14:03, 2 May 2025 (so im not done I want to get this to work). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// NBE or Not Bad Edits was created by Macaw*

// CONFIGURATION: Enable features by setting to '1' or '0'
const enableMissingCoordinates = '1'; 
const enableUnreferenced = '1'; 
const enableMissingInfo = '1'; 

const NBE = {
    init: function() {
        this.addPortlet();
        this.addLinks();
    },

    addPortlet: function() {
        let navigation, portletId = 'p-nbe', portletText = 'NBE', nextNodeId;

        switch (mw.config.get('skin')) {
            case 'vector':
            case 'vector-2022':
                navigation = '#right-navigation';
                nextNodeId = 'p-cactions';
                break;
            case 'timeless':
                navigation = '#page-tools .sidebar-inner';
                nextNodeId = 'p-userpagetools';
                break;
            default:
                return; // Exit if skin is not supported
        }

        const root = document.querySelector(navigation);
        if (!root) return;

        // Add the portlet if it doesn't already exist
        if (!document.getElementById(portletId)) {
            mw.util.addPortlet(portletId, portletText, '#' + nextNodeId);
        }
    },

    addLinks: function() {
        if (enableMissingCoordinates === '1') {
            this.addLink('#', 'Missing Coordinates', 'missing-coordinates', 'Mark as missing coordinates.', this.handleMissingCoordinates);
        }
        if (enableMissingInfo === '1') {
            this.addLink('#', 'Missing Information', 'missing-information', 'Mark as missing information.', this.handleMissingInfo);
        }
        if (enableUnreferenced === '1') {
            this.addLink('#', 'Unreferenced', 'unreferenced', 'Mark as unreferenced.');
        }
    },

    addLink: function(task, text, id, tooltip, handler) {
        const portletId = 'p-nbe';
        const link = mw.util.addPortletLink(portletId, task, text, id, tooltip);
        
        // Attach the click event handler if provided
        if (handler) {
            $(link).on('click', (event) => {
                event.preventDefault(); // Prevent default link behavior
                handler(); // Call the appropriate handler function
            });
        }
    },

    handleMissingCoordinates: function() {
        const userInput = prompt("What is the general location of the missing coordinates?");
        if (userInput !== null) {
            document.editform.wpTextbox1.value = `{{coord missing|${userInput}}}\n` + document.editform.wpTextbox1.value; 
            document.editform.wpSummary.value = "Added Missing Coordinates Template with [[User:Macaw*/NBE|Not Bad Edits]]"; 
            document.editform.submit();
        }
    },

    handleMissingInfo: function() {
        const userInput = prompt("What information is this page missing?");
        if (userInput !== null) {
            document.editform.wpTextbox1.value = `{{Missing information|${userInput}}}\n` + document.editform.wpTextbox1.value; 
            document.editform.wpSummary.value = "Added Missing Information Template with [[User:Macaw*/NBE|Not Bad Edits]]"; 
            document.editform.submit();
        }
    }
};

// Initialize the NBE functionality
NBE.init();