PageSourceSearch

https://www.bcoe.org/scripts/D-side-nav-ElkGrove.js

js bcoe.org collected 2026-10-03 19:30:46 UTC 3,799 bytes, 95 lines download raw bytes

1// ==========================================================================
2// 2023-09-13
3// ==========================================================================
4
5let plusMinusIndented = true;
6
7$(".sidenav-sub").siblings("a").addClass("sidenav-link");
8
9if ($(".sidenav-link").siblings("ul").hasClass("sidenav-sub")) {
10  $(".sidenav > ul > li > a").addClass("main-sidenav-link");
11
12  // Fixing subsite homepage sidenav
13  try {
14    const isSubsite = window.location.pathname.includes("subsites");
15    if (isSubsite && $(".sidenav > ul > li").length > 1) {
16      $(".sidenav").addClass("subsite-homepage-sidenav");
17      $(".sidenav > ul > li:not(:first-child) > a").addClass("subsite-homepage-sidenav-main-link");
18      $(".subsite-homepage-sidenav-main-link").removeClass("main-sidenav-link");
19    }
20  } catch (error) {
21    console.log(error);
22  }
23
24  $(".main-sidenav-link").removeClass("sidenav-link");
25  $(".sidenav-link").parent("li").prepend("<button></button>");
26  $(".sidenav-link").siblings("button").addClass("plus");
27  $(".sidenav-link").siblings("button").attr("aria-expanded", false);
28  $(".sidenav-link").siblings("button").attr("aria-label", "Expand Submenu");
29  if (plusMinusIndented) {
30    $(".sidenav-link").siblings("button").addClass("indented");
31  }
32}
33
34$(".sidenav-link").siblings(".sidenav-sub").hide();
35$(".sidenav-active").parents(".sidenav-sub").show();
36$(".sidenav-active").parents(".sidenav-sub").siblings("button").toggleClass("plus");
37$(".sidenav-active").parents(".sidenav-sub").siblings("button").toggleClass("minus");
38$(".sidenav-active").parents("li").addClass("sidenav-open");
39$(".main-sidenav-link").parent("li").removeClass("sidenav-open");
40
41$(".sidenav-active").parent("li").addClass("current-sub").removeClass("sidenav-open");
42if ($(".sidenav-active").siblings("ul").hasClass("sidenav-sub")) {
43  $(".sidenav-active").siblings("button").removeClass("plus");
44  $(".sidenav-active").siblings("button").addClass("minus");
45  $(".sidenav-active").siblings("button").attr("aria-expanded", true);
46  $(".sidenav-active").siblings("button").attr("aria-label", "Collapse Submenu");
47}
48
49$(".current-sub > ul").show();
50$(".main-sidenav-link").siblings("button").remove();
51
52let sideNavLinks = $(".sidenav-link");
53
54$(sideNavLinks).each(function () {
55  if ($(this).siblings(".sidenav-sub").length <= 0) {
56    $(this).siblings("button").remove();
57  }
58
59  if ($(this).parent("li").parent(".sidenav-sub").siblings(".main-sidenav-link").length > 0) {
60    $(this).addClass("top-level-sidenav-link");
61    $(this).siblings("button").removeClass("indented");
62  }
63});
64
65$(".sidenav li button").click(function () {
66  $(this).siblings(".sidenav-sub").first().slideToggle();
67  $(this).parent("li").toggleClass("opened");
68  $(this).toggleClass("minus");
69  $(this).toggleClass("plus");
70  if ($(this).hasClass("plus")) {
71    $(this).attr("aria-expanded", false);
72    $(this).attr("aria-label", "Expand Submenu");
73  } else if ($(this).hasClass("minus")) {
74    $(this).attr("aria-expanded", true);
75    $(this).attr("aria-label", "Collapse Submenu");
76  }
77});
78
79$(".sidenav li button").on("keydown", function (event) {
80  // If the space bar or enter is pressed
81  if (event.which === 32 || event.which === 13) {
82    event.preventDefault();
83    $(this).siblings(".sidenav-sub").first().slideToggle();
84    $(this).parent("li").toggleClass("opened");
85    $(this).toggleClass("minus");
86    $(this).toggleClass("plus");
87    if ($(this).hasClass("plus")) {
88      $(this).attr("aria-expanded", false);
89      $(this).attr("aria-label", "Expand Submenu");
90    } else if ($(this).hasClass("minus")) {
91      $(this).attr("aria-expanded", true);
92      $(this).attr("aria-label", "Collapse Submenu");
93    }
94  }
95});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.