diff --git a/files/other/skilltree.js b/files/other/skilltree.js index 2aa27ff..e5f5981 100644 --- a/files/other/skilltree.js +++ b/files/other/skilltree.js @@ -87,7 +87,7 @@ function _getRect(parent, data) { const allowBuy = aSkillPoints > 0 && isParentEnabled; div.innerHTML += ` - + `; } diff --git a/files/student/uebersicht.html b/files/student/uebersicht.html index 9f7961d..f72b99c 100644 --- a/files/student/uebersicht.html +++ b/files/student/uebersicht.html @@ -210,6 +210,9 @@ async function startSurvey() { console.log(code); var course = await couchDB.get("course:" + code); if (course != undefined) { + const voted = course.voted_user ??= []; + if (voted.includes(userData.name)) return; + const users = await couchDB.get("users"); users[userData.name].courses ??= []; if (!users[userData.name].courses.includes(code)) { @@ -222,13 +225,22 @@ async function startSurvey() { } } +async function bttnStartSurvey(code) { + var course = await couchDB.get("course:" + code); + const voted = course.voted_user ??= []; + if (voted.includes(userData.name)) return; + location.href = "./umfrage.html?course=" + code; +} + async function setCourseView() { const courseList = document.getElementById("courses-list"); courseList.innerHTML = ""; for (const courseId of userData.courses) { const course = await couchDB.get("course:" + courseId); - + + const hasVoted = (course.voted_user ??= []).includes(userData.name); + const expire_date = new Date(course.expire_date); const isExpired = expire_date < new Date(); @@ -247,8 +259,8 @@ async function setCourseView() { ${course.description} -${isExpired ? '': ` -` } diff --git a/files/student/umfrage.html b/files/student/umfrage.html index 0ea24bf..56bf0f2 100644 --- a/files/student/umfrage.html +++ b/files/student/umfrage.html @@ -152,12 +152,18 @@ async function setCourse() { return true; } -async function updateCourseAnswer(answer) { +async function updateCourseAnswer(answer, done = false) { const args = getURLArgsMap(); const coursename = args.course; if (!coursename) return null; const kurs = await couchDB.get("course:" + coursename); if (!kurs) return null; + + if (done) { + const voted = kurs.voted_user ??= []; + if (!voted.includes(userData.name)) voted.push(userData.name); + } + kurs.result.push(answer); await couchDB.set("course:" + coursename, kurs); return kurs; @@ -275,7 +281,7 @@ function updateContent(old_page, page) { } async function onFinishEva() { - await updateCourseAnswer(finalResult); + await updateCourseAnswer(finalResult, true); if (await levelUpXP(couchDB)) { const e = getId("level_up"); if (e) e.style.display = "unset";