parent
08b0861b96
commit
dabf66e676
@ -0,0 +1,35 @@ |
|||||||
|
# frozen_string_literal: true |
||||||
|
|
||||||
|
class Settings::FlavoursController < Settings::BaseController |
||||||
|
|
||||||
|
def index |
||||||
|
redirect_to action: 'show', flavour: current_flavour |
||||||
|
end |
||||||
|
|
||||||
|
def show |
||||||
|
unless Themes.instance.flavours.include?(params[:flavour]) or params[:flavour] == current_flavour |
||||||
|
redirect_to action: 'show', flavour: current_flavour |
||||||
|
end |
||||||
|
|
||||||
|
@listing = Themes.instance.flavours |
||||||
|
@selected = params[:flavour] |
||||||
|
end |
||||||
|
|
||||||
|
def update |
||||||
|
user_settings.update(user_settings_params(params[:flavour]).to_h) |
||||||
|
redirect_to action: 'show', flavour: params[:flavour] |
||||||
|
end |
||||||
|
|
||||||
|
private |
||||||
|
|
||||||
|
def user_settings |
||||||
|
UserSettingsDecorator.new(current_user) |
||||||
|
end |
||||||
|
|
||||||
|
def user_settings_params(flavour) |
||||||
|
params.require(:user).merge({ setting_flavour: flavour }).permit( |
||||||
|
:setting_flavour, |
||||||
|
:setting_skin |
||||||
|
) |
||||||
|
end |
||||||
|
end |
@ -1,6 +1,8 @@ |
|||||||
en: |
en: |
||||||
flavours: |
flavours: |
||||||
glitch: Glitch Edition |
glitch: |
||||||
|
description: The default flavour for GlitchSoc instances. |
||||||
|
name: Glitch Edition |
||||||
skins: |
skins: |
||||||
glitch: |
glitch: |
||||||
default: Default |
default: Default |
||||||
|
@ -1,6 +1,8 @@ |
|||||||
en: |
en: |
||||||
flavours: |
flavours: |
||||||
vanilla: Vanilla Mastodon |
vanilla: |
||||||
|
description: The theme used by vanilla Mastodon instances. This theme might not support all of the features of GlitchSoc. |
||||||
|
name: Vanilla Mastodon |
||||||
skins: |
skins: |
||||||
vanilla: |
vanilla: |
||||||
default: Default |
default: Default |
||||||
|
@ -0,0 +1,16 @@ |
|||||||
|
- content_for :page_title do |
||||||
|
= t "flavours.#{@selected}.name", default: @selected |
||||||
|
|
||||||
|
= simple_form_for current_user, url: settings_flavour_path(@selected), html: { method: :put } do |f| |
||||||
|
= render 'shared/error_messages', object: current_user |
||||||
|
|
||||||
|
.flavour-description |
||||||
|
= t "flavours.#{@selected}.description", default: '' |
||||||
|
|
||||||
|
%hr/ |
||||||
|
|
||||||
|
.fields-group |
||||||
|
= f.input :setting_skin, collection: Themes.instance.skins_for(@selected), label_method: lambda { |skin| I18n.t("skins.#{@selected}.#{skin}", default: skin) }, wrapper: :with_label, include_blank: false |
||||||
|
|
||||||
|
.actions |
||||||
|
= f.button :button, t('generic.use_this'), type: :submit |
Loading…
Reference in new issue