From bd0c2a74fcd10ab03fbf1e92ad80ca36b410ec4b Mon Sep 17 00:00:00 2001
From: Robin Ward <robin.ward@gmail.com>
Date: Thu, 6 Feb 2014 14:37:08 -0500
Subject: [PATCH] Return a promise from `Discourse.Group.findAll()`

---
 .../admin/controllers/admin_groups_controller.js          | 7 ++++---
 app/assets/javascripts/discourse/models/group.js          | 8 +++-----
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/app/assets/javascripts/admin/controllers/admin_groups_controller.js b/app/assets/javascripts/admin/controllers/admin_groups_controller.js
index bf0f47fb7..6940ba931 100644
--- a/app/assets/javascripts/admin/controllers/admin_groups_controller.js
+++ b/app/assets/javascripts/admin/controllers/admin_groups_controller.js
@@ -1,6 +1,5 @@
 Discourse.AdminGroupsController = Ember.Controller.extend({
   itemController: 'adminGroup',
-  aliasLevels: null,
 
   actions: {
     edit: function(group){
@@ -13,8 +12,10 @@ Discourse.AdminGroupsController = Ember.Controller.extend({
 
       self.set('refreshingAutoGroups', true);
       Discourse.ajax('/admin/groups/refresh_automatic_groups', {type: 'POST'}).then(function() {
-        self.set('model', Discourse.Group.findAll());
-        self.set('refreshingAutoGroups', false);
+        return Discourse.Group.findAll().then(function(groups) {
+          self.set('model', groups);
+          self.set('refreshingAutoGroups', false);
+        });
       });
     },
 
diff --git a/app/assets/javascripts/discourse/models/group.js b/app/assets/javascripts/discourse/models/group.js
index 7ab7c95e0..105a30117 100644
--- a/app/assets/javascripts/discourse/models/group.js
+++ b/app/assets/javascripts/discourse/models/group.js
@@ -122,15 +122,13 @@ Discourse.Group = Discourse.Model.extend({
 
 Discourse.Group.reopenClass({
   findAll: function(){
-    var list = Discourse.SelectableArray.create();
-
-    Discourse.ajax("/admin/groups.json").then(function(groups){
+    return Discourse.ajax("/admin/groups.json").then(function(groups){
+      var list = Discourse.SelectableArray.create();
       _.each(groups,function(group){
         list.addObject(Discourse.Group.create(group));
       });
+      return list;
     });
-
-    return list;
   },
 
   aliasLevelOptions: function() {