about summary refs log tree commit diff
path: root/app/lib
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib')
-rw-r--r--app/lib/themes.rb16
-rw-r--r--app/lib/user_settings_decorator.rb5
2 files changed, 21 insertions, 0 deletions
diff --git a/app/lib/themes.rb b/app/lib/themes.rb
new file mode 100644
index 000000000..243ffb9ab
--- /dev/null
+++ b/app/lib/themes.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+require 'singleton'
+require 'yaml'
+
+class Themes
+  include Singleton
+
+  def initialize
+    @conf = YAML.load_file(Rails.root.join('config', 'themes.yml'))
+  end
+
+  def names
+    @conf.keys
+  end
+end
diff --git a/app/lib/user_settings_decorator.rb b/app/lib/user_settings_decorator.rb
index 62046ed72..cb1b3c4a9 100644
--- a/app/lib/user_settings_decorator.rb
+++ b/app/lib/user_settings_decorator.rb
@@ -25,6 +25,7 @@ class UserSettingsDecorator
     user.settings['auto_play_gif'] = auto_play_gif_preference
     user.settings['system_font_ui'] = system_font_ui_preference
     user.settings['noindex'] = noindex_preference
+    user.settings['theme'] = theme_preference
   end
 
   def merged_notification_emails
@@ -67,6 +68,10 @@ class UserSettingsDecorator
     boolean_cast_setting 'setting_noindex'
   end
 
+  def theme_preference
+    settings['setting_theme']
+  end
+
   def boolean_cast_setting(key)
     settings[key] == '1'
   end