Upgrade Ember.js, fix swallowing of template errors, report unresolved promises in development mode.

This commit is contained in:
Robin Ward
2013-12-02 13:15:31 -05:00
parent 79f1055164
commit 48bfcfadd9
13 changed files with 10620 additions and 7859 deletions

View File

@@ -283,8 +283,7 @@ Discourse.ComposerController = Discourse.Controller.extend({
} else {
opts.tested = true;
if (!opts.ignoreIfChanged) {
this.cancelComposer().then(function() { self.open(opts); },
function() { return promise.reject(); });
this.cancelComposer().then(function() { self.open(opts); }).fail(function() { return promise.reject(); });
}
return promise;
}
@@ -341,10 +340,8 @@ Discourse.ComposerController = Discourse.Controller.extend({
self.destroyDraft();
self.get('model').clearState();
self.close();
promise.resolve();
} else {
promise.reject();
}
promise.resolve();
});
} else {
// it is possible there is some sort of crazy draft with no body ... just give up on it

View File

@@ -284,10 +284,10 @@ Discourse.PostStream = Em.Object.extend({
var self = this;
// Make sure we can append more posts
if (!self.get('canAppendMore')) { return Ember.RSVP.reject(); }
if (!self.get('canAppendMore')) { return Ember.RSVP.resolve(); }
var postIds = self.get('nextWindow');
if (Ember.isEmpty(postIds)) { return Ember.RSVP.reject(); }
if (Ember.isEmpty(postIds)) { return Ember.RSVP.resolve(); }
self.set('loadingBelow', true);
@@ -310,14 +310,13 @@ Discourse.PostStream = Em.Object.extend({
@returns {Ember.Deferred} a promise that's resolved when the posts have been added.
**/
prependMore: function() {
var postStream = this,
rejectedPromise = Ember.RSVP.reject();
var postStream = this;
// Make sure we can append more posts
if (!postStream.get('canPrependMore')) { return rejectedPromise; }
if (!postStream.get('canPrependMore')) { return Ember.RSVP.resolve(); }
var postIds = postStream.get('previousWindow');
if (Ember.isEmpty(postIds)) { return rejectedPromise; }
if (Ember.isEmpty(postIds)) { return Ember.RSVP.resolve(); }
postStream.set('loadingAbove', true);
return postStream.findPostsByIds(postIds.reverse()).then(function(posts) {

View File

@@ -355,7 +355,7 @@ Discourse.Topic.reopenClass({
data: {destination_topic_id: destinationTopicId}
}).then(function (result) {
if (result.success) return result;
promise.reject();
promise.reject(new Error("error merging topic"));
});
return promise;
},
@@ -366,7 +366,7 @@ Discourse.Topic.reopenClass({
data: opts
}).then(function (result) {
if (result.success) return result;
promise.reject();
promise.reject(new Error("error moving posts topic"));
});
return promise;
}

View File

@@ -7,7 +7,6 @@
@module Discourse
**/
Discourse.TopicFromParamsRoute = Discourse.Route.extend({
abc: 'asdfasdf',
setupController: function(controller, params) {
params = params || {};

View File

@@ -7,8 +7,6 @@
@module Discourse
**/
Discourse.TopicRoute = Discourse.Route.extend({
abc: 'def',
redirect: function() { Discourse.redirectIfLoginRequired(this); },
actions: {

View File

@@ -11,6 +11,24 @@
})();
</script>
<% if Rails.env.development? %>
<script>
// Don't swallow promises in development mode. Let's fix those.
Ember.RSVP.configure('onerror', function(e) {
if (e) {
if (e.message || e.stack) {
console.log(e.message);
console.log(e.stack);
} else {
console.log("Uncaught promise: " + e.toString());
}
} else {
console.log("A promise failed but was not caught.");
}
});
</script>
<% end %>
<script>
Discourse.CDN = '<%= Rails.configuration.action_controller.asset_host %>';
Discourse.BaseUrl = '<%= RailsMultisite::ConnectionManagement.current_hostname %>';