module RailsAdminSettings
module RailsAdminConfig
def self.included(base)
if base.respond_to?(:rails_admin)
base.rails_admin do
navigation_label I18n.t('admin.settings.label')
list do
if Object.const_defined?('RailsAdminToggleable')
field :enabled, :toggle
else
field :enabled
end
field :kind
field :ns
field :name
field :raw do
pretty_value do
if bindings[:object].file_kind? and !defined?(Shrine) and bindings[:object].to_path.present?
"#{CGI::escapeHTML(bindings[:object].to_path)}".html_safe
elsif bindings[:object].image_kind? and !defined?(Shrine) and !bindings[:object].file.nil?
"".html_safe
else
value
end
end
end
if ::Settings.table_exists?
nss = ::RailsAdminSettings::Setting.pluck(:ns).uniq.map { |c| "ns_#{c.gsub('-', '_')}".to_sym }
scopes([nil] + nss)
end
end
edit do
field :enabled
field :label do
read_only true
help false
end
field :kind do
read_only true
help false
end
field :raw do
partial "setting_value"
visible do
!bindings[:object].upload_kind?
end
end
if Settings.file_uploads_supported
field :file, Settings.file_uploads_engine do
visible do
bindings[:object].upload_kind?
end
end
end
end
end
else
puts "[rails_admin_settings] Problem: model does not respond to rails_admin: this should not happen"
end
end
end
end