Change card colors based on Jira task priority using inserted stylesheets
当前为
// ==UserScript==
// @name Jira Task Priority Colorizer
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Change card colors based on Jira task priority using inserted stylesheets
// @author erolatex
// @include https://*/secure/RapidBoard.jspa*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// Define CSS rules for different priorities
const styleContent = `
.ghx-issue[data-priority*="P0"] {
background-color: #FFADB0 !important;
}
.ghx-issue[data-priority*="P1"] {
background-color: #FF8488 !important;
}
.ghx-issue[data-priority*="P2"] {
background-color: #FFD3C6 !important;
}
.ghx-issue[data-priority*="P3"] {
background-color: #FFF !important;
}
.ghx-issue[data-priority*="P4"] {
background-color: #FFF !important;
}
`;
const styleElement = document.createElement('style');
styleElement.type = 'text/css';
styleElement.appendChild(document.createTextNode(styleContent));
document.head.appendChild(styleElement);
function updateCardPriorities() {
let cards = document.querySelectorAll('.ghx-issue');
cards.forEach(card => {
let priorityElement = card.querySelector('.ghx-priority');
if (priorityElement) {
console.log('Priority Element:', priorityElement);
console.log('Priority Element HTML:', priorityElement.outerHTML);
let priority = priorityElement.getAttribute('title') || priorityElement.getAttribute('aria-label') || priorityElement.innerText || priorityElement.textContent;
console.log('Priority:', priority);
if (priority) {
card.setAttribute('data-priority', priority);
console.log('Card updated with data-priority:', card);
}
} else {
console.log('Priority element not found in card:', card);
}
});
}
const observer = new MutationObserver(() => {
updateCardPriorities();
});
observer.observe(document.body, { childList: true, subtree: true });
window.addEventListener('load', function() {
updateCardPriorities();
});
setInterval(updateCardPriorities, 5000);
})();