NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name SCHE-DIGI dev env links fixer
// @namespace sche
// @version 1.0.11
// @description Replaces all production/pre-production links by environment specific
// @author nikolay-borzov
// @include http://fe*.sche-digi.projects.epam.com/*
// @include http://www-sqepes.ecom.schneider-electric.com/*
// @include http://lpesipo1001cppr.schneider-electric.com*
// @include http://localhost:*
// @grant none
// @license MIT
// ==/UserScript==
(function () {
'use strict';
const hostRegionPartMap = {
'www.schneider-electric.us': '/US',
'www.schneider-electric.com': '/WW',
'www.schneider-electric.fr': '/FR'
};
const internalHostRegExes = [
/fe.*-app.sche-digi\.projects\.epam\.com/,
/www-sqepes\.ecom\.schneider-electric\.com/,
/www-sqe1\.schneider-electric\.com/,
/lpesipo1001cppr\.schneider-electric\.com/,
/www-prd\.amer1\.sdl\.schneider-electric\.com/,
/www-(pre)?prdpes\.ecom\.schneider-electric\.com/,
/www\.schneider-electric\./,
/www\.se\.com/
];
const host = location.host;
const regionLangPart = location.pathname.substr(0, 7); // e.g. '/FR/fr/';
const regionLangRegExp = new RegExp(regionLangPart, 'i');
const allLinks = document.querySelectorAll('a[href]');
for (const link of allLinks) {
const linkHost = link.host;
if (linkHost === host) {
continue;
}
// ignore external links
if (!internalHostRegExes.some(regEx => regEx.test(linkHost))) {
continue;
}
const replaceWith = host + (hostRegionPartMap[linkHost] || '');
const sameHostURL = link.href
.replace(linkHost, replaceWith)
.replace('https:', 'http:') // Dev envs are HTTP
.replace(regionLangRegExp, regionLangPart); // Make sure region-lang path is in the same case
link.setAttribute('href', sameHostURL);
}
})();