From 9253cb79e34288a902cf9afb7b82c197a4aba42b Mon Sep 17 00:00:00 2001 From: Dan Ungureanu Date: Thu, 19 Dec 2019 12:26:11 +0200 Subject: [PATCH] UX: Show grandchildren in categories list (#8592) --- .../discourse/models/category.js.es6 | 10 ++++++ .../templates/components/categories-only.hbs | 36 +++++++++++++++---- 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/discourse/models/category.js.es6 b/app/assets/javascripts/discourse/models/category.js.es6 index 9bb56c276e3..3847a9ea103 100644 --- a/app/assets/javascripts/discourse/models/category.js.es6 +++ b/app/assets/javascripts/discourse/models/category.js.es6 @@ -65,6 +65,16 @@ const Category = RestModel.extend({ return (parentLevel || -1) + 1; }, + @discourseComputed("subcategories") + isGrandParent(subcategories) { + return ( + subcategories && + subcategories.some( + cat => cat.subcategories && cat.subcategories.length > 0 + ) + ); + }, + @discourseComputed("notification_level") isMuted(notificationLevel) { return notificationLevel === NotificationLevels.MUTED; diff --git a/app/assets/javascripts/discourse/templates/components/categories-only.hbs b/app/assets/javascripts/discourse/templates/components/categories-only.hbs index 762752097bc..609651d7b42 100644 --- a/app/assets/javascripts/discourse/templates/components/categories-only.hbs +++ b/app/assets/javascripts/discourse/templates/components/categories-only.hbs @@ -13,12 +13,35 @@ {{#each categories as |c|}} - {{category-title-link category=c}} -
- {{{dir-span c.description_excerpt}}} - -
- {{#if c.subcategories}} + {{category-title-link category=c}} +
+ {{{dir-span c.description_excerpt}}} +
+ + {{#if c.isGrandParent}} + + {{#each c.subcategories as |subcategory|}} + + + + {{/each}} +
+ {{category-title-link category=subcategory}} + + {{#if subcategory.subcategories}} +
+ {{#each subcategory.subcategories as |subsubcategory|}} + {{#unless subsubcategory.isMuted}} + + {{category-title-before category=subsubcategory}} + {{category-link subsubcategory hideParent="true"}} + + {{/unless}} + {{/each}} +
+ {{/if}} +
+ {{else if c.subcategories}}
{{#each c.subcategories as |subcategory|}} {{#unless subcategory.isMuted}} @@ -31,7 +54,6 @@ {{/each}}
{{/if}} -
{{{c.stat}}}