mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 15:28:37 +08:00
DEV: Live refresh all themes when watching stylesheets (#10337)
This commit is contained in:
@ -4,15 +4,6 @@ require 'listen'
|
||||
|
||||
module Stylesheet
|
||||
class Watcher
|
||||
REDIS_KEY = "dev_last_used_theme_id"
|
||||
|
||||
def self.theme_id=(v)
|
||||
Discourse.redis.set(REDIS_KEY, v)
|
||||
end
|
||||
|
||||
def self.theme_id
|
||||
(Discourse.redis.get(REDIS_KEY) || SiteSetting.default_theme_id).to_i
|
||||
end
|
||||
|
||||
def self.watch(paths = nil)
|
||||
watcher = new(paths)
|
||||
@ -106,7 +97,11 @@ module Stylesheet
|
||||
targets = target ? [target] : ["desktop", "mobile", "admin"]
|
||||
Stylesheet::Manager.clear_core_cache!(targets)
|
||||
message = targets.map! do |name|
|
||||
Stylesheet::Manager.stylesheet_data(name.to_sym, Stylesheet::Watcher.theme_id)
|
||||
msgs = []
|
||||
active_themes.each do |theme_id|
|
||||
msgs << Stylesheet::Manager.stylesheet_data(name.to_sym, theme_id)
|
||||
end
|
||||
msgs
|
||||
end.flatten!
|
||||
MessageBus.publish '/file-change', message
|
||||
end
|
||||
@ -118,7 +113,10 @@ module Stylesheet
|
||||
targets.push("#{plugin_name}_desktop") if DiscoursePluginRegistry.stylesheets_exists?(plugin_name, :desktop)
|
||||
|
||||
message = targets.map! do |name|
|
||||
Stylesheet::Manager.stylesheet_data(name.to_sym, Stylesheet::Watcher.theme_id)
|
||||
msgs = []
|
||||
active_themes.each do |theme_id|
|
||||
msgs << Stylesheet::Manager.stylesheet_data(name.to_sym, theme_id)
|
||||
end
|
||||
end.flatten!
|
||||
MessageBus.publish '/file-change', message
|
||||
end
|
||||
@ -144,5 +142,10 @@ module Stylesheet
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def active_themes
|
||||
@active_themes ||= Theme.user_selectable.pluck(:id)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user