FIX: Properly support defaults for upload site settings.

This commit is contained in:
Guo Xiang Tan
2019-01-02 15:29:17 +08:00
parent 684eef71c7
commit b0c8fdd7da
26 changed files with 170 additions and 151 deletions

View File

@ -175,69 +175,26 @@ class SiteSetting < ActiveRecord::Base
site_logo_small_url
site_mobile_logo_url
site_favicon_url
site_home_logo_url
}.each { |client_setting| client_settings << client_setting }
def self.site_home_logo_url
upload = SiteSetting.logo
if SiteSetting.defaults.get(:title) != SiteSetting.title && !upload
''
else
full_cdn_url(upload ? upload.url : '/images/d-logo-sketch.png')
%i{
logo
logo_small
digest_logo
mobile_logo
large_icon
favicon
apple_touch_icon
twitter_summary_large_image
opengraph_image
push_notifications_icon
}.each do |setting_name|
define_singleton_method("site_#{setting_name}_url") do
upload = self.public_send(setting_name)
upload ? full_cdn_url(upload.url) : ''
end
end
def self.site_logo_url
upload = self.logo
upload ? full_cdn_url(upload.url) : self.logo_url(warn: false)
end
def self.site_logo_small_url
upload = self.logo_small
upload ? full_cdn_url(upload.url) : self.logo_small_url(warn: false)
end
def self.site_digest_logo_url
upload = self.digest_logo
upload ? full_cdn_url(upload.url) : self.digest_logo_url(warn: false)
end
def self.site_mobile_logo_url
upload = self.mobile_logo
upload ? full_cdn_url(upload.url) : self.mobile_logo_url(warn: false)
end
def self.site_large_icon_url
upload = self.large_icon
upload ? full_cdn_url(upload.url) : self.large_icon_url(warn: false)
end
def self.site_favicon_url
upload = self.favicon
upload ? full_cdn_url(upload.url) : self.favicon_url(warn: false)
end
def self.site_apple_touch_icon_url
upload = self.apple_touch_icon
upload ? full_cdn_url(upload.url) : self.apple_touch_icon_url(warn: false)
end
def self.opengraph_image_url
upload = self.opengraph_image
upload ? full_cdn_url(upload.url) : self.default_opengraph_image_url(warn: false)
end
def self.site_twitter_summary_large_image_url
self.twitter_summary_large_image&.url ||
self.twitter_summary_large_image_url(warn: false)
end
def self.site_push_notifications_icon_url
SiteSetting.push_notifications_icon&.url ||
SiteSetting.push_notifications_icon_url(warn: false)
end
def self.shared_drafts_enabled?
c = SiteSetting.shared_drafts_category
c.present? && c.to_i != SiteSetting.uncategorized_category_id.to_i