add fix blueocean script
This commit is contained in:
54
fix_blueocean_script/blue_ocean_fix.js
Normal file
54
fix_blueocean_script/blue_ocean_fix.js
Normal file
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* Turns the raw HTML text rendered by an element to actual HTML if the raw text contains HTML elements
|
||||
*
|
||||
* @param {Element} element HTML element
|
||||
*/
|
||||
function convertTextToHtml(element) {
|
||||
// Presence of "<" might indicate that it might be raw HTML
|
||||
if (element?.innerText?.includes("<")) {
|
||||
// Test if the text is indeed HTML by using an HTML element like div
|
||||
const tempDiv = document.createElement("div");
|
||||
tempDiv.innerHTML = element.innerText;
|
||||
// If the innerText is rendered differently, highly likely that it contains valid HTML elements
|
||||
if (tempDiv.innerText != element.innerText) {
|
||||
element.innerHTML = element.innerText;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let observer;
|
||||
observer = new MutationObserver((mutations) => {
|
||||
mutations.forEach((mutation) => {
|
||||
// Convert any description on the **build page** from text to html
|
||||
const buildPageDescription = document.querySelector(".RunDetails-Description .message");
|
||||
convertTextToHtml(buildPageDescription);
|
||||
|
||||
// Convert causes on the **build page** from text to html
|
||||
const buildCauses = document.querySelector(".RunDetailsHeader-messages .causes");
|
||||
convertTextToHtml(buildCauses);
|
||||
|
||||
// Convert any description on the **project page** from text to html
|
||||
const messageColumn = document.querySelectorAll(".JTable-cell-contents .RunMessageCell");
|
||||
|
||||
messageColumn.forEach(messageCell => {
|
||||
// The title is set to raw HTML as well so clean that up
|
||||
if (messageCell.title) {
|
||||
messageCell.title = "";
|
||||
}
|
||||
const messageCellInnerDescription = messageCell.querySelector(".RunMessageCellInner .unstyled-link");
|
||||
convertTextToHtml(messageCellInnerDescription);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Define the configuration
|
||||
const config = {
|
||||
subtree: true,
|
||||
attributes: false,
|
||||
childList: true,
|
||||
characterData: true,
|
||||
};
|
||||
|
||||
// Observe the target
|
||||
observer.observe(document.body, config);
|
||||
|
||||
Reference in New Issue
Block a user