diff --git a/index.html b/index.html
index fd52bda..5299e76 100644
--- a/index.html
+++ b/index.html
@@ -75,8 +75,8 @@
Wallet
About
- Settings
- Fees
+ Settings
+ Fees
diff --git a/js/coinbin.js b/js/coinbin.js
index 1e56054..a326d7d 100644
--- a/js/coinbin.js
+++ b/js/coinbin.js
@@ -1932,13 +1932,11 @@ $(document).ready(function() {
});
$("#coinjs_coin").change(function(){
+ // set cookie for use after page (re)load
+ let cookie = new Cookie("coinbin_coin_option");
+ cookie.setValue($(this).val());
- var optionSeleted = ($("option:selected",this).attr("rel")).split(";");
-
- let cookieSelectedCoin = new Cookie("coinbin_coin");
- cookieSelectedCoin.setCookie(optionSeleted)
-
- console.log(cookieSelectedCoin.cookieValue);
+ optionSeleted = ($("option:selected",this).attr("rel")).split(";");
// deal with broadcasting settings
if(optionSeleted[5]=="false"){
@@ -2290,4 +2288,16 @@ $(document).ready(function() {
return true;
};
+ /* set network from cookie on page load */
+
+ function setNetwork () {
+ let cookie = new Cookie("coinbin_coin_option");
+ if(val = cookie.getValue())
+ {
+ $("#coinjs_coin").val(val)
+ $("#coinjs_coin").trigger("change")
+ }
+ }
+ setNetwork()
+
});
diff --git a/js/cookie.js b/js/cookie.js
index 1e989ab..4b9867b 100644
--- a/js/cookie.js
+++ b/js/cookie.js
@@ -1,43 +1,85 @@
class Cookie {
+ #name;
+ #value;
+
constructor(name) {
- this.cookieName = name;
-
- // read the cookies value (initializes cookieValue)
- this.readCookie();
+ this.name = name;
+ this.value;
+
+ // read the cookies value (initializes value)
+ this.get();
}
- readCookie() {
+ get() {
var allCookies = document.cookie;
+ var cookie;
- // find the cookie that is currently being looked at.
- allCookies.split(";").forEach((_, cookie) => {
- var currentCookieName, currentCookieValue = cookie.split("=");
+ // find out how much cookies are set to be able to pick the right one
+ if(!allCookies)
+ {
+ // the tray is empty. leave fields as initialized
+ return;
+ }
- if(currentCookieName = this.cookieName)
+ if(allCookies.indexOf(";") > 0)
+ {
+ // many cookies found, pick one
+ cookie = this.pickCookie(allCookies);
+ } else {
+ // only one cookie found. Check if its the right one
+ if(this.validateCookie(allCookies))
{
- // set cookieValue to the value of this cookie
- this.cookieValue = currentCookieValue;
- break;
+ cookie = allCookies;
+ }
+ }
+
+ // read contents of the picked cookie
+ if(cookie) {
+ this.value = this.readCookieContents(cookie);
+ } else {
+ console.log("Coudn't get cookie");
+ }
+ }
+
+ pickCookie(manyCookies) {
+ manyCookies.split(";").forEach((cookie, _) => {
+ if(this.validateCookie(cookie))
+ {
+ return cookie;
}
});
-
- // default to NULL if cookie was not found
- this.cookieValue = NULL;
}
- setCookie(cookieValue) {
+ validateCookie(cookie) {
+ if(cookie.indexOf("=") >= 0)
+ {
+ var cookieCredentials = cookie.split("=");
+ var name = cookieCredentials[0]
+ return name == this.name;
+ } else {
+ return false;
+ }
+ }
+
+ readCookieContents(cookie) {
+ var cookieCredentials = cookie.split("=");
+ var value = cookieCredentials[1];
+ return JSON.parse(value);
+ }
+
+ setValue(valueToBeSet) {
// update internal record
- this.cookieValue = currentCookieValue;
+ this.value = valueToBeSet;
// prepare value for storing
- cookieValueJSON = JSON.stringify(cookieValue);
+ var valueJSON = JSON.stringify(valueToBeSet);
// set cookie with expiry on browser close
- document.cookie = this.cookieName+"="+cookieValueJSON;
+ document.cookie = this.name+"="+valueJSON;
}
- getCookieValue() {
- this.readCookie();
- return this.cookieValue;
+ getValue() {
+ this.get();
+ return this.value;
}
}
\ No newline at end of file