Skip to content

Commit d105664

Browse files
committed
New Seat Code Desynchs Local Data
Fixes #479
1 parent 918cd91 commit d105664

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

src/checker/checker.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ try {
375375
document.getElementById("save-code-button")?.addEventListener("click", saveCode);
376376

377377
// Save seat code
378-
function saveCode() {
378+
async function saveCode() {
379379
const input = document.getElementById("code-input").value;
380380
// Tests for valid seat code
381381
const regex = /^[1-9][0-6][0-5]$/;
@@ -399,7 +399,8 @@ try {
399399
{
400400
text: `Use ${input}`,
401401
class: 'submit-button',
402-
onclick: () => {
402+
onclick: async () => {
403+
if (storage.get("code") !== input) await auth.clearBulkLoad();
403404
storage.set("code", input);
404405
init();
405406
// Close all modals
@@ -417,6 +418,7 @@ try {
417418
} else {
418419
// Close all modals
419420
ui.view("");
421+
if (storage.get("code") !== input) await auth.clearBulkLoad();
420422
storage.set("code", input);
421423
init();
422424
// Update URL parameters with seat code

src/checker/ta.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ try {
163163
document.getElementById("save-code-button")?.addEventListener("click", saveCode);
164164

165165
// Save seat code
166-
function saveCode() {
166+
async function saveCode() {
167167
const input = document.getElementById("code-input").value;
168168
// Tests for valid seat code
169169
const regex = /^[1-9][0-6][0-5]$/;
@@ -187,7 +187,8 @@ try {
187187
{
188188
text: `Use ${input}`,
189189
class: 'submit-button',
190-
onclick: () => {
190+
onclick: async () => {
191+
if (storage.get("code") !== input) await auth.clearBulkLoad();
191192
storage.set("code", input);
192193
init();
193194
// Close all modals
@@ -205,6 +206,7 @@ try {
205206
} else {
206207
// Close all modals
207208
ui.view("");
209+
if (storage.get("code") !== input) await auth.clearBulkLoad();
208210
storage.set("code", input);
209211
init();
210212
// Update URL parameters with seat code

src/modules/auth.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -790,11 +790,7 @@ export async function bulkLoad(fields = [], usr = null, pwd = null, isAdmin = fa
790790
}
791791
if (fields.includes('courses') ? (!(await storage.idbGet((isAdmin || isTA) ? "adminCache" : "cache") || {})?.['courses']?.length && !fetchedBulkLoad?.courses?.length) : false) {
792792
console.log('🔴 Bulk load out of sync, reloading');
793-
await storage.idbReady;
794-
storage.idbDelete("cache").catch((e) => console.error('IDB delete failed', e));
795-
storage.delete("lastBulkLoad");
796-
storage.idbDelete("adminCache").catch((e) => console.error('IDB delete failed', e));
797-
storage.delete("lastAdminBulkLoad");
793+
await clearBulkLoad();
798794
location.reload();
799795
return false;
800796
}
@@ -837,4 +833,13 @@ export async function bulkLoad(fields = [], usr = null, pwd = null, isAdmin = fa
837833
const loadTime = ((Date.now() - startTime) / 1000).toFixed(2);
838834
console.log(`${(loadTime < 1) ? '🟢' : ((loadTime > 5) ? '🔴' : '🟡')} Bulk load fetched in ${loadTime}s`);
839835
return true;
836+
}
837+
838+
export async function clearBulkLoad() {
839+
await storage.idbReady;
840+
await storage.idbDelete("cache").catch((e) => console.error('IDB delete failed', e));
841+
storage.delete("lastBulkLoad");
842+
await storage.idbDelete("adminCache").catch((e) => console.error('IDB delete failed', e));
843+
storage.delete("lastAdminBulkLoad");
844+
console.log('🟢 Bulk load cleared');
840845
}

0 commit comments

Comments
 (0)