diff --git a/app/assets/javascripts/admin/models/admin_user.js b/app/assets/javascripts/admin/models/admin_user.js index ba5bc32fcef..bd1bcfd6edd 100644 --- a/app/assets/javascripts/admin/models/admin_user.js +++ b/app/assets/javascripts/admin/models/admin_user.js @@ -238,9 +238,9 @@ Discourse.AdminUser = Discourse.User.extend({ loadDetails: function() { var model = this; - if (model.get('loadedDetails')) { return; } + if (model.get('loadedDetails')) { return Ember.RSVP.resolve(model); } - Discourse.AdminUser.find(model.get('username_lower')).then(function (result) { + return Discourse.AdminUser.find(model.get('username_lower')).then(function (result) { model.setProperties(result); model.set('loadedDetails', true); }); diff --git a/app/assets/javascripts/admin/routes/admin_email_preview_digest_route.js b/app/assets/javascripts/admin/routes/admin_email_preview_digest_route.js index 5dafb8aad6d..1c03f56a397 100644 --- a/app/assets/javascripts/admin/routes/admin_email_preview_digest_route.js +++ b/app/assets/javascripts/admin/routes/admin_email_preview_digest_route.js @@ -11,14 +11,16 @@ var oneWeekAgo = function() { return moment().subtract('days',7).format('YYYY-MM-DD'); }; -Discourse.AdminEmailPreviewDigestRoute = Discourse.Route.extend(Discourse.ModelReady, { +Discourse.AdminEmailPreviewDigestRoute = Discourse.Route.extend({ model: function() { return Discourse.EmailPreview.findDigest(oneWeekAgo()); }, - modelReady: function(controller, model) { + afterModel: function(model) { + var controller = this.controllerFor('adminEmailPreviewDigest'); controller.setProperties({ + model: model, lastSeen: oneWeekAgo(), showHtml: true }); diff --git a/app/assets/javascripts/admin/routes/admin_user_route.js b/app/assets/javascripts/admin/routes/admin_user_route.js index 92b6c8f1544..dbf5770bdb6 100644 --- a/app/assets/javascripts/admin/routes/admin_user_route.js +++ b/app/assets/javascripts/admin/routes/admin_user_route.js @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminUserRoute = Discourse.Route.extend(Discourse.ModelReady, { +Discourse.AdminUserRoute = Discourse.Route.extend({ serialize: function(params) { return { username: Em.get(params, 'username').toLowerCase() }; @@ -20,10 +20,14 @@ Discourse.AdminUserRoute = Discourse.Route.extend(Discourse.ModelReady, { this.render({into: 'admin/templates/admin'}); }, - modelReady: function(controller, adminUser) { - adminUser.loadDetails(); - controller.set('model', adminUser); - adminUser.setOriginalTrustLevel(); + afterModel: function(adminUser) { + var controller = this.controllerFor('adminUser'); + + adminUser.loadDetails().then(function () { + adminUser.setOriginalTrustLevel(); + controller.set('model', adminUser); + }); + } }); diff --git a/app/assets/javascripts/discourse/mixins/model_ready.js b/app/assets/javascripts/discourse/mixins/model_ready.js deleted file mode 100644 index f50d2c3210f..00000000000 --- a/app/assets/javascripts/discourse/mixins/model_ready.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - Until the fully async router is merged into Ember, it is healthy to do some extra checking - that setupController is not passed a promise instead of the model we want. - - This mixin handles that case, and calls modelReady instead. - - @class Discourse.ModelReady - @extends Ember.Mixin - @namespace Discourse - @module Discourse -**/ -Discourse.ModelReady = Em.Mixin.create({ - - setupController: function(controller, model) { - var route = this; - if (model.then) { - model.then(function (m) { - controller.set('model', m); - if (route.modelReady) { route.modelReady(controller, m); } - }); - } else { - controller.set('model', model); - if (route.modelReady) { route.modelReady(controller, model); } - } - } - -}); - - diff --git a/app/assets/javascripts/discourse/models/invite_list.js b/app/assets/javascripts/discourse/models/invite_list.js index 43376f998a8..523988108e3 100644 --- a/app/assets/javascripts/discourse/models/invite_list.js +++ b/app/assets/javascripts/discourse/models/invite_list.js @@ -16,6 +16,7 @@ Discourse.InviteList.reopenClass({ findInvitedBy: function(user) { return Discourse.ajax("/users/" + (user.get('username_lower')) + "/invited.json").then(function (result) { + console.log('wat'); var invitedList = result.invited_list; if (invitedList.pending) { invitedList.pending = invitedList.pending.map(function(i) { diff --git a/app/assets/javascripts/discourse/routes/discourse_restricted_user_route.js b/app/assets/javascripts/discourse/routes/discourse_restricted_user_route.js index 24e0fdb8a84..0b3e45a7bed 100644 --- a/app/assets/javascripts/discourse/routes/discourse_restricted_user_route.js +++ b/app/assets/javascripts/discourse/routes/discourse_restricted_user_route.js @@ -8,7 +8,7 @@ **/ Discourse.RestrictedUserRoute = Discourse.Route.extend({ - redirect: function() { + afterModel: function() { var user = this.modelFor('user'); if (!user.get('can_edit')) { this.transitionTo('user.activity', user); diff --git a/app/assets/javascripts/discourse/routes/list_categories_route.js b/app/assets/javascripts/discourse/routes/list_categories_route.js index 15bb2ee7e01..6e125180c7d 100644 --- a/app/assets/javascripts/discourse/routes/list_categories_route.js +++ b/app/assets/javascripts/discourse/routes/list_categories_route.js @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.ListCategoriesRoute = Discourse.Route.extend(Discourse.ModelReady, { +Discourse.ListCategoriesRoute = Discourse.Route.extend({ redirect: function() { Discourse.redirectIfLoginRequired(this); }, @@ -31,9 +31,11 @@ Discourse.ListCategoriesRoute = Discourse.Route.extend(Discourse.ModelReady, { this.controllerFor('list').set('canCreateCategory', false); }, - modelReady: function(controller, categoryList) { + renderTemplate: function() { this.render('listCategories', { into: 'list', outlet: 'listView' }); + }, + afterModel: function(categoryList) { this.controllerFor('list').setProperties({ canCreateCategory: categoryList.get('can_create_category'), canCreateTopic: categoryList.get('can_create_topic'), diff --git a/app/assets/javascripts/discourse/routes/user_invited_route.js b/app/assets/javascripts/discourse/routes/user_invited_route.js index f603b1ccc69..53fd4e0f4c1 100644 --- a/app/assets/javascripts/discourse/routes/user_invited_route.js +++ b/app/assets/javascripts/discourse/routes/user_invited_route.js @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.UserInvitedRoute = Discourse.Route.extend(Discourse.ModelReady, { +Discourse.UserInvitedRoute = Discourse.Route.extend({ renderTemplate: function() { this.render({ into: 'user', outlet: 'userOutlet' });