Accounts, UI: Expose kobold badges over the API. Render badges in the web app.

staging
multiple creatures 2019-05-15 16:18:58 -05:00
parent 89c5d8ec4e
commit c961429dc2
3 changed files with 15 additions and 2 deletions

View File

@ -191,6 +191,8 @@ class Header extends ImmutablePureComponent {
const fields = account.get('fields');
const badge_bot = account.get('bot') ? (<div className='account-role bot'><FormattedMessage id='account.badges.bot' defaultMessage='Bot' /></div>) : null;
const badge_ao = account.get('adults_only') ? (<div className='account-role adults-only'><FormattedMessage id='account.badges.adults_only' defaultMessage="🔞 Adult content" /></div>) : null;
const badge_gntly_kbld = account.get('gentlies_kobolds') ? (<div className='account-role gentlies'><FormattedMessage id='account.badges.gentlies_kobolds' defaultMessage="Gentlies kobolds" /></div>) : null;
const badge_kobold = account.get('is_a_kobold') ? (<div className='account-role kobold'><FormattedMessage id='account.badges.kobold' defaultMessage="Gently the kobold" /></div>) : null;
const acct = account.get('acct').indexOf('@') === -1 && domain ? `${account.get('acct')}@${domain}` : account.get('acct');
return (
@ -220,8 +222,9 @@ class Header extends ImmutablePureComponent {
<div className='account__header__tabs__name'>
<h1>
<span dangerouslySetInnerHTML={displayNameHtml} /> {badge_ao}{badge_bot}
<span dangerouslySetInnerHTML={displayNameHtml} />
<small>@{acct} {lockedIcon}</small>
<div className='roles'>{badge_ao}{badge_bot}{badge_gntly_kbld}{badge_kobold}</div>
</h1>
</div>

View File

@ -2,6 +2,8 @@
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.badges.adults_only": "🔞 Adult content",
"account.badges.gentlies_kobolds": "Gentlies kobolds",
"account.badges.kobold": "Gently the kobold",
"account.block": "Block @{name}",
"account.block_domain": "Hide {domain}",
"account.blocked": "Blocked",

View File

@ -6,7 +6,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
attributes :id, :username, :acct, :display_name, :locked, :bot, :created_at,
:note, :url, :avatar, :avatar_static, :header, :header_static,
:followers_count, :following_count, :statuses_count, :replies,
:adults_only
:adults_only, :gentlies_kobolds, :is_a_kobold
has_one :moved_to_account, key: :moved, serializer: REST::AccountSerializer, if: :moved_and_not_nested?
has_many :emojis, serializer: REST::CustomEmojiSerializer
@ -56,4 +56,12 @@ class REST::AccountSerializer < ActiveModel::Serializer
def followers_count
(Setting.hide_followers_count || object.user&.setting_hide_followers_count) ? -1 : object.followers_count
end
def gentlies_kobolds
object.user_gentlies_kobolds? || false
end
def is_a_kobold
object.user_is_a_kobold? || false
end
end