From 66824db4120c5b61d167aeecf37df13785dc9481 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Wed, 3 Jun 2026 14:01:36 +0200 Subject: cockpit: fix fetching a single student and add id filtering --- cockpit/js/student-common.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cockpit/js/student-common.js b/cockpit/js/student-common.js index 991876d..1f4d083 100644 --- a/cockpit/js/student-common.js +++ b/cockpit/js/student-common.js @@ -14,12 +14,13 @@ class Student { } } -async function fetchStudent(nameFilter, groupFilter) { - return await fetchStudents(nameFilter, groupFilter)[0]; +async function fetchStudent(idFilter, nameFilter, groupFilter) { + const students = await fetchStudents(idFilter, nameFilter, groupFilter); + return students[0]; } const idRegex = /id=(\d+)/; -async function fetchStudents(nameFilter, groupFilter) { +async function fetchStudents(idFilter, nameFilter, groupFilter) { const res = await fetch(getCourseParticipantsUrl()); const doc = new DOMParser().parseFromString(await res.text(), "text/html"); const table = doc.querySelector("tbody"); @@ -49,7 +50,8 @@ async function fetchStudents(nameFilter, groupFilter) { const groupsText = groupCell.querySelector("a.quickeditlink").textContent; const group = groupsText.trim(); - if ((!nameFilter || name.includes(nameFilter)) && + if ((!idFilter || id === idFilter) && + (!nameFilter || name.includes(nameFilter)) && (!groupFilter || groupFilter === group)) { students.push(new Student(id, name, group)); -- cgit v1.2.3