FIX: Fix broken theme field URLs. (#6622)
This commit is contained in:
parent
336436dfb4
commit
172b3bf4d3
|
@ -47,9 +47,9 @@ const Category = RestModel.extend({
|
||||||
return Discourse.getURL("/c/") + Category.slugFor(this);
|
return Discourse.getURL("/c/") + Category.slugFor(this);
|
||||||
},
|
},
|
||||||
|
|
||||||
@computed("url")
|
@computed
|
||||||
fullSlug(url) {
|
fullSlug() {
|
||||||
return url.slice(3).replace("/", "-");
|
return Category.slugFor(this).replace(/\//g, "-");
|
||||||
},
|
},
|
||||||
|
|
||||||
@computed("name")
|
@computed("name")
|
||||||
|
|
|
@ -535,7 +535,8 @@ class Category < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def full_slug(separator = "-")
|
def full_slug(separator = "-")
|
||||||
url[3..-1].gsub("/", separator)
|
start_idx = "#{Discourse.base_uri}/c/".length
|
||||||
|
url[start_idx..-1].gsub("/", separator)
|
||||||
end
|
end
|
||||||
|
|
||||||
def url
|
def url
|
||||||
|
|
|
@ -4,7 +4,7 @@ module GlobalPath
|
||||||
end
|
end
|
||||||
|
|
||||||
def cdn_path(p)
|
def cdn_path(p)
|
||||||
"#{GlobalSetting.cdn_url}#{path(p)}"
|
GlobalSetting.cdn_url.blank? ? p : "#{GlobalSetting.cdn_url}#{path(p)}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def upload_cdn_path(p)
|
def upload_cdn_path(p)
|
||||||
|
|
|
@ -15,7 +15,7 @@ describe Stylesheet::Importer do
|
||||||
|
|
||||||
expect(compile_css("category_backgrounds")).to include("body.category-#{category.full_slug}{background-image:url(#{background.url})}")
|
expect(compile_css("category_backgrounds")).to include("body.category-#{category.full_slug}{background-image:url(#{background.url})}")
|
||||||
|
|
||||||
GlobalSetting.expects(:cdn_url).returns("//awesome.cdn")
|
GlobalSetting.stubs(:cdn_url).returns("//awesome.cdn")
|
||||||
expect(compile_css("category_backgrounds")).to include("body.category-#{category.full_slug}{background-image:url(//awesome.cdn#{background.url})}")
|
expect(compile_css("category_backgrounds")).to include("body.category-#{category.full_slug}{background-image:url(//awesome.cdn#{background.url})}")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -33,4 +33,30 @@ describe Stylesheet::Importer do
|
||||||
expect(compile_css("category_backgrounds")).to include("body.category-#{category.full_slug}{background-image:url(https://s3.cdn/original")
|
expect(compile_css("category_backgrounds")).to include("body.category-#{category.full_slug}{background-image:url(https://s3.cdn/original")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "#theme_variables" do
|
||||||
|
|
||||||
|
let(:theme) { Fabricate(:theme) }
|
||||||
|
|
||||||
|
let(:importer) { described_class.new(theme: theme) }
|
||||||
|
|
||||||
|
let(:upload) { Fabricate(:upload) }
|
||||||
|
let(:upload_s3) { Fabricate(:upload_s3) }
|
||||||
|
|
||||||
|
let(:theme_field) { ThemeField.create!(theme: theme, target_id: 0, name: "var", upload: upload, value: "", type_id: ThemeField.types[:theme_upload_var]) }
|
||||||
|
let(:theme_field_s3) { ThemeField.create!(theme: theme, target_id: 1, name: "var_s3", upload: upload_s3, value: "", type_id: ThemeField.types[:theme_upload_var]) }
|
||||||
|
|
||||||
|
it "should contain the URL" do
|
||||||
|
theme_field.save!
|
||||||
|
import = importer.imports("theme_variables", nil)
|
||||||
|
expect(import.source).to include(upload.url)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should contain the S3 URL" do
|
||||||
|
theme_field_s3.save!
|
||||||
|
import = importer.imports("theme_variables", nil)
|
||||||
|
expect(import.source).to include(upload_s3.url)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue