Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions admin/archive.html
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions admin/backups.html
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions admin/courses.html
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions admin/editor.html
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions admin/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" class="active" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
23 changes: 17 additions & 6 deletions admin/logs.html
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,10 @@ <h1>Sort & Filter</h1>
</div>
</div>
<div class="section">
<h1>Logs</h1>
<div id="no-logs" class="row">
<p>No actions reported.</p>
</div>
<div class="section logs enhanced-list" hidden></div>
<button id="clear-logs">Clear Logs</button>
<h1>Maintenance Mode</h1>
<label class="checkboxGroup"><input type="checkbox" id="maintenance-mode" hidden>
<div class="checkbox"></div> Enable Maintenance Mode
</label>
</div>
<div class="section ai-manager">
<h1>AI Configuration</h1>
Expand All @@ -122,6 +120,14 @@ <h1>AI Configuration</h1>
placeholder="Enter your prompt here..." rows="1" disabled></textarea>
<button id="save-button">Save</button>
</div>
<div class="section">
<h1>Logs</h1>
<div id="no-logs" class="row">
<p>No actions reported.</p>
</div>
<div class="section logs enhanced-list" hidden></div>
<button id="clear-logs">Clear Logs</button>
</div>
</div>
<!-- Controls -->
<div id="controls-container" class="pill">
Expand Down Expand Up @@ -349,6 +355,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions admin/passwords.html
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions admin/questions.html
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions admin/reports.html
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions admin/responses.html
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions admin/users.html
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/admin/" tooltip="Segments"><i class="bi bi-list-check"></i></a>
Expand Down
5 changes: 5 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="https://click.vssfalcons.com/" tooltip="Virtual Clicker">
Expand Down
8 changes: 5 additions & 3 deletions src/checker/admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ try {
await updateQuestions();
if (params?.question) toggleQuestion(null, params.question);
}
if (document.getElementById("course-period-input") && !loadedSegmentEditor && !loadedSegmentCreator && !noReloadCourse) {
if (document.getElementById("course-period-input") && !loadedSegmentEditor && !noReloadCourse) {
document.getElementById("course-period-input").value = (storage.get('period') && courses.find(c => String(c.id) === String(storage.get('period')))) ? storage.get('period') : (((ui.defaultCourse !== null) && courses.find(c => String(c.id) === String(ui.defaultCourse))) ? ui.defaultCourse : courses.find(c => responses.some(r => JSON.parse(c.periods).includes(Number(String(r.seatCode)[0])))) ? courses.find(c => responses.some(r => JSON.parse(c.periods).includes(Number(String(r.seatCode)[0])))).id : courses.sort((a, b) => a.id - b.id)[0]?.id);
if (document.getElementById("export-report-course")) document.getElementById("export-report-course").value = (storage.get('period') && courses.find(c => String(c.id) === String(storage.get('period')))) ? storage.get('period') : (((ui.defaultCourse !== null) && courses.find(c => String(c.id) === String(ui.defaultCourse))) ? ui.defaultCourse : courses.find(c => responses.some(r => JSON.parse(c.periods).includes(Number(String(r.seatCode)[0])))) ? courses.find(c => responses.some(r => JSON.parse(c.periods).includes(Number(String(r.seatCode)[0])))).id : courses.sort((a, b) => a.id - b.id)[0]?.id);
}
Expand Down Expand Up @@ -1223,8 +1223,9 @@ try {
generator_enabled: document.getElementById('generate-answers').checked,
checker_enabled: document.getElementById('check-responses').checked,
generate_answers_prompt: document.getElementById('generate-answers-prompt').value,
check_responses_prompt: document.getElementById('check-responses-prompt').value
}
check_responses_prompt: document.getElementById('check-responses-prompt').value,
maintenance_enabled: document.getElementById('maintenance-mode').checked
},
};
}
for (const key in updatedInfo) {
Expand Down Expand Up @@ -6200,6 +6201,7 @@ try {
document.getElementById('check-responses-prompt').value = aiInfo.check_responses_prompt;
document.getElementById('check-responses-prompt-ending').placeholder = aiInfo.check_responses_prompt_ending;
document.getElementById('check-responses-prompt-ending').value = aiInfo.check_responses_prompt_ending;
document.getElementById('maintenance-mode').checked = Number(settings['maintenance-mode'] || 0);
}

async function clearAnnouncement(platform) {
Expand Down
48 changes: 30 additions & 18 deletions src/modules/auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -745,30 +745,42 @@ export async function loadAdminSettings(courses) {
export async function bulkLoad(fields = [], usr = null, pwd = null, isAdmin = false, isTA = false, ifAccessDenied = () => { }) {
const startTime = Date.now();
await storage.idbReady;
const bulkLoadResponse = await fetch(`${domain}/bulk_load${isTA ? '?ta=true' : ''}`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
usr,
pwd,
fields,
lastFetched: storage.get((isAdmin || isTA) ? "lastAdminBulkLoad" : "lastBulkLoad") || null,
syncDeleted: (async () => {
var cacheIds = {};
var cache = (await storage.idbGet((isAdmin || isTA) ? "adminCache" : "cache")) || storage.get((isAdmin || isTA) ? "adminCache" : "cache") || {};
for (const table in cache) {
if (Array.isArray(cache[table] || [])) cacheIds[table] = (cache[table] || []).map(data => String(data.id || data.seatCode || data.period || data.key || data.username || 0));
}
return cacheIds;
})(),
}),
});
var bulkLoadResponse;
try {
bulkLoadResponse = await fetch(`${domain}/bulk_load${isTA ? '?ta=true' : ''}`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
usr,
pwd,
fields,
lastFetched: storage.get((isAdmin || isTA) ? "lastAdminBulkLoad" : "lastBulkLoad") || null,
syncDeleted: (async () => {
var cacheIds = {};
var cache = (await storage.idbGet((isAdmin || isTA) ? "adminCache" : "cache")) || storage.get((isAdmin || isTA) ? "adminCache" : "cache") || {};
for (const table in cache) {
if (Array.isArray(cache[table] || [])) cacheIds[table] = (cache[table] || []).map(data => String(data.id || data.seatCode || data.period || data.key || data.username || 0));
}
return cacheIds;
})(),
}),
});
} catch (e) {
console.error(e);
if (!e.message || (e.message && !e.message.includes("."))) ui.view("api-fail");
return false;
}
var fetchedBulkLoad = await bulkLoadResponse.json();
if (!bulkLoadResponse.ok) {
if (!fetchedBulkLoad.message || (fetchedBulkLoad.message && !fetchedBulkLoad.message.includes("."))) ui.view("api-fail");
if ((fetchedBulkLoad.error === "Access denied.") || (fetchedBulkLoad.message === "Access denied.")) ifAccessDenied();
return false;
}
if (fetchedBulkLoad.maintenanceMode) {
ui.startLoader();
ui.view("maintenance-mode");
return false;
}
var updatedBulkLoad = {};
for (const table in fetchedBulkLoad) {
if (table === 'asOf' || table === 'syncDeleted') continue;
Expand Down
4 changes: 2 additions & 2 deletions src/modules/ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ export function view(path = "") {
});
}
const previous = pages.slice(0, pages.length - 1).join("/");
const buttons = (title === 'API Offline') ? [] : [
const buttons = ((path === 'api-fail') || (path === 'maintenance-mode')) ? [] : [
{
text: `<i class="bi bi-x-lg"></i>`,
class: "icon",
Expand Down Expand Up @@ -521,7 +521,7 @@ export function animate(element, from, to, duration, assign = true) {
(() => {
document.addEventListener("pointerdown", (e) => {
const dialog = document.querySelector("dialog[open]");
if ((dialog?.querySelector('h2').innerText != 'API Offline') && dialog?.hasAttribute("data-open") && !dialog?.contains(e.target)) {
if (dialog && (dialog.getAttribute('data-modal-page') !== 'api-fail') && (dialog.getAttribute('data-modal-page') !== 'maintenance-mode') && dialog.hasAttribute("data-open") && !dialog.contains(e.target)) {
document.addEventListener(
"pointerup",
() => {
Expand Down
5 changes: 5 additions & 0 deletions ta/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,11 @@ <h1 class="text-placeholder">000</h1>
<a href="mailto:[email protected]" class="icon" tooltip="Email"><i class="bi bi-envelope-fill"></i></a>
</div>
</dialog>
<dialog data-modal-page="maintenance-mode" data-page-title="Maintenance">
<p>
The Virtual Checker is undergoing maintenance. Please try again later.
</p>
</dialog>
<dialog data-modal-page="menu" data-page-title="Virtual Checker">
<div class="menu-icons">
<a href="/ta/" class="active" tooltip="TAs"><i class="bi bi-person-check"></i></a>
Expand Down