mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 22:53:50 +08:00
fefd938520
Depends on: #18806 We have a banner that prompts to edit the welcome topic, so let's not show it in the topic list until it has been edited. Previously this banner covered the welcome topic, now the banner will be above the topic list, so we need to hide the welcome topic.
36 lines
962 B
Ruby
36 lines
962 B
Ruby
# frozen_string_literal: true
|
|
|
|
module TopicQueryParams
|
|
def build_topic_list_options
|
|
options = {}
|
|
params[:tags] = [params[:tag_id]] if params[:tag_id].present? && guardian.can_tag_pms?
|
|
|
|
TopicQuery.public_valid_options.each do |key|
|
|
if params.key?(key)
|
|
val = options[key] = params[key]
|
|
if !TopicQuery.validate?(key, val)
|
|
raise Discourse::InvalidParameters.new key
|
|
end
|
|
end
|
|
end
|
|
|
|
# hacky columns get special handling
|
|
options[:topic_ids] = param_to_integer_list(:topic_ids)
|
|
options[:no_subcategories] = options[:no_subcategories] == 'true' if options[:no_subcategories].present?
|
|
|
|
if hide_welcome_topic?
|
|
options[:except_topic_ids] ||= []
|
|
options[:except_topic_ids] << SiteSetting.welcome_topic_id
|
|
end
|
|
|
|
options
|
|
end
|
|
|
|
private
|
|
|
|
def hide_welcome_topic?
|
|
return false if !SiteSetting.bootstrap_mode_enabled
|
|
Site.welcome_topic_exists_and_is_not_edited?
|
|
end
|
|
end
|