From 101ba5d8fed86bbbdfc95b8ca232e9317b310b2d Mon Sep 17 00:00:00 2001
From: Neil Lalonde <neillalonde@gmail.com>
Date: Tue, 14 May 2013 12:45:54 -0400
Subject: [PATCH] Add Create Topic button to /categories page

---
 app/assets/javascripts/discourse/models/category_list.js    | 1 +
 .../javascripts/discourse/routes/list_categories_route.js   | 1 +
 app/serializers/category_list_serializer.rb                 | 6 +++++-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/app/assets/javascripts/discourse/models/category_list.js b/app/assets/javascripts/discourse/models/category_list.js
index b5ab4177d..0093f7b54 100644
--- a/app/assets/javascripts/discourse/models/category_list.js
+++ b/app/assets/javascripts/discourse/models/category_list.js
@@ -36,6 +36,7 @@ Discourse.CategoryList.reopenClass({
     return Discourse.ajax("/" + filter + ".json").then(function(result) {
       var categoryList = Discourse.TopicList.create();
       categoryList.set('can_create_category', result.category_list.can_create_category);
+      categoryList.set('can_create_topic', result.category_list.can_create_topic);
       categoryList.set('categories', route.categoriesFrom(result));
       categoryList.set('loaded', true);
       return categoryList;
diff --git a/app/assets/javascripts/discourse/routes/list_categories_route.js b/app/assets/javascripts/discourse/routes/list_categories_route.js
index ce07472b9..99bba9dc3 100644
--- a/app/assets/javascripts/discourse/routes/list_categories_route.js
+++ b/app/assets/javascripts/discourse/routes/list_categories_route.js
@@ -25,6 +25,7 @@ Discourse.ListCategoriesRoute = Discourse.Route.extend({
         controller: 'listCategories'
       });
       listController.set('canCreateCategory', categoryList.get('can_create_category'));
+      listController.set('canCreateTopic', categoryList.get('can_create_topic'));
       listController.set('category', null);
       _this.controllerFor('listCategories').set('content', categoryList);
     });
diff --git a/app/serializers/category_list_serializer.rb b/app/serializers/category_list_serializer.rb
index dfc587440..4e423e886 100644
--- a/app/serializers/category_list_serializer.rb
+++ b/app/serializers/category_list_serializer.rb
@@ -1,6 +1,6 @@
 class CategoryListSerializer < ApplicationSerializer
 
-  attributes :can_create_category
+  attributes :can_create_category, :can_create_topic
 
   has_many :categories, serializer: CategoryDetailedSerializer, embed: :objects
 
@@ -8,4 +8,8 @@ class CategoryListSerializer < ApplicationSerializer
     scope.can_create?(Category)
   end
 
+  def can_create_topic
+    scope.can_create?(Topic)
+  end
+
 end