diff --git a/app/assets/javascripts/discourse/components/edit-category-settings.js.es6 b/app/assets/javascripts/discourse/components/edit-category-settings.js.es6 index 29556d2c9a2..6ee6d77ffa7 100644 --- a/app/assets/javascripts/discourse/components/edit-category-settings.js.es6 +++ b/app/assets/javascripts/discourse/components/edit-category-settings.js.es6 @@ -13,7 +13,10 @@ export function addCategorySortCriteria(criteria) { export default buildCategoryPanel("settings", { emailInEnabled: setting("email_in"), showPositionInput: setting("fixed_category_positions"), - isParentCategory: empty("category.parent_category_id"), + @discourseComputed("category.isParent", "category.parent_category_id") + isParentCategory(isParent, parentCategoryId) { + return isParent || !parentCategoryId; + }, showSubcategoryListStyle: and( "category.show_subcategory_list", "isParentCategory" diff --git a/app/assets/javascripts/discourse/models/category.js.es6 b/app/assets/javascripts/discourse/models/category.js.es6 index 738819bc607..dd493e58f5a 100644 --- a/app/assets/javascripts/discourse/models/category.js.es6 +++ b/app/assets/javascripts/discourse/models/category.js.es6 @@ -65,6 +65,11 @@ const Category = RestModel.extend({ return (parentLevel || -1) + 1; }, + @discourseComputed("subcategories") + isParent(subcategories) { + return subcategories && subcategories.length > 0; + }, + @discourseComputed("subcategories") isGrandParent(subcategories) { return ( 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 86f18c5ddd9..543d1ba568d 100644 --- a/app/assets/javascripts/discourse/routes/build-category-route.js.es6 +++ b/app/assets/javascripts/discourse/routes/build-category-route.js.es6 @@ -9,7 +9,6 @@ import PermissionType from "discourse/models/permission-type"; import CategoryList from "discourse/models/category-list"; import Category from "discourse/models/category"; import { Promise, all } from "rsvp"; -import { isNone } from "@ember/utils"; // A helper function to create a category route with parameters export default (filterArg, params) => { @@ -88,10 +87,8 @@ export default (filterArg, params) => { _createSubcategoryList(category) { this._categoryList = null; - if ( - isNone(category.get("parentCategory")) && - category.get("show_subcategory_list") - ) { + + if (category.isParent && category.show_subcategory_list) { return CategoryList.listForParent(this.store, category).then( list => (this._categoryList = list) );