2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-06 09:10:25 +08:00

Merge pull request #3714 from riking/live-settings

FEATURE: Live-update site settings
This commit is contained in:
Robin Ward 2015-09-01 12:03:30 -04:00
commit da25abfcc9
3 changed files with 38 additions and 25 deletions

View file

@ -76,6 +76,10 @@ module SiteSettingExtension
@refresh_settings ||= []
end
def client_settings
@client_settings ||= []
end
def previews
@previews ||= {}
end
@ -147,12 +151,7 @@ module SiteSettingExtension
# just like a setting, except that it is available in javascript via DiscourseSession
def client_setting(name, default = nil, opts = {})
setting(name, default, opts)
@client_settings ||= []
@client_settings << name
end
def client_settings
@client_settings ||= []
client_settings << name
end
def settings_hash
@ -323,6 +322,7 @@ module SiteSettingExtension
provider.save(name, val, type)
current[name] = convert(val, type)
notify_clients!(name) if client_settings.include? name
clear_cache!
end
@ -330,6 +330,10 @@ module SiteSettingExtension
MessageBus.publish('/site_settings', {process: process_id})
end
def notify_clients!(name)
MessageBus.publish('/client_settings', {name: name, value: self.send(name)})
end
def has_setting?(name)
defaults.has_key?(name.to_sym) || defaults.has_key?("#{name}?".to_sym)
end