diff options
Diffstat (limited to 'GradeBook.js')
-rw-r--r-- | GradeBook.js | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/GradeBook.js b/GradeBook.js index 269f008..18652c8 100644 --- a/GradeBook.js +++ b/GradeBook.js @@ -1,15 +1,32 @@ function toggleHTMLClassVisibility(className) { var x = document.getElementsByClassName(className); var i; + var display_style = "block"; // default for (i = 0; i < x.length; i++) { if (x[i].style.display === "none") { - x[i].style.display = "block"; + display_style = "block"; } else { - x[i].style.display = "none"; + display_style = "none"; } + x[i].style.display = display_style; } + document.cookie=""+className+"_display_style"+"="+display_style; }; +function setHTMLClassVisibility(className, display_style) { + // use "block" or "none" for display_style + if (display_style === "") { + display_style = "block"; // default + } + var x = document.getElementsByClassName(className); + var i; + for (i = 0; i < x.length; i++) { + x[i].style.display = display_style; + } + document.cookie=""+className+"_display_style"+"="+display_style; +}; + + function toggleHistogramMarker() { toggleHTMLClassVisibility("histogram_marker"); }; @@ -18,3 +35,31 @@ function toggleGradingScheme() { toggleHTMLClassVisibility("grading_scheme"); }; +// getCookie is copied from https://www.w3schools.com/js/js_cookies.asp +function getCookie(cname) { + var name = cname + "="; + var decodedCookie = decodeURIComponent(document.cookie); + var ca = decodedCookie.split(';'); + for(var i = 0; i <ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') { + c = c.substring(1); + } + if (c.indexOf(name) == 0) { + return c.substring(name.length, c.length); + } + } + return ""; +} + +function readAndSetVisibility(className) { + setHTMLClassVisibility( className, getCookie(""+className+"_display_style") ); + return ""; +} + +function onPageLoad() { + readAndSetVisibility("histogram_marker"); + readAndSetVisibility("grading_scheme"); + return ""; +} + |