replace ADF title

replace title

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey, το Greasemonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Userscripts για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

Θα χρειαστεί να εγκαταστήσετε μια επέκταση διαχείρισης κώδικα χρήστη για να εγκαταστήσετε αυτόν τον κώδικα.

(Έχω ήδη έναν διαχειριστή κώδικα χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Έχω ήδη έναν διαχειριστή στυλ χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

// ==UserScript==
// @name         replace ADF title
// @namespace    http://tampermonkey.net/
// @version      2026-05-13
// @description  replace title
// @author       You
// @match        https://adf.azure.com/*
// @match        https://*.azuredatabricks.net/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=azure.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const replace_map = {
        "dtf-sgesss-dev-az1-cfpuv7hera2": "DEV ADF",
        "dtf-sgesss-dev-az1-m5rbvkhera2": "SIT ADF",
        "dtf-sgesss-uat-az1-kaoi9khera2": "UAT ADF",
        "sgesss-prd-az1-ramcat": "PRD ADF",

        "adb-4693644767318262": "DEV ADB",
        "adb-6251393601425350": "SIT ADB",
        "adb-3769403716554776.16": "UAT ADB",
        "adb-2232446691151506.6": "PRD ADB",
        "3263952417704082.2": "Optimus POC ADB",
        "328189355790169.9": "Optimus DEV ADB",
        "4167251017893463.3": "Optimus SIT ADB",

        "dtf-sgesss-dev-az1-tw12jnoptimus": "Opt POC ADF",
        "dtf-sgesss-dev-az1-p89dtaoptimus": "Opt SIT ADF",
        "adb-2869921049264012.12": "SIT2 ADB",
    };

    function updateTitle() {
        const url = window.location.href;
        let currentTitle = document.title;

        for (const [key, prefix] of Object.entries(replace_map)) {
            if (url.includes(key)) {
                // 检查是否已经加上了前缀
                const fullPrefix = prefix + " | ";
                if (!currentTitle.startsWith(fullPrefix)) {
                    // 核心逻辑:如果标题发生了变化(比如由于切换 Pipeline),
                    // 我们把新的标题内容接在我们的前缀后面
                    console.log("Updating title for:", prefix);

                    // 先把可能存在的旧前缀删掉(防止重复叠加),再加新的
                    let originalPart = currentTitle;
                    Object.values(replace_map).forEach(p => {
                        originalPart = originalPart.replace(p + " | ", "");
                    });

                    document.title = fullPrefix + originalPart;
                }
                break;
            }
        }
    }

    // 使用每秒检查一次的逻辑(你原有的习惯,最稳健)
    setInterval(updateTitle, 1000);

    // 同时配合 MutationObserver,让标题修改更即时
    const observer = new MutationObserver(updateTitle);
    const titleElement = document.querySelector('title');
    if (titleElement) {
        observer.observe(titleElement, { childList: true });
    }

})();