Einstein Toolkit Bitbucket - Hide some issue columns

Hides some issue columns

À partir de 2025-06-19. Voir la dernière version.

// ==UserScript==
// @name         Einstein Toolkit Bitbucket - Hide some issue columns
// @namespace    http://www.einsteintoolkit.org
// @version      0.4
// @description  Hides some issue columns
// @author       rhaas80
// @match        https://bitbucket.org/einsteintoolkit/tickets/issues*&iframe=true*
// ==/UserScript==



// everything is dynamic in bitbucket, have to wait for things to appear
async function waitForElement(selector, timeout = null) {
    return new Promise((resolve) => {
        let element = document.querySelector(selector);
        if (element) {
            resolve(element);
            return;
        }
				let MutationObserver = window.MutationObserver;
        const observer = new MutationObserver(async (mutationRecords) => {
            let element = document.querySelector(selector);
            if (element) {
                resolve(element);
                observer.disconnect();
            } else {
                if (timeout) {
                    async function timeOver() {
                        return new Promise((resolve) => {
                            setTimeout(() => {
                                observer.disconnect();
                                resolve(false);
                            }, timeout);
                        });
                    }
                    resolve(await timeOver());
                }
            }
        });
        observer.observe(document, {
            childList: true,
            subtree: true,
        });
    });
};

  
window.onload = (async ()=>{
    // wait for element that is hopefully last being created
    await waitForElement("div#adg3-flag-root");
    // no more waiting
    for (const column of ["icon-col", "votes", "user", "milestone", "version", "actions"]) {
        for (const head of document.querySelectorAll("th."+column)) {
            head.style.display = "none";
        }
        for (const data of document.querySelectorAll("td."+column)) {
            data.style.display = "none";
        }
    }
    // the component button
    document.querySelector("div.issue-list--meta").style.display = "none";
});