g3.9
This commit is contained in:
1 parent
76258c2291
commit
b4aa7bb628
4 files changed
+60
-41
No files matched your search
+1
-1
@@ -3,7 +3,7 @@ async function createTemp() {
|
|||||||
await couchDB.set("users", {
|
await couchDB.set("users", {
|
||||||
"turtle": {
|
"turtle": {
|
||||||
"password": "1234",
|
"password": "1234",
|
||||||
"level": 0,
|
"level": 4,
|
||||||
"xp": 0,
|
"xp": 0,
|
||||||
"avatar": null,
|
"avatar": null,
|
||||||
"abilities": [],
|
"abilities": [],
|
||||||
|
|||||||
@@ -263,13 +263,16 @@ async function init() {
|
|||||||
|
|
||||||
async function getXpPoints(elm, xp, name, pos) {
|
async function getXpPoints(elm, xp, name, pos) {
|
||||||
elm.remove();
|
elm.remove();
|
||||||
playLevelSound();
|
|
||||||
const course = await couchDB.get("course:" + name);
|
const course = await couchDB.get("course:" + name);
|
||||||
|
|
||||||
const data = course.result_history[pos];
|
const data = course.result_history[pos];
|
||||||
data["got_xp"] = true;
|
data["got_xp"] = true;
|
||||||
|
|
||||||
await levelUpXP(couchDB, userData, xp);
|
if (await levelUpXP(couchDB, userData, xp)) {
|
||||||
|
playLevelSound();
|
||||||
|
} else {
|
||||||
|
playXPSound();
|
||||||
|
}
|
||||||
|
|
||||||
await couchDB.set("course:" + name, course);
|
await couchDB.set("course:" + name, course);
|
||||||
}
|
}
|
||||||
|
|||||||
+46
-35
@@ -255,9 +255,13 @@ button.auswertung:hover {
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
(async () => {
|
(async () => {
|
||||||
const courseList = document.getElementById("course-list");
|
|
||||||
|
|
||||||
await setUserData(couchDB);
|
await setUserData(couchDB);
|
||||||
|
await setCourseView();
|
||||||
|
})();
|
||||||
|
|
||||||
|
async function setCourseView() {
|
||||||
|
const courseList = document.getElementById("course-list");
|
||||||
|
courseList.innerHTML = "";
|
||||||
|
|
||||||
for(const courseId of userData.courses) {
|
for(const courseId of userData.courses) {
|
||||||
const course = await couchDB.get("course:" + courseId);
|
const course = await couchDB.get("course:" + courseId);
|
||||||
@@ -286,16 +290,16 @@ button.auswertung:hover {
|
|||||||
`;
|
`;
|
||||||
courseList.appendChild(card);
|
courseList.appendChild(card);
|
||||||
}
|
}
|
||||||
})();
|
}
|
||||||
|
|
||||||
function createCourseNewEvaluation() {
|
function createCourseNewEvaluation() {
|
||||||
const elm = getOverlay("createCourse");
|
const elm = getOverlay("createCourse");
|
||||||
if (elm == null) return;
|
if (elm == null) return;
|
||||||
|
|
||||||
const evaluations = elm.querySelector(".evaluations > div");
|
const evaluations = elm.querySelector(".evaluations > div");
|
||||||
evaluations.innerHTML += createEvaluation({
|
evaluations.appendChild(createEvaluation({
|
||||||
"title": "", "type": "text"
|
"title": "", "type": "text"
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
async function saveCreateCourse() {
|
async function saveCreateCourse() {
|
||||||
@@ -311,21 +315,18 @@ async function saveCreateCourse() {
|
|||||||
|
|
||||||
const courseId = title.replace(/\s+/g, "_");
|
const courseId = title.replace(/\s+/g, "_");
|
||||||
|
|
||||||
|
const sDateInp = inputs[inputs.length-2];
|
||||||
|
const eDateInp = inputs[inputs.length-1];
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
"title": title,
|
"title": title,
|
||||||
"description": description.value,
|
"description": description.value,
|
||||||
"owner": userData.name,
|
"owner": userData.name,
|
||||||
"questions": [],
|
"questions": [],
|
||||||
"result": [],
|
"result": [],
|
||||||
"result_history": [
|
"result_history": [],
|
||||||
{
|
"start_date": sDateInp.value || "",
|
||||||
"date": "",
|
"expire_date": eDateInp.value || ""
|
||||||
"questions": [],
|
|
||||||
"result": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"start_date": inputs[1].value || "",
|
|
||||||
"expire_date": inputs[2].value || ""
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const evaluations = elm.querySelector(".evaluations > div");
|
const evaluations = elm.querySelector(".evaluations > div");
|
||||||
@@ -473,13 +474,17 @@ async function showEditCourse(name) { //
|
|||||||
inputs[0].value = data.title;
|
inputs[0].value = data.title;
|
||||||
inputs[0].setAttribute("oldID", name);
|
inputs[0].setAttribute("oldID", name);
|
||||||
description.value = data.description;
|
description.value = data.description;
|
||||||
inputs[1].value = data["start_date"] ?? "";
|
|
||||||
inputs[2].value = data["expire_date"] ?? "";
|
const sDateInp = inputs[inputs.length-2];
|
||||||
|
const eDateInp = inputs[inputs.length-1];
|
||||||
|
|
||||||
|
sDateInp.value = data["start_date"] ?? "";
|
||||||
|
eDateInp.value = data["expire_date"] ?? "";
|
||||||
|
|
||||||
const evaluations = elm.querySelector(".evaluations > div");
|
const evaluations = elm.querySelector(".evaluations > div");
|
||||||
|
|
||||||
for (var i of data.questions) {
|
for (var i of data.questions) {
|
||||||
evaluations.innerHTML += createEvaluation(i);
|
evaluations.appendChild(createEvaluation(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function createNewEvaluation() {
|
function createNewEvaluation() {
|
||||||
@@ -487,22 +492,25 @@ function createNewEvaluation() {
|
|||||||
if (elm == null) return;
|
if (elm == null) return;
|
||||||
|
|
||||||
const evaluations = elm.querySelector(".evaluations > div");
|
const evaluations = elm.querySelector(".evaluations > div");
|
||||||
evaluations.innerHTML += createEvaluation({
|
evaluations.appendChild(
|
||||||
"title": "", "type": "text"
|
createEvaluation({
|
||||||
});
|
"title": "", "type": "text"
|
||||||
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
function createEvaluation(question) {
|
function createEvaluation(question) {
|
||||||
return `
|
const div = document.createElement("div");
|
||||||
<div class="evaluation">
|
div.classList.add("evaluation");
|
||||||
<button onclick="this.parentElement.remove();">🗑</button>
|
div.innerHTML = `
|
||||||
<input value="${question.title}">
|
<button onclick="this.parentElement.remove();">🗑</button>
|
||||||
<select>
|
<input value="${question.title}">
|
||||||
<option value="text" ${question.type == "text" ? "selected": ""}>Text</option>
|
<select>
|
||||||
<option value="scala" ${question.type == "scala" ? "selected": ""}>Scala</option>
|
<option value="text" ${question.type == "text" ? "selected": ""}>Text</option>
|
||||||
<option value="emoji" ${question.type == "emoji" ? "selected": ""}>Emoji</option>
|
<option value="scala" ${question.type == "scala" ? "selected": ""}>Scala</option>
|
||||||
</select>
|
<option value="emoji" ${question.type == "emoji" ? "selected": ""}>Emoji</option>
|
||||||
</div>
|
</select>
|
||||||
`;
|
`;
|
||||||
|
return div;
|
||||||
}
|
}
|
||||||
async function saveEditCourse() {
|
async function saveEditCourse() {
|
||||||
const elm = getOverlay("edit_course");
|
const elm = getOverlay("edit_course");
|
||||||
@@ -530,12 +538,15 @@ async function saveEditCourse() {
|
|||||||
data["questions"] = questions;
|
data["questions"] = questions;
|
||||||
evaluations.remove();
|
evaluations.remove();
|
||||||
|
|
||||||
if (inputs[1].value.length > 0) {
|
const sDateInp = inputs[inputs.length-2];
|
||||||
let dateObject = new Date(inputs[1].value);
|
const eDateInp = inputs[inputs.length-1];
|
||||||
|
|
||||||
|
if (sDateInp.value.length > 0) {
|
||||||
|
let dateObject = new Date(sDateInp.value);
|
||||||
let dateString = dateObject.toISOString().split('T')[0];
|
let dateString = dateObject.toISOString().split('T')[0];
|
||||||
data["start_date"] = dateString;
|
data["start_date"] = dateString;
|
||||||
} if (inputs[2].value.length > 0) {
|
} if (eDateInp.value.length > 0) {
|
||||||
let dateObject = new Date(inputs[2].value);
|
let dateObject = new Date(eDateInp.value);
|
||||||
let dateString = dateObject.toISOString().split('T')[0];
|
let dateString = dateObject.toISOString().split('T')[0];
|
||||||
data["expire_date"] = dateString;
|
data["expire_date"] = dateString;
|
||||||
}
|
}
|
||||||
@@ -544,7 +555,7 @@ async function saveEditCourse() {
|
|||||||
await couchDB.set("course:" + oldID, data);
|
await couchDB.set("course:" + oldID, data);
|
||||||
|
|
||||||
hideOverlay("edit_course");
|
hideOverlay("edit_course");
|
||||||
location.reload();
|
setCourseView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -131,6 +131,7 @@
|
|||||||
<div class="end-dialog">
|
<div class="end-dialog">
|
||||||
<h2>Vielen Dank für deine Teilnahme!</h2><br>
|
<h2>Vielen Dank für deine Teilnahme!</h2><br>
|
||||||
<h3 id="level_up" style="display: none;">Level up!<br><br><br></h3>
|
<h3 id="level_up" style="display: none;">Level up!<br><br><br></h3>
|
||||||
|
<h3 id="xp_up" style="display: none;">+1 XP-Punkt<br><br><br></h3>
|
||||||
<button class="weiter-btn" onclick="onEndEvent(this)">
|
<button class="weiter-btn" onclick="onEndEvent(this)">
|
||||||
Zurück zur Hauptseite
|
Zurück zur Hauptseite
|
||||||
</button>
|
</button>
|
||||||
@@ -274,11 +275,15 @@ function updateContent(old_page, page) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function onFinishEva() {
|
async function onFinishEva() {
|
||||||
await playLevelSound();
|
|
||||||
await updateCourseAnswer(finalResult);
|
await updateCourseAnswer(finalResult);
|
||||||
if (await levelUpXP(couchDB)) {
|
if (await levelUpXP(couchDB)) {
|
||||||
const lvlElm = getId("level_up");
|
const e = getId("level_up");
|
||||||
if (lvlElm) lvlElm.style.display = "unset";
|
if (e) e.style.display = "unset";
|
||||||
|
await playLevelSound();
|
||||||
|
} else {
|
||||||
|
const e = getId("xp_up");
|
||||||
|
if (e) e.style.display = "unset";
|
||||||
|
await playXPSound();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async function onEndEvent() {
|
async function onEndEvent() {
|
||||||
|
|||||||
Reference in new issue
Block a user