discourse/lib/topic_query_params.rb
Blake Erickson fefd938520
UX: Hide welcome topic from admins as well if not edited (#18807)
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.
2022-11-01 16:17:17 -06:00

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