diff options
| author | Gubolin <gubolin@fantasymail.de> | 2014-08-02 11:45:33 +0200 |
|---|---|---|
| committer | Gubolin <gubolin@fantasymail.de> | 2014-08-02 11:45:33 +0200 |
| commit | 66f94a7cef1dc132b2db38ea8fcb6d66eb96fc8d (patch) | |
| tree | d6a47294c4cd405154309132a8484e0b0b521382 | |
| parent | 3571c41da1d30e61e8436079073ebcbfe50ac8de (diff) | |
| download | snap-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.js | 25 | ||||
| -rw-r--r-- | gui.js | 29 |
2 files changed, 21 insertions, 33 deletions
@@ -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 }; @@ -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'; |
