123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- # frozen_string_literal: true
- module User::HasSettings
- extend ActiveSupport::Concern
- included do
- serialize :settings, coder: UserSettingsSerializer
- end
- def settings_attributes=(attributes)
- settings.update(attributes)
- end
- def prefers_noindex?
- settings['noindex']
- end
- def preferred_posting_language
- valid_locale_cascade(settings['default_language'], locale, I18n.locale)
- end
- def setting_auto_play_gif
- settings['web.auto_play']
- end
- def setting_default_sensitive
- settings['default_sensitive']
- end
- def setting_unfollow_modal
- settings['web.unfollow_modal']
- end
- def setting_boost_modal
- settings['web.reblog_modal']
- end
- def setting_delete_modal
- settings['web.delete_modal']
- end
- def setting_reduce_motion
- settings['web.reduce_motion']
- end
- def setting_system_font_ui
- settings['web.use_system_font']
- end
- def setting_noindex
- settings['noindex']
- end
- def setting_theme
- settings['theme']
- end
- def setting_display_media
- settings['web.display_media']
- end
- def setting_expand_spoilers
- settings['web.expand_content_warnings']
- end
- def setting_default_language
- settings['default_language']
- end
- def setting_aggregate_reblogs
- settings['aggregate_reblogs']
- end
- def setting_show_application
- settings['show_application']
- end
- def setting_advanced_layout
- settings['web.advanced_layout']
- end
- def setting_use_blurhash
- settings['web.use_blurhash']
- end
- def setting_use_pending_items
- settings['web.use_pending_items']
- end
- def setting_trends
- settings['web.trends']
- end
- def setting_disable_swiping
- settings['web.disable_swiping']
- end
- def setting_always_send_emails
- settings['always_send_emails']
- end
- def setting_default_privacy
- settings['default_privacy'] || (account.locked? ? 'private' : 'public')
- end
- def allows_report_emails?
- settings['notification_emails.report']
- end
- def allows_pending_account_emails?
- settings['notification_emails.pending_account']
- end
- def allows_appeal_emails?
- settings['notification_emails.appeal']
- end
- def allows_trends_review_emails?
- settings['notification_emails.trends']
- end
- def aggregates_reblogs?
- settings['aggregate_reblogs']
- end
- def shows_application?
- settings['show_application']
- end
- def show_all_media?
- settings['web.display_media'] == 'show_all'
- end
- def hide_all_media?
- settings['web.display_media'] == 'hide_all'
- end
- end
|