Improvements to toots display in admin view (#7452)

* Distinguish boosts from original statuses in the admin panel (fixes #7449)

* Show the “show more” button in admin view to make CWs clearer (fixes #7451)

* Make content warnings swag
master
ThibG 6 years ago committed by Eugen Rochko
parent 7467361d70
commit 0f2fbf7d05
  1. 10
      app/helpers/admin/account_moderation_notes_helper.rb
  2. 33
      app/javascript/styles/mastodon/admin.scss
  3. 11
      app/javascript/styles/mastodon/tables.scss
  4. 26
      app/views/admin/reports/_status.html.haml
  5. 1
      config/locales/en.yml

@ -10,10 +10,16 @@ module Admin::AccountModerationNotesHelper
end
end
def admin_account_inline_link_to(account)
link_to admin_account_path(account.id), class: name_tag_classes(account, true) do
content_tag(:span, account.acct, class: 'username')
end
end
private
def name_tag_classes(account)
classes = ['name-tag']
def name_tag_classes(account, inline = false)
classes = [inline ? 'inline-name-tag' : 'name-tag']
classes << 'suspended' if account.suspended?
classes.join(' ')
end

@ -484,19 +484,12 @@
}
a.name-tag,
.name-tag {
display: flex;
align-items: center;
.name-tag,
a.inline-name-tag,
.inline-name-tag {
text-decoration: none;
color: $secondary-text-color;
.avatar {
display: block;
margin: 0;
margin-right: 5px;
border-radius: 50%;
}
.username {
font-weight: 500;
}
@ -514,6 +507,26 @@ a.name-tag,
}
}
a.name-tag,
.name-tag {
display: flex;
align-items: center;
.avatar {
display: block;
margin: 0;
margin-right: 5px;
border-radius: 50%;
}
&.suspended {
.avatar {
filter: grayscale(100%);
opacity: 0.8;
}
}
}
.speech-bubble {
margin-bottom: 20px;
border-left: 4px solid $ui-highlight-color;

@ -1,3 +1,9 @@
@keyframes Swag {
0% { background-position: 0% 0%; }
50% { background-position: 100% 0%; }
100% { background-position: 200% 0%; }
}
.table {
width: 100%;
max-width: 100%;
@ -187,6 +193,11 @@ a.table-action-link {
strong {
font-weight: 700;
background: linear-gradient(to right, orange , yellow, green, cyan, blue, violet,orange , yellow, green, cyan, blue, violet);
background-size: 200% 100%;
background-clip: text;
color: transparent;
animation: Swag 2s linear 0s infinite;
}
}
}

@ -3,26 +3,30 @@
= f.check_box :status_ids, { multiple: true, include_hidden: false }, status.id
.batch-table__row__content
.status__content><
- unless status.spoiler_text.blank?
- unless status.proper.spoiler_text.blank?
%p><
%strong= Formatter.instance.format_spoiler(status)
%strong> Content warning: #{Formatter.instance.format_spoiler(status.proper)}
= Formatter.instance.format(status, custom_emojify: true)
= Formatter.instance.format(status.proper, custom_emojify: true)
- unless status.media_attachments.empty?
- if status.media_attachments.first.video?
- video = status.media_attachments.first
= react_component :video, src: video.file.url(:original), preview: video.file.url(:small), sensitive: status.sensitive? && !current_account&.user&.setting_display_sensitive_media, width: 610, height: 343, inline: true
- unless status.proper.media_attachments.empty?
- if status.proper.media_attachments.first.video?
- video = status.proper.media_attachments.first
= react_component :video, src: video.file.url(:original), preview: video.file.url(:small), sensitive: status.proper.sensitive? && !current_account&.user&.setting_display_sensitive_media, width: 610, height: 343, inline: true
- else
= react_component :media_gallery, height: 343, sensitive: status.sensitive? && !current_account&.user&.setting_display_sensitive_media, 'autoPlayGif': current_account&.user&.setting_auto_play_gif, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }
= react_component :media_gallery, height: 343, sensitive: status.proper.sensitive? && !current_account&.user&.setting_display_sensitive_media, 'autoPlayGif': current_account&.user&.setting_auto_play_gif, media: status.proper.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }
.detailed-status__meta
= link_to TagManager.instance.url_for(status), class: 'detailed-status__datetime', target: stream_link_target, rel: 'noopener' do
%time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
·
= fa_visibility_icon(status)
= t("statuses.visibilities.#{status.visibility}")
- if status.sensitive?
- if status.reblog?
= fa_icon('retweet fw')
= t('statuses.boosted_from_html', acct_link: admin_account_inline_link_to(status.proper.account))
- else
= fa_visibility_icon(status)
= t("statuses.visibilities.#{status.visibility}")
- if status.proper.sensitive?
·
= fa_icon('eye-slash fw')
= t('stream_entries.sensitive_content')

@ -682,6 +682,7 @@ en:
video:
one: "%{count} video"
other: "%{count} videos"
boosted_from_html: Boosted from %{acct_link}
content_warning: 'Content warning: %{warning}'
disallowed_hashtags:
one: 'contained a disallowed hashtag: %{tags}'

Loading…
Cancel
Save