mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 10:20:58 -06:00
3a1b05f219
* FIX: Hide tag watched words if tagging is disabled These 'autotag' words were shown even if tagging was disabled. * FIX: Make autotag watched words case insensitive This commit also fixes the bug when no tag was applied if no other tag was already present.
31 lines
815 B
Ruby
31 lines
815 B
Ruby
# frozen_string_literal: true
|
|
|
|
class WatchedWordListSerializer < ApplicationSerializer
|
|
attributes :actions, :words, :regular_expressions, :compiled_regular_expressions
|
|
|
|
def actions
|
|
SiteSetting.tagging_enabled ? WatchedWord.actions.keys
|
|
: WatchedWord.actions.keys.filter { |k| k != :tag }
|
|
end
|
|
|
|
def words
|
|
object.map do |word|
|
|
WatchedWordSerializer.new(word, root: false)
|
|
end
|
|
end
|
|
|
|
# No point making this site setting `client: true` when it's only used
|
|
# in the admin section
|
|
def regular_expressions
|
|
SiteSetting.watched_words_regular_expressions?
|
|
end
|
|
|
|
def compiled_regular_expressions
|
|
expressions = {}
|
|
actions.each do |action|
|
|
expressions[action] = WordWatcher.word_matcher_regexp(action)&.source
|
|
end
|
|
expressions
|
|
end
|
|
end
|