ServiceNow - Highlight Assigned to Me

Highlight my incidents/changes

当前为 2020-09-21 提交的版本,查看 最新版本

// ==UserScript==
// @name         ServiceNow - Highlight Assigned to Me
// @version      0.3

// @description  Highlight my incidents/changes
// @author       Ricardo Constantino
// @match        https://*.service-now.com/change_request_list.do*
// @match        https://*.service-now.com/incident_list.do*
// @match        https://*.service-now.com/rm_story_list.do*
// @grant        none
// @namespace    https://greasyfork.org/users/129739
// ==/UserScript==

(function() {
    'use strict';

    const STYLE = `
tr.assignedToMe td {
    background-color: #bcefff !important;
}

tr.assignedToMe.updatedByNotMe td {
    background-color: #ffe686 !important;
}
`;

    let assignedToColumn = document.querySelector('th[name="assigned_to"]');
    if (!assignedToColumn) return;

    let assignedToColumnIdx = [...assignedToColumn.parentElement.children].indexOf(assignedToColumn);

    let tableElem = assignedToColumn.parentElement.parentElement.parentElement;

    let updatedByColumn = tableElem.querySelector('th[name="sys_updated_by"]');
    let updatedByColumnIdx = [...updatedByColumn.parentElement.children].indexOf(updatedByColumn);

    let meSysID = g_user.getUserID();
    let meUserName = g_user.getUserName();

    let rowsAssignedToMe = [...tableElem.querySelectorAll('td:nth-child('+(assignedToColumnIdx+1)+')')]
        .filter(e => e.children.length > 0 && e.children[0].getAttribute('sys_id') === meSysID)
        .map(c => c.parentElement);

    rowsAssignedToMe.forEach(r => r.addClassName('assignedToMe'));

    rowsAssignedToMe
        .filter(r => r.children[updatedByColumnIdx].textContent !== meUserName)
        .forEach(r => r.addClassName('updatedByNotMe'));

    let d = document.createElement('style');
    d.textContent = STYLE;
    document.querySelector("style").append(d);
})();