diff --git a/frontend-js/package-lock.json b/frontend-js/package-lock.json
index 8ca24c0f2abdfdbdbe76cfbfb890cb063abab86e..501b5abfd90c332f4ef4b3cc3f73533a8be66183 100644
--- a/frontend-js/package-lock.json
+++ b/frontend-js/package-lock.json
@@ -55,39 +55,34 @@
       "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
     },
     "acorn-globals": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz",
-      "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==",
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz",
+      "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==",
       "dev": true,
       "requires": {
-        "acorn": "5.5.3"
+        "acorn": "6.0.6",
+        "acorn-walk": "6.1.1"
       },
       "dependencies": {
         "acorn": {
-          "version": "5.5.3",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
-          "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==",
+          "version": "6.0.6",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.6.tgz",
+          "integrity": "sha512-5M3G/A4uBSMIlfJ+h9W125vJvPFH/zirISsW5qfxF5YzEvXJCtolLoQvM5yZft0DvMcUrPGKPOlgEu55I6iUtA==",
           "dev": true
         }
       }
     },
+    "acorn-walk": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz",
+      "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==",
+      "dev": true
+    },
     "after": {
       "version": "0.8.2",
       "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
       "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
     },
-    "ajv": {
-      "version": "5.2.3",
-      "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz",
-      "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=",
-      "dev": true,
-      "requires": {
-        "co": "4.6.0",
-        "fast-deep-equal": "1.0.0",
-        "json-schema-traverse": "0.3.1",
-        "json-stable-stringify": "1.0.1"
-      }
-    },
     "align-text": {
       "version": "0.1.4",
       "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
@@ -399,15 +394,6 @@
       "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
       "dev": true
     },
-    "boom": {
-      "version": "4.3.1",
-      "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
-      "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
-      "dev": true,
-      "requires": {
-        "hoek": "4.2.0"
-      }
-    },
     "bootstrap": {
       "version": "3.3.7",
       "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
@@ -453,9 +439,9 @@
       }
     },
     "browser-process-hrtime": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz",
-      "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=",
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
+      "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==",
       "dev": true
     },
     "browser-resolve": {
@@ -1109,26 +1095,6 @@
         "sha.js": "2.4.8"
       }
     },
-    "cryptiles": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
-      "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
-      "dev": true,
-      "requires": {
-        "boom": "5.2.0"
-      },
-      "dependencies": {
-        "boom": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
-          "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
-          "dev": true,
-          "requires": {
-            "hoek": "4.2.0"
-          }
-        }
-      }
-    },
     "crypto-browserify": {
       "version": "3.11.1",
       "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz",
@@ -1153,9 +1119,9 @@
       "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4="
     },
     "cssom": {
-      "version": "0.3.2",
-      "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
-      "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=",
+      "version": "0.3.4",
+      "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
+      "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==",
       "dev": true
     },
     "cssstyle": {
@@ -1164,7 +1130,7 @@
       "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
       "dev": true,
       "requires": {
-        "cssom": "0.3.2"
+        "cssom": "0.3.4"
       }
     },
     "csv-stringify": {
@@ -1201,14 +1167,33 @@
       "integrity": "sha1-eGTP1JGprp1pRTyLaGyMAgB3PEk="
     },
     "data-urls": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz",
-      "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
+      "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
       "dev": true,
       "requires": {
-        "abab": "1.0.4",
-        "whatwg-mimetype": "2.1.0",
-        "whatwg-url": "6.4.0"
+        "abab": "2.0.0",
+        "whatwg-mimetype": "2.3.0",
+        "whatwg-url": "7.0.0"
+      },
+      "dependencies": {
+        "abab": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
+          "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==",
+          "dev": true
+        },
+        "whatwg-url": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz",
+          "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==",
+          "dev": true,
+          "requires": {
+            "lodash.sortby": "4.7.0",
+            "tr46": "1.0.1",
+            "webidl-conversions": "4.0.2"
+          }
+        }
       }
     },
     "datatables.net": {
@@ -1409,6 +1394,12 @@
         }
       }
     },
+    "dom-walk": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
+      "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=",
+      "dev": true
+    },
     "domain-browser": {
       "version": "1.1.7",
       "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
@@ -1930,17 +1921,6 @@
       "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
       "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
     },
-    "form-data": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
-      "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
-      "dev": true,
-      "requires": {
-        "asynckit": "0.4.0",
-        "combined-stream": "1.0.5",
-        "mime-types": "2.1.17"
-      }
-    },
     "fresh": {
       "version": "0.5.2",
       "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -2189,6 +2169,24 @@
         "is-glob": "2.0.1"
       }
     },
+    "global": {
+      "version": "4.3.2",
+      "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
+      "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
+      "dev": true,
+      "requires": {
+        "min-document": "2.19.0",
+        "process": "0.5.2"
+      },
+      "dependencies": {
+        "process": {
+          "version": "0.5.2",
+          "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
+          "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=",
+          "dev": true
+        }
+      }
+    },
     "globby": {
       "version": "6.1.0",
       "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
@@ -2254,16 +2252,6 @@
       "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
       "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
     },
-    "har-validator": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
-      "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
-      "dev": true,
-      "requires": {
-        "ajv": "5.2.3",
-        "har-schema": "2.0.0"
-      }
-    },
     "has": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
@@ -2339,18 +2327,6 @@
         "pinkie-promise": "2.0.1"
       }
     },
-    "hawk": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
-      "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
-      "dev": true,
-      "requires": {
-        "boom": "4.3.1",
-        "cryptiles": "3.1.2",
-        "hoek": "4.2.0",
-        "sntp": "2.0.2"
-      }
-    },
     "he": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
@@ -2368,19 +2344,13 @@
         "minimalistic-crypto-utils": "1.0.1"
       }
     },
-    "hoek": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
-      "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
-      "dev": true
-    },
     "html-encoding-sniffer": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
       "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
       "dev": true,
       "requires": {
-        "whatwg-encoding": "1.0.3"
+        "whatwg-encoding": "1.0.5"
       }
     },
     "htmlescape": {
@@ -2525,6 +2495,12 @@
         "xtend": "4.0.1"
       }
     },
+    "ip-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-3.0.0.tgz",
+      "integrity": "sha512-T8wDtjy+Qf2TAPDQmBp0eGKJ8GavlWlUnamr3wRn6vvdZlKVuJXXMlSncYFRYgVHOM3If5NR1H4+OvVQU9Idvg==",
+      "dev": true
+    },
     "is-buffer": {
       "version": "1.1.5",
       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
@@ -2814,43 +2790,43 @@
       "dev": true,
       "requires": {
         "abab": "1.0.4",
-        "acorn": "5.5.3",
-        "acorn-globals": "4.1.0",
+        "acorn": "5.7.3",
+        "acorn-globals": "4.3.0",
         "array-equal": "1.0.0",
-        "cssom": "0.3.2",
+        "cssom": "0.3.4",
         "cssstyle": "0.2.37",
-        "data-urls": "1.0.0",
+        "data-urls": "1.1.0",
         "domexception": "1.0.1",
-        "escodegen": "1.9.1",
+        "escodegen": "1.11.0",
         "html-encoding-sniffer": "1.0.2",
         "left-pad": "1.3.0",
         "nwmatcher": "1.4.4",
         "parse5": "4.0.0",
         "pn": "1.1.0",
-        "request": "2.85.0",
+        "request": "2.88.0",
         "request-promise-native": "1.0.5",
         "sax": "1.2.4",
         "symbol-tree": "3.2.2",
-        "tough-cookie": "2.3.4",
+        "tough-cookie": "2.5.0",
         "w3c-hr-time": "1.0.1",
         "webidl-conversions": "4.0.2",
-        "whatwg-encoding": "1.0.3",
-        "whatwg-mimetype": "2.1.0",
-        "whatwg-url": "6.4.0",
+        "whatwg-encoding": "1.0.5",
+        "whatwg-mimetype": "2.3.0",
+        "whatwg-url": "6.5.0",
         "ws": "4.1.0",
         "xml-name-validator": "3.0.0"
       },
       "dependencies": {
         "acorn": {
-          "version": "5.5.3",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
-          "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==",
+          "version": "5.7.3",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+          "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
           "dev": true
         },
         "escodegen": {
-          "version": "1.9.1",
-          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
-          "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
+          "version": "1.11.0",
+          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz",
+          "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==",
           "dev": true,
           "requires": {
             "esprima": "3.1.3",
@@ -2872,35 +2848,11 @@
           "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
           "dev": true
         },
-        "request": {
-          "version": "2.85.0",
-          "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz",
-          "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==",
-          "dev": true,
-          "requires": {
-            "aws-sign2": "0.7.0",
-            "aws4": "1.6.0",
-            "caseless": "0.12.0",
-            "combined-stream": "1.0.5",
-            "extend": "3.0.1",
-            "forever-agent": "0.6.1",
-            "form-data": "2.3.1",
-            "har-validator": "5.0.3",
-            "hawk": "6.0.2",
-            "http-signature": "1.2.0",
-            "is-typedarray": "1.0.0",
-            "isstream": "0.1.2",
-            "json-stringify-safe": "5.0.1",
-            "mime-types": "2.1.17",
-            "oauth-sign": "0.8.2",
-            "performance-now": "2.1.0",
-            "qs": "6.5.1",
-            "safe-buffer": "5.1.1",
-            "stringstream": "0.0.5",
-            "tough-cookie": "2.3.4",
-            "tunnel-agent": "0.6.0",
-            "uuid": "3.1.0"
-          }
+        "punycode": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+          "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+          "dev": true
         },
         "source-map": {
           "version": "0.6.1",
@@ -2910,12 +2862,13 @@
           "optional": true
         },
         "tough-cookie": {
-          "version": "2.3.4",
-          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
-          "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+          "version": "2.5.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+          "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
           "dev": true,
           "requires": {
-            "punycode": "1.4.1"
+            "psl": "1.1.29",
+            "punycode": "2.1.1"
           }
         },
         "ws": {
@@ -3374,6 +3327,15 @@
         "mime-db": "1.30.0"
       }
     },
+    "min-document": {
+      "version": "2.19.0",
+      "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
+      "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
+      "dev": true,
+      "requires": {
+        "dom-walk": "0.1.1"
+      }
+    },
     "minimalistic-assert": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
@@ -3483,6 +3445,24 @@
         }
       }
     },
+    "mock-local-storage": {
+      "version": "1.1.8",
+      "resolved": "https://registry.npmjs.org/mock-local-storage/-/mock-local-storage-1.1.8.tgz",
+      "integrity": "sha512-x/LPtSBqSROQGjJn60Fp0+rgOHZuuQZysgeSYfhG2l/moD0LLW60bKi4KpmCnNs9S3l0cbS5cmzQFzeKDL7RaQ==",
+      "dev": true,
+      "requires": {
+        "core-js": "0.8.4",
+        "global": "4.3.2"
+      },
+      "dependencies": {
+        "core-js": {
+          "version": "0.8.4",
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-0.8.4.tgz",
+          "integrity": "sha1-wiZl8eDRucPF4bCNq9HxCGleT88=",
+          "dev": true
+        }
+      }
+    },
     "module-deps": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
@@ -4082,12 +4062,6 @@
       "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
       "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE="
     },
-    "qs": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
-      "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
-      "dev": true
-    },
     "querystring": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
@@ -4430,16 +4404,24 @@
       "requires": {
         "request-promise-core": "1.1.1",
         "stealthy-require": "1.1.1",
-        "tough-cookie": "2.3.4"
+        "tough-cookie": "3.0.0"
       },
       "dependencies": {
+        "punycode": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+          "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+          "dev": true
+        },
         "tough-cookie": {
-          "version": "2.3.4",
-          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
-          "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.0.tgz",
+          "integrity": "sha512-LHMvg+RBP/mAVNqVbOX8t+iJ+tqhBA/t49DuI7+IDAWHrASnesqSu1vWbKB7UrE2yk+HMFUBMadRGMkB4VCfog==",
           "dev": true,
           "requires": {
-            "punycode": "1.4.1"
+            "ip-regex": "3.0.0",
+            "psl": "1.1.29",
+            "punycode": "2.1.1"
           }
         }
       }
@@ -4685,15 +4667,6 @@
       "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
       "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
     },
-    "sntp": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz",
-      "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=",
-      "dev": true,
-      "requires": {
-        "hoek": "4.2.0"
-      }
-    },
     "socket.io": {
       "version": "2.0.4",
       "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz",
@@ -5221,13 +5194,13 @@
       "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
       "dev": true,
       "requires": {
-        "punycode": "2.1.0"
+        "punycode": "2.1.1"
       },
       "dependencies": {
         "punycode": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
-          "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=",
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+          "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
           "dev": true
         }
       }
@@ -5437,7 +5410,7 @@
       "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
       "dev": true,
       "requires": {
-        "browser-process-hrtime": "0.1.2"
+        "browser-process-hrtime": "0.1.3"
       }
     },
     "walk": {
@@ -5455,19 +5428,22 @@
       "dev": true
     },
     "whatwg-encoding": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
-      "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+      "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
       "dev": true,
       "requires": {
-        "iconv-lite": "0.4.19"
+        "iconv-lite": "0.4.24"
       },
       "dependencies": {
         "iconv-lite": {
-          "version": "0.4.19",
-          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
-          "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
-          "dev": true
+          "version": "0.4.24",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+          "dev": true,
+          "requires": {
+            "safer-buffer": "2.1.2"
+          }
         }
       }
     },
@@ -5477,15 +5453,15 @@
       "integrity": "sha1-DjaExsuZlbQ+/J3wPkw2XZX9nMA="
     },
     "whatwg-mimetype": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz",
-      "integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+      "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
       "dev": true
     },
     "whatwg-url": {
-      "version": "6.4.0",
-      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz",
-      "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==",
+      "version": "6.5.0",
+      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
+      "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
       "dev": true,
       "requires": {
         "lodash.sortby": "4.7.0",
diff --git a/frontend-js/package.json b/frontend-js/package.json
index 784d067b99236b36e02d3a5b36b945b7e9b73ec6..0ca1903dc4873aed9a2f2aabdb334886f9425c2a 100644
--- a/frontend-js/package.json
+++ b/frontend-js/package.json
@@ -35,6 +35,7 @@
     "log4js-memory-appender": "1.0.5",
     "mkdirp": "^0.5.1",
     "mocha": "^3.5.3",
+    "mock-local-storage": "^1.1.8",
     "molart": "1.2.1",
     "uglifyjs": "^2.4.10"
   },
@@ -45,7 +46,6 @@
     "file-saver": "^1.3.8",
     "http-status-codes": "^1.3.0",
     "is-url": "^1.2.4",
-    "js-cookie": "^2.2.0",
     "jstree": "^3.3.5",
     "jszip": "^3.1.5",
     "log4js": "0.6.38",
diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index 1a2af2afb2a2ac2719953ad8d74361445edd76fe..4fb3598f505f9e9930c5518320b15a0fee43dd24 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -1814,7 +1814,6 @@ ServerConnector.login = function (login, password) {
     if (data["login"] !== undefined) {
       params.login = data["login"];
     }
-    console.log(params.login);
     self.getSessionData().setLogin(params.login);
     return Promise.resolve(self.getSessionData().getToken());
   }, function (error) {
@@ -1829,8 +1828,7 @@ ServerConnector.login = function (login, password) {
 ServerConnector.logout = function () {
   var self = this;
   return self.sendGetRequest(self.logoutUrl()).then(function () {
-    self.getSessionData().setToken(undefined);
-    self.getSessionData().setLogin(undefined);
+    self.getSessionData().clear();
     window.location.reload(false);
   });
 };
diff --git a/frontend-js/src/main/js/SessionData.js b/frontend-js/src/main/js/SessionData.js
index 6228b934e8763708eae84a4faf8511e95b0ecdde..ff29324871a9156e084f2408ec8a65999b38129c 100644
--- a/frontend-js/src/main/js/SessionData.js
+++ b/frontend-js/src/main/js/SessionData.js
@@ -5,8 +5,7 @@
 var Point = require('./map/canvas/Point');
 var SessionObjectType = require('./SessionObjectType');
 
-var Cookies = require('js-cookie');
-
+// noinspection JSUnusedLocalSymbols
 var logger = require('./logger');
 
 /**
@@ -72,7 +71,7 @@ SessionData.prototype.getProjectId = function () {
  */
 SessionData.prototype.getShowComments = function () {
   var key = this.getKey(SessionObjectType.SHOW_COMMENT);
-  return Cookies.get(key) === "true";
+  return window.sessionStorage.getItem(key) === "true";
 };
 
 /**
@@ -81,7 +80,7 @@ SessionData.prototype.getShowComments = function () {
  */
 SessionData.prototype.setSearchQuery = function (value) {
   var key = this.getKey(SessionObjectType.SEARCH_QUERY);
-  Cookies.set(key, JSON.stringify(value));
+  window.sessionStorage.setItem(key, JSON.stringify(value));
 };
 
 /**
@@ -110,11 +109,12 @@ SessionData.prototype.setQuery = function (param) {
  */
 SessionData.prototype.getSearchQuery = function () {
   var key = this.getKey(SessionObjectType.SEARCH_QUERY);
-  var result = Cookies.get(key);
-  if (result !== undefined) {
-    result = JSON.parse(result);
+  var result = window.sessionStorage.getItem(key);
+  if (result !== undefined && result !== null) {
+    return JSON.parse(result);
+  } else {
+    return undefined;
   }
-  return result;
 };
 
 /**
@@ -123,7 +123,7 @@ SessionData.prototype.getSearchQuery = function () {
  */
 SessionData.prototype.setDrugQuery = function (value) {
   var key = this.getKey(SessionObjectType.DRUG_QUERY);
-  Cookies.set(key, JSON.stringify(value));
+  window.sessionStorage.setItem(key, JSON.stringify(value));
 };
 
 /**
@@ -132,11 +132,12 @@ SessionData.prototype.setDrugQuery = function (value) {
  */
 SessionData.prototype.getDrugQuery = function () {
   var key = this.getKey(SessionObjectType.DRUG_QUERY);
-  var result = Cookies.get(key);
-  if (result !== undefined) {
-    result = JSON.parse(result);
+  var result = window.sessionStorage.getItem(key);
+  if (result !== undefined && result !== null) {
+    return JSON.parse(result);
+  } else {
+    return undefined;
   }
-  return result;
 };
 
 /**
@@ -145,7 +146,7 @@ SessionData.prototype.getDrugQuery = function () {
  */
 SessionData.prototype.setMiRnaQuery = function (value) {
   var key = this.getKey(SessionObjectType.MI_RNA_QUERY);
-  Cookies.set(key, JSON.stringify(value));
+  window.sessionStorage.setItem(key, JSON.stringify(value));
 };
 
 /**
@@ -154,11 +155,12 @@ SessionData.prototype.setMiRnaQuery = function (value) {
  */
 SessionData.prototype.getMiRnaQuery = function () {
   var key = this.getKey(SessionObjectType.MI_RNA_QUERY);
-  var result = Cookies.get(key);
-  if (result !== undefined) {
-    result = JSON.parse(result);
+  var result = window.sessionStorage.getItem(key);
+  if (result !== undefined && result !== null) {
+    return JSON.parse(result);
+  } else {
+    return undefined;
   }
-  return result;
 };
 
 /**
@@ -167,7 +169,7 @@ SessionData.prototype.getMiRnaQuery = function () {
  */
 SessionData.prototype.setChemicalQuery = function (value) {
   var key = this.getKey(SessionObjectType.CHEMICAL_QUERY);
-  Cookies.set(key, JSON.stringify(value));
+  window.sessionStorage.setItem(key, JSON.stringify(value));
 };
 
 /**
@@ -176,11 +178,12 @@ SessionData.prototype.setChemicalQuery = function (value) {
  */
 SessionData.prototype.getChemicalQuery = function () {
   var key = this.getKey(SessionObjectType.CHEMICAL_QUERY);
-  var result = Cookies.get(key);
-  if (result !== undefined) {
-    result = JSON.parse(result);
+  var result = window.sessionStorage.getItem(key);
+  if (result !== undefined && result !== null) {
+    return JSON.parse(result);
+  } else {
+    return undefined;
   }
-  return result;
 };
 
 /**
@@ -189,7 +192,7 @@ SessionData.prototype.getChemicalQuery = function () {
  */
 SessionData.prototype.setShowComments = function (value) {
   var key = this.getKey(SessionObjectType.SHOW_COMMENT);
-  Cookies.set(key, value + "");
+  window.sessionStorage.setItem(key, value + "");
 };
 
 /**
@@ -198,7 +201,12 @@ SessionData.prototype.setShowComments = function (value) {
  */
 SessionData.prototype.getSelectedBackgroundOverlay = function () {
   var key = this.getKey(SessionObjectType.SELECTED_BACKGROUND_OVERLAY);
-  return Cookies.get(key);
+  var result = window.sessionStorage.getItem(key);
+  if (result !== undefined && result !== null) {
+    return parseInt(result);
+  } else {
+    return undefined;
+  }
 };
 
 /**
@@ -207,7 +215,7 @@ SessionData.prototype.getSelectedBackgroundOverlay = function () {
  */
 SessionData.prototype.setSelectedBackgroundOverlay = function (value) {
   var key = this.getKey(SessionObjectType.SELECTED_BACKGROUND_OVERLAY);
-  Cookies.set(key, value + "");
+  window.sessionStorage.setItem(key, value + "");
 };
 
 /**
@@ -216,13 +224,16 @@ SessionData.prototype.setSelectedBackgroundOverlay = function (value) {
  */
 SessionData.prototype.getVisibleOverlays = function () {
   var key = this.getKey(SessionObjectType.VISIBLE_OVERLAYS);
-  var value = Cookies.get(key);
-  if (value === undefined || value === "") {
-    value = [];
+  var value = window.sessionStorage.getItem(key);
+  if (value === undefined || value === null || value === "") {
+    return [];
   } else {
-    value = value.split(",");
+    var result = [];
+    value.split(",").forEach(function (element) {
+      result.push(parseInt(element));
+    });
+    return result;
   }
-  return value;
 };
 
 /**
@@ -231,7 +242,7 @@ SessionData.prototype.getVisibleOverlays = function () {
  */
 SessionData.prototype.setVisibleOverlays = function (value) {
   var key = this.getKey(SessionObjectType.VISIBLE_OVERLAYS);
-  Cookies.set(key, value + "");
+  window.sessionStorage.setItem(key, value + "");
 };
 
 /**
@@ -241,7 +252,7 @@ SessionData.prototype.setVisibleOverlays = function (value) {
  */
 SessionData.prototype.setZoomLevel = function (model, value) {
   var key = this.getKey(SessionObjectType.ZOOM_LEVEL, [model.getId()]);
-  Cookies.set(key, value + "");
+  window.sessionStorage.setItem(key, value + "");
 };
 
 /**
@@ -251,11 +262,12 @@ SessionData.prototype.setZoomLevel = function (model, value) {
  */
 SessionData.prototype.getZoomLevel = function (model) {
   var key = this.getKey(SessionObjectType.ZOOM_LEVEL, [model.getId()]);
-  var value = Cookies.get(key);
-  if (value !== undefined) {
-    value = parseInt(value);
+  var value = window.sessionStorage.getItem(key);
+  if (value !== undefined && value !== null) {
+    return parseInt(value);
+  } else {
+    return undefined;
   }
-  return value;
 };
 
 /**
@@ -264,10 +276,10 @@ SessionData.prototype.getZoomLevel = function (model) {
  */
 SessionData.prototype.setToken = function (token) {
   var key = SessionObjectType.TOKEN;
-  if (token === undefined) {
-    Cookies.remove(key);
+  if (token === undefined || token === null) {
+    window.sessionStorage.removeItem(key);
   } else {
-    Cookies.set(key, token);
+    window.sessionStorage.setItem(key, token);
   }
 };
 
@@ -277,7 +289,7 @@ SessionData.prototype.setToken = function (token) {
  */
 SessionData.prototype.getToken = function () {
   var key = SessionObjectType.TOKEN;
-  return Cookies.get(key);
+  return window.sessionStorage.getItem(key);
 };
 
 /**
@@ -286,10 +298,10 @@ SessionData.prototype.getToken = function () {
  */
 SessionData.prototype.setLogin = function (login) {
   var key = SessionObjectType.LOGIN;
-  if (login === undefined) {
-    Cookies.remove(key);
+  if (login === undefined || login === null) {
+    window.sessionStorage.removeItem(key);
   } else {
-    Cookies.set(key, login);
+    window.sessionStorage.setItem(key, login);
   }
 };
 
@@ -299,7 +311,7 @@ SessionData.prototype.setLogin = function (login) {
  */
 SessionData.prototype.getLogin = function () {
   var key = SessionObjectType.LOGIN;
-  return Cookies.get(key);
+  return window.sessionStorage.getItem(key);
 };
 
 /**
@@ -309,7 +321,7 @@ SessionData.prototype.getLogin = function () {
  */
 SessionData.prototype.setCenter = function (model, value) {
   var key = this.getKey(SessionObjectType.CENTER, [model.getId()]);
-  Cookies.set(key, value.x + "," + value.y);
+  window.sessionStorage.setItem(key, value.x + "," + value.y);
 };
 
 /**
@@ -319,12 +331,13 @@ SessionData.prototype.setCenter = function (model, value) {
  */
 SessionData.prototype.getCenter = function (model) {
   var key = this.getKey(SessionObjectType.CENTER, [model.getId()]);
-  var value = Cookies.get(key);
-  if (value !== undefined) {
+  var value = window.sessionStorage.getItem(key);
+  if (value !== undefined && value !== null) {
     var tmp = value.split(",");
-    value = new Point(tmp[0], tmp[1]);
+    return new Point(tmp[0], tmp[1]);
+  } else {
+    return undefined;
   }
-  return value;
 };
 
 /**
@@ -343,4 +356,8 @@ SessionData.prototype.getKey = function (type, args) {
   return type + "_" + this.getProjectId() + "_" + args.join("_");
 };
 
+SessionData.prototype.clear = function () {
+  window.sessionStorage.clear();
+};
+
 module.exports = SessionData;
diff --git a/frontend-js/src/main/js/map/overlay/SearchDbOverlay.js b/frontend-js/src/main/js/map/overlay/SearchDbOverlay.js
index 4dd244a74b572cc3e706c62c0a24acfcf6d260fa..8f5e46dbf98aebf8616772b197cb3090b97607b6 100644
--- a/frontend-js/src/main/js/map/overlay/SearchDbOverlay.js
+++ b/frontend-js/src/main/js/map/overlay/SearchDbOverlay.js
@@ -237,7 +237,6 @@ SearchDbOverlay.prototype.searchByCoordinates = function (params) {
 
   ServerConnector.getSessionData().setSearchQuery(query);
 
-  console.log(zoom);
   if (self._elementsByQuery[query] !== undefined) {
     self.setQueries([query]);
     return self.callListeners('onSearch', {
diff --git a/frontend-js/src/test/js/helper.js b/frontend-js/src/test/js/helper.js
index ab4c42c742d31a8ddbdfe2f3cfc6cb7af7cb7a2b..7c67cfefb2e40f7b42e2b30a26a808c3f0d77203 100644
--- a/frontend-js/src/test/js/helper.js
+++ b/frontend-js/src/test/js/helper.js
@@ -33,7 +33,6 @@ var SearchDbOverlay = require("../../main/js/map/overlay/SearchDbOverlay");
 var ServerConnector = require("../../main/js/ServerConnector");
 var User = require("../../main/js/map/data/User");
 
-var Cookies = require('js-cookie');
 var fs = require('fs');
 var Promise = require('bluebird');
 
@@ -487,15 +486,14 @@ Helper.prototype.createMarker = function (params) {
  * Changes url but saves the cookies.
  */
 Helper.prototype.setUrl = function (url) {
-  var cookies = Cookies.get();
   global.dom.reconfigure({
     url: url
   });
-  for (var cookie in cookies) {
-    if (cookies.hasOwnProperty(cookie)) {
-      Cookies.set(cookie, cookies[cookie]);
-    }
-  }
+  // for (var cookie in cookies) {
+  //   if (cookies.hasOwnProperty(cookie)) {
+  //     Cookies.set(cookie, cookies[cookie]);
+  //   }
+  // }
   GuiConnector.init();
 };
 
diff --git a/frontend-js/src/test/js/mocha-config.js b/frontend-js/src/test/js/mocha-config.js
index 72f180aafbd82593ad38a86d65fd54c52d177b2a..ccc71a8bbb3b83c4f2f81fd4ded58c9b73496526 100644
--- a/frontend-js/src/test/js/mocha-config.js
+++ b/frontend-js/src/test/js/mocha-config.js
@@ -1,7 +1,6 @@
 "use strict";
 
 var Promise = require("bluebird");
-var Cookies = require('js-cookie');
 
 
 var Helper = require('./helper');
@@ -14,13 +13,6 @@ var path = require('path');
 
 var logger = require('./logger');
 
-function removeCookies() {
-  var cookies = Cookies.get();
-  for (var cookie in cookies) {
-    Cookies.remove(cookie);
-  }
-}
-
 function mockBootstrap() {
   $.fn.typeahead = function () {
     logger.debug("Mock typeahead function call");
@@ -56,6 +48,7 @@ before(function () {
   global.dom = new jsdom.JSDOM();
   global.window = global.dom.window;
   global.document = window.document;
+  require('mock-local-storage');
   global.document.elementFromPoint = function () {
   };
 
@@ -205,10 +198,9 @@ beforeEach(function () {
 
   logger.flushBuffer();
 
-  removeCookies();
-
   ServerConnector.init();
 
+  ServerConnector.getSessionData(null).clear();
   ServerConnector.getSessionData(null).setToken("MOCK_TOKEN_ID");
   ServerConnector.getSessionData(null).setLogin("anonymous");