diff options
| author | jmoenig <jens@moenig.org> | 2013-09-17 10:37:17 +0200 |
|---|---|---|
| committer | jmoenig <jens@moenig.org> | 2013-09-17 10:37:17 +0200 |
| commit | f541b776ea706bcc9c2edc938a2425aa33db5639 (patch) | |
| tree | 2a47be373affdff03e46183739af716992336209 | |
| parent | d278b2b1507027ead1cf14a901b800dad918484b (diff) | |
| download | snap-f541b776ea706bcc9c2edc938a2425aa33db5639.tar.gz snap-f541b776ea706bcc9c2edc938a2425aa33db5639.zip | |
fixed #119, #149
accessing a shared projects requires lowercasing the username - this is
now automatically taken care of
| -rw-r--r-- | cloud.js | 16 | ||||
| -rw-r--r-- | gui.js | 12 | ||||
| -rwxr-xr-x | history.txt | 5 |
3 files changed, 28 insertions, 5 deletions
@@ -29,7 +29,7 @@ /*global modules, IDE_Morph, SnapSerializer, hex_sha512, alert, nop*/ -modules.cloud = '2013-May-10'; +modules.cloud = '2013-September-17'; // Global stuff @@ -579,6 +579,18 @@ Cloud.prototype.parseResponse = function (src) { return ans; }; +Cloud.prototype.parseDict = function (src) { + var dict = {}; + if (!src) {return dict; } + src.split("&").forEach(function (entry) { + var pair = entry.split("="), + key = decodeURIComponent(pair[0]), + val = decodeURIComponent(pair[1]); + dict[key] = val; + }); + return dict; +}; + Cloud.prototype.encodeDict = function (dict) { var str = '', pair, @@ -589,7 +601,7 @@ Cloud.prototype.encodeDict = function (dict) { pair = encodeURIComponent(key) + '=' + encodeURIComponent(dict[key]); - if (pair.length > 0) { + if (str.length > 0) { str += '&'; } str += pair; @@ -68,7 +68,7 @@ sb, CommentMorph, CommandBlockMorph*/ // Global stuff //////////////////////////////////////////////////////// -modules.gui = '2013-September-16'; +modules.gui = '2013-September-17'; // Declarations @@ -298,6 +298,7 @@ IDE_Morph.prototype.openIn = function (world) { */ function interpretUrlAnchors() { + var dict; if (location.hash.substr(0, 6) === '#open:') { hash = location.hash.substr(6); if (hash.charAt(0) === '%' @@ -335,8 +336,13 @@ IDE_Morph.prototype.openIn = function (world) { this.shield.setExtent(this.parent.extent()); this.parent.add(this.shield); myself.showMessage('Fetching project\nfrom the cloud...'); + + // make sure to lowercase the username + dict = SnapCloud.parseDict(location.hash.substr(9)); + dict.Username = dict.Username.toLowerCase(); + SnapCloud.getPublicProject( - location.hash.substr(9), + SnapCloud.encodeDict(dict), function (projectData) { var msg; myself.nextSteps([ @@ -3735,7 +3741,7 @@ IDE_Morph.prototype.setCloudURL = function () { 'https://snapcloud.miosoft.com/miocon/app/' + 'login?_app=SnapCloud', 'local network lab' : - '192.168.2.110:8087/miocon/app/login?_app=SnapCloud', + '192.168.2.107:8087/miocon/app/login?_app=SnapCloud', 'local network office' : '192.168.186.167:8087/miocon/app/login?_app=SnapCloud', 'localhost dev' : diff --git a/history.txt b/history.txt index 32efec2..795e191 100755 --- a/history.txt +++ b/history.txt @@ -1905,3 +1905,8 @@ ______ * GUI: prompt() - invocation fixes (null-choices) * GUI: synchronous URL fetching simplifications for libraries and example projects * GUI: fixed #115 - prevent loading several instances of the same block definition + +130917 +------ +* Cloud: encodeDict() fix and new parseDict() method - used for accessing shared projects +* GUI: fixed #119, #149 (accessing a shared projects requires lowercasing the username) |
