FIX: Color scheme stylesheet not loaded when no default theme is set.

Follow-up to 8e3691d537
This commit is contained in:
Alan Guo Xiang Tan 2021-06-21 12:44:41 +08:00
parent 7b31d8a11b
commit be655762d8
2 changed files with 14 additions and 17 deletions

View File

@ -269,23 +269,19 @@ class Stylesheet::Manager
theme = get_theme(theme_id)
if theme
builder = Builder.new(
target: target,
theme: get_theme(theme_id),
color_scheme: color_scheme,
manager: self
)
builder = Builder.new(
target: target,
theme: get_theme(theme_id),
color_scheme: color_scheme,
manager: self
)
builder.compile unless File.exists?(builder.stylesheet_fullpath)
builder.compile unless File.exists?(builder.stylesheet_fullpath)
href = builder.stylesheet_path(current_hostname)
stylesheet[:new_href] = href
cache.defer_set(cache_key, stylesheet.freeze)
stylesheet
else
{}
end
href = builder.stylesheet_path(current_hostname)
stylesheet[:new_href] = href
cache.defer_set(cache_key, stylesheet.freeze)
stylesheet
end
def color_scheme_stylesheet_link_tag(color_scheme_id = nil, media = 'all')

View File

@ -396,13 +396,14 @@ describe Stylesheet::Manager do
describe 'color_scheme_stylesheets' do
it "returns something by default" do
link = manager.color_scheme_stylesheet_link_tag
expect(link).not_to eq("")
expect(link).to include("color_definitions_base")
end
it "does not crash when no default theme is set" do
SiteSetting.default_theme_id = -1
link = manager.color_scheme_stylesheet_link_tag
expect(link).not_to eq("")
expect(link).to include("color_definitions_base")
end
it "loads base scheme when defined scheme id is missing" do