From 4bfb546942704fcff64a10245d6370266c971f09 Mon Sep 17 00:00:00 2001 From: Robin Ward <robin.ward@gmail.com> Date: Tue, 16 Jul 2013 13:24:59 -0400 Subject: [PATCH] Removed `modelReady` hack now that the async router exists --- .../javascripts/admin/models/admin_user.js | 4 +-- .../admin_email_preview_digest_route.js | 6 ++-- .../admin/routes/admin_user_route.js | 14 +++++---- .../discourse/mixins/model_ready.js | 29 ------------------- .../discourse/models/invite_list.js | 1 + .../routes/discourse_restricted_user_route.js | 2 +- .../discourse/routes/list_categories_route.js | 6 ++-- .../discourse/routes/user_invited_route.js | 2 +- 8 files changed, 22 insertions(+), 42 deletions(-) delete mode 100644 app/assets/javascripts/discourse/mixins/model_ready.js diff --git a/app/assets/javascripts/admin/models/admin_user.js b/app/assets/javascripts/admin/models/admin_user.js index ba5bc32fc..bd1bcfd6e 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 5dafb8aad..1c03f56a3 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 92b6c8f15..dbf5770bd 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 f50d2c321..000000000 --- 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 43376f998..523988108 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 24e0fdb8a..0b3e45a7b 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 15bb2ee7e..6e125180c 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 f603b1ccc..53fd4e0f4 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' });