diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-10-05 23:42:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-05 23:42:05 +0200 |
commit | 49cc0eb3e7d1521079e33a60216df46679082547 (patch) | |
tree | e7c7879d07d9a5a6258c14b4e2d49b8c07d5d9fa /app/models/custom_emoji_filter.rb | |
parent | b9c76e2edbc372e1b472f6ba480631b79fe24722 (diff) |
Improve admin UI for custom emojis, add copy/disable/enable (#5231)
Diffstat (limited to 'app/models/custom_emoji_filter.rb')
-rw-r--r-- | app/models/custom_emoji_filter.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/models/custom_emoji_filter.rb b/app/models/custom_emoji_filter.rb new file mode 100644 index 000000000..2d1394a59 --- /dev/null +++ b/app/models/custom_emoji_filter.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +class CustomEmojiFilter + attr_reader :params + + def initialize(params) + @params = params + end + + def results + scope = CustomEmoji.alphabetic + + params.each do |key, value| + scope.merge!(scope_for(key, value)) if value.present? + end + + scope + end + + private + + def scope_for(key, value) + case key.to_s + when 'local' + CustomEmoji.local + when 'remote' + CustomEmoji.remote + when 'by_domain' + CustomEmoji.where(domain: value) + else + raise "Unknown filter: #{key}" + end + end +end |