controller.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. if(window.screen.availWidth <= 1000){
  21. closeMenu();
  22. }
  23. }
  24. //Close any open sidebar
  25. let closeSidebar = ()=>{
  26. let sidebar = document.querySelector("#sidebarDiv");
  27. for(let i = 0; i < sidebar.children.length; i++){
  28. sidebar.children[i].style.display = "none";
  29. }
  30. sidebar.classList = "sidebarHide";
  31. if(window.screen.availWidth <= 1000){
  32. document.querySelector(".contentBlock").style.display = "flex";
  33. document.getElementById("mobileMenuSelector").style.display = "block";
  34. document.getElementById("sidebarCloser").style.display = "none";
  35. }
  36. }
  37. /*
  38. Open a specific sidebar
  39. Input:
  40. sidebar: the outermost element of the sidebar (must contain class sidebar)
  41. */
  42. let openSidebar = (sidebar)=>{
  43. document.querySelector("#sidebarDiv").classList = "sidebar";
  44. let sideBars = document.querySelector("#sidebarDiv").children;
  45. for(let i = 0; i < sideBars.length; i++){
  46. sideBars[i].style.display = "none";
  47. }
  48. sidebar.style.display = "flex";
  49. if(window.screen.availWidth <= 1000){
  50. document.querySelector(".contentBlock").style.display = "none";
  51. document.getElementById("mobileMenuSelector").style.display = "none";
  52. document.getElementById("sidebarCloser").style.display = "block";
  53. }
  54. }
  55. let changeMenu = ()=>{
  56. let menu = document.querySelector(".menu");
  57. let buttons = document.querySelectorAll(".menu > button");
  58. if(!menu.classList.contains("menuMinimized")){
  59. menu.classList = "menu menuMinimized";
  60. for(let button of buttons){
  61. button.children[1].style.display = "none";
  62. }
  63. document.querySelector(".logout p").style.display = "none"
  64. document.querySelector("#max").style.display = "none";
  65. document.querySelector("#min").style.display = "flex";
  66. }else if(menu.classList.contains("menuMinimized")){
  67. menu.classList = "menu";
  68. for(let button of buttons){
  69. button.children[1].style.display = "block";
  70. }
  71. document.querySelector(".logout p").style.display = "flex"
  72. setTimeout(()=>{
  73. document.querySelector("#max").style.display = "flex";
  74. document.querySelector("#min").style.display = "none";
  75. }, 150);
  76. }
  77. }
  78. let openMenu = ()=>{
  79. document.getElementById("menu").style.display = "flex";
  80. document.querySelector(".contentBlock").style.display = "none";
  81. document.getElementById("mobileMenuSelector").onclick = ()=>{closeMenu()};
  82. }
  83. let closeMenu = ()=>{
  84. document.getElementById("menu").style.display = "none";
  85. document.querySelector(".contentBlock").style.display = "flex";
  86. document.getElementById("mobileMenuSelector").onclick = ()=>{openMenu()};
  87. }
  88. if(window.screen.availWidth > 1000 && window.screen.availWidth <= 1400){
  89. changeMenu();
  90. document.getElementById("menuShifter2").style.display = "none";
  91. }
  92. homeStrandObj.display();