summaryrefslogtreecommitdiff
path: root/static/main.js
diff options
context:
space:
mode:
authorDaniel Hader <[email protected]>2026-06-03 22:32:09 -0500
committerDaniel Hader <[email protected]>2026-06-03 22:32:09 -0500
commit328d0cd912dfa5dbda53a09ecdfeaeb93504b560 (patch)
tree5dbe78ebbe4c9df5b8bbcf4530a7f912dbb1b7a6 /static/main.js
parent51fac3f3b6f73b649ba8109b37d8ff311b905cd4 (diff)
submission logic and fetching submissions
Diffstat (limited to 'static/main.js')
-rw-r--r--static/main.js91
1 files changed, 53 insertions, 38 deletions
diff --git a/static/main.js b/static/main.js
index 73a4c60..9132829 100644
--- a/static/main.js
+++ b/static/main.js
@@ -44,54 +44,66 @@ function create_problem_element(problem, submissions) {
const sub_div = document.createElement("div");
sub_div.className = "submission-div";
problem_div.appendChild(sub_div);
+
+ if (submissions.length === 0) {
+ const no_sub_message = document.createElement("span");
+ no_sub_message.innerHTML = "no submissions for this problem yet";
+ sub_div.appendChild(no_sub_message);
+ } else {
+ const sub_table = document.createElement("table");
+ sub_table.className = "submission-table";
+ sub_div.appendChild(sub_table);
- const sub_table = document.createElement("table");
- sub_table.className = "submission-table";
- sub_div.appendChild(sub_table);
-
- const header_row = document.createElement("tr");
- sub_table.appendChild(header_row);
-
- const header_user = document.createElement("th");
- header_user.innerHTML = "User";
- header_row.appendChild(header_user);
- const header_lang = document.createElement("th");
- header_lang.innerHTML = "Language";
- header_row.appendChild(header_lang);
- const header_size = document.createElement("th");
- header_size.innerHTML = "Size";
- header_row.appendChild(header_size);
- const header_subm = document.createElement("th");
- header_subm.innerHTML = "Submission";
- header_row.appendChild(header_subm);
+ const header_row = document.createElement("tr");
+ sub_table.appendChild(header_row);
- for (const submission of submissions) {
- const sub_row = document.createElement("tr");
- sub_table.appendChild(sub_row);
+ const header_user = document.createElement("th");
+ header_user.innerHTML = "User";
+ header_row.appendChild(header_user);
+ const header_lang = document.createElement("th");
+ header_lang.innerHTML = "Language";
+ header_row.appendChild(header_lang);
+ const header_size = document.createElement("th");
+ header_size.innerHTML = "Size";
+ header_row.appendChild(header_size);
+ const header_subm = document.createElement("th");
+ header_subm.innerHTML = "Submission";
+ header_row.appendChild(header_subm);
+
+ for (const submission of submissions) {
+ const sub_row = document.createElement("tr");
+ sub_table.appendChild(sub_row);
- const sub_user = document.createElement("td");
- sub_user.innerHTML = "Username";
- sub_row.appendChild(sub_user);
+ const sub_user = document.createElement("td");
+ sub_user.innerHTML = "Username";
+ sub_row.appendChild(sub_user);
- const sub_lang = document.createElement("td");
- sub_lang.innerHTML = "Language";
- sub_row.appendChild(sub_lang);
+ const sub_lang = document.createElement("td");
+ sub_lang.innerHTML = "Language";
+ sub_row.appendChild(sub_lang);
- const sub_size = document.createElement("td");
- sub_size.innerHTML = "Size";
- sub_row.appendChild(sub_size);
+ const sub_size = document.createElement("td");
+ sub_size.innerHTML = "Size";
+ sub_row.appendChild(sub_size);
- const sub_subm = document.createElement("td");
- const sub_anch = document.createElement("a");
- sub_anch.href = "submission.html?id=5";
- sub_anch.innerText = "view submission";
- sub_subm.appendChild(sub_anch);
- sub_row.appendChild(sub_subm);
+ const sub_subm = document.createElement("td");
+ const sub_anch = document.createElement("a");
+ sub_anch.href = "submission.html?id=5";
+ sub_anch.innerText = "view submission";
+ sub_subm.appendChild(sub_anch);
+ sub_row.appendChild(sub_subm);
+ }
}
return problem_div
}
+async function fetch_submissions(problem_id) {
+ const response = await fetch(`/submission/${problem_id}`)
+ const result = await response.json();
+ return result;
+}
+
async function fetch_problems() {
const response = await fetch("/problem");
if (!response.ok) {
@@ -106,7 +118,10 @@ async function fetch_problems() {
}
for (const problem of result) {
- const problem_div = create_problem_element(problem, [1, 2, 3])
+
+ const submissions = await fetch_submissions(problem.id);
+
+ const problem_div = create_problem_element(problem, submissions)
problems_div.appendChild(problem_div);
}
}