mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 07:24:11 +08:00
Remove support for theme_var
and theme_color_var
fields
These are remnants of the old 'customization' system, and have been superseded by theme settings
This commit is contained in:
@ -112,25 +112,6 @@ class RemoteTheme < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
theme_info["fields"]&.each do |name, info|
|
|
||||||
unless Hash === info
|
|
||||||
info = {
|
|
||||||
"target" => :common,
|
|
||||||
"type" => :theme_var,
|
|
||||||
"value" => info
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
if info["type"] == "color"
|
|
||||||
info["type"] = :theme_color_var
|
|
||||||
end
|
|
||||||
|
|
||||||
theme.set_field(target: info["target"] || :common,
|
|
||||||
name: name,
|
|
||||||
value: info["value"],
|
|
||||||
type: info["type"] || :theme_var)
|
|
||||||
end
|
|
||||||
|
|
||||||
Theme.targets.keys.each do |target|
|
Theme.targets.keys.each do |target|
|
||||||
next if target == :settings || target == :translations
|
next if target == :settings || target == :translations
|
||||||
ALLOWED_FIELDS.each do |field|
|
ALLOWED_FIELDS.each do |field|
|
||||||
|
@ -41,13 +41,13 @@ class ThemeField < ActiveRecord::Base
|
|||||||
@types ||= Enum.new(html: 0,
|
@types ||= Enum.new(html: 0,
|
||||||
scss: 1,
|
scss: 1,
|
||||||
theme_upload_var: 2,
|
theme_upload_var: 2,
|
||||||
theme_color_var: 3,
|
theme_color_var: 3, # No longer used
|
||||||
theme_var: 4,
|
theme_var: 4, # No longer used
|
||||||
yaml: 5)
|
yaml: 5)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.theme_var_type_ids
|
def self.theme_var_type_ids
|
||||||
@theme_var_type_ids ||= [2, 3, 4]
|
@theme_var_type_ids ||= [2]
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.force_recompilation!
|
def self.force_recompilation!
|
||||||
|
@ -239,37 +239,7 @@ HTML
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'theme vars' do
|
context 'theme upload vars' do
|
||||||
|
|
||||||
it 'works in parent theme' do
|
|
||||||
theme.set_field(target: :common, name: :scss, value: 'body {color: $magic; }')
|
|
||||||
theme.set_field(target: :common, name: :magic, value: 'red', type: :theme_var)
|
|
||||||
theme.set_field(target: :common, name: :not_red, value: 'red', type: :theme_var)
|
|
||||||
theme.component = true
|
|
||||||
theme.save
|
|
||||||
|
|
||||||
parent_theme = Fabricate(:theme)
|
|
||||||
parent_theme.set_field(target: :common, name: :scss, value: 'body {background-color: $not_red; }')
|
|
||||||
parent_theme.set_field(target: :common, name: :not_red, value: 'blue', type: :theme_var)
|
|
||||||
parent_theme.save
|
|
||||||
parent_theme.add_child_theme!(theme)
|
|
||||||
|
|
||||||
scss, _map = Stylesheet::Compiler.compile('@import "theme_variables"; @import "desktop_theme"; ', "theme.scss", theme_id: parent_theme.id)
|
|
||||||
expect(scss).to include("color:red")
|
|
||||||
expect(scss).to include("background-color:blue")
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'can generate scss based off theme vars' do
|
|
||||||
theme.set_field(target: :common, name: :scss, value: 'body {color: $magic; content: quote($content)}')
|
|
||||||
theme.set_field(target: :common, name: :magic, value: 'red', type: :theme_var)
|
|
||||||
theme.set_field(target: :common, name: :content, value: 'Sam\'s Test', type: :theme_var)
|
|
||||||
theme.save
|
|
||||||
|
|
||||||
scss, _map = Stylesheet::Compiler.compile('@import "theme_variables"; @import "desktop_theme"; ', "theme.scss", theme_id: theme.id)
|
|
||||||
expect(scss).to include("red")
|
|
||||||
expect(scss).to include('"Sam\'s Test"')
|
|
||||||
end
|
|
||||||
|
|
||||||
let :image do
|
let :image do
|
||||||
file_from_fixtures("logo.png")
|
file_from_fixtures("logo.png")
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user