2016-05-31 11:22:21 +02:00
|
|
|
import {root} from './root';
|
|
|
|
|
2014-11-16 01:29:07 +01:00
|
|
|
/**
|
|
|
|
* Cookie utilities
|
|
|
|
*/
|
|
|
|
|
2016-05-31 11:22:21 +02:00
|
|
|
const doc = root.document;
|
|
|
|
|
2015-05-30 14:23:33 +02:00
|
|
|
export default {
|
2014-11-16 01:29:07 +01:00
|
|
|
|
2016-05-31 11:22:21 +02:00
|
|
|
write(name, value, hours) {
|
2015-05-30 14:23:33 +02:00
|
|
|
let expire = '';
|
2016-05-31 11:22:21 +02:00
|
|
|
if (hours) {
|
2015-05-30 14:23:33 +02:00
|
|
|
expire = new Date((new Date()).getTime() + hours * 3600000);
|
|
|
|
expire = '; expires=' + expire.toGMTString();
|
|
|
|
}
|
2016-05-31 11:22:21 +02:00
|
|
|
doc.cookie = name + '=' + escape(value) + expire;
|
2015-05-30 14:23:33 +02:00
|
|
|
},
|
2014-11-16 01:29:07 +01:00
|
|
|
|
2016-05-31 11:22:21 +02:00
|
|
|
read(name) {
|
2015-05-30 14:23:33 +02:00
|
|
|
let cookieValue = '',
|
|
|
|
search = name + '=';
|
2016-05-31 11:22:21 +02:00
|
|
|
if (doc.cookie.length > 0) {
|
|
|
|
let cookie = doc.cookie,
|
2015-05-30 14:23:33 +02:00
|
|
|
offset = cookie.indexOf(search);
|
2016-05-31 11:22:21 +02:00
|
|
|
if (offset !== -1) {
|
2015-05-30 14:23:33 +02:00
|
|
|
offset += search.length;
|
|
|
|
let end = cookie.indexOf(';', offset);
|
2016-05-31 11:22:21 +02:00
|
|
|
if (end === -1) {
|
2015-05-30 14:23:33 +02:00
|
|
|
end = cookie.length;
|
|
|
|
}
|
|
|
|
cookieValue = unescape(cookie.substring(offset, end));
|
2014-11-16 01:29:07 +01:00
|
|
|
}
|
|
|
|
}
|
2015-05-30 14:23:33 +02:00
|
|
|
return cookieValue;
|
|
|
|
},
|
2014-11-16 01:29:07 +01:00
|
|
|
|
2016-05-31 11:22:21 +02:00
|
|
|
remove(name) {
|
2015-05-30 14:23:33 +02:00
|
|
|
this.write(name, '', -1);
|
|
|
|
},
|
2014-11-16 01:29:07 +01:00
|
|
|
|
2016-05-31 11:22:21 +02:00
|
|
|
valueToArray(name, separator) {
|
|
|
|
if (!separator) {
|
2015-05-30 14:23:33 +02:00
|
|
|
separator = ',';
|
|
|
|
}
|
|
|
|
//reads the cookie
|
|
|
|
let val = this.read(name);
|
|
|
|
//creates an array with filters' values
|
|
|
|
let arr = val.split(separator);
|
|
|
|
return arr;
|
|
|
|
},
|
2014-11-16 01:29:07 +01:00
|
|
|
|
2016-05-31 11:22:21 +02:00
|
|
|
getValueByIndex(name, index, separator) {
|
|
|
|
if (!separator) {
|
2015-05-30 14:23:33 +02:00
|
|
|
separator = ',';
|
|
|
|
}
|
|
|
|
//reads the cookie
|
|
|
|
let val = this.valueToArray(name, separator);
|
|
|
|
return val[index];
|
2014-11-16 01:29:07 +01:00
|
|
|
}
|
|
|
|
|
2015-05-30 14:23:33 +02:00
|
|
|
};
|