mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 01:34:13 +08:00
b27e12445d
This PR splits up the preference that controls the count vs dot and destination of sidebar links, which is really hard to understand, into 2 simpler checkboxes: The new preferences/checkboxes are off by default, but there are database migrations to switch the old preference to the new ones so that existing users don't have to update their preferences to keep their preferred behavior of sidebar links when this changed is rolled out. Internal topic: t/103529.
54 lines
1.3 KiB
Ruby
54 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module UserSidebarMixin
|
|
def sidebar_tags
|
|
topic_count_column = Tag.topic_count_column(scope)
|
|
|
|
object
|
|
.visible_sidebar_tags(scope)
|
|
.pluck(:name, topic_count_column, :pm_topic_count)
|
|
.reduce([]) do |tags, sidebar_tag|
|
|
tags.push(name: sidebar_tag[0], pm_only: sidebar_tag[1] == 0 && sidebar_tag[2] > 0)
|
|
end
|
|
end
|
|
|
|
def display_sidebar_tags
|
|
DiscourseTagging.filter_visible(Tag, scope).exists?
|
|
end
|
|
|
|
def include_display_sidebar_tags?
|
|
include_sidebar_tags?
|
|
end
|
|
|
|
def include_sidebar_tags?
|
|
SiteSetting.tagging_enabled && sidebar_navigation_menu?
|
|
end
|
|
|
|
def sidebar_category_ids
|
|
object.category_sidebar_section_links.pluck(:linkable_id) & scope.allowed_category_ids
|
|
end
|
|
|
|
def include_sidebar_category_ids?
|
|
sidebar_navigation_menu?
|
|
end
|
|
|
|
def sidebar_sections
|
|
object
|
|
.sidebar_sections
|
|
.order(created_at: :asc)
|
|
.includes(sidebar_section_links: :linkable)
|
|
.map { |section| SidebarSectionSerializer.new(section, root: false) }
|
|
end
|
|
|
|
def include_sidebar_sections?
|
|
sidebar_navigation_menu?
|
|
end
|
|
|
|
private
|
|
|
|
def sidebar_navigation_menu?
|
|
!SiteSetting.legacy_navigation_menu? ||
|
|
%w[sidebar header_dropdown].include?(options[:navigation_menu_param])
|
|
end
|
|
end
|