aboutsummaryrefslogtreecommitdiff
path: root/src/utils-prod.js
blob: 447a17a8225c4c573a09fb8ede80d6e4b3621f39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
export {
	DATE_FMT,
	DATETIME_FMT,
	dateStringNow,
	datetimeStringNow,
	getUserIconUrl,
	splitmix32,
} from "./utils-common.ts";

export function isTeacher() {
	return (
		Boolean(document.querySelector(".editmode-switch-form")) ||
		document.body.classList.contains("editing")
	);
}

export function getFirstAndLastname() {
	let firstname = "";
	let lastname = "";

	const autoNameDiv = document.getElementById("auto-name");
	firstname = autoNameDiv.children[0].innerHTML;
	lastname = autoNameDiv.children[1].innerHTML;
	autoNameDiv.remove();

	return [firstname, lastname];
}

export function getName() {
	return document.querySelector("bycs-topbar").shadowRoot.querySelector("div.user-name")
		.textContent;
}

export function getUserId() {
	// M is exported by Moodle
	return String(M.cfg.userId);
}

export function getCourseId() {
	// M is exported by Moodle
	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);
}

export function getCourseParticipantsUrl() {
	return `https://lernplattform.bycs.de/user/index.php?id=${getCourseId()}&perpage=5000&tifirst&tilast`;
}

export class CourseLocalStorage {
	static getItem(key) {
		return localStorage.getItem(`${key}-${getCourseId()}`);
	}

	static setItem(key, val) {
		return localStorage.setItem(`${key}-${getCourseId()}`, val);
	}
}