aboutsummaryrefslogtreecommitdiff
path: root/src/utils-prod.js
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2026-09-25 19:35:24 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2026-09-25 21:00:12 +0200
commitb3d770918fcb181e01a7cfeb1bc13a0ec55c22c5 (patch)
treed5dcc728c1f081485da291b513c9f6842d1afdda /src/utils-prod.js
parent576fe6814be88534f5fe4a8e4703b909b1800f5f (diff)
downloadbycs-sol-b3d770918fcb181e01a7cfeb1bc13a0ec55c22c5.tar.gz
bycs-sol-b3d770918fcb181e01a7cfeb1bc13a0ec55c22c5.zip
coaching: link to each student's cockpit
Diffstat (limited to 'src/utils-prod.js')
-rw-r--r--src/utils-prod.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/utils-prod.js b/src/utils-prod.js
index 7af3406..bc5868f 100644
--- a/src/utils-prod.js
+++ b/src/utils-prod.js
@@ -40,6 +40,20 @@ export function getCourseId() {
return String(M.cfg.courseId);
}
+export async function getActivityUrl(name) {
+ const courseUrl = `https://lernplattform.bycs.de/course/view.php?id=${getCourseId()}`;
+ const courseRes = await fetch(courseUrl);
+ const courseDoc = new DOMParser().parseFromString(await courseRes.text(), "text/html");
+ for (const n of courseDoc.querySelectorAll(".activity-name-area")) {
+ if (n.textContent.includes(name)) {
+ const match = /id=(\d+)/.exec(n.querySelector(".aalink").href);
+ return `/mod/page/view.php?id=${match[1]}`;
+ }
+ }
+
+ return "";
+}
+
export function getSesskey() {
// M is exported by Moodle
return String(M.cfg.sesskey);