Support multiple consulates

This commit is contained in:
2024-04-24 15:12:19 -07:00
parent c5582e7662
commit 30438a68e8
3 changed files with 64 additions and 12 deletions

View File

@@ -9,19 +9,24 @@
</head>
<body>
<div class="container">
<!-- version info -->
<div class="row">
<div class="col-12">
<h3 style="white-space: nowrap;">not-a-rescheduler <span id="version"></span></h3>
</div>
</div>
<!-- activate slider -->
<div class="row">
<div class="col">
<div class="form-check form-switch" style="text-align: left;">
<input class="form-check-input" type="checkbox" role="switch" id="activate">
<label class="form-check-label" for="activate">Activate the script</label>
</div>
</div>
</div>
</div>
<!-- credentials -->
<div class="row">
<div class="col form-group">
<label for="username">Username</label>
@@ -40,6 +45,8 @@
<span id="saveStatus">Saved!</span>
</div>
</div>
<!-- reschedule parameters -->
<div class="row">
<div class="col">
<label for="frequency">Check frequency<br>(every <span id="frequency_info">N</span> minutes)</label>
@@ -64,14 +71,15 @@
<input type="number" class="form-control" id="deltaNow" placeholder="days" min="1" max="365">
</div>
</div>
<!-- consulates -->
<div class="row">
<div class="col">
<div class="form-check form-switch" style="text-align: left;">
<input class="form-check-input" type="checkbox" role="switch" id="autobook">
<label class="form-check-label" for="autobook">Autobook</label>
</div>
Consulates:
</div>
</div>
<div id="consulatesConfig">
</div>
<div class="row">
<div class="col">
Current appointment: <span id="currApptConsulate">somewhere</span>, <span id="currApptDate">some time</span>

View File

@@ -15,9 +15,9 @@
document.getElementById("currApptDate").innerText = currentAppt["date"];
document.getElementById("deltaAppt").value = items["__deltaAppt"] || 1;
document.getElementById("deltaNow").value = items["__deltaNow"] || 1;
document.getElementById("autobook").checked = items["__autobook"] || false;
});
// update frequency value
chrome.storage.onChanged.addListener((changes, area) => {
if (changes.__frequency)
document.getElementById("frequency_info").innerText = changes.__frequency.newValue;
@@ -27,9 +27,6 @@
document.getElementById("activate").addEventListener("change", async e => {
await chrome.storage.local.set({ "__activate": e.target.checked });
});
document.getElementById("autobook").addEventListener("change", async e => {
await chrome.storage.local.set({ "__autobook": e.target.checked });
});
// credentials
let usernameField = document.getElementById("username");
@@ -82,6 +79,54 @@
chrome.storage.local.set({ __deltaNow: this.value });
});
// consulates
await chrome.storage.local.get(['__consulates']).then((result) => {
let consulates = result['__consulates'];
let html = '';
for (let c in consulates) {
console.log(c, consulates[c])
let cSelected = consulates[c].isSelected === true ? "checked" : "";
let cAutobook = consulates[c].autobook === true ? "checked" : "";
let cName = c.replace(/ /g, '&nbsp;')
let cId = consulates[c].id;
html += `
<div class="row">
<div class="col">
<div class="form-check form-checkbox" style="text-align: left;">
<input class="form-check-input" type="checkbox" role="switch" id="isSelected-${cId}" ${cSelected}>
</div>
</div>
<div class="col">${cName}</div>
<div class="col"><span id="bestDate-${cId}">${consulates[c].bestDate || "-"}</span></div>
<div class="col"><span id="currentDate-${cId}">${consulates[c].currentDate || "-"}</span></div>
<div class="col">
<div class="form-check form-switch" style="text-align: left;">
<input class="form-check-input" type="checkbox" role="switch" id="autobook-${cId}" ${cAutobook}>
<label class="form-check-label" for="autobook-${cId}">Autobook</label>
</div>
</div>
</div>
`;
}
if (html === '') {
html = "No consulates found.";
}
document.getElementById('consulatesConfig').innerHTML = html;
for (let c in consulates) {
let cId = consulates[c].id;
document.getElementById(`isSelected-${cId}`).addEventListener("change", async e => {
consulates[c].isSelected = e.target.checked;
await chrome.storage.local.set({ "__consulates": consulates });
});
document.getElementById(`autobook-${cId}`).addEventListener("change", async e => {
consulates[c].autobook = e.target.checked;
await chrome.storage.local.set({ "__consulates": consulates });
});
}
});
// reset button
document.getElementById("resetButton").addEventListener("click", async () => {
if (confirm("Are you sure you want to reset?")) {