diff --git a/jstrr.js b/jstrr.js index 9b5682e..a3c01be 100644 --- a/jstrr.js +++ b/jstrr.js @@ -356,7 +356,7 @@ e.stopPropagation(); let tbl = document.getElementById("ranking-table"); let team = e.target.textContent, body = document.body; - mystate.collapsed = !mystate.collapsed; + mystate.collapsed = mystate.collapsed ? false : team; let visible = mystate.collapsed ? "collapse" : "visible"; for (let tr of document.querySelectorAll("#ranking-table tr")) { tr.style.visibility = @@ -422,18 +422,33 @@ ev.stopPropagation(); if (!mystate.ranklist) return; let list = mystate.ranklist, - mode = mystate["rankmode"], - str=""; - text = textlist[nArea]["file"]; - for (let i in list) { - str += (i==0?"Text":text)+","+list[i].join(",")+"\n"; + mode = mystate.rankmode, + team = mystate.collapsed, + str="", + text = textlist[nArea]["file"], + file = text+(mode ? "-"+mode : "") + (team?"_"+team:"")+".csv" + if (team) { + str = "Text" + list[0].join(",") + "\n"; + let tbl = document.getElementById("ranking-table"); + for (let row of tbl.querySelectorAll("tr")) { + if (row.classList.contains(mystate.collapsed)) { + str += text; + for (let col of row.querySelectorAll("td")) + str += ","+col.textContent; + str += "\n"; + } + } + } else { + for (let i in list) { + str += (i==0?"Text":text)+"," + list[i].join(",") + "\n"; + } } let bom = new Uint8Array([0xEF, 0xBB, 0xBF]); var a = document.createElement("a"); var csv = new Blob([bom, str], {type: "text/csv"}); var uri = URL.createObjectURL(csv); - a.download = text+(mode ? "-"+mode : "")+".csv"; + a.download = file; a.href = uri; document.body.appendChild(a); a.click();