Add non-JS fallback for polls on public pages (#10155)
This commit is contained in:
parent
4ced609497
commit
3de71887d8
|
@ -23,7 +23,8 @@
|
||||||
.e-content{ lang: status.language, style: "display: #{!current_account&.user&.setting_expand_spoilers && status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true, autoplay: autoplay)
|
.e-content{ lang: status.language, style: "display: #{!current_account&.user&.setting_expand_spoilers && status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true, autoplay: autoplay)
|
||||||
|
|
||||||
- if status.poll
|
- if status.poll
|
||||||
= react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json
|
= react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json do
|
||||||
|
= render partial: 'stream_entries/poll', locals: { poll: status.poll }
|
||||||
- elsif !status.media_attachments.empty?
|
- elsif !status.media_attachments.empty?
|
||||||
- if status.media_attachments.first.video?
|
- if status.media_attachments.first.video?
|
||||||
- video = status.media_attachments.first
|
- video = status.media_attachments.first
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
- options = (!poll.expired? && poll.hide_totals?) ? poll.unloaded_options : poll.loaded_options
|
||||||
|
- voted = poll.votes.where(account: current_user.account).exists?
|
||||||
|
- show_results = voted || poll.expired?
|
||||||
|
|
||||||
|
.poll
|
||||||
|
%ul
|
||||||
|
- options.each do |option|
|
||||||
|
%li
|
||||||
|
- if show_results
|
||||||
|
- percent = 100 * option.votes_count / poll.votes_count
|
||||||
|
%span.poll__chart{ style: "width: #{percent}%" }
|
||||||
|
%label.poll__text><
|
||||||
|
%span.poll__number= percent
|
||||||
|
= option.title
|
||||||
|
- else
|
||||||
|
%label.poll__text><
|
||||||
|
%span.poll__input{ class: poll.multiple ? 'checkbox' : nil}><
|
||||||
|
= option.title
|
||||||
|
.poll__footer
|
||||||
|
- unless show_results
|
||||||
|
%button.button.button-secondary{ disabled: true }
|
||||||
|
= t('statuses.poll.vote')
|
||||||
|
%span= t('statuses.poll.total_votes', count: poll.votes_count)
|
||||||
|
·
|
||||||
|
%span= poll.expires_at
|
|
@ -27,7 +27,8 @@
|
||||||
.e-content{ lang: status.language, style: "display: #{!current_account&.user&.setting_expand_spoilers && status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true, autoplay: autoplay)
|
.e-content{ lang: status.language, style: "display: #{!current_account&.user&.setting_expand_spoilers && status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true, autoplay: autoplay)
|
||||||
|
|
||||||
- if status.poll
|
- if status.poll
|
||||||
= react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json
|
= react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json do
|
||||||
|
= render partial: 'stream_entries/poll', locals: { poll: status.poll }
|
||||||
- elsif !status.media_attachments.empty?
|
- elsif !status.media_attachments.empty?
|
||||||
- if status.media_attachments.first.video?
|
- if status.media_attachments.first.video?
|
||||||
- video = status.media_attachments.first
|
- video = status.media_attachments.first
|
||||||
|
|
|
@ -853,6 +853,11 @@ en:
|
||||||
ownership: Someone else's toot cannot be pinned
|
ownership: Someone else's toot cannot be pinned
|
||||||
private: Non-public toot cannot be pinned
|
private: Non-public toot cannot be pinned
|
||||||
reblog: A boost cannot be pinned
|
reblog: A boost cannot be pinned
|
||||||
|
poll:
|
||||||
|
total_votes:
|
||||||
|
one: "%{count} vote"
|
||||||
|
other: "%{count} votes"
|
||||||
|
vote: Vote
|
||||||
show_more: Show more
|
show_more: Show more
|
||||||
sign_in_to_participate: Sign in to participate in the conversation
|
sign_in_to_participate: Sign in to participate in the conversation
|
||||||
title: '%{name}: "%{quote}"'
|
title: '%{name}: "%{quote}"'
|
||||||
|
|
Loading…
Reference in New Issue