forked from treehouse/mastodon
parent
fac529975b
commit
3d5d899094
|
@ -18,6 +18,7 @@ module Admin
|
||||||
bootstrap_timeline_accounts
|
bootstrap_timeline_accounts
|
||||||
flavour
|
flavour
|
||||||
skin
|
skin
|
||||||
|
flavour_and_skin
|
||||||
thumbnail
|
thumbnail
|
||||||
hero
|
hero
|
||||||
mascot
|
mascot
|
||||||
|
@ -54,7 +55,13 @@ module Admin
|
||||||
def update
|
def update
|
||||||
authorize :settings, :update?
|
authorize :settings, :update?
|
||||||
|
|
||||||
settings_params.each do |key, value|
|
settings = settings_params
|
||||||
|
flavours_and_skin = settings.delete('flavour_and_skin')
|
||||||
|
if flavours_and_skin
|
||||||
|
settings['flavour'], settings['skin'] = flavours_and_skin.split('/', 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
settings.each do |key, value|
|
||||||
if UPLOAD_SETTINGS.include?(key)
|
if UPLOAD_SETTINGS.include?(key)
|
||||||
upload = SiteUpload.where(var: key).first_or_initialize(var: key)
|
upload = SiteUpload.where(var: key).first_or_initialize(var: key)
|
||||||
upload.update(file: value)
|
upload.update(file: value)
|
||||||
|
|
|
@ -80,4 +80,10 @@ class Themes
|
||||||
def skins_for(name)
|
def skins_for(name)
|
||||||
@conf[name]['skin'].keys
|
@conf[name]['skin'].keys
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def flavours_and_skins
|
||||||
|
flavours.map do |flavour|
|
||||||
|
[flavour, skins_for(flavour).map{ |skin| [flavour, skin] }]
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -48,4 +48,8 @@ class Form::AdminSettings
|
||||||
:custom_css=,
|
:custom_css=,
|
||||||
to: Setting
|
to: Setting
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def flavour_and_skin
|
||||||
|
"#{Setting.flavour}/#{Setting.skin}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
= f.input :site_title, wrapper: :with_label, label: t('admin.settings.site_title')
|
= f.input :site_title, wrapper: :with_label, label: t('admin.settings.site_title')
|
||||||
|
|
||||||
.fields-group
|
.fields-group
|
||||||
= f.input :flavour, collection: Themes.instance.flavours, label_method: lambda { |flavour| I18n.t("flavours.#{flavour}.name", default: flavour) }, wrapper: :with_label, include_blank: false
|
= f.input :flavour_and_skin, collection: Themes.instance.flavours_and_skins, group_label_method: lambda { |(flavour, _)| I18n.t("flavours.#{flavour}.name", default: flavour) }, wrapper: :with_label, include_blank: false, as: :grouped_select, label_method: :last, value_method: lambda { |value| value.join('/') }, group_method: :last
|
||||||
|
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
|
|
Loading…
Reference in New Issue