notif-visa-ext/js/content.js

71 lines
2.9 KiB
JavaScript

(async function() {
const $version = await new Promise(r => chrome.management.getSelf(self => r(self.version)));
document.getElementById("version").innerText = `(version v${$version})`;
await chrome.storage.local.get().then(items => {
document.getElementById("activate").checked = items["__ap"];
document.getElementById("autobook").checked = items["__ab"];
document.getElementById("credits").innerText = items["__cr"] || "--";
document.getElementById("frequency").value = items["__fq"] || 1;
document.getElementById("checkfrequency").innerText = items["__fq"] || 1;
document.getElementById("gap").value = items["__gp"] || 3;
document.getElementById("daygap").innerText = items["__gp"] || 3;
})
chrome.storage.onChanged.addListener((changes, area) => {
if (changes.__cr)
document.getElementById("credits").innerText = changes.__cr.newValue;
if (changes.__fq)
document.getElementById("checkfrequency").innerText = changes.__fq.newValue;
if (changes.__gp)
document.getElementById("daygap").innerText = changes.__gp.newValue;
});
document.getElementById("activate").addEventListener("change", async function() {
chrome.storage.local.set({ __ap: this.checked });
let [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true });
chrome.tabs.sendMessage(tab.id, { action: "activate", status: this.checked });
});
document.getElementById("autobook").addEventListener("change", async function() {
chrome.storage.local.set({ __ab: this.checked });
});
document.getElementById("frequency").addEventListener("change", function() {
chrome.storage.local.set({ __fq: this.value });
});
document.getElementById("gap").addEventListener("change", function() {
chrome.storage.local.set({ __gp: this.value });
});
document.getElementById("read_faqs").addEventListener("click", function() {
chrome.tabs.create({
url: chrome.runtime.getURL("pages/faqs.html")
});
});
document.getElementById("ais_visa_info").addEventListener("submit", async function(e) {
e.preventDefault();
let button = document.getElementById("reset_info");
button.setAttribute("disabled", "disabled");
await new Promise(r => setTimeout(r, 500));
await chrome.storage.local.clear();
await chrome.storage.local.set({ __ab: false, __ap: true, __cr: 0, __fq: 1, __gp: 7 });
let [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true });
await chrome.tabs.sendMessage(tab.id, { action: "logout" });
button.classList.toggle("btn-success");
button.innerText = "Success";
await new Promise(r => setTimeout(r, 1000));
button.classList.toggle("btn-success");
button.removeAttribute("disabled");
button.innerText = "Configure / Reset";
});
})();