036dd98abb
* Responsively enforce 16:9 ratio on all media thumbnails in web UI Also change video player behaviour to "contain" rather than "cover" videos that don't fit the ratio, unlike images and GIFs, it's expected that a video is shown fully. * Fix spacing issues and remove floor * Remove floor
60 lines
3.4 KiB
Plaintext
60 lines
3.4 KiB
Plaintext
.detailed-status.light
|
|
= link_to TagManager.instance.url_for(status.account), class: 'detailed-status__display-name p-author h-card', target: stream_link_target, rel: 'noopener' do
|
|
%div
|
|
.avatar
|
|
= image_tag status.account.avatar.url(:original), width: 48, height: 48, alt: '', class: 'u-photo'
|
|
%span.display-name
|
|
%strong.p-name.emojify= display_name(status.account)
|
|
%span= acct(status.account)
|
|
|
|
- if embedded_view?
|
|
= link_to "web+mastodon://follow?uri=#{status.account.local_username_and_domain}", class: 'button button-secondary logo-button', target: '_new' do
|
|
= render file: Rails.root.join('app', 'javascript', 'images', 'logo.svg')
|
|
= t('accounts.follow')
|
|
|
|
.status__content.p-name.emojify<
|
|
- if status.spoiler_text?
|
|
%p{ style: 'margin-bottom: 0' }<
|
|
%span.p-summary> #{Formatter.instance.format_spoiler(status)}
|
|
%a.status__content__spoiler-link{ href: '#' }= t('statuses.show_more')
|
|
.e-content{ lang: status.language, style: "display: #{status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true)
|
|
|
|
- if !status.media_attachments.empty?
|
|
- if status.media_attachments.first.video?
|
|
- video = status.media_attachments.first
|
|
%div{ data: { component: 'Video', props: Oj.dump(src: video.file.url(:original), preview: video.file.url(:small), sensitive: status.sensitive? && !current_account&.user&.setting_display_sensitive_media, width: 670, height: 380, detailed: true, inline: true) }}
|
|
- else
|
|
%div{ data: { component: 'MediaGallery', props: Oj.dump(height: 380, sensitive: status.sensitive? && !current_account&.user&.setting_display_sensitive_media, standalone: true, 'autoPlayGif': current_account&.user&.setting_auto_play_gif, 'reduceMotion': current_account&.user&.setting_reduce_motion, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }) }}
|
|
- elsif status.preview_cards.first
|
|
%div{ data: { component: 'Card', props: Oj.dump('maxDescription': 160, card: ActiveModelSerializers::SerializableResource.new(status.preview_cards.first, serializer: REST::PreviewCardSerializer).as_json) }}
|
|
|
|
.detailed-status__meta
|
|
%data.dt-published{ value: status.created_at.to_time.iso8601 }
|
|
= link_to TagManager.instance.url_for(status), class: 'detailed-status__datetime u-url u-uid', target: stream_link_target, rel: 'noopener' do
|
|
%time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
|
|
·
|
|
- if status.application
|
|
- if status.application.website.blank?
|
|
%strong.detailed-status__application= status.application.name
|
|
- else
|
|
= link_to status.application.name, status.application.website, class: 'detailed-status__application', target: '_blank', rel: 'noopener'
|
|
·
|
|
- if status.direct_visibility?
|
|
%span<
|
|
= fa_icon('envelope')
|
|
- elsif status.private_visibility?
|
|
%span<
|
|
= fa_icon('lock')
|
|
- else
|
|
%span<
|
|
= fa_icon('retweet')
|
|
%span= status.reblogs_count
|
|
·
|
|
%span<
|
|
= fa_icon('star')
|
|
%span= status.favourites_count
|
|
|
|
- if user_signed_in?
|
|
·
|
|
= link_to t('statuses.open_in_web'), web_url("statuses/#{status.id}"), class: 'open-in-web-link', target: '_blank'
|