spotlight.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const shelfGrid = document.getElementById("shelfButtonContainer")
  2. const makeClusterButton = document.getElementById("makeCluster")
  3. let clusters = Array()
  4. let chosenShelves = Array()
  5. function getEByID(id) {
  6. return document.getElementById(id)
  7. }
  8. function shelfClick(id) {
  9. const clickedShelf = getEByID("b" + id.toString())
  10. if (!clusters.flat(1).includes(id)) { //If not id in clusters
  11. if (chosenShelves.includes(id)) { //If id in chosenShelves
  12. chosenShelves = chosenShelves.filter(e => {
  13. return e !== id;
  14. })
  15. clickedShelf.classList.remove("selected")
  16. clickedShelf.innerText = ""
  17. } else { //Else (if id not in chosenShelves
  18. chosenShelves.push(id)
  19. clickedShelf.classList.add("selected")
  20. }
  21. }
  22. chosenShelves.forEach((id, num) => {
  23. getEByID("b" + id.toString()).innerText = (num + 1).toString()
  24. })
  25. if (chosenShelves.length > 0) {
  26. makeClusterButton.classList.remove("hidden")
  27. } else {
  28. makeClusterButton.classList.add("hidden")
  29. }
  30. }
  31. function unselectAll() {
  32. chosenShelves.forEach(id => {
  33. getEByID("b" + id.toString()).innerText = ""
  34. getEByID("b" + id.toString()).classList.remove("selected")
  35. })
  36. chosenShelves = Array()
  37. makeClusterButton.classList.add("hidden")
  38. }
  39. window.onkeydown = function(event) {
  40. if (event.key === "Escape") {
  41. unselectAll()
  42. }
  43. }