2 Cookie helper functions
3 Copyright (c) 2023 Dimitri van Heesch
4 Released under MIT license.
7 cookie_namespace: 'doxygen_',
9 readSetting(cookie,defVal) {
11 const val = localStorage.getItem(this.cookie_namespace+cookie) ||
12 sessionStorage.getItem(this.cookie_namespace+cookie);
15 let myCookie = this.cookie_namespace+cookie+"=";
16 if (document.cookie) {
17 const index = document.cookie.indexOf(myCookie);
19 const valStart = index + myCookie.length;
20 let valEnd = document.cookie.indexOf(";", valStart);
22 valEnd = document.cookie.length;
24 return document.cookie.substring(valStart, valEnd);
31 writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete
34 sessionStorage.setItem(this.cookie_namespace+cookie,val);
36 localStorage.setItem(this.cookie_namespace+cookie,val);
39 let date = new Date();
40 date.setTime(date.getTime()+(days*24*60*60*1000));
41 const expiration = days!=0 ? "expires="+date.toGMTString()+";" : "";
42 document.cookie = this.cookie_namespace + cookie + "=" +
43 val + "; SameSite=Lax;" + expiration + "path=/";
47 eraseSetting(cookie) {
49 if (localStorage.getItem(this.cookie_namespace+cookie)) {
50 localStorage.removeItem(this.cookie_namespace+cookie);
51 } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) {
52 sessionStorage.removeItem(this.cookie_namespace+cookie);
55 this.writeSetting(cookie,'',-1);