Add options to increase size and spacing of context menus and to gently the kobolds. Also allow showing multiple user roles.

staging
multiple creatures 2019-04-13 16:59:21 -05:00
parent d033327136
commit 4c170d2a98
9 changed files with 77 additions and 7 deletions

View File

@ -34,6 +34,10 @@ class Settings::PreferencesController < Settings::BaseController
:setting_rawr_federated,
:setting_hide_stats,
:setting_hide_captions,
:setting_larger_menus,
:setting_gently_kobolds,
:setting_user_is_kobold,
:setting_default_privacy,
:setting_default_sensitive,
:setting_default_language,

View File

@ -35,18 +35,23 @@ module StreamEntriesHelper
end
def account_badge(account, all: false)
if account.bot?
content_tag(:div, content_tag(:div, t('accounts.roles.bot'), class: 'account-role bot'), class: 'roles')
elsif (Setting.show_staff_badge && account.user_staff?) || all
content_tag(:div, class: 'roles') do
content_tag(:div, class: 'roles') do
roles = []
roles << content_tag(:div, t('accounts.roles.bot'), class: 'account-role bot') if account.bot?
roles << content_tag(:div, t('accounts.roles.gentlies_kobolds'), class: 'account-role gentlies') if account&.user&.setting_gently_kobolds
roles << content_tag(:div, t('accounts.roles.kobold'), class: 'account-role kobold') if account&.user&.setting_user_is_kobold
if (Setting.show_staff_badge && account.user_staff?) || all
if all && !account.user_staff?
content_tag(:div, t('admin.accounts.roles.user'), class: 'account-role')
roles << content_tag(:div, t('admin.accounts.roles.user'), class: 'account-role')
elsif account.user_admin?
content_tag(:div, t('accounts.roles.admin'), class: 'account-role admin')
roles << content_tag(:div, t('accounts.roles.admin'), class: 'account-role admin')
elsif account.user_moderator?
content_tag(:div, t('accounts.roles.moderator'), class: 'account-role moderator')
roles << content_tag(:div, t('accounts.roles.moderator'), class: 'account-role moderator')
end
end
roles.sum
end
end

View File

@ -221,6 +221,18 @@
background-color: rgba(lighten($error-red, 12%), 0.1);
border-color: rgba(lighten($error-red, 12%), 0.5);
}
&.gentlies {
color: lighten(cyan, 25%);
background-color: rgba(lighten(cyan, 25%), 0.1);
border-color: rgba(lighten(cyan, 25%), 0.1);
}
&.kobold {
color: lighten(orange, 22%);
background-color: rgba(lighten(orange, 33%), 0.1);
border-color: rgba(lighten(orange, 33%), 0.1);
}
}
.account__header__fields {

View File

@ -19,6 +19,10 @@ class UserSettingsDecorator
user.settings['always_local'] = always_local_preference if change?('setting_always_local')
user.settings['rawr_federated'] = rawr_federated_preference if change?('setting_rawr_federated')
user.settings['hide_stats'] = hide_stats_preference if change?('setting_hide_stats')
user.settings['larger_menus'] = larger_menus_preference if change?('setting_larger_menus')
user.settings['gently_kobolds'] = gently_kobolds_preference if change?('setting_gently_kobolds')
user.settings['user_is_kobold'] = user_is_kobold_preference if change?('setting_user_is_kobold')
user.settings['hide_captions'] = hide_captions_preference if change?('setting_hide_captions')
user.settings['notification_emails'] = merged_notification_emails if change?('notification_emails')
user.settings['interactions'] = merged_interactions if change?('interactions')
@ -44,6 +48,18 @@ class UserSettingsDecorator
user.settings['default_content_type']= default_content_type_preference if change?('setting_default_content_type')
end
def larger_menus_preference
boolean_cast_setting 'setting_larger_menus'
end
def gently_kobolds_preference
boolean_cast_setting 'setting_gently_kobolds'
end
def user_is_kobold_preference
boolean_cast_setting 'setting_user_is_kobold'
end
def merged_notification_emails
user.settings['notification_emails'].merge coerced_settings('notification_emails').to_h
end

View File

@ -108,6 +108,10 @@ class User < ApplicationRecord
:hide_stats,
:disable_color,
:hide_captions,
:larger_menus,
:gently_kobolds,
:user_is_kobold,
:auto_play_gif,
:default_sensitive,
:unfollow_modal,
@ -209,6 +213,18 @@ class User < ApplicationRecord
save!
end
def setting_larger_menus
settings.larger_menus || false
end
def setting_gently_kobolds
settings.gently_kobolds || false
end
def setting_user_is_kobold
settings.user_is_kobold || false
end
def setting_default_privacy
settings.default_privacy || 'public'
end

View File

@ -52,5 +52,12 @@
span .caption
{ display: none }
- if current_account&.user&.setting_larger_menus
:css
.dropdown-menu__item a
{ padding: 14px 14px !important; font-size: 14px !important }
.dropdown--active .dropdown__content > ul > li > a
{ padding: 14px 0 !important; font-size: 14px !important }
%body{ class: body_classes }
= content_for?(:content) ? yield(:content) : yield

View File

@ -46,6 +46,10 @@
.fields-group
= f.input :setting_hide_followers_count, as: :boolean, wrapper: :with_label
.fields-group
= f.input :setting_gently_kobolds, as: :boolean, wrapper: :with_label
= f.input :setting_user_is_kobold, as: :boolean, wrapper: :with_label
%hr#settings_web/
.fields-group
@ -54,6 +58,7 @@
= f.input :setting_disable_color, as: :boolean, wrapper: :with_label
= f.input :setting_system_font_ui, as: :boolean, wrapper: :with_label
= f.input :setting_hide_captions, as: :boolean, wrapper: :with_label
= f.input :setting_larger_menus, as: :boolean, wrapper: :with_label
.fields-group
= f.input :setting_unfollow_modal, as: :boolean, wrapper: :with_label

View File

@ -68,6 +68,8 @@ en:
admin: Admin
bot: Bot
moderator: Mod
kobold: Gently the kobold
gentlies_kobolds: Gentlies kobolds
unavailable: Profile unavailable
unfollow: Unfollow
admin:

View File

@ -110,6 +110,9 @@ en:
setting_hide_stats: Hide statistics on public pages
setting_disable_color: Ignore text color formatting
setting_hide_captions: Hide media captions
setting_larger_menus: Increase size of menu items and spacing
setting_gently_kobolds: Gently the kobolds
setting_user_is_kobold: I am a kobold
setting_aggregate_reblogs: Group repeats in timelines
setting_auto_play_gif: Auto-play animated GIFs
setting_boost_modal: Show confirmation dialog before repeating