-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommon.js
88 lines (74 loc) · 2.09 KB
/
common.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
function getCookie(name) {
let cookie = {};
document.cookie.split(';').forEach(function (el) {
let [k, v] = el.split('=');
cookie[k.trim()] = v;
});
return cookie[name];
}
function setCookie(name, value, expires = "Tue, 19 Jan 2038 03:14:00 UTC") {
let cookie_string = name + "=" + value + ";expires=" + expires + ";path=/";
console.log("cookiestring", cookie_string);
document.cookie = cookie_string;
}
function deleteCookie(name) {
setCookie(name, '', "Thu, 01 Jan 1970 00:00:00 GMT");
}
function setCookieData(name, data) {
console.log("data:", data);
// Data is stored in base64 encoded and in json format
let value = window.btoa(JSON.stringify(data));
setCookie(name, value);
}
function getCookieData(name) {
let cookie = getCookie(name);
console.log("cookie", cookie);
if (cookie == null) {
return null;
} else {
// Data is base64 encoded and in json format
return JSON.parse(window.atob(cookie));
}
}
function getPlaces() {
let places = getCookieData("places");
if (places == null) {
places = getDefaultPlaces();
}
return places;
}
function setPlaces(places) {
setCookieData("places", places);
}
function addPlace(newPlace) {
let newPlaces = new Array(0);
newPlaces.push(newPlace);
// Loop existing places and add them to new if not same as the new one
let places = getPlaces();
Object.values(places).forEach(function (place) {
// Only add if not same as the newPlace
if (place != null && place.name != newPlace.name) {
// Add element to list
newPlaces.push(place);
}
});
// Max 5 long
if (newPlaces.length > 5) {
newPlaces = newPlaces.slice(0, 5);
}
console.log("newPlaces", newPlaces);
setPlaces(newPlaces);
}
function deletePlaces() {
deleteCookie("places");
}
function getDefaultPlaces() {
let places = new Array(10);
places[0] = {
"name": "Uppsala",
"geoname": "Uppsala",
"lon": "17.636540",
"lat": "59.842069"
};
return places;
}