FIX: hide category column in topic list only when the current category has no children

This commit is contained in:
Régis Hanol 2015-09-02 23:46:04 +02:00
parent 0cd393f310
commit d34f42d2f7
4 changed files with 9 additions and 8 deletions

View File

@ -163,10 +163,9 @@ TopicList.reopenClass({
return this.find(filter);
},
// Sets `hideCategory` if all topics in the last have a particular category
// hide the category when it has no children
hideUniformCategory(list, category) {
const hideCategory = !list.get('topics').any(function (t) { return t.get('category') !== category; });
list.set('hideCategory', hideCategory);
list.set('hideCategory', !category.get("has_children"));
}
});

View File

@ -79,7 +79,7 @@ class Category < ActiveRecord::Base
# permission is just used by serialization
# we may consider wrapping this in another spot
attr_accessor :displayable_topics, :permission, :subcategory_ids, :notification_level
attr_accessor :displayable_topics, :permission, :subcategory_ids, :notification_level, :has_children
def self.last_updated_at
order('updated_at desc').limit(1).pluck(:updated_at).first.to_i

View File

@ -30,7 +30,7 @@ class Site
end
def groups
@groups ||= Group.order(:name).map { |g| {:id => g.id, :name => g.name}}
@groups ||= Group.order(:name).map { |g| { id: g.id, name: g.name } }
end
def user_fields
@ -41,7 +41,7 @@ class Site
@categories ||= begin
categories = Category
.secured(@guardian)
.includes(:topic_only_relative_url)
.includes(:topic_only_relative_url, :subcategories)
.order(:position)
unless SiteSetting.allow_uncategorized_topics
@ -62,10 +62,11 @@ class Site
categories.each do |category|
category.notification_level = category_user[category.id]
category.permission = CategoryGroup.permission_types[:full] if allowed_topic_create.include?(category.id)
category.has_children = category.subcategories.present?
by_id[category.id] = category
end
categories.reject! {|c| c.parent_category_id && !by_id[c.parent_category_id]}
categories.reject! { |c| c.parent_category_id && !by_id[c.parent_category_id] }
categories
end
end

View File

@ -17,7 +17,8 @@ class BasicCategorySerializer < ApplicationSerializer
:logo_url,
:background_url,
:can_edit,
:topic_template
:topic_template,
:has_children
def include_parent_category_id?
parent_category_id