From 262016604dd97294d8a98932c518379e86c1b8d1 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Wed, 1 Mar 2017 12:03:12 -0500 Subject: [PATCH] FEATURE: each category can control how many topics to show on categories page --- .../discourse/models/category.js.es6 | 7 +++-- .../components/edit-category-settings.hbs | 11 ++++++- .../stylesheets/common/base/compose.scss | 28 ----------------- app/assets/stylesheets/common/base/modal.scss | 30 +++++++++++++++++++ app/controllers/categories_controller.rb | 1 + app/models/category.rb | 1 + app/models/category_featured_topic.rb | 4 +-- app/models/category_list.rb | 4 +-- app/serializers/basic_category_serializer.rb | 3 +- app/services/random_topic_selector.rb | 2 +- config/locales/client.en.yml | 1 + config/locales/server.ar.yml | 1 - config/locales/server.bs_BA.yml | 2 -- config/locales/server.cs.yml | 1 - config/locales/server.da.yml | 2 -- config/locales/server.de.yml | 2 -- config/locales/server.en.yml | 1 - config/locales/server.es.yml | 2 -- config/locales/server.fa_IR.yml | 2 -- config/locales/server.fi.yml | 2 -- config/locales/server.fr.yml | 2 -- config/locales/server.he.yml | 2 -- config/locales/server.it.yml | 2 -- config/locales/server.ja.yml | 2 -- config/locales/server.ko.yml | 2 -- config/locales/server.nl.yml | 2 -- config/locales/server.pl_PL.yml | 2 -- config/locales/server.pt.yml | 2 -- config/locales/server.pt_BR.yml | 2 -- config/locales/server.ro.yml | 2 -- config/locales/server.ru.yml | 2 -- config/locales/server.sk.yml | 2 -- config/locales/server.sq.yml | 2 -- config/locales/server.sv.yml | 2 -- config/locales/server.tr_TR.yml | 2 -- config/locales/server.uk.yml | 2 -- config/locales/server.vi.yml | 2 -- config/locales/server.zh_CN.yml | 2 -- config/locales/server.zh_TW.yml | 2 -- config/site_settings.yml | 4 --- ...11458_add_featured_topics_to_categories.rb | 14 +++++++++ spec/models/category_featured_topic_spec.rb | 6 ++-- spec/models/category_list_spec.rb | 6 +--- test/javascripts/helpers/site-settings.js | 1 - 44 files changed, 71 insertions(+), 105 deletions(-) create mode 100644 db/migrate/20170227211458_add_featured_topics_to_categories.rb diff --git a/app/assets/javascripts/discourse/models/category.js.es6 b/app/assets/javascripts/discourse/models/category.js.es6 index 735fdda1a8a..8839be9bc8d 100644 --- a/app/assets/javascripts/discourse/models/category.js.es6 +++ b/app/assets/javascripts/discourse/models/category.js.es6 @@ -70,7 +70,7 @@ const Category = RestModel.extend({ @computed("topic_count") moreTopics(topicCount) { - return topicCount > Discourse.SiteSettings.category_featured_topics; + return topicCount > (this.get('num_featured_topics') || 2); }, save() { @@ -103,7 +103,8 @@ const Category = RestModel.extend({ sort_order: this.get('sort_order'), sort_ascending: this.get('sort_ascending'), topic_featured_link_allowed: this.get('topic_featured_link_allowed'), - show_subcategory_list: this.get('show_subcategory_list') + show_subcategory_list: this.get('show_subcategory_list'), + num_featured_topics: this.get('num_featured_topics') }, type: id ? 'PUT' : 'POST' }); @@ -149,7 +150,7 @@ const Category = RestModel.extend({ @computed("topics") featuredTopics(topics) { if (topics && topics.length) { - return topics.slice(0, Discourse.SiteSettings.category_featured_topics || 2); + return topics.slice(0, this.get('num_featured_topics') || 2); } }, diff --git a/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs b/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs index ed9c0689c2c..d330fe0775f 100644 --- a/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs +++ b/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs @@ -75,8 +75,17 @@ {{plugin-outlet name="category-email-in" args=(hash category=category)}} {{/if}} +{{#unless category.parent_category_id}} + +{{/unless}} + {{#if showPositionInput}} -
+