discourse/app/models/email_level_site_setting.rb
Penar Musaraj 9334d2f4f7
FEATURE: add more granular user option levels for email notifications (#7143)
Migrates email user options to a new data structure, where `email_always`, `email_direct` and `email_private_messages` are replace by

* `email_messages_level`, with options: `always`, `only_when_away` and `never` (defaults to `always`)
* `email_level`, with options: `always`, `only_when_away` and `never` (defaults to `only_when_away`)
2019-03-15 10:55:11 -04:00

23 lines
465 B
Ruby

require_dependency 'enum_site_setting'
class EmailLevelSiteSetting < EnumSiteSetting
def self.valid_value?(val)
val.to_i.to_s == val.to_s &&
values.any? { |v| v[:value] == val.to_i }
end
def self.values
@values ||= [
{ name: 'user.email_level.always', value: 0 },
{ name: 'user.email_level.only_when_away', value: 1 },
{ name: 'user.email_level.never', value: 2 },
]
end
def self.translate_names?
true
end
end