summaryrefslogtreecommitdiffstats
path: root/develop/cookie.js
diff options
context:
space:
mode:
authorbyrnHDF <byrnHDF@users.noreply.github.com>2024-01-29 19:10:27 (GMT)
committerbyrnHDF <byrnHDF@users.noreply.github.com>2024-01-29 19:10:27 (GMT)
commit63b7d411312cb7c38efd1648363e347f27c24048 (patch)
treeaf34e5dc2c0cdb79bc809e2034f7d8c7fed6e2e4 /develop/cookie.js
parent6ba66d0a9efca6f012934bfbeb9bf4ef19465bbd (diff)
downloadhdf5-63b7d411312cb7c38efd1648363e347f27c24048.zip
hdf5-63b7d411312cb7c38efd1648363e347f27c24048.tar.gz
hdf5-63b7d411312cb7c38efd1648363e347f27c24048.tar.bz2
deploy: 365e23340cd001ee751da366235ae420156ad728
Diffstat (limited to 'develop/cookie.js')
-rw-r--r--develop/cookie.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/develop/cookie.js b/develop/cookie.js
new file mode 100644
index 0000000..53ad21d
--- /dev/null
+++ b/develop/cookie.js
@@ -0,0 +1,58 @@
+/*!
+ Cookie helper functions
+ Copyright (c) 2023 Dimitri van Heesch
+ Released under MIT license.
+*/
+let Cookie = {
+ cookie_namespace: 'doxygen_',
+
+ readSetting(cookie,defVal) {
+ if (window.chrome) {
+ const val = localStorage.getItem(this.cookie_namespace+cookie) ||
+ sessionStorage.getItem(this.cookie_namespace+cookie);
+ if (val) return val;
+ } else {
+ let myCookie = this.cookie_namespace+cookie+"=";
+ if (document.cookie) {
+ const index = document.cookie.indexOf(myCookie);
+ if (index != -1) {
+ const valStart = index + myCookie.length;
+ let valEnd = document.cookie.indexOf(";", valStart);
+ if (valEnd == -1) {
+ valEnd = document.cookie.length;
+ }
+ return document.cookie.substring(valStart, valEnd);
+ }
+ }
+ }
+ return defVal;
+ },
+
+ writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete
+ if (window.chrome) {
+ if (days==0) {
+ sessionStorage.setItem(this.cookie_namespace+cookie,val);
+ } else {
+ localStorage.setItem(this.cookie_namespace+cookie,val);
+ }
+ } else {
+ let date = new Date();
+ date.setTime(date.getTime()+(days*24*60*60*1000));
+ const expiration = days!=0 ? "expires="+date.toGMTString()+";" : "";
+ document.cookie = this.cookie_namespace + cookie + "=" +
+ val + "; SameSite=Lax;" + expiration + "path=/";
+ }
+ },
+
+ eraseSetting(cookie) {
+ if (window.chrome) {
+ if (localStorage.getItem(this.cookie_namespace+cookie)) {
+ localStorage.removeItem(this.cookie_namespace+cookie);
+ } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) {
+ sessionStorage.removeItem(this.cookie_namespace+cookie);
+ }
+ } else {
+ this.writeSetting(cookie,'',-1);
+ }
+ },
+}