summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGubolin <gubolin@fantasymail.de>2014-08-02 11:45:33 +0200
committerGubolin <gubolin@fantasymail.de>2014-08-02 11:45:33 +0200
commit66f94a7cef1dc132b2db38ea8fcb6d66eb96fc8d (patch)
treed6a47294c4cd405154309132a8484e0b0b521382
parent3571c41da1d30e61e8436079073ebcbfe50ac8de (diff)
downloadsnap-66f94a7cef1dc132b2db38ea8fcb6d66eb96fc8d.tar.gz
snap-66f94a7cef1dc132b2db38ea8fcb6d66eb96fc8d.zip
save GitHub project in one file (now media loads properly); make it easier to open projects by other users
-rw-r--r--github.js25
-rw-r--r--gui.js29
2 files changed, 21 insertions, 33 deletions
diff --git a/github.js b/github.js
index 6f0ce6e..573f4d4 100644
--- a/github.js
+++ b/github.js
@@ -68,21 +68,12 @@ GitHubBackend.prototype.getProject = function (
var repo = myself.gh.getRepo(userName, projectName);
var branch = repo.getBranch(); // master (default)
- var media, pdata;
branch.read('snap.xml', false).then(
function (sourceContent) {
- branch.read('media.xml', false).then( // true for binary
- function (mediaContent) {
- callBack.call(
- null,
- sourceContent.content,
- mediaContent.content
- );
- },
- function (error) {
- errorCall.call(this, error, 'GitHub');
- }
+ callBack.call(
+ null,
+ sourceContent.content
);
},
function (error) {
@@ -133,16 +124,15 @@ GitHubBackend.prototype.login = function (
GitHubBackend.prototype.saveProject = function (commitMessage, ide, callBack, errorCall) {
var myself = this,
- pdata,
- media;
+ data;
+ var pdata, media;
var repoName = ide.projectName.replace(/[^\w-]/g, ''); // TODO validation of project name
ide.serializer.isCollectingMedia = true;
pdata = ide.serializer.serialize(ide.stage);
media = ide.hasChangedMedia ?
ide.serializer.mediaXML(ide.projectName) : null;
- ide.serializer.isCollectingMedia = false;
- ide.serializer.flushMedia();
+ data = '<snapdata>' + pdata + media + '</snapdata>';
// check if serialized data can be parsed back again
try {
@@ -194,8 +184,7 @@ GitHubBackend.prototype.saveProject = function (commitMessage, ide, callBack, er
var message = commitMessage;
var contents = {
- 'snap.xml': pdata,
- 'media.xml': media, // may be binary
+ 'snap.xml': data,
'README.md': ide.projectNotes
};
diff --git a/gui.js b/gui.js
index 85b46a3..21ea4d9 100644
--- a/gui.js
+++ b/gui.js
@@ -401,20 +401,14 @@ IDE_Morph.prototype.openIn = function (world) {
GitHub.getProject(
dict.Username,
dict.projectName,
- function (projectData) {
+ function (code) {
var msg;
myself.nextSteps([
function () {
msg = myself.showMessage('Opening GitHub project...');
},
function () {
- if (projectData.indexOf('<snapdata') === 0) {
- myself.rawOpenCloudDataString(projectData);
- } else if (
- projectData.indexOf('<project') === 0
- ) {
- myself.rawOpenProjectString(projectData);
- }
+ myself.rawOpenCloudDataString(code);
myself.hasChangedMedia = true;
},
function () {
@@ -3937,7 +3931,7 @@ IDE_Morph.prototype.saveProjectToCloud = function (name) {
IDE_Morph.prototype.saveProjectToGitHub = function (name, commitMessage) {
var myself = this;
if (name) {
- this.showMessage('Saving project\nto GitHub...');
+ this.showMessage('Comitting project\nto GitHub...');
this.setProjectName(name);
GitHub.saveProject(
commitMessage,
@@ -5020,14 +5014,19 @@ ProjectDialogMorph.prototype.openCloudProject = function (project) {
]);
};
-ProjectDialogMorph.prototype.openGitHubProject = function (project) {
+ProjectDialogMorph.prototype.openGitHubProject = function (project, user) {
var myself = this;
+
+ if (user == null) {
+ user = GitHub.username;
+ }
+
myself.ide.nextSteps([
function () {
myself.ide.showMessage('Fetching project\nfrom GitHub...');
},
function () {
- myself.rawOpenGitHubProject(project);
+ myself.rawOpenGitHubProject(project, user);
}
]);
};
@@ -5058,14 +5057,13 @@ ProjectDialogMorph.prototype.rawOpenCloudProject = function (proj) {
this.destroy();
};
-ProjectDialogMorph.prototype.rawOpenGitHubProject = function (proj) {
+ProjectDialogMorph.prototype.rawOpenGitHubProject = function (proj, user) {
var myself = this;
GitHub.getProject(
- GitHub.username,
+ user,
proj.ProjectName,
- function (code, media) {
+ function (code) {
myself.ide.source = 'github';
- myself.ide.droppedText(media);
myself.ide.droppedText(code);
},
myself.ide.githubError()
@@ -5162,6 +5160,7 @@ ProjectDialogMorph.prototype.saveGitHubProject = function () {
var myself = this;
this.ide.showMessage('Committing project\nto GitHub...');
GitHub.saveProject(
+ null,
this.ide,
function () {
myself.ide.source = 'github';