about summary refs log tree commit diff
path: root/app/models/form
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/form')
-rw-r--r--app/models/form/admin_settings.rb27
1 files changed, 26 insertions, 1 deletions
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index b5c3dcdbe..558a906d2 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -18,7 +18,8 @@ class Form::AdminSettings
     show_staff_badge
     enable_bootstrap_timeline_accounts
     bootstrap_timeline_accounts
-    theme
+    flavour
+    skin
     min_invite_role
     activity_api_enabled
     peers_api_enabled
@@ -26,14 +27,20 @@ class Form::AdminSettings
     preview_sensitive_media
     custom_css
     profile_directory
+    hide_followers_count
+    enable_keybase
+    flavour_and_skin
     thumbnail
     hero
     mascot
+    show_reblogs_in_public_timelines
+    show_replies_in_public_timelines
     trends
     trendable_by_default
     show_domain_blocks
     show_domain_blocks_rationale
     noindex
+    outgoing_spoilers
     require_invite_text
   ).freeze
 
@@ -47,6 +54,10 @@ class Form::AdminSettings
     show_known_fediverse_at_about_page
     preview_sensitive_media
     profile_directory
+    hide_followers_count
+    enable_keybase
+    show_reblogs_in_public_timelines
+    show_replies_in_public_timelines
     trends
     trendable_by_default
     noindex
@@ -59,6 +70,10 @@ class Form::AdminSettings
     mascot
   ).freeze
 
+  PSEUDO_KEYS = %i(
+    flavour_and_skin
+  ).freeze
+
   attr_accessor(*KEYS)
 
   validates :site_short_description, :site_description, html: { wrap_with: :p }
@@ -80,6 +95,7 @@ class Form::AdminSettings
     return false unless valid?
 
     KEYS.each do |key|
+      next if PSEUDO_KEYS.include?(key)
       value = instance_variable_get("@#{key}")
 
       if UPLOAD_KEYS.include?(key) && !value.nil?
@@ -92,10 +108,19 @@ class Form::AdminSettings
     end
   end
 
+  def flavour_and_skin
+    "#{Setting.flavour}/#{Setting.skin}"
+  end
+
+  def flavour_and_skin=(value)
+    @flavour, @skin = value.split('/', 2)
+  end
+
   private
 
   def initialize_attributes
     KEYS.each do |key|
+      next if PSEUDO_KEYS.include?(key)
       instance_variable_set("@#{key}", Setting.public_send(key)) if instance_variable_get("@#{key}").nil?
     end
   end