diff --git a/assess_userscript.js b/assess_userscript.js index 7cf7d1d7ae970935531088a4306133803db9f58f..42a36f2f363c1979c88b42c481711e6e9df06705 100644 --- a/assess_userscript.js +++ b/assess_userscript.js @@ -71,12 +71,25 @@ function timeSlotDiff(s, e) { function run() { const prioTable = document.getElementsByTagName('table')[0]; + const prioTableBody = prioTable.getElementsByTagName('tbody')[0]; + + if (!prioTableBody.innerText.includes("# Plätze")) { + // no parsable table + return; + } + + const flexWrapper = document.createElement("div"); + flexWrapper.style = "display: flex; flex-wrap: wrap;"; + prioTable.parentElement.insertBefore(flexWrapper, prioTable) + flexWrapper.appendChild(prioTable); prioTable.insertAdjacentHTML('afterend', timetable); - const trs = prioTable.getElementsByTagName('tr'); + const tableRows = prioTableBody.getElementsByTagName('tr'); const timeslots = [] - for (let i = 1; i+1 < trs.length; i++) { - let row = trs[i].getElementsByTagName('td'); + + + for (let i = 1; i+1 < tableRows.length; i++) { + let row = tableRows[i].getElementsByTagName('td'); // get time info let timeStr = row[0].textContent; @@ -84,20 +97,24 @@ function run() const endNum = parseInt(timeStr.substr(14,2)+ timeStr.substr(17,2)) const slotLen = timeSlotDiff(startNum, endNum) const slotStartId = timeStr.substr(1,2).toLowerCase()+'_'+ startNum + const isFull = tableRows[i].innerText.includes("VOLL") // get prio info - const rankElem = row[row.length-1].getElementsByTagName('div')[0].getElementsByTagName('div')[2] + const rankText = row[row.length-1]?.getElementsByTagName('div')?.[0]?.getElementsByTagName('div')?.[2]?.textContent ?? "" try { - // enter into timetable - const slotElem = document.getElementById(slotStartId) - slotElem.setAttribute("rowspan", slotLen) - slotElem.innerHTML = rankElem.textContent + '<br>' + row[row.length-3].textContent - + // enter into timetable + const slotElem = document.getElementById(slotStartId) + slotElem.setAttribute("rowspan", slotLen) + slotElem.innerHTML = rankText + '<br>' + row[row.length-3].textContent - slotElem.setAttribute("style","background-color: #726a6a;") + if (isFull) { + slotElem.setAttribute("style","background-color: #FFCCCC;") + } else { + slotElem.setAttribute("style","background-color: #726a6a;") + } - console.log(slotStartId + ' -> '+slotLen) + console.log(slotStartId + ' -> '+slotLen) } catch (e) {console.error(e)} }