9 Commits

Author SHA1 Message Date
cdanesi 70c0facad3 refactor overrides.js 2023-06-07 09:07:54 -04:00
cdanesi ab518bd281 override annoying userid popup
minor style tweaks
added overrides.js
manifest updated
2023-04-28 12:57:18 -04:00
cdanesi fe80210c8d minor style tweaks 2023-04-13 07:44:12 -04:00
cdanesi 2d04dca0ac change color of ugly contract button 2022-03-05 15:19:30 -05:00
cdanesi 1eaacb7ce1 add error checking to Warranty Highlight feature
refactor code
2021-10-12 21:14:54 -04:00
cdanesi 945c0f8d94 fix typo in script.js 2021-10-07 20:37:09 -04:00
cdanesi 5482c6aae9 refactor code 2021-10-07 20:36:08 -04:00
cdanesi e3adeb55b1 tweak warranty highlighting 2021-10-07 20:28:39 -04:00
cdanesi 98054b28f1 minor changes
Added highlight for warranty repairs
Updated 'update' buttons to use local image
Begin work on fancy notifications
2021-10-02 13:42:56 -04:00
7 changed files with 265 additions and 140 deletions
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

+33 -15
View File
@@ -1,15 +1,33 @@
{ {
"manifest_version": 3, "manifest_version": 3,
"name": "ServiceHub Plus", "name": "ServiceHub+",
"version": "0.1.2", "author": "Charles Danesi",
"description": "Improvements to Service Hub for TRG techs", "homepage_url": "https://charlesdanesi.net",
"version": "0.1.4",
"content_scripts": [ "description": "Improvements to Service Hub for TRG techs",
{
"css": ["style.css"], "content_scripts": [
"js": ["script.js"], {
"matches": ["https://portal.trgrepair.com/*"] "css": ["style.css"],
} "js": ["script.js"],
] "matches": ["https://portal.trgrepair.com/*"]
} }
],
"web_accessible_resources": [
{
"resources": [
"fonts/MaterialIcons-Regular.ttf",
"fonts/MaterialIconsOutlined-Regular.otf",
"img/autorenew.png",
"overrides.js"
],
"matches": ["<all_urls>"],
"extensions": ["lmeeejhdmpakenhgdfmgjcbdmeppjpam"],
"run_at": "document_end"
}
],
"permissions": ["storage", "activeTab", "scripting", "nativeMessaging"]
}
+23
View File
@@ -0,0 +1,23 @@
// Fix that annoying BS where the ID takes focus CONSTANTLY
console.log("Injection succeeded!");
function checkLoc() {
var sLoc = document.getElementById("txtTRG_Loc").value;
var sUsr = document.getElementById("txtTRG_User").value;
if (sLoc.length == 0) {
alert("You need to enter a location.");
sLoc.focus();
} else {
if (sUsr.length == 0) {
//alert("We suck at writing proper code.");
console.log("Override successful");
document.getElementById("txtTRG_User").value = "20539";
// document.querySelectorAll["txtTRG_User"].focus();
}
}
resetTimeout();
}
var bfTest = document.getElementById("txtTRG_Bin");
bfTest.onfocus();
+66
View File
@@ -0,0 +1,66 @@
"use strict";
/*
TODO style individual buttons
TODO options page (set UID)
TODO move parts list buttons top or bottom (form name='frmPartsSelection'), btnSave, btnCancel
NOTE color themes?
BUG close button on photo pages is styled along with the btnCancel
NOTE display tiny images next to parts list?
TODO shrink navbar/header/location on scroll
TODO fancy button animations
TODO choose file on upload window
TODO insert a reset button into search form
TODO style menubar and keep it sticky on the window
TODO style/move the location scan to float with the RO
TODO color bg to bin color
*/
// temporarily override stupid alerts that happen randomly all day long
//document.getElementById("txtTRG_User").value = "20539";
// Warranty Highlight
const isWarranty = document.getElementById("chkWarrantee");
if (isWarranty != null) {
isWarranty.addEventListener("change", updateBackground);
updateBackground();
function updateBackground() {
isWarranty.nextElementSibling.style.backgroundColor = isWarranty.checked
? "red"
: "transparent";
isWarranty.nextElementSibling.style.color = isWarranty.checked
? "white"
: "black";
}
}
// TODO highlight change case label if SN updated
const newSN = document.getElementById("txtNewBoardSN"); // this is the new SN field
const snWasUpdated = document.getElementById("chkCaseSNUpdate"); // this is the checkbox
// if (newSN.length != null) {
// newSN.addEventListener("change", updateSNBackground, false);
// updateSNBackground();
// }
// function updateSNBackground() {
// alert("test");
// }
// TODO add current location to a floating modal (or something)
// Notification system
// TODO implement facebook-style notifications
// https://portal.trgrepair.com/task_manager.asp?rnd=0.9996227368620352
// const notifCountStr = document.getElementById("lblTask").innerText;
// const notifCount = parseInt(notifCountStr.split(" ")[2]); // Total task count
// const notifCountNew = parseInt(notifCountStr.split(" ")[5].slice(1)); // New task count
// Code injection
var s = document.createElement("script");
s.src = chrome.runtime.getURL("overrides.js");
(document.head || document.documentElement).appendChild(s);
s.onload = function () {
this.remove();
};
+143 -125
View File
@@ -1,125 +1,143 @@
/* @import url("https://fonts.googleapis.com/css2?family=Roboto&display=swap");
TODO float buttons on bottom of RO @font-face {
TODO float location entry on RO (sidebar?) font-family: "Material Icons Outlined";
TODO style individual buttons font-style: normal;
TODO options page font-weight: 400;
- move parts list buttons top or bottom src: url("chrome-extension://__MSG_@@extension_id__/fonts/MaterialIconsOutlined-Regular.otf");
- color themes? }
BUG close button on photo pages is styled along with the btnCancel
HACK display tiny images next to parts list? @font-face {
TODO shrink navbar/header/location on scroll font-family: "Material Icons";
TODO fancy button animations font-style: normal;
*/ font-weight: 700;
src: url("chrome-extension://__MSG_@@extension_id__/fonts/MaterialIcons-Regular.ttf");
@import url("https://fonts.googleapis.com/css2?family=Roboto&display=swap"); }
:root { :root {
--white: #f4f4f9; --white: #f4f4f9;
--darkgray: #696969; --darkgray: #696969;
--lightgray: #857f74; --lightgray: #857f74;
--darkblue: #0f2137; --darkblue: #0f2137;
--lightblue: #0ebbfe; --lightblue: #0ebbfe;
--green: #c1d830; --green: #c1d830;
--darkgreen: #103900; --darkgreen: #103900;
--black: #000; --black: #000;
} }
/* General Styles */ /* General Styles */
/* Buttons */ /* Buttons */
input[type="button"] { input[type="button"] {
font-family: Roboto, sans-serif; font-family: Roboto, sans-serif;
background-color: var(--darkgray); background-color: var(--darkgray);
color: var(--white); color: var(--white);
border-radius: 5px; border-radius: 5px;
padding: 0.55em 1.25em; padding: 0.55em 1.25em;
text-decoration: none; text-decoration: none;
font-size: 0.9em; font-size: 0.9em;
cursor: pointer; cursor: pointer;
border: none; border: none;
transition: color 250ms ease-in, background-color 250ms ease-in; transition: color 250ms ease-in, background-color 250ms ease-in;
} }
input[type="button"]:hover { input[type="button"]:hover {
background-color: var(--lightgray); background-color: var(--lightgray);
} }
input[type="button"]:disabled { input[type="button"]:disabled {
opacity: 0.3; opacity: 0.3;
cursor: default; cursor: default;
} }
input[name="btnCancel"] + input[name="btnSave"] { input[name="btnCancel"] + input[name="btnSave"] {
position: fixed; position: fixed;
bottom: 20px; bottom: 20px;
right: 20px; right: 20px;
} }
input[name="btnCancel"] { input[name="btnCancel"] {
background-color: lightcoral; background-color: var(--lightblue);
color: var(--white); color: var(--white);
position: fixed; position: fixed;
bottom: 20px; bottom: 20px;
right: 90px; right: 90px;
} }
input[id="btnSubmitForApproval"]:hover { input[id="btnSubmitForApproval"]:hover {
background-color: var(--darkblue); background-color: var(--darkblue);
color: var(--lightblue); color: var(--lightblue);
} }
input[value="Mark Complete"]:hover { input[value="Mark Complete"]:hover {
background-color: var(--green); background-color: var(--green);
color: var(--darkgray); color: var(--darkgray);
/*font-weight: bolder;*/ }
}
input[name="btnParts"] {
input[name="btnParts"] { margin: 0;
margin: 0; padding: 0 1em;
padding: 0 1em; }
}
input[name="btnIssue4Eval"] {
input[name="btnIssue4Eval"] { background-color: var(--darkgreen);
background-color: var(--darkgreen); color: var(--green);
color: var(--lightgray); }
}
input[name="btnContract"] {
input[name="btnContract"] { padding: 0.3em 0;
padding: .3em 0; background-color: var(--darkgray);
background-color: var(--green); color: var(--white);
color: var(--darkgray); }
}
input[name="btnExpandRepairHistory"] {
input[name="btnExpandRepairHistory"] { padding: 0.25em 0;
padding: 0.25em 0; }
}
input[name="btnRepairCodes"] {
input[name="btnRepairCodes"] { padding: 0.5em 0;
padding: 0.5em 0; font-size: 1em;
font-size: 1em; }
}
input[value="Exit"] {
input[value="Exit"] { margin-right: 8px;
margin-right: 8px; }
}
input[value="View Repair"] {
input[value="View Repair"] { margin-bottom: 2px;
margin-bottom: 2px; }
}
input[value="View Repair"],
input[value="View Repair"], input[value="Remove Repair"] {
input[value="Remove Repair"] { padding: 4px 0;
padding: 4px 0; }
}
label {
/* Images */ transition: background-color 250ms ease-in, color 250ms ease-in;
}
img[id="Img1"],
img[id="Img2"] { label[for="chkWarrantee"] {
position: absolute; padding: 0.35em;
content: url("https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Plus_symbol.svg/500px-Plus_symbol.svg.png"); }
width: 20px;
height: 20px; /* Images */
}
img[id="Img1"],
img[id="Img2"] {
position: absolute;
content: url("chrome-extension://__MSG_@@extension_id__/img/autorenew.png");
width: 18px;
height: 18px;
/* BUG: The below lines aren't working.. */
outline: none;
border: none;
}
img[id="Img3"] {
content: url("chrome-extension://__MSG_@@extension_id__/img/autorenew.png");
width: 16px;
height: 16px;
outline: none;
border: none;
}