Merge remote-tracking branch 'parent/main' into kb-upstream-20231026
This commit is contained in:
commit
5448bcf276
313 changed files with 3717 additions and 4735 deletions
5
app/views/.rubocop.yml
Normal file
5
app/views/.rubocop.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
inherit_from: ../../.rubocop.yml
|
||||
|
||||
# Disable for the `Rubocop` lints in haml-lint
|
||||
Style/IfUnlessModifier:
|
||||
Enabled: false
|
|
@ -1,5 +1,5 @@
|
|||
- content_for :page_title do
|
||||
= "#{display_name(@account)} (#{acct(@account)})"
|
||||
#{display_name(@account)} (#{acct(@account)})
|
||||
|
||||
- content_for :header_tags do
|
||||
- if @account.noindex?
|
||||
|
|
|
@ -30,6 +30,6 @@
|
|||
\-
|
||||
%br/
|
||||
%samp.ellipsized-ip= relevant_account_ip(account, params[:ip])
|
||||
- if !account.suspended? && account.user_pending? && account.user&.invite_request&.text&.present?
|
||||
- if !account.suspended? && account.user_pending? && account.user&.invite_request&.text.present?
|
||||
.batch-table__row__content__quote
|
||||
%p= account.user&.invite_request&.text
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
|
||||
%hr.spacer/
|
||||
|
||||
- if @account.user&.invite_request&.text&.present?
|
||||
- if @account.user&.invite_request&.text.present?
|
||||
.speech-bubble
|
||||
.speech-bubble__bubble
|
||||
= @account.user&.invite_request&.text
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
= custom_emoji_tag(custom_emoji)
|
||||
|
||||
.batch-table__row__content__text
|
||||
%samp= ":#{custom_emoji.shortcode}:"
|
||||
%samp :#{custom_emoji.shortcode}:
|
||||
= link_to safe_join([fa_icon('pencil'), t('admin.custom_emojis.edit.label')]), edit_admin_custom_emoji_path(custom_emoji, local: params[:local], remote: params[:remote], shortcode: params[:shortcode], by_domain: params[:by_domain]), method: :get, class: 'table-action-link'
|
||||
|
||||
- if custom_emoji.local?
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
= t('.title', domain: Addressable::IDNA.to_unicode(@domain_block.domain))
|
||||
|
||||
= simple_form_for @domain_block, url: admin_domain_blocks_path, method: :post do |f|
|
||||
|
||||
%p.hint= t('.preamble_html', domain: Addressable::IDNA.to_unicode(@domain_block.domain))
|
||||
%ul.hint
|
||||
%li= t('.stop_communication')
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
- if @instance.instance_info.present?
|
||||
%p
|
||||
= "#{@instance.instance_info.software} #{@instance.instance_info.version}"
|
||||
#{@instance.instance_info.software} #{@instance.instance_info.version}
|
||||
|
||||
- if current_user.can?(:view_dashboard)
|
||||
- content_for :heading_actions do
|
||||
|
@ -11,27 +11,31 @@
|
|||
= ' - '
|
||||
= l(@time_period.last)
|
||||
|
||||
%p
|
||||
= fa_icon 'info fw'
|
||||
= t('admin.instances.totals_time_period_hint_html')
|
||||
- if @instance.persisted?
|
||||
%p
|
||||
= fa_icon 'info fw'
|
||||
= t('admin.instances.totals_time_period_hint_html')
|
||||
|
||||
.dashboard
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_accounts_measure'), href: admin_accounts_path(origin: 'remote', by_domain: @instance.domain)
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_statuses', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_statuses_measure')
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_media_attachments', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_media_attachments_measure')
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_follows', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_follows_measure')
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_followers', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_followers_measure')
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_reports', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_reports_measure'), href: admin_reports_path(by_target_domain: @instance.domain)
|
||||
.dashboard__item
|
||||
= react_admin_component :dimension, dimension: 'instance_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, limit: 8, label: t('admin.instances.dashboard.instance_accounts_dimension')
|
||||
.dashboard__item
|
||||
= react_admin_component :dimension, dimension: 'instance_languages', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, limit: 8, label: t('admin.instances.dashboard.instance_languages_dimension')
|
||||
.dashboard
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_accounts_measure'), href: admin_accounts_path(origin: 'remote', by_domain: @instance.domain)
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_statuses', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_statuses_measure')
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_media_attachments', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_media_attachments_measure')
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_follows', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_follows_measure')
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_followers', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_followers_measure')
|
||||
.dashboard__item
|
||||
= react_admin_component :counter, measure: 'instance_reports', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_reports_measure'), href: admin_reports_path(by_target_domain: @instance.domain)
|
||||
.dashboard__item
|
||||
= react_admin_component :dimension, dimension: 'instance_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, limit: 8, label: t('admin.instances.dashboard.instance_accounts_dimension')
|
||||
.dashboard__item
|
||||
= react_admin_component :dimension, dimension: 'instance_languages', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, limit: 8, label: t('admin.instances.dashboard.instance_languages_dimension')
|
||||
- else
|
||||
%p
|
||||
= t('admin.instances.unknown_instance')
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
|
@ -66,33 +70,34 @@
|
|||
- else
|
||||
= link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @instance.domain), class: 'button'
|
||||
|
||||
%hr.spacer/
|
||||
- if @instance.persisted?
|
||||
%hr.spacer/
|
||||
|
||||
%h3= t('admin.instances.availability.title')
|
||||
%h3= t('admin.instances.availability.title')
|
||||
|
||||
%p
|
||||
= t('admin.instances.availability.description_html', count: DeliveryFailureTracker::FAILURE_DAYS_THRESHOLD)
|
||||
%p
|
||||
= t('admin.instances.availability.description_html', count: DeliveryFailureTracker::FAILURE_DAYS_THRESHOLD)
|
||||
|
||||
.availability-indicator
|
||||
%ul.availability-indicator__graphic
|
||||
- @instance.availability_over_days(14).each do |(date, failing)|
|
||||
%li.availability-indicator__graphic__item{ class: failing ? 'negative' : 'neutral', title: l(date) }
|
||||
.availability-indicator__hint
|
||||
- if @instance.unavailable?
|
||||
%span.negative-hint
|
||||
= t('admin.instances.availability.failure_threshold_reached', date: l(@instance.unavailable_domain.created_at.to_date))
|
||||
= link_to t('admin.instances.delivery.restart'), restart_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }
|
||||
- elsif @instance.exhausted_deliveries_days.empty?
|
||||
%span.positive-hint
|
||||
= t('admin.instances.availability.no_failures_recorded')
|
||||
= link_to t('admin.instances.delivery.stop'), stop_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }
|
||||
- else
|
||||
%span.negative-hint
|
||||
= t('admin.instances.availability.failures_recorded', count: @instance.delivery_failure_tracker.days)
|
||||
%span= link_to t('admin.instances.delivery.clear'), clear_delivery_errors_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post } unless @instance.exhausted_deliveries_days.empty?
|
||||
%span= link_to t('admin.instances.delivery.stop'), stop_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }
|
||||
.availability-indicator
|
||||
%ul.availability-indicator__graphic
|
||||
- @instance.availability_over_days(14).each do |(date, failing)|
|
||||
%li.availability-indicator__graphic__item{ class: failing ? 'negative' : 'neutral', title: l(date) }
|
||||
.availability-indicator__hint
|
||||
- if @instance.unavailable?
|
||||
%span.negative-hint
|
||||
= t('admin.instances.availability.failure_threshold_reached', date: l(@instance.unavailable_domain.created_at.to_date))
|
||||
= link_to t('admin.instances.delivery.restart'), restart_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }
|
||||
- elsif @instance.exhausted_deliveries_days.empty?
|
||||
%span.positive-hint
|
||||
= t('admin.instances.availability.no_failures_recorded')
|
||||
= link_to t('admin.instances.delivery.stop'), stop_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }
|
||||
- else
|
||||
%span.negative-hint
|
||||
= t('admin.instances.availability.failures_recorded', count: @instance.delivery_failure_tracker.days)
|
||||
%span= link_to t('admin.instances.delivery.clear'), clear_delivery_errors_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post } unless @instance.exhausted_deliveries_days.empty?
|
||||
%span= link_to t('admin.instances.delivery.stop'), stop_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }
|
||||
|
||||
- if @instance.purgeable?
|
||||
%p= t('admin.instances.purge_description_html')
|
||||
- if @instance.purgeable?
|
||||
%p= t('admin.instances.purge_description_html')
|
||||
|
||||
= link_to t('admin.instances.purge'), admin_instance_path(@instance), data: { confirm: t('admin.instances.confirm_purge'), method: :delete }, class: 'button button--destructive'
|
||||
= link_to t('admin.instances.purge'), admin_instance_path(@instance), data: { confirm: t('admin.instances.confirm_purge'), method: :delete }, class: 'button button--destructive'
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
- if relay.accepted?
|
||||
%span.positive-hint
|
||||
= fa_icon('check')
|
||||
= ' '
|
||||
|
||||
= t 'admin.relays.enabled'
|
||||
- elsif relay.pending?
|
||||
= fa_icon('hourglass')
|
||||
= ' '
|
||||
|
||||
= t 'admin.relays.pending'
|
||||
- else
|
||||
%span.negative-hint
|
||||
= fa_icon('times')
|
||||
= ' '
|
||||
|
||||
= t 'admin.relays.disabled'
|
||||
%td
|
||||
- if relay.accepted?
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.announcements-list__item
|
||||
= link_to edit_admin_rule_path(rule), class: 'announcements-list__item__title' do
|
||||
= "#{rule_counter + 1}."
|
||||
#{rule_counter + 1}.
|
||||
= truncate(rule.text)
|
||||
|
||||
.announcements-list__item__action-bar
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
%td= update.version
|
||||
%td= t("admin.software_updates.types.#{update.type}")
|
||||
- if update.urgent?
|
||||
%td.critical= t("admin.software_updates.critical_update")
|
||||
%td.critical= t('admin.software_updates.critical_update')
|
||||
- else
|
||||
%td
|
||||
%td= table_link_to 'link', t('admin.software_updates.release_notes'), update.release_notes
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- content_for :page_title do
|
||||
= t('admin.statuses.title')
|
||||
\-
|
||||
= "@#{@account.pretty_acct}"
|
||||
@#{@account.pretty_acct}
|
||||
|
||||
.filters
|
||||
.filter-subset
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
%span= t('admin.trends.tags.not_trendable')
|
||||
= fa_icon 'lock fw'
|
||||
|
||||
|
||||
= link_to admin_tag_path(@tag.id), class: ['dashboard__quick-access', @tag.listable? ? 'positive' : 'negative'] do
|
||||
- if @tag.listable?
|
||||
%span= t('admin.trends.tags.listable')
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
%br/
|
||||
|
||||
= link_to tag_path(tag), target: '_blank' do
|
||||
= link_to tag_path(tag), target: '_blank', rel: 'noopener noreferrer' do
|
||||
= t('admin.trends.tags.used_by_over_week', count: tag.history.reduce(0) { |sum, day| sum + day.accounts })
|
||||
|
||||
- if tag.trendable? && (rank = Trends.tags.rank(tag.id))
|
||||
|
|
|
@ -1,13 +1,29 @@
|
|||
- content_for :page_title do
|
||||
= t('auth.resend_confirmation')
|
||||
|
||||
= simple_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f|
|
||||
= render 'shared/error_messages', object: resource
|
||||
- if resource.errors.of_kind?(:email, :already_confirmed)
|
||||
.simple_form
|
||||
= render 'auth/shared/progress', stage: resource.approved? ? 'completed' : 'confirmed'
|
||||
|
||||
.fields-group
|
||||
= f.input :email, autofocus: true, wrapper: :with_label, label: t('simple_form.labels.defaults.email'), input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, readonly: current_user.present?, hint: current_user.present? && t('auth.confirmations.wrong_email_hint')
|
||||
- if resource.approved?
|
||||
%h1.title= t('auth.confirmations.welcome_title', name: resource.account.username)
|
||||
%p.lead= t('auth.confirmations.registration_complete', domain: site_hostname)
|
||||
- if resource.created_by_application && redirect_to_app?
|
||||
- app = resource.created_by_application
|
||||
%p.lead= t('auth.confirmations.redirect_to_app_html', app_name: app.name, clicking_this_link: link_to(t('auth.confirmations.clicking_this_link'), app.confirmation_redirect_uri))
|
||||
- else
|
||||
%p.lead= t('auth.confirmations.proceed_to_login_html', login_link: link_to_login(t('auth.confirmations.login_link')))
|
||||
- else
|
||||
%h1.title= t('auth.confirmations.awaiting_review_title')
|
||||
%p.lead= t('auth.confirmations.awaiting_review', domain: site_hostname)
|
||||
- else
|
||||
= simple_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f|
|
||||
= render 'shared/error_messages', object: resource
|
||||
|
||||
.actions
|
||||
= f.button :button, t('auth.resend_confirmation'), type: :submit
|
||||
.fields-group
|
||||
= f.input :email, autofocus: true, wrapper: :with_label, label: t('simple_form.labels.defaults.email'), input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, readonly: current_user.present?, hint: current_user.present? && t('auth.confirmations.wrong_email_hint')
|
||||
|
||||
.actions
|
||||
= f.button :button, t('auth.resend_confirmation'), type: :submit
|
||||
|
||||
.form-footer= render 'auth/shared/links'
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
%td
|
||||
%span{ title: session.user_agent }<
|
||||
= fa_icon "#{session_device_icon(session)} fw", 'aria-label': session_device_icon(session)
|
||||
= ' '
|
||||
|
||||
= t 'sessions.description', browser: t("sessions.browsers.#{session.browser}", default: session.browser.to_s), platform: t("sessions.platforms.#{session.platform}", default: session.platform.to_s)
|
||||
%td
|
||||
%samp= session.ip
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
- content_for :page_title do
|
||||
= t('settings.account_settings')
|
||||
|
||||
= render partial: 'status', locals: { user: @user, strikes: @strikes }
|
||||
- if self_destruct?
|
||||
.flash-message.warning
|
||||
= t('auth.status.self_destruct', domain: ENV.fetch('LOCAL_DOMAIN'))
|
||||
- else
|
||||
= render partial: 'status', locals: { user: @user, strikes: @strikes }
|
||||
|
||||
%h3= t('auth.security')
|
||||
|
||||
|
@ -32,7 +36,7 @@
|
|||
|
||||
= render partial: 'sessions', object: @sessions
|
||||
|
||||
- unless current_account.suspended?
|
||||
- unless current_account.suspended? || self_destruct?
|
||||
%hr.spacer/
|
||||
|
||||
%h3= t('auth.migrate_account')
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
= f.simple_fields_for :invite_request, resource.invite_request || resource.build_invite_request do |invite_request_fields|
|
||||
= invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: Setting.require_invite_text, label: false, hint: false
|
||||
|
||||
|
||||
= hidden_field_tag :accept, params[:accept]
|
||||
= f.input :invite_code, as: :hidden
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- progress_index = { rules: 0, details: 1, confirm: 2 }[stage.to_sym]
|
||||
- progress_index = { rules: 0, details: 1, confirm: 2, confirmed: 3, completed: 4 }[stage.to_sym]
|
||||
|
||||
%ol.progress-tracker
|
||||
%li{ class: progress_index.positive? ? 'completed' : 'active' }
|
||||
|
@ -20,6 +20,8 @@
|
|||
.label= t('auth.progress.confirm')
|
||||
- if approved_registrations?
|
||||
%li.separator{ class: progress_index > 2 ? 'completed' : nil }
|
||||
%li
|
||||
%li{ class: [progress_index > 3 && 'completed', progress_index == 3 && 'active'] }
|
||||
.circle
|
||||
- if progress_index > 3
|
||||
= check_icon
|
||||
.label= t('auth.progress.review')
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
%p.hint
|
||||
%span.positive-hint
|
||||
= fa_icon 'check'
|
||||
= ' '
|
||||
|
||||
= t 'disputes.strikes.appeal_approved'
|
||||
- elsif @appeal.persisted? && @appeal.rejected?
|
||||
%p.hint
|
||||
%span.negative-hint
|
||||
= fa_icon 'times'
|
||||
= ' '
|
||||
|
||||
= t 'disputes.strikes.appeal_rejected'
|
||||
|
||||
.report-header
|
||||
|
|
20
app/views/errors/self_destruct.html.haml
Normal file
20
app/views/errors/self_destruct.html.haml
Normal file
|
@ -0,0 +1,20 @@
|
|||
- content_for :page_title do
|
||||
= t('self_destruct.title')
|
||||
|
||||
.simple_form
|
||||
%h1.title= t('self_destruct.title')
|
||||
%p.lead= t('self_destruct.lead_html', domain: ENV.fetch('LOCAL_DOMAIN'))
|
||||
|
||||
.form-footer
|
||||
%ul.no-list
|
||||
- if user_signed_in?
|
||||
%li= link_to t('settings.account_settings'), edit_user_registration_path
|
||||
- else
|
||||
- if controller_name != 'sessions'
|
||||
%li= link_to_login t('auth.login')
|
||||
|
||||
- if controller_name != 'passwords' && controller_name != 'registrations'
|
||||
%li= link_to t('auth.forgot_password'), new_user_password_path
|
||||
|
||||
- if user_signed_in?
|
||||
%li= link_to t('auth.logout'), destroy_user_session_path, data: { method: :delete }
|
|
@ -1,7 +1,7 @@
|
|||
!!!
|
||||
%html{ lang: I18n.locale }
|
||||
%head
|
||||
%meta{ content: 'text/html; charset=UTF-8', 'http-equiv' => 'Content-Type' }/
|
||||
%meta{ 'content' => 'text/html; charset=UTF-8', 'http-equiv' => 'Content-Type' }/
|
||||
%meta{ charset: 'utf-8' }/
|
||||
%title= safe_join([yield(:page_title), Setting.default_settings['site_title']], ' - ')
|
||||
%meta{ content: 'width=device-width,initial-scale=1', name: 'viewport' }/
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
= image_tag full_asset_url(status.account.avatar.url), alt: ''
|
||||
%td{ align: 'left' }
|
||||
%bdi= display_name(status.account)
|
||||
= "@#{status.account.pretty_acct}"
|
||||
@#{status.account.pretty_acct}
|
||||
|
||||
- if status.spoiler_text?
|
||||
.auto-dir
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
.form-container
|
||||
.flash-message#error_explanation
|
||||
.flash-message
|
||||
= @pre_auth.error_response.body[:error_description]
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
%p.hint
|
||||
%span.positive-hint
|
||||
= fa_icon 'check'
|
||||
= ' '
|
||||
|
||||
= t 'two_factor_authentication.enabled'
|
||||
|
||||
.table-wrapper
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- if object.errors.any?
|
||||
.flash-message.alert#error_explanation
|
||||
.flash-message.alert
|
||||
%strong= t('generic.validation_errors', count: object.errors.count)
|
||||
- object.errors[:base].each do |error|
|
||||
.flash-message.alert
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
- elsif status.preview_card
|
||||
= render_card_component(status)
|
||||
|
||||
- if grouped_emoji_reactions.size > 0
|
||||
- if grouped_emoji_reactions.size.positive?
|
||||
.status__emoji-reactions-bar
|
||||
- grouped_emoji_reactions.each do |reaction|
|
||||
%button.emoji-reactions-bar__button
|
||||
|
@ -72,18 +72,18 @@
|
|||
- else
|
||||
= fa_icon('reply-all')
|
||||
%span.detailed-status__reblogs>= friendly_number_to_human status.replies_count
|
||||
= ' '
|
||||
|
||||
·
|
||||
- if status.public_visibility? || status.unlisted_visibility?
|
||||
%span.detailed-status__link
|
||||
= fa_icon('retweet')
|
||||
%span.detailed-status__reblogs>= friendly_number_to_human status.reblogs_count
|
||||
= ' '
|
||||
|
||||
·
|
||||
%span.detailed-status__link
|
||||
= fa_icon('star')
|
||||
%span.detailed-status__favorites>= friendly_number_to_human status.favourites_count
|
||||
= ' '
|
||||
|
||||
|
||||
- if user_signed_in?
|
||||
·
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
- percent = total_votes_count.positive? ? 100 * option.votes_count / total_votes_count : 0
|
||||
%label.poll__option><
|
||||
%span.poll__number><
|
||||
= "#{percent.round}%"
|
||||
#{percent.round}%
|
||||
%span.poll__option__text
|
||||
= prerender_custom_emojis(h(option.title), status.emojis)
|
||||
- if own_votes.include?(index)
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
%span.display-name
|
||||
%bdi
|
||||
%strong.display-name__html.p-name.emojify= display_name(status.account, custom_emojify: true, autoplay: prefers_autoplay?)
|
||||
= ' '
|
||||
|
||||
%span.display-name__account
|
||||
= acct(status.account)
|
||||
= fa_icon('lock') if status.account.locked?
|
||||
|
@ -53,7 +53,7 @@
|
|||
= link_to ActivityPub::TagManager.instance.url_for(status), class: 'status__content__read-more-button', target: stream_link_target, rel: 'noopener noreferrer' do
|
||||
= t 'statuses.show_thread'
|
||||
|
||||
- if grouped_emoji_reactions.size > 0
|
||||
- if grouped_emoji_reactions.size.positive?
|
||||
.status__emoji-reactions-bar
|
||||
- grouped_emoji_reactions.each do |reaction|
|
||||
%button.emoji-reactions-bar__button
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
= button_tag t('generic.save_changes'), class: 'button', form: 'edit_policy'
|
||||
|
||||
= simple_form_for @policy, url: statuses_cleanup_path, method: :put, html: { id: 'edit_policy' } do |f|
|
||||
|
||||
.fields-row
|
||||
.fields-row__column.fields-row__column-6.fields-group
|
||||
= f.input :enabled, as: :boolean, wrapper: :with_label, label: t('statuses_cleanup.enabled'), hint: t('statuses_cleanup.enabled_hint')
|
||||
|
|
|
@ -41,10 +41,10 @@
|
|||
%tr
|
||||
%td.column-cell.text-center
|
||||
%p
|
||||
%strong= "#{t('sessions.ip')}:"
|
||||
%strong #{t('sessions.ip')}:
|
||||
= @remote_ip
|
||||
%br/
|
||||
%strong= "#{t('sessions.browser')}:"
|
||||
%strong #{t('sessions.browser')}:
|
||||
%span{ title: @user_agent }= t 'sessions.description', browser: t("sessions.browsers.#{@detection.id}", default: @detection.id.to_s), platform: t("sessions.platforms.#{@detection.platform.id}", default: @detection.platform.id.to_s)
|
||||
%br/
|
||||
= l(@timestamp.in_time_zone(@resource.time_zone.presence), format: :with_time_zone)
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
= image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: ''
|
||||
|
||||
%h1= t 'devise.mailer.webauthn_credential.added.title'
|
||||
%p.lead= "#{t('devise.mailer.webauthn_credential.added.explanation')}:"
|
||||
%p.lead #{t('devise.mailer.webauthn_credential.added.explanation')}:
|
||||
%p.lead= @webauthn_credential.nickname
|
||||
|
||||
%table.email-table{ cellspacing: 0, cellpadding: 0 }
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
= image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: ''
|
||||
|
||||
%h1= t 'devise.mailer.webauthn_credential.deleted.title'
|
||||
%p.lead= "#{t('devise.mailer.webauthn_credential.deleted.explanation')}:"
|
||||
%p.lead #{t('devise.mailer.webauthn_credential.deleted.explanation')}:
|
||||
%p.lead= @webauthn_credential.nickname
|
||||
|
||||
%table.email-table{ cellspacing: 0, cellpadding: 0 }
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
%table.input{ align: 'center', cellspacing: 0, cellpadding: 0 }
|
||||
%tbody
|
||||
%tr
|
||||
%td= "@#{@resource.account.username}@#{@instance}"
|
||||
%td @#{@resource.account.username}@#{@instance}
|
||||
.col-3
|
||||
%table.column{ cellspacing: 0, cellpadding: 0 }
|
||||
%tbody
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue