From 4a4878ec654ee6af63d1a618b66a3643972e1d94 Mon Sep 17 00:00:00 2001
From: AKORA <65976562+A-K-O-R-A@users.noreply.github.com>
Date: Mon, 30 Sep 2024 10:42:08 +0200
Subject: [PATCH] Add button to disable table
---
src/contentScripts/other/selma/layout.ts | 57 +++++++++++++++++++++---
1 file changed, 52 insertions(+), 5 deletions(-)
diff --git a/src/contentScripts/other/selma/layout.ts b/src/contentScripts/other/selma/layout.ts
index ff32192..055d50f 100644
--- a/src/contentScripts/other/selma/layout.ts
+++ b/src/contentScripts/other/selma/layout.ts
@@ -207,19 +207,60 @@ Actual logic
---
*/
+// Create a small banner that indicates the user that the site was modified
+// It also adds a small toggle to disable the table
+function createCreditsBanner () {
+ const imgUrl = chrome.runtime.getURL('/assets/images/tufast48.png')
+ const credits = document.createElement('p')
+
+ credits.style.margin = 'auto'
+ credits.style.marginRight = '0'
+ credits.style.color = '#002557' // Selma theme color
+ credits.id = 'TUfastCredits'
+ credits.innerHTML = `Table powered by
+
+ TUfast
+ by AKORA
+ `
+
+ const disableButton = document.createElement('button')
+ // Similiar style to logout button
+ disableButton.setAttribute(
+ 'style',
+ `
+ border: 1px solid rgb(255, 255, 255);
+ color: rgb(221, 39, 39);
+ text-decoration: none;
+ padding: 0.5rem 1rem;
+ margin: 0 1rem;
+ border-radius: 0px;
+ `
+ )
+
+ // Tooltip
+ disableButton.title =
+ 'Disable the "ImproveSelma" feature and reload the page to apply the change.'
+ disableButton.textContent = 'Disable'
+ disableButton.onclick = async (event) => {
+ event.preventDefault()
+ await chrome.storage.local.set({ improveSelma: false })
+ }
+ credits.appendChild(disableButton)
+
+ return credits
+}
+
(async () => {
- const { improveSelma } = await chrome.storage.local.get([
- 'improveSelma'
- ])
+ const { improveSelma } = await chrome.storage.local.get(['improveSelma'])
if (!improveSelma) return
// Apply all custom changes
- document.addEventListener('DOMContentLoaded', eventListener, false)
+ document.addEventListener('DOMContentLoaded', eventListener)
})()
function eventListener () {
- document.removeEventListener('DOMContentLoaded', eventListener, false)
+ document.removeEventListener('DOMContentLoaded', eventListener)
// Inject css
injectCSS('base')
@@ -233,6 +274,12 @@ function eventListener () {
injectCSS('my_exams')
}
+ // Add Credit banner
+ {
+ const creditElm = createCreditsBanner()
+ document.querySelector('.semesterChoice')!.appendChild(creditElm)
+ }
+
applyChanges()
}