diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2026-09-25 19:35:24 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2026-09-25 21:00:12 +0200 |
| commit | b3d770918fcb181e01a7cfeb1bc13a0ec55c22c5 (patch) | |
| tree | d5dcc728c1f081485da291b513c9f6842d1afdda /src/utils-prod.js | |
| parent | 576fe6814be88534f5fe4a8e4703b909b1800f5f (diff) | |
| download | bycs-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.js | 14 |
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); |
