mirror of
https://github.com/discourse/discourse.git
synced 2024-11-29 21:25:57 +08:00
e85a81f33c
The category drop was rerendered after every category async change because it updated the categories list. This is not necessary and categories can be referenced indirectly by ID instead.
96 lines
2.3 KiB
Ruby
96 lines
2.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class BasicCategorySerializer < ApplicationSerializer
|
|
attributes :id,
|
|
:name,
|
|
:color,
|
|
:text_color,
|
|
:slug,
|
|
:topic_count,
|
|
:post_count,
|
|
:position,
|
|
:description,
|
|
:description_text,
|
|
:description_excerpt,
|
|
:topic_url,
|
|
:read_restricted,
|
|
:permission,
|
|
:parent_category_id,
|
|
:notification_level,
|
|
:can_edit,
|
|
:topic_template,
|
|
:has_children?,
|
|
:sort_order,
|
|
:sort_ascending,
|
|
:show_subcategory_list,
|
|
:num_featured_topics,
|
|
:default_view,
|
|
:subcategory_list_style,
|
|
:default_top_period,
|
|
:default_list_filter,
|
|
:minimum_required_tags,
|
|
:navigate_to_first_post_after_read,
|
|
:custom_fields
|
|
|
|
has_one :uploaded_logo, embed: :object, serializer: CategoryUploadSerializer
|
|
has_one :uploaded_logo_dark, embed: :object, serializer: CategoryUploadSerializer
|
|
has_one :uploaded_background, embed: :object, serializer: CategoryUploadSerializer
|
|
has_one :uploaded_background_dark, embed: :object, serializer: CategoryUploadSerializer
|
|
|
|
def include_parent_category_id?
|
|
parent_category_id
|
|
end
|
|
|
|
def name
|
|
if object.uncategorized?
|
|
I18n.t("uncategorized_category_name", locale: SiteSetting.default_locale)
|
|
else
|
|
object.name
|
|
end
|
|
end
|
|
|
|
def description_text
|
|
if object.uncategorized?
|
|
I18n.t("category.uncategorized_description", locale: SiteSetting.default_locale)
|
|
else
|
|
object.description_text
|
|
end
|
|
end
|
|
|
|
def description
|
|
if object.uncategorized?
|
|
I18n.t("category.uncategorized_description", locale: SiteSetting.default_locale)
|
|
else
|
|
object.description
|
|
end
|
|
end
|
|
|
|
def description_excerpt
|
|
if object.uncategorized?
|
|
I18n.t("category.uncategorized_description", locale: SiteSetting.default_locale)
|
|
else
|
|
object.description_excerpt
|
|
end
|
|
end
|
|
|
|
def can_edit
|
|
true
|
|
end
|
|
|
|
def include_can_edit?
|
|
scope && scope.can_edit?(object)
|
|
end
|
|
|
|
def notification_level
|
|
object.notification_level
|
|
end
|
|
|
|
def custom_fields
|
|
object.preloaded_custom_fields
|
|
end
|
|
|
|
def include_custom_fields?
|
|
custom_fields.present?
|
|
end
|
|
end
|