mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-13 03:31:31 +00:00
updated streamline-setup v2
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
(function($){
|
||||
|
||||
$.session = {
|
||||
|
||||
_id: null,
|
||||
|
||||
_cookieCache: undefined,
|
||||
|
||||
_init: function()
|
||||
{
|
||||
if (!window.name) {
|
||||
window.name = Math.random();
|
||||
}
|
||||
this._id = window.name;
|
||||
this._initCache();
|
||||
|
||||
// See if we've changed protcols
|
||||
|
||||
var matches = (new RegExp(this._generatePrefix() + "=([^;]+);")).exec(document.cookie);
|
||||
if (matches && document.location.protocol !== matches[1]) {
|
||||
this._clearSession();
|
||||
for (var key in this._cookieCache) {
|
||||
try {
|
||||
window.sessionStorage.setItem(key, this._cookieCache[key]);
|
||||
} catch (e) {};
|
||||
}
|
||||
}
|
||||
|
||||
document.cookie = this._generatePrefix() + "=" + document.location.protocol + ';path=/;expires=' + (new Date((new Date).getTime() + 120000)).toUTCString();
|
||||
|
||||
},
|
||||
|
||||
_generatePrefix: function()
|
||||
{
|
||||
return '__session:' + this._id + ':';
|
||||
},
|
||||
|
||||
_initCache: function()
|
||||
{
|
||||
var cookies = document.cookie.split(';');
|
||||
this._cookieCache = {};
|
||||
for (var i in cookies) {
|
||||
var kv = cookies[i].split('=');
|
||||
if ((new RegExp(this._generatePrefix() + '.+')).test(kv[0]) && kv[1]) {
|
||||
this._cookieCache[kv[0].split(':', 3)[2]] = kv[1];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_setFallback: function(key, value, onceOnly)
|
||||
{
|
||||
var cookie = this._generatePrefix() + key + "=" + value + "; path=/";
|
||||
if (onceOnly) {
|
||||
cookie += "; expires=" + (new Date(Date.now() + 120000)).toUTCString();
|
||||
}
|
||||
document.cookie = cookie;
|
||||
this._cookieCache[key] = value;
|
||||
return this;
|
||||
},
|
||||
|
||||
_getFallback: function(key)
|
||||
{
|
||||
if (!this._cookieCache) {
|
||||
this._initCache();
|
||||
}
|
||||
return this._cookieCache[key];
|
||||
},
|
||||
|
||||
_clearFallback: function()
|
||||
{
|
||||
for (var i in this._cookieCache) {
|
||||
document.cookie = this._generatePrefix() + i + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
|
||||
}
|
||||
this._cookieCache = {};
|
||||
},
|
||||
|
||||
_deleteFallback: function(key)
|
||||
{
|
||||
document.cookie = this._generatePrefix() + key + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
|
||||
delete this._cookieCache[key];
|
||||
},
|
||||
|
||||
get: function(key)
|
||||
{
|
||||
return window.sessionStorage.getItem(key) || this._getFallback(key);
|
||||
},
|
||||
|
||||
set: function(key, value, onceOnly)
|
||||
{
|
||||
try {
|
||||
window.sessionStorage.setItem(key, value);
|
||||
} catch (e) {}
|
||||
this._setFallback(key, value, onceOnly || false);
|
||||
return this;
|
||||
},
|
||||
|
||||
'delete': function(key){
|
||||
return this.remove(key);
|
||||
},
|
||||
|
||||
remove: function(key)
|
||||
{
|
||||
try {
|
||||
window.sessionStorage.removeItem(key);
|
||||
} catch (e) {};
|
||||
this._deleteFallback(key);
|
||||
return this;
|
||||
},
|
||||
|
||||
_clearSession: function()
|
||||
{
|
||||
try {
|
||||
window.sessionStorage.clear();
|
||||
} catch (e) {
|
||||
for (var i in window.sessionStorage) {
|
||||
window.sessionStorage.removeItem(i);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
clear: function()
|
||||
{
|
||||
this._clearSession();
|
||||
this._clearFallback();
|
||||
return this;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$.session._init();
|
||||
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user