saving dialog somehow vanished during refactoring

better error handling for posts that fail to save
This commit is contained in:
Sam 2013-08-29 17:06:27 +10:00
parent 47c6ba2f51
commit 2c61828668

View file

@ -442,6 +442,7 @@ Discourse.Composer = Discourse.Model.extend({
postStream = this.get('topic.postStream'), postStream = this.get('topic.postStream'),
addedToStream = false; addedToStream = false;
// Build the post object // Build the post object
var createdPost = Discourse.Post.create({ var createdPost = Discourse.Post.create({
raw: this.get('reply'), raw: this.get('reply'),
@ -482,6 +483,8 @@ Discourse.Composer = Discourse.Model.extend({
var composer = this; var composer = this;
return Ember.Deferred.promise(function(promise) { return Ember.Deferred.promise(function(promise) {
composer.set('composeState', SAVING);
createdPost.save(function(result) { createdPost.save(function(result) {
var addedPost = false, var addedPost = false,
saving = true; saving = true;
@ -515,8 +518,16 @@ Discourse.Composer = Discourse.Model.extend({
if (postStream) { if (postStream) {
postStream.undoPost(createdPost); postStream.undoPost(createdPost);
} }
promise.reject($.parseJSON(error.responseText).errors[0]);
composer.set('composeState', OPEN); composer.set('composeState', OPEN);
// TODO extract error handling code
var parsedError;
try {
parsedError = $.parseJSON(error.responseText).errors[0];
}
catch(ex) {
parsedError = "Unknown error saving post, try again. Error: " + error.status + " " + error.statusText;
}
promise.reject(parsedError);
}); });
}); });
}, },