controller.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. Switches to a different strand
  3. Input:
  4. name: name of the strand. Must end with "Strand"
  5. */
  6. let changeStrand = (name)=>{
  7. closeSidebar();
  8. for(let strand of document.querySelectorAll(".strand")){
  9. strand.style.display = "none";
  10. }
  11. for(let button of document.querySelectorAll(".menu > button")){
  12. button.classList = "";
  13. button.onclick = ()=>{changeStrand(`${button.id.slice(0, button.id.indexOf("Btn"))}Strand`)};
  14. }
  15. let activeButton = document.querySelector(`#${name.slice(0, name.indexOf("Strand"))}Btn`);
  16. activeButton.classList = "active";
  17. activeButton.onclick = undefined;
  18. document.querySelector(`#${name}`).style.display = "flex";
  19. window[`${name}Obj`].display();
  20. }
  21. //Close any open sidebar
  22. let closeSidebar = ()=>{
  23. let sidebar = document.querySelector("#sidebarDiv");
  24. for(let i = 0; i < sidebar.children.length; i++){
  25. sidebar.children[i].style.display = "none";
  26. }
  27. sidebar.classList = "sidebarHide";
  28. }
  29. /*
  30. Open a specific sidebar
  31. Input:
  32. sidebar: the outermost element of the sidebar (must contain class sidebar)
  33. */
  34. let openSidebar = (sidebar)=>{
  35. document.querySelector("#sidebarDiv").classList = "sidebar";
  36. let sideBars = document.querySelector("#sidebarDiv").children;
  37. for(let i = 0; i < sideBars.length; i++){
  38. sideBars[i].style.display = "none";
  39. }
  40. sidebar.style.display = "flex";
  41. }
  42. let changeMenu = ()=>{
  43. let menu = document.querySelector(".menu");
  44. let buttons = document.querySelectorAll(".menu > button");
  45. if(!menu.classList.contains("menuMinimized")){
  46. menu.classList = "menu menuMinimized";
  47. for(let button of buttons){
  48. button.children[1].style.display = "none";
  49. }
  50. document.querySelector(".logout p").style.display = "none"
  51. document.querySelector("#max").style.display = "none";
  52. document.querySelector("#min").style.display = "flex";
  53. }else if(menu.classList.contains("menuMinimized")){
  54. menu.classList = "menu";
  55. for(let button of buttons){
  56. button.children[1].style.display = "block";
  57. }
  58. document.querySelector(".logout p").style.display = "flex"
  59. setTimeout(()=>{
  60. document.querySelector("#max").style.display = "flex";
  61. document.querySelector("#min").style.display = "none";
  62. }, 150);
  63. }
  64. }
  65. homeStrandObj.display();