From 12a0ce736dce6207c7ae06037b150b12396c3e04 Mon Sep 17 00:00:00 2001
From: Alex Martin <32402821+13mralex@users.noreply.github.com>
Date: Sat, 27 Jul 2024 02:23:00 -0400
Subject: [PATCH] display Purdue IT status messages
---
tdx-enhanced.js | 102 ++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 94 insertions(+), 8 deletions(-)
diff --git a/tdx-enhanced.js b/tdx-enhanced.js
index 736c3a3..9123515 100644
--- a/tdx-enhanced.js
+++ b/tdx-enhanced.js
@@ -522,13 +522,13 @@
});
}
- function changeTitle() {
+ async function changeTitle() {
let title = document.querySelector(".organization-link a")
if (title) {
title.innerText = "Purdue University - STEM"
}
- injectSettings()
+ await injectToolbar()
}
function colorChange(color) {
@@ -651,14 +651,31 @@
*/
- function injectSettings() {
+ async function injectToolbar() {
let iconBar = document.querySelector(".tdbar-settings .pull-right")
+ let statusHTML = `
+
+ `
+
let toolsHTML = `
`
@@ -724,6 +741,9 @@
let settingsPage = document.createElement("div")
settingsPage.innerHTML = settingsHTML
+ let statusLink = document.createElement("span")
+ statusLink.innerHTML = statusHTML
+
let toolsLink = document.createElement("span")
toolsLink.innerHTML = toolsHTML
@@ -743,10 +763,52 @@
settings("update",form)
});
- //tools link
+ //links
let parent = iconBar.parentElement
+
+ //tools
parent.prepend(toolsLink)
+
+ //status
+ parent.prepend(statusLink)
+ let statusData = await getITStatus()
+ let statusIcon = statusLink.querySelector("#statusIcon")
+ if (statusData.length>0) {
+ statusIcon.classList = ("fa-solid fa-triangle-exclamation")
+ let statusTime = statusLink.querySelector("#statusTime")
+ let statusText = statusLink.querySelector("#statusText")
+
+ let statusTimeParsed = moment(statusData[0].time)
+
+ statusTime.innerText = statusTimeParsed.fromNow()
+ statusText.innerText = statusData[0].msg //First msg for now, will there be more than one?
+ } else {
+ statusIcon.classList = ("fa-solid fa-check")
+ }
+ }
+ }
+
+ async function getITStatus() {
+ let url = "https://it.purdue.edu/api-status/messages.php"
+ let res = await fetch(url)
+ let data = await res.json()
+
+ let messages = []
+
+ let msgs = data.Results
+ if (msgs.length>0) {
+ let numMsgs = msgs.length/2
+ for (let i = 0; i