diff --git a/app/assets/javascripts/discourse/controllers/composer.js.es6 b/app/assets/javascripts/discourse/controllers/composer.js.es6 index a9d77ba06b2..13d3f291b9a 100644 --- a/app/assets/javascripts/discourse/controllers/composer.js.es6 +++ b/app/assets/javascripts/discourse/controllers/composer.js.es6 @@ -563,14 +563,17 @@ export default Ember.Controller.extend({ return; } + this.setProperties({ showEditReason: false, editReason: null, scopedCategoryId: null }); + // If we show the subcategory list, scope the categories drop down to // the category we opened the composer with. - if (this.siteSettings.show_subcategory_list && opts.draftKey !== 'reply_as_new_topic') { - this.set('scopedCategoryId', opts.categoryId); + if (opts.categoryId && opts.draftKey !== 'reply_as_new_topic') { + const category = this.site.categories.findBy('id', opts.categoryId); + if (category && (category.get('show_subcategory_list') || category.get('parentCategory.show_subcategory_list'))) { + this.set('scopedCategoryId', opts.categoryId); + } } - this.setProperties({ showEditReason: false, editReason: null }); - // If we want a different draft than the current composer, close it and clear our model. if (composerModel && opts.draftKey !== composerModel.draftKey && diff --git a/app/assets/javascripts/discourse/controllers/navigation/category.js.es6 b/app/assets/javascripts/discourse/controllers/navigation/category.js.es6 index c3bcae7a96d..3e6fc512109 100644 --- a/app/assets/javascripts/discourse/controllers/navigation/category.js.es6 +++ b/app/assets/javascripts/discourse/controllers/navigation/category.js.es6 @@ -3,9 +3,8 @@ import NavigationDefaultController from 'discourse/controllers/navigation/defaul import { setting } from 'discourse/lib/computed'; export default NavigationDefaultController.extend({ - subcategoryListSetting: setting('show_subcategory_list'), showingParentCategory: Em.computed.none('category.parentCategory'), - showingSubcategoryList: Em.computed.and('subcategoryListSetting', 'showingParentCategory'), + showingSubcategoryList: Em.computed.and('category.show_subcategory_list', 'showingParentCategory'), @computed("showingSubcategoryList", "category", "noSubcategories") navItems(showingSubcategoryList, category, noSubcategories) { diff --git a/app/assets/javascripts/discourse/models/category.js.es6 b/app/assets/javascripts/discourse/models/category.js.es6 index b31f715b810..735fdda1a8a 100644 --- a/app/assets/javascripts/discourse/models/category.js.es6 +++ b/app/assets/javascripts/discourse/models/category.js.es6 @@ -102,7 +102,8 @@ const Category = RestModel.extend({ allowed_tag_groups: this.get('allowed_tag_groups'), sort_order: this.get('sort_order'), sort_ascending: this.get('sort_ascending'), - topic_featured_link_allowed: this.get('topic_featured_link_allowed') + topic_featured_link_allowed: this.get('topic_featured_link_allowed'), + show_subcategory_list: this.get('show_subcategory_list') }, type: id ? 'PUT' : 'POST' }); diff --git a/app/assets/javascripts/discourse/routes/build-category-route.js.es6 b/app/assets/javascripts/discourse/routes/build-category-route.js.es6 index 14bc77f8a5f..b7b41676325 100644 --- a/app/assets/javascripts/discourse/routes/build-category-route.js.es6 +++ b/app/assets/javascripts/discourse/routes/build-category-route.js.es6 @@ -51,7 +51,7 @@ export default (filter, params) => { _createSubcategoryList(category) { this._categoryList = null; - if (Em.isNone(category.get('parentCategory')) && Discourse.SiteSettings.show_subcategory_list) { + if (Em.isNone(category.get('parentCategory')) && category.get('show_subcategory_list')) { return CategoryList.listForParent(this.store, category).then(list => this._categoryList = list); } 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 bf439c9e43c..ed9c0689c2c 100644 --- a/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs +++ b/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs @@ -19,6 +19,15 @@ +{{#unless category.parent_category_id}} +
+ +
+{{/unless}} +