summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmoenig <jens@moenig.org>2015-02-06 11:29:46 +0100
committerjmoenig <jens@moenig.org>2015-02-06 11:29:46 +0100
commite45562fc530f74fff38baa7ba8c4f39ab8e4e08f (patch)
treec5e93b506b9d9cff56c4388d807b16ee81aa6034
parent273c58440cf86ed9679904a04a8442335228755c (diff)
downloadsnap-e45562fc530f74fff38baa7ba8c4f39ab8e4e08f.tar.gz
snap-e45562fc530f74fff38baa7ba8c4f39ab8e4e08f.zip
Added url switch #cloud: to open a shared project in edit mode
-rw-r--r--gui.js42
-rwxr-xr-xhistory.txt5
2 files changed, 46 insertions, 1 deletions
diff --git a/gui.js b/gui.js
index 73fffe9..b30b6de 100644
--- a/gui.js
+++ b/gui.js
@@ -69,7 +69,7 @@ SpeechBubbleMorph*/
// Global stuff ////////////////////////////////////////////////////////
-modules.gui = '2015-January-21';
+modules.gui = '2015-February-06';
// Declarations
@@ -390,6 +390,46 @@ IDE_Morph.prototype.openIn = function (world) {
},
this.cloudError()
);
+ } else if (location.hash.substr(0, 7) === '#cloud:') {
+ this.shield = new Morph();
+ this.shield.alpha = 0;
+ 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(7));
+ dict.Username = dict.Username.toLowerCase();
+
+ SnapCloud.getPublicProject(
+ SnapCloud.encodeDict(dict),
+ function (projectData) {
+ var msg;
+ myself.nextSteps([
+ function () {
+ msg = myself.showMessage('Opening project...');
+ },
+ function () {nop(); }, // yield (bug in Chrome)
+ function () {
+ if (projectData.indexOf('<snapdata') === 0) {
+ myself.rawOpenCloudDataString(projectData);
+ } else if (
+ projectData.indexOf('<project') === 0
+ ) {
+ myself.rawOpenProjectString(projectData);
+ }
+ myself.hasChangedMedia = true;
+ },
+ function () {
+ myself.shield.destroy();
+ myself.shield = null;
+ msg.destroy();
+ myself.toggleAppMode(false);
+ }
+ ]);
+ },
+ this.cloudError()
+ );
} else if (location.hash.substr(0, 6) === '#lang:') {
urlLanguage = location.hash.substr(6);
this.setLanguage(urlLanguage);
diff --git a/history.txt b/history.txt
index ca2d24c..bac4a70 100755
--- a/history.txt
+++ b/history.txt
@@ -2430,3 +2430,8 @@ ______
150128
------
* Objects: Fixed #710
+
+150206
+------
+* GUI: Added url switch #cloud: to open a shared project in edit mode
+