end
def current_session
- @current_session ||= SessionActivation.find_by(session_id: cookies.signed['_session_id'])
+ return @current_session if defined?(@current_session)
+
+ @current_session = SessionActivation.find_by(session_id: cookies.signed['_session_id']) if cookies.signed['_session_id'].present?
end
- def current_theme
- return Setting.theme unless Themes.instance.names.include? current_user&.setting_theme
- current_user.setting_theme
+ def current_flavour
+ return Setting.flavour unless Themes.instance.flavours.include? current_user&.setting_flavour
+ current_user.setting_flavour
+ end
+
+ def current_skin
+ return Setting.skin unless Themes.instance.skins_for(current_flavour).include? current_user&.setting_skin
+ current_user.setting_skin
end
def cache_collection(raw, klass)
:setting_aggregate_reblogs,
:setting_show_application,
:setting_advanced_layout,
+ :setting_default_content_type,
+ :setting_use_blurhash,
notification_emails: %i(follow follow_request reblog favourite mention digest report pending_account),
interactions: %i(must_be_follower must_be_following must_be_following_dm)
)
user.settings['aggregate_reblogs'] = aggregate_reblogs_preference if change?('setting_aggregate_reblogs')
user.settings['show_application'] = show_application_preference if change?('setting_show_application')
user.settings['advanced_layout'] = advanced_layout_preference if change?('setting_advanced_layout')
+ user.settings['default_content_type']= default_content_type_preference if change?('setting_default_content_type')
+ user.settings['use_blurhash'] = use_blurhash_preference if change?('setting_use_blurhash')
end
def merged_notification_emails
boolean_cast_setting 'setting_advanced_layout'
end
+ def default_content_type_preference
+ settings['setting_default_content_type']
+ end
+
+ def use_blurhash_preference
+ boolean_cast_setting 'setting_use_blurhash'
+ end
+
def boolean_cast_setting(key)
ActiveModel::Type::Boolean.new.cast(settings[key])
end
has_many :session_activations, dependent: :destroy
- delegate :auto_play_gif, :default_sensitive, :unfollow_modal, :boost_modal, :delete_modal,
- :reduce_motion, :system_font_ui, :noindex, :theme, :display_media, :hide_network,
+ delegate :auto_play_gif, :default_sensitive, :unfollow_modal, :boost_modal, :favourite_modal, :delete_modal,
+ :reduce_motion, :system_font_ui, :noindex, :flavour, :skin, :display_media, :hide_network, :hide_followers_count,
:expand_spoilers, :default_language, :aggregate_reblogs, :show_application,
- :advanced_layout, :default_content_type, to: :settings, prefix: :setting, allow_nil: false
- :advanced_layout, :use_blurhash, to: :settings, prefix: :setting, allow_nil: false
++ :advanced_layout, :default_content_type, :use_blurhash, to: :settings, prefix: :setting, allow_nil: false
attr_reader :invite_code
attr_writer :external
store[:expand_spoilers] = object.current_account.user.setting_expand_spoilers
store[:reduce_motion] = object.current_account.user.setting_reduce_motion
store[:advanced_layout] = object.current_account.user.setting_advanced_layout
+ store[:use_blurhash] = object.current_account.user.setting_use_blurhash
store[:is_staff] = object.current_account.user.staff?
+ store[:default_content_type] = object.current_account.user.setting_default_content_type
end
store
setting_hide_network: Who you follow and who follows you will not be shown on your profile
setting_noindex: Affects your public profile and status pages
setting_show_application: The application you use to toot will be displayed in the detailed view of your toots
+ setting_skin: Reskins the selected Mastodon flavour
+ setting_use_blurhash: Gradients are based on the colors of the hidden visuals but obfuscate any details
username: Your username will be unique on %{domain}
whole_word: When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word
featured_tag:
setting_noindex: Opt-out of search engine indexing
setting_reduce_motion: Reduce motion in animations
setting_show_application: Disclose application used to send toots
+ setting_skin: Skin
setting_system_font_ui: Use system's default font
- setting_theme: Site theme
setting_unfollow_modal: Show confirmation dialog before unfollowing someone
+ setting_use_blurhash: Show colorful gradients for hidden media
severity: Severity
type: Import type
username: Username
expand_spoilers: false
preview_sensitive_media: false
reduce_motion: false
- show_application: true
+ show_application: false
system_font_ui: false
noindex: false
- theme: 'default'
+ hide_followers_count: false
+ enable_keybase: true
+ flavour: 'glitch'
+ skin: 'default'
aggregate_reblogs: true
advanced_layout: false
+ use_blurhash: true
notification_emails:
follow: false
reblog: false
"@babel/runtime": "^7.4.5",
"@clusterws/cws": "^0.14.0",
"array-includes": "^3.0.3",
+ "atrament": "^0.2.3",
"autoprefixer": "^9.6.0",
"axios": "^0.19.0",
- "babel-loader": "^8.0.5",
+ "babel-loader": "^8.0.6",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^3.0.1",
"babel-plugin-react-intl": "^3.1.3",