Merge branch 'master' into glitch-soc/master

Conflicts:
	app/models/account.rb
	app/views/accounts/_header.html.haml
This commit is contained in:
Thibaut Girka
2018-05-09 17:43:30 +02:00
145 changed files with 3052 additions and 803 deletions

View File

@@ -6,7 +6,7 @@
.account__avatar{ style: "background-image: url(#{@instance_presenter.contact_account.avatar.url})" }
%span.display-name
%bdi
%strong.display-name__html.emojify= display_name(@instance_presenter.contact_account)
%strong.display-name__html.emojify= display_name(@instance_presenter.contact_account, custom_emojify: true)
%span.display-name__account @#{@instance_presenter.contact_account.acct}
- else
.account__display-name

View File

@@ -12,7 +12,7 @@
.avatar= image_tag contact.contact_account.avatar.url
.name
= link_to TagManager.instance.url_for(contact.contact_account) do
%span.display_name.emojify= display_name(contact.contact_account)
%span.display_name.emojify= display_name(contact.contact_account, custom_emojify: true)
%span.username @#{contact.contact_account.acct}
- else
.owner

View File

@@ -141,3 +141,5 @@
%p
= link_to t('about.source_code'), @instance_presenter.source_url
= " (#{@instance_presenter.version_number})"
#modal-container

View File

@@ -5,7 +5,7 @@
.avatar= image_tag account.avatar.url(:original)
.name
= link_to TagManager.instance.url_for(account) do
%span.display_name.emojify= display_name(account)
%span.display_name.emojify= display_name(account, custom_emojify: true)
%span.username
@#{account.local? ? account.local_username_and_domain : account.acct}
= fa_icon('lock') if account.locked?

View File

@@ -6,11 +6,16 @@
.card__bio
%h1.name
%span.p-name.emojify= display_name(account)
%span.p-name.emojify= display_name(account, custom_emojify: true)
%small<
%span>< @#{account.local_username_and_domain}
= fa_icon('lock') if account.locked?
- if Setting.show_staff_badge
- if account.bot?
.roles
.account-role.bot
= t 'accounts.roles.bot'
- elsif Setting.show_staff_badge
- if account.user_admin?
.roles
.account-role.admin
@@ -21,19 +26,19 @@
= t 'accounts.roles.moderator'
.bio
.account__header__content.p-note.emojify!=processed_bio[:text]
- if !account.fields.empty?
%table.account__header__fields
%tbody
- account.fields.each do |field|
%tr
%th.emojify= field.name
%td.emojify= Formatter.instance.format_field(account, field.value)
.account__header__fields
- account.fields.each do |field|
%dl
%dt.emojify{ title: field.name }= field.name
%dd.emojify{ title: field.value }= Formatter.instance.format_field(account, field.value, custom_emojify: true)
- elsif processed_bio[:metadata].length > 0
%table.account__header__fields<
.account__header__fields
- processed_bio[:metadata].each do |i|
%tr
%th.emojify>!=i[0]
%td.emojify>!=i[1]
%dl
%dt.emojify{ title: i[0] }= i[0]
%dd.emojify{ title: i[1] }= i[1]
.details-counters
.counter{ class: active_nav_class(short_account_url(account)) }

View File

@@ -3,7 +3,7 @@
.moved-strip
.moved-strip__message
= fa_icon 'suitcase'
= t('accounts.moved_html', name: content_tag(:strong, display_name(account), class: :emojify), new_profile_link: link_to(content_tag(:strong, safe_join(['@', content_tag(:span, moved_to_account.acct)])), TagManager.instance.url_for(moved_to_account), class: 'mention'))
= t('accounts.moved_html', name: content_tag(:strong, display_name(account, custom_emojify: true), class: :emojify), new_profile_link: link_to(content_tag(:strong, safe_join(['@', content_tag(:span, moved_to_account.acct)])), TagManager.instance.url_for(moved_to_account), class: 'mention'))
.moved-strip__card
= link_to TagManager.instance.url_for(moved_to_account), class: 'detailed-status__display-name p-author h-card', target: '_blank', rel: 'noopener' do
@@ -13,5 +13,5 @@
.account__avatar-overlay-overlay{ style: "background-image: url('#{account.avatar.url(:original)}')" }
%span.display-name
%strong.emojify= display_name(moved_to_account)
%strong.emojify= display_name(moved_to_account, custom_emojify: true)
%span @#{moved_to_account.acct}

View File

@@ -1,10 +1,7 @@
%tr
%td
.speech-bubble
.speech-bubble__bubble
= simple_format(h(account_moderation_note.content))
%td
= account_moderation_note.account.acct
%td
%time.formatted{ datetime: account_moderation_note.created_at.iso8601, title: l(account_moderation_note.created_at) }
= l account_moderation_note.created_at
%td
= link_to t('admin.account_moderation_notes.delete'), admin_account_moderation_note_path(account_moderation_note), method: :delete if can?(:destroy, account_moderation_note)
.speech-bubble__owner
= admin_account_link_to account_moderation_note.account
%time.formatted{ datetime: account_moderation_note.created_at.iso8601 }= l account_moderation_note.created_at
= table_link_to 'trash', t('admin.account_moderation_notes.delete'), admin_account_moderation_note_path(account_moderation_note), method: :delete if can?(:destroy, account_moderation_note)

View File

@@ -2,7 +2,7 @@
= @account.acct
.table-wrapper
%table.table
%table.table.inline-table
%tbody
%tr
%th= t('admin.accounts.username')
@@ -36,13 +36,19 @@
%th= t('admin.accounts.email')
%td
= @account.user_email
- if @account.user_confirmed?
= fa_icon('check')
= table_link_to 'edit', t('admin.accounts.change_email.label'), admin_account_change_email_path(@account.id) if can?(:change_email, @account.user)
- if @account.user_unconfirmed_email.present?
%th= t('admin.accounts.unconfirmed_email')
%td
= @account.user_unconfirmed_email
%tr
%th= t('admin.accounts.email_status')
%td
- if @account.user&.confirmed?
= t('admin.accounts.confirmed')
- else
= t('admin.accounts.confirming')
= table_link_to 'refresh', t('admin.accounts.resend_confirmation.send'), resend_admin_account_confirmation_path(@account.id), method: :post if can?(:confirm, @account.user)
%tr
%th= t('admin.accounts.login_status')
%td
@@ -73,17 +79,17 @@
%tr
%th= t('admin.accounts.follows')
%td= @account.following_count
%td= number_to_human @account.following_count
%tr
%th= t('admin.accounts.followers')
%td= @account.followers_count
%td= number_to_human @account.followers_count
%tr
%th= t('admin.accounts.statuses')
%td= link_to @account.statuses_count, admin_account_statuses_path(@account.id)
%td= link_to number_to_human(@account.statuses_count), admin_account_statuses_path(@account.id)
%tr
%th= t('admin.accounts.media_attachments')
%td
= link_to @account.media_attachments.count, admin_account_statuses_path(@account.id, { media: true })
= link_to number_to_human(@account.media_attachments.count), admin_account_statuses_path(@account.id, { media: true })
= surround '(', ')' do
= number_to_human_size @account.media_attachments.sum('file_file_size')
%tr
@@ -120,11 +126,12 @@
= link_to t('admin.accounts.perform_full_suspension'), admin_account_suspension_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button' if can?(:suspend, @account)
- if !@account.local? && @account.hub_url.present?
%hr
%hr.spacer/
%h3 OStatus
.table-wrapper
%table.table
%table.table.inline-table
%tbody
%tr
%th= t('admin.accounts.feed_url')
@@ -148,11 +155,12 @@
= link_to t('admin.accounts.unsubscribe'), unsubscribe_admin_account_path(@account.id), method: :post, class: 'button negative' if can?(:unsubscribe, @account)
- if !@account.local? && @account.inbox_url.present?
%hr
%hr.spacer/
%h3 ActivityPub
.table-wrapper
%table.table
%table.table.inline-table
%tbody
%tr
%th= t('admin.accounts.inbox_url')
@@ -167,24 +175,15 @@
%th= t('admin.accounts.followers_url')
%td= link_to @account.followers_url, @account.followers_url
%hr
%h3= t('admin.accounts.moderation_notes')
%hr.spacer/
= render @moderation_notes
= simple_form_for @account_moderation_note, url: admin_account_moderation_notes_path do |f|
= render 'shared/error_messages', object: @account_moderation_note
= f.input :content
= f.input :content, placeholder: t('admin.reports.notes.placeholder'), rows: 6
= f.hidden_field :target_account_id
.actions
= f.button :button, t('admin.account_moderation_notes.create'), type: :submit
.table-wrapper
%table.table
%thead
%tr
%th
%th= t('admin.account_moderation_notes.account')
%th= t('admin.account_moderation_notes.created_at')
%tbody
= render @moderation_notes
= f.button :button, t('admin.account_moderation_notes.create'), type: :submit

View File

@@ -15,5 +15,5 @@
.account__avatar{ style: "background-image: url(#{account.avatar.url}); width: #{size}px; height: #{size}px; background-size: #{size}px #{size}px" }
%span.display-name
%bdi
%strong.display-name__html.emojify= display_name(account)
%strong.display-name__html.emojify= display_name(account, custom_emojify: true)
%span.display-name__account @#{account.acct}

View File

@@ -7,7 +7,7 @@
%p><
%strong= Formatter.instance.format_spoiler(status)
= Formatter.instance.format(status)
= Formatter.instance.format(status, custom_emojify: true)
- unless status.media_attachments.empty?
- if status.media_attachments.first.video?

View File

@@ -1,10 +1,7 @@
- content_for :page_title do
= t('admin.statuses.title')
.back-link
= link_to admin_account_path(@account.id) do
%i.fa.fa-chevron-left.fa-fw
= t('admin.statuses.back_to_account')
\-
= "@#{@account.acct}"
.filters
.filter-subset
@@ -12,33 +9,26 @@
%ul
%li= link_to t('admin.statuses.no_media'), admin_account_statuses_path(@account.id, current_params.merge(media: nil)), class: !params[:media] && 'selected'
%li= link_to t('admin.statuses.with_media'), admin_account_statuses_path(@account.id, current_params.merge(media: true)), class: params[:media] && 'selected'
.back-link{ style: 'flex: 1 1 auto; text-align: right' }
= link_to admin_account_path(@account.id) do
%i.fa.fa-chevron-left.fa-fw
= t('admin.statuses.back_to_account')
- if @statuses.empty?
.accounts-grid
= render 'accounts/nothing_here'
- else
= form_for(@form, url: admin_account_statuses_path(@account.id)) do |f|
= hidden_field_tag :page, params[:page]
= hidden_field_tag :media, params[:media]
.batch-form-box
.batch-checkbox-all
%hr.spacer/
= form_for(@form, url: admin_account_statuses_path(@account.id)) do |f|
= hidden_field_tag :page, params[:page]
= hidden_field_tag :media, params[:media]
.batch-table
.batch-table__toolbar
%label.batch-table__toolbar__select.batch-checkbox-all
= check_box_tag :batch_checkbox_all, nil, false
= f.select :action, Form::StatusBatch::ACTION_TYPE.map{|action| [t("admin.statuses.batch.#{action}"), action]}
= f.submit t('admin.statuses.execute'), data: { confirm: t('admin.reports.are_you_sure') }, class: 'button'
.media-spoiler-toggle-buttons
.media-spoiler-show-button.button= t('admin.statuses.media.show')
.media-spoiler-hide-button.button= t('admin.statuses.media.hide')
- @statuses.each do |status|
.account-status{ data: { id: status.id } }
.batch-checkbox
= f.check_box :status_ids, { multiple: true, include_hidden: false }, status.id
.activity-stream.activity-stream-headless
.entry= render 'stream_entries/simple_status', status: status
.account-status__actions
- unless status.media_attachments.empty?
= link_to admin_account_status_path(@account.id, status, current_params.merge(status: { sensitive: !status.sensitive })), method: :patch, class: 'icon-button nsfw-button', title: t("admin.reports.nsfw.#{!status.sensitive}") do
= fa_icon status.sensitive? ? 'eye' : 'eye-slash'
= link_to admin_account_status_path(@account.id, status), method: :delete, class: 'icon-button trash-button', title: t('admin.reports.delete'), data: { confirm: t('admin.reports.are_you_sure') }, remote: true do
= fa_icon 'trash'
.batch-table__toolbar__actions
= f.button safe_join([fa_icon('eye-slash'), t('admin.statuses.batch.nsfw_on')]), name: :nsfw_on, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
= f.button safe_join([fa_icon('eye'), t('admin.statuses.batch.nsfw_off')]), name: :nsfw_off, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
= f.button safe_join([fa_icon('trash'), t('admin.statuses.batch.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
.batch-table__body
= render partial: 'admin/reports/status', collection: @statuses, locals: { f: f }
= paginate @statuses

View File

@@ -2,9 +2,12 @@
= t('auth.login')
= simple_form_for(resource, as: resource_name, url: session_path(resource_name), method: :post) do |f|
= f.input :otp_attempt, type: :number, placeholder: t('simple_form.labels.defaults.otp_attempt'), input_html: { 'aria-label' => t('simple_form.labels.defaults.otp_attempt'), :autocomplete => 'off' }, required: true, autofocus: true, hint: t('simple_form.hints.sessions.otp')
%p.hint{ style: 'margin-bottom: 25px' }= t('simple_form.hints.sessions.otp')
= f.input :otp_attempt, type: :number, placeholder: t('simple_form.labels.defaults.otp_attempt'), input_html: { 'aria-label' => t('simple_form.labels.defaults.otp_attempt'), :autocomplete => 'off' }, required: true, autofocus: true
.actions
= f.button :button, t('auth.login'), type: :submit
.form-footer= render 'auth/shared/links'
- if Setting.site_contact_email.present?
%p.hint.subtle-hint= t('users.otp_lost_help_html', email: mail_to(Setting.site_contact_email, nil))

View File

@@ -6,7 +6,7 @@
%span.display-name
- account_url = local_assigns[:admin] ? admin_account_path(account.id) : TagManager.instance.url_for(account)
= link_to account_url, class: 'detailed-status__display-name p-author h-card', target: '_blank', rel: 'noopener' do
%strong.emojify= display_name(account)
%strong.emojify= display_name(account, custom_emojify: true)
%span @#{account.acct}
- if account.note?

View File

@@ -6,7 +6,7 @@
%span.display-name
- account_url = local_assigns[:admin] ? admin_account_path(account.id) : TagManager.instance.url_for(account)
= link_to account_url, class: 'detailed-status__display-name p-author h-card', target: '_blank', rel: 'noopener' do
%strong.emojify= display_name(account)
%strong.emojify= display_name(account, custom_emojify: true)
%span @#{account.acct}
- if account.note?

View File

@@ -10,15 +10,15 @@
%td
%tr
%th= t('exports.follows')
%td= @export.total_follows
%td= number_to_human @export.total_follows
%td= table_link_to 'download', t('exports.csv'), settings_exports_follows_path(format: :csv)
%tr
%th= t('exports.blocks')
%td= @export.total_blocks
%td= number_to_human @export.total_blocks
%td= table_link_to 'download', t('exports.csv'), settings_exports_blocks_path(format: :csv)
%tr
%th= t('exports.mutes')
%td= @export.total_mutes
%td= number_to_human @export.total_mutes
%td= table_link_to 'download', t('exports.csv'), settings_exports_mutes_path(format: :csv)
%p.muted-hint= t('exports.archive_takeout.hint_html')

View File

@@ -19,6 +19,9 @@
.fields-group
= f.input :locked, as: :boolean, wrapper: :with_label, hint: t('simple_form.hints.defaults.locked')
.fields-group
= f.input :bot, as: :boolean, wrapper: :with_label, hint: t('simple_form.hints.defaults.bot')
.fields-group
.input.with_block_label
%label= t('simple_form.labels.defaults.fields')

View File

@@ -2,7 +2,7 @@
= image_tag asset_pack_path('logo.svg'), class: 'logo'
%div
= t('landing_strip_html', name: content_tag(:span, display_name(account), class: :emojify), link_to_root_path: link_to(content_tag(:strong, site_hostname), root_path))
= t('landing_strip_html', name: content_tag(:span, display_name(account, custom_emojify: true), class: :emojify), link_to_root_path: link_to(content_tag(:strong, site_hostname), root_path))
- if open_registrations?
= t('landing_strip_signup_html', sign_up_path: new_user_registration_path)

View File

@@ -4,7 +4,7 @@
.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)
%strong.p-name.emojify= display_name(status.account, custom_emojify: true)
%span= acct(status.account)
- if embedded_view?

View File

@@ -10,7 +10,7 @@
%div
= image_tag status.account.avatar(:original), width: 48, height: 48, alt: '', class: 'u-photo'
%span.display-name
%strong.p-name.emojify= display_name(status.account)
%strong.p-name.emojify= display_name(status.account, custom_emojify: true)
%span= acct(status.account)
.status__content.p-name.emojify<

View File

@@ -28,7 +28,7 @@
= fa_icon('retweet fw')
%span
= link_to TagManager.instance.url_for(status.account), class: 'status__display-name muted' do
%strong.emojify= display_name(status.account)
%strong.emojify= display_name(status.account, custom_emojify: true)
= t('stream_entries.reblogged')
- elsif pinned
.pre-header

View File

@@ -33,3 +33,5 @@
%p= t 'about.about_mastodon_html'
= render 'features'
#modal-container