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:
commit
da25abfcc9
3 changed files with 38 additions and 25 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue