From 0a5619bf29e8011198e109ae7e81011cb9a2c90f Mon Sep 17 00:00:00 2001 From: Joe Fiorini Date: Sat, 10 Jan 2015 16:08:52 -0500 Subject: [PATCH] URL encode data before making URL --- build/index.html | 11 +++++++++-- src/index.html | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/build/index.html b/build/index.html index 5d56e32..6bba9ee 100644 --- a/build/index.html +++ b/build/index.html @@ -63,7 +63,8 @@ if (matches && matches.length && matches.length > 0) { var serializedState = matches[1]; - var deserializedState = JSON.parse(atob(serializedState)); + var decodedState = decodeURIComponent(serializedState); + var deserializedState = JSON.parse(atob(decodedState)); var adaptedState = adapt(deserializedState); console.log(adaptedState); board.ports.loadedState.send(adaptedState); @@ -90,11 +91,17 @@ }, 50); }); + function urlForState(state) { + var encoded = encodeURIComponent(state); + return window.location.protocol + "//" + window.location.host + "/boards/" + encoded + } + board.ports.serializeState.subscribe(function(state) { var encoded = btoa(JSON.stringify(state)); var input = document.querySelector(".share__url"); + var url = urlForState(encoded); - input.value = window.location.protocol + "//" + window.location.host + "/boards/" + encoded; + input.value = url; input.select(); return state; }); diff --git a/src/index.html b/src/index.html index 5d56e32..6bba9ee 100644 --- a/src/index.html +++ b/src/index.html @@ -63,7 +63,8 @@ if (matches && matches.length && matches.length > 0) { var serializedState = matches[1]; - var deserializedState = JSON.parse(atob(serializedState)); + var decodedState = decodeURIComponent(serializedState); + var deserializedState = JSON.parse(atob(decodedState)); var adaptedState = adapt(deserializedState); console.log(adaptedState); board.ports.loadedState.send(adaptedState); @@ -90,11 +91,17 @@ }, 50); }); + function urlForState(state) { + var encoded = encodeURIComponent(state); + return window.location.protocol + "//" + window.location.host + "/boards/" + encoded + } + board.ports.serializeState.subscribe(function(state) { var encoded = btoa(JSON.stringify(state)); var input = document.querySelector(".share__url"); + var url = urlForState(encoded); - input.value = window.location.protocol + "//" + window.location.host + "/boards/" + encoded; + input.value = url; input.select(); return state; });