aboutsummaryrefslogtreecommitdiff
path: root/mass-graducation/src/main.js
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2026-07-01 14:26:35 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2026-07-01 14:26:35 +0200
commit09d3cbb3f44a8b6f2346236733ced3908a5a3cad (patch)
tree344b2d5bd94df696e1ae886e238c0711edfb0057 /mass-graducation/src/main.js
parent5014c218b1dd0e7831200a92d2361ad71e2f64a3 (diff)
downloadbycs-sol-09d3cbb3f44a8b6f2346236733ced3908a5a3cad.tar.gz
bycs-sol-09d3cbb3f44a8b6f2346236733ced3908a5a3cad.zip
db: add DB class and adapt to only store a single JSON blob per entry
Diffstat (limited to 'mass-graducation/src/main.js')
-rw-r--r--mass-graducation/src/main.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/mass-graducation/src/main.js b/mass-graducation/src/main.js
index 244828b..86d2165 100644
--- a/mass-graducation/src/main.js
+++ b/mass-graducation/src/main.js
@@ -8,6 +8,17 @@ import { initSelection } from "../../js/selection.js";
let group;
+function observationClickHandler(li, student) {
+ const observationDiv = document.createElement("div");
+ observationDiv.id = "group-member-observation-container";
+ observationDiv.popover = true;
+ li.appendChild(observationDiv);
+
+ const submitBtn = document.createElement("button");
+ submitBtn.id = "group-member-observation-submit";
+ observationDiv.appendChild(submitBtn);
+}
+
function pointClickHandler(li, student, color) {
const textareaDiv = document.createElement("div");
textareaDiv.id = "group-member-point-reason-container";
@@ -83,6 +94,26 @@ async function loadGroup(selected) {
const li = document.createElement("li");
li.classList.add("group-member")
+ const ob = document.createElement("button");
+ ob.classList.add("group-member-observation-icon")
+ ob.popovertarget="group-member-observation-popover"
+ student.getGraduation().then((graduation) => {
+ if (!graduation.isObserved()) {
+ return;
+ }
+ ob.innerHTML = "&#128065"
+ ob.addEventListener("click", () => observationClickHandler(li, student) );
+ });
+ li.appendChild(ob);
+
+ const i = document.createElement("img");
+ i.classList.add("group-member-icon")
+ student.getGraduation().then((graduation) => {
+ i.src = graduation.getIcon();
+ });
+ // TODO: fetch the students state icon
+ li.appendChild(i);
+
const n = document.createElement("span");
n.classList.add("group-member-name")
n.innerHTML = `${student.name}`;
@@ -96,6 +127,12 @@ async function loadGroup(selected) {
li.appendChild(b);
}
+ const p = document.createElement("button");
+ p.classList.add("group-member-print")
+ p.innerHTML = `print`;
+ p.addEventListener("click", () => print() );
+ li.appendChild(p);
+
ul.appendChild(li);
}
}