fix #361 with rich OEmbed display via iframe, fix #237 by hiding sensitive content behind a spoiler on public pageslocal
parent
aed25932b5
commit
5ae1b39ec9
13 changed files with 318 additions and 188 deletions
@ -1,8 +1,20 @@ |
||||
import emojify from './components/emoji' |
||||
|
||||
$(() => { |
||||
$.each($('.entry .content, .name, .account__header__content'), (_, content) => { |
||||
$.each($('.entry .content, .entry .status__content, .display-name, .name, .account__header__content'), (_, content) => { |
||||
const $content = $(content); |
||||
$content.html(emojify($content.html())); |
||||
}); |
||||
|
||||
$('.video-player video').on('click', e => { |
||||
if (e.target.paused) { |
||||
e.target.play(); |
||||
} else { |
||||
e.target.pause(); |
||||
} |
||||
}); |
||||
|
||||
$('.media-spoiler').on('click', e => { |
||||
$(e.target).hide(); |
||||
}); |
||||
}); |
||||
|
@ -0,0 +1,3 @@ |
||||
.media-spoiler |
||||
%span= t('stream_entries.sensitive_content') |
||||
%span= t('stream_entries.click_to_show') |
@ -0,0 +1,36 @@ |
||||
.detailed-status.light |
||||
= link_to TagManager.instance.url_for(status.account), class: 'detailed-status__display-name', target: @external_links ? '_blank' : nil, rel: 'noopener' do |
||||
%div |
||||
%div.avatar |
||||
= image_tag status.account.avatar.url(:original), width: 48, height: 48, alt: '' |
||||
%span.display-name |
||||
%strong= display_name(status.account) |
||||
%span= acct(status.account) |
||||
|
||||
.status__content= Formatter.instance.format(status) |
||||
|
||||
- unless status.media_attachments.empty? |
||||
- if status.media_attachments.first.video? |
||||
.video-player |
||||
- if status.sensitive? |
||||
= render partial: 'stream_entries/content_spoiler' |
||||
%video{ src: status.media_attachments.first.file.url(:original), loop: true } |
||||
- else |
||||
.detailed-status__attachments |
||||
- if status.sensitive? |
||||
= render partial: 'stream_entries/content_spoiler' |
||||
- status.media_attachments.each do |media| |
||||
.media-item |
||||
= link_to '', (media.remote_url.blank? ? media.file.url(:original) : media.remote_url), style: "background-image: url(#{media.file.url(:original)})", target: '_blank', rel: 'noopener' |
||||
|
||||
%div.detailed-status__meta |
||||
= link_to TagManager.instance.url_for(status), class: 'detailed-status__datetime', target: @external_links ? '_blank' : nil, rel: 'noopener' do |
||||
%span= l(status.created_at) |
||||
· |
||||
%span |
||||
= fa_icon('retweet') |
||||
%span= status.reblogs.count |
||||
· |
||||
%span |
||||
= fa_icon('star') |
||||
%span= status.favourites.count |
@ -0,0 +1,28 @@ |
||||
.status.light |
||||
.status__header |
||||
.status__meta |
||||
= link_to time_ago_in_words(status.created_at), TagManager.instance.url_for(status), class: 'status__relative-time', title: l(status.created_at), target: @external_links ? '_blank' : nil, rel: 'noopener' |
||||
|
||||
= link_to TagManager.instance.url_for(status.account), class: 'status__display-name', target: @external_links ? '_blank' : nil, rel: 'noopener' do |
||||
.status__avatar |
||||
%div |
||||
= image_tag status.account.avatar(:original), width: 48, height: 48, alt: '' |
||||
%span.display-name |
||||
%strong= display_name(status.account) |
||||
%span= acct(status.account) |
||||
|
||||
.status__content= Formatter.instance.format(status) |
||||
|
||||
- unless status.media_attachments.empty? |
||||
.status__attachments |
||||
- if status.sensitive? |
||||
= render partial: 'stream_entries/content_spoiler' |
||||
- if status.media_attachments.first.video? |
||||
.video-item |
||||
= link_to (status.media_attachments.first.remote_url.blank? ? status.media_attachments.first.file.url(:original) : status.media_attachments.first.remote_url), style: "background-image: url(#{status.media_attachments.first.file.url(:small)})", target: '_blank', rel: 'noopener' do |
||||
.video-item__play |
||||
= fa_icon('play') |
||||
- else |
||||
- status.media_attachments.each do |media| |
||||
.media-item |
||||
= link_to '', (media.remote_url.blank? ? media.file.url(:original) : media.remote_url), style: "background-image: url(#{media.file.url(:original)})", target: '_blank', rel: 'noopener' |
@ -1,2 +1,2 @@ |
||||
.activity-stream.activity-stream-headless |
||||
= render partial: @type, locals: { @type.to_sym => @stream_entry.activity } |
||||
= render partial: @type, locals: { @type.to_sym => @stream_entry.activity, centered: true } |
||||
|
Loading…
Reference in new issue