Merge commit '4aea3f88a6d30f102a79c2da7fcfac96465ba1a8' into merging-upstream
This commit is contained in:
10
app/views/about/_og.html.haml
Normal file
10
app/views/about/_og.html.haml
Normal file
@@ -0,0 +1,10 @@
|
||||
- thumbnail = @instance_presenter.thumbnail
|
||||
= opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
|
||||
= opengraph 'og:url', about_url
|
||||
= opengraph 'og:type', 'website'
|
||||
= opengraph 'og:title', @instance_presenter.site_title
|
||||
= opengraph 'og:description', strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html'))
|
||||
= opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('preview.jpg', protocol: :request))
|
||||
= opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200'
|
||||
= opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630'
|
||||
= opengraph 'twitter:card', 'summary_large_image'
|
@@ -1,26 +1,13 @@
|
||||
= simple_form_for(new_user, url: user_registration_path) do |f|
|
||||
= f.simple_fields_for :account do |account_fields|
|
||||
.input-with-append
|
||||
= account_fields.input :username,
|
||||
autofocus: true,
|
||||
placeholder: t('simple_form.labels.defaults.username'),
|
||||
required: true,
|
||||
input_html: { 'aria-label' => t('simple_form.labels.defaults.username') }
|
||||
= account_fields.input :username, autofocus: true, placeholder: t('simple_form.labels.defaults.username'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off' }
|
||||
.append
|
||||
= "@#{site_hostname}"
|
||||
|
||||
= f.input :email,
|
||||
placeholder: t('simple_form.labels.defaults.email'),
|
||||
required: true,
|
||||
input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }
|
||||
= f.input :password,
|
||||
placeholder: t('simple_form.labels.defaults.password'),
|
||||
required: true,
|
||||
input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }
|
||||
= f.input :password_confirmation,
|
||||
placeholder: t('simple_form.labels.defaults.confirm_password'),
|
||||
required: true,
|
||||
input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }
|
||||
= f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }
|
||||
= f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }
|
||||
= f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }
|
||||
|
||||
.actions
|
||||
= f.button :button, t('auth.register'), type: :submit, class: 'button button-alternative'
|
||||
|
@@ -3,16 +3,7 @@
|
||||
|
||||
- content_for :header_tags do
|
||||
= javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous'
|
||||
|
||||
%meta{ property: 'og:site_name', content: site_title }/
|
||||
%meta{ property: 'og:url', content: about_url }/
|
||||
%meta{ property: 'og:type', content: 'website' }/
|
||||
%meta{ property: 'og:title', content: site_hostname }/
|
||||
%meta{ property: 'og:description', content: strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html')) }/
|
||||
%meta{ property: 'og:image', content: asset_pack_path('mastodon_small.jpg', protocol: :request) }/
|
||||
%meta{ property: 'og:image:width', content: '400' }/
|
||||
%meta{ property: 'og:image:height', content: '400' }/
|
||||
%meta{ property: 'twitter:card', content: 'summary' }/
|
||||
= render partial: 'og'
|
||||
|
||||
.landing-page
|
||||
.header-wrapper.compact
|
||||
|
@@ -4,16 +4,7 @@
|
||||
- content_for :header_tags do
|
||||
%script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
|
||||
= javascript_pack_tag 'about', integrity: true, crossorigin: 'anonymous'
|
||||
|
||||
%meta{ property: 'og:site_name', content: site_title }/
|
||||
%meta{ property: 'og:url', content: about_url }/
|
||||
%meta{ property: 'og:type', content: 'website' }/
|
||||
%meta{ property: 'og:title', content: site_hostname }/
|
||||
%meta{ property: 'og:description', content: strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html')) }/
|
||||
%meta{ property: 'og:image', content: asset_pack_path('mastodon_small.jpg', protocol: :request) }/
|
||||
%meta{ property: 'og:image:width', content: '400' }/
|
||||
%meta{ property: 'og:image:height', content: '400' }/
|
||||
%meta{ property: 'twitter:card', content: 'summary' }/
|
||||
= render partial: 'og'
|
||||
|
||||
.landing-page
|
||||
.header-wrapper
|
||||
|
@@ -43,15 +43,15 @@
|
||||
.details-counters
|
||||
.counter{ class: active_nav_class(short_account_url(account)) }
|
||||
= link_to short_account_url(account), class: 'u-url u-uid' do
|
||||
%span.counter-number= number_to_human account.statuses_count
|
||||
%span.counter-number= number_to_human account.statuses_count, strip_insignificant_zeros: true
|
||||
%span.counter-label= t('accounts.posts')
|
||||
|
||||
.counter{ class: active_nav_class(account_following_index_url(account)) }
|
||||
= link_to account_following_index_url(account) do
|
||||
%span.counter-number= number_to_human account.following_count
|
||||
%span.counter-number= number_to_human account.following_count, strip_insignificant_zeros: true
|
||||
%span.counter-label= t('accounts.following')
|
||||
|
||||
.counter{ class: active_nav_class(account_followers_url(account)) }
|
||||
= link_to account_followers_url(account) do
|
||||
%span.counter-number= number_to_human account.followers_count
|
||||
%span.counter-number= number_to_human account.followers_count, strip_insignificant_zeros: true
|
||||
%span.counter-label= t('accounts.followers')
|
||||
|
@@ -1,8 +1,9 @@
|
||||
%meta{ property: 'og:url', content: url }/
|
||||
%meta{ property: 'og:site_name', content: site_title }/
|
||||
%meta{ property: 'og:title', content: [yield(:page_title).strip.presence, site_title].compact.join(' - ') }/
|
||||
%meta{ property: 'og:description', content: account.note }/
|
||||
%meta{ property: 'og:image', content: full_asset_url(account.avatar.url(:original)) }/
|
||||
%meta{ property: 'og:image:width', content: '120' }/
|
||||
%meta{ property: 'og:image:height', content: '120' }/
|
||||
%meta{ property: 'twitter:card', content: 'summary' }/
|
||||
= opengraph 'og:url', url
|
||||
= opengraph 'og:site_name', site_title
|
||||
= opengraph 'og:title', [yield(:page_title).strip.presence, site_title].compact.join(' - ')
|
||||
= opengraph 'og:description', account.note
|
||||
= opengraph 'og:image', full_asset_url(account.avatar.url(:original))
|
||||
= opengraph 'og:image:width', '120'
|
||||
= opengraph 'og:image:height', '120'
|
||||
= opengraph 'twitter:card', 'summary'
|
||||
= opengraph 'profile:username', account.local_username_and_domain
|
||||
|
@@ -9,7 +9,7 @@
|
||||
%link{ rel: 'alternate', type: 'application/atom+xml', href: account_url(@account, format: 'atom') }/
|
||||
%link{ rel: 'alternate', type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(@account) }/
|
||||
|
||||
%meta{ property: 'og:type', content: 'profile' }/
|
||||
= opengraph 'og:type', 'profile'
|
||||
= render 'og', account: @account, url: short_account_url(@account, only_path: false)
|
||||
|
||||
- if show_landing_strip?
|
||||
|
@@ -37,29 +37,6 @@
|
||||
%th= t('admin.accounts.protocol')
|
||||
%td= @account.protocol.humanize
|
||||
|
||||
- if @account.ostatus?
|
||||
%tr
|
||||
%th= t('admin.accounts.feed_url')
|
||||
%td= link_to @account.remote_url, @account.remote_url
|
||||
%tr
|
||||
%th= t('admin.accounts.push_subscription_expires')
|
||||
%td
|
||||
- if @account.subscribed?
|
||||
%time.formatted{ datetime: @account.subscription_expires_at.iso8601, title: l(@account.subscription_expires_at) }
|
||||
= l @account.subscription_expires_at
|
||||
- else
|
||||
= t('admin.accounts.not_subscribed')
|
||||
%tr
|
||||
%th= t('admin.accounts.salmon_url')
|
||||
%td= link_to @account.salmon_url, @account.salmon_url
|
||||
- elsif @account.activitypub?
|
||||
%tr
|
||||
%th= t('admin.accounts.inbox_url')
|
||||
%td= link_to @account.inbox_url, @account.inbox_url
|
||||
%tr
|
||||
%th= t('admin.accounts.outbox_url')
|
||||
%td= link_to @account.outbox_url, @account.outbox_url
|
||||
|
||||
%tr
|
||||
%th= t('admin.accounts.follows')
|
||||
%td= @account.following_count
|
||||
@@ -82,29 +59,73 @@
|
||||
%th= t('.targeted_reports')
|
||||
%td= link_to pluralize(@account.targeted_reports.count, t('.report')), admin_reports_path(target_account_id: @account.id)
|
||||
|
||||
%div{ style: 'float: right' }
|
||||
- if @account.local?
|
||||
= link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button'
|
||||
- if @account.user&.otp_required_for_login?
|
||||
= link_to t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(@account.user.id), method: :delete, class: 'button'
|
||||
- else
|
||||
- if @account.ostatus?
|
||||
%div{ style: 'overflow: hidden' }
|
||||
%div{ style: 'float: right' }
|
||||
- if @account.local?
|
||||
= link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button'
|
||||
- if @account.user&.otp_required_for_login?
|
||||
= link_to t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(@account.user.id), method: :delete, class: 'button'
|
||||
- else
|
||||
= link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button'
|
||||
|
||||
%div{ style: 'float: left' }
|
||||
- if @account.silenced?
|
||||
= link_to t('admin.accounts.undo_silenced'), admin_account_silence_path(@account.id), method: :delete, class: 'button'
|
||||
- else
|
||||
= link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button'
|
||||
|
||||
- if @account.local?
|
||||
- unless @account.user_confirmed?
|
||||
= link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button'
|
||||
|
||||
- if @account.suspended?
|
||||
= link_to t('admin.accounts.undo_suspension'), admin_account_suspension_path(@account.id), method: :delete, class: 'button'
|
||||
- else
|
||||
= 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'
|
||||
|
||||
- unless @account.local?
|
||||
%hr
|
||||
%h3 OStatus
|
||||
|
||||
.table-wrapper
|
||||
%table.table
|
||||
%tbody
|
||||
%tr
|
||||
%th= t('admin.accounts.feed_url')
|
||||
%td= link_to @account.remote_url, @account.remote_url
|
||||
%tr
|
||||
%th= t('admin.accounts.push_subscription_expires')
|
||||
%td
|
||||
- if @account.subscribed?
|
||||
%time.formatted{ datetime: @account.subscription_expires_at.iso8601, title: l(@account.subscription_expires_at) }
|
||||
= l @account.subscription_expires_at
|
||||
- else
|
||||
= t('admin.accounts.not_subscribed')
|
||||
%tr
|
||||
%th= t('admin.accounts.salmon_url')
|
||||
%td= link_to @account.salmon_url, @account.salmon_url
|
||||
|
||||
%div{ style: 'overflow: hidden' }
|
||||
%div{ style: 'float: right' }
|
||||
= link_to @account.subscribed? ? t('admin.accounts.resubscribe') : t('admin.accounts.subscribe'), subscribe_admin_account_path(@account.id), method: :post, class: 'button'
|
||||
- if @account.subscribed?
|
||||
= link_to t('admin.accounts.unsubscribe'), unsubscribe_admin_account_path(@account.id), method: :post, class: 'button negative'
|
||||
= link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button'
|
||||
|
||||
%div{ style: 'float: left' }
|
||||
- if @account.silenced?
|
||||
= link_to t('admin.accounts.undo_silenced'), admin_account_silence_path(@account.id), method: :delete, class: 'button'
|
||||
- else
|
||||
= link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button'
|
||||
%hr
|
||||
%h3 ActivityPub
|
||||
|
||||
- if @account.local?
|
||||
- unless @account.user_confirmed?
|
||||
= link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button'
|
||||
|
||||
- if @account.suspended?
|
||||
= link_to t('admin.accounts.undo_suspension'), admin_account_suspension_path(@account.id), method: :delete, class: 'button'
|
||||
- else
|
||||
= 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'
|
||||
.table-wrapper
|
||||
%table.table
|
||||
%tbody
|
||||
%tr
|
||||
%th= t('admin.accounts.inbox_url')
|
||||
%td= link_to @account.inbox_url, @account.inbox_url
|
||||
%tr
|
||||
%th= t('admin.accounts.outbox_url')
|
||||
%td= link_to @account.outbox_url, @account.outbox_url
|
||||
%tr
|
||||
%th= t('admin.accounts.shared_inbox_url')
|
||||
%td= link_to @account.shared_inbox_url, @account.shared_inbox_url
|
||||
%tr
|
||||
%th= t('admin.accounts.followers_url')
|
||||
%td= link_to @account.followers_url, @account.followers_url
|
||||
|
7
app/views/admin/custom_emojis/_custom_emoji.html.haml
Normal file
7
app/views/admin/custom_emojis/_custom_emoji.html.haml
Normal file
@@ -0,0 +1,7 @@
|
||||
%tr
|
||||
%td
|
||||
= image_tag custom_emoji.image.url, class: 'emojione', alt: ":#{custom_emoji.shortcode}:"
|
||||
%td
|
||||
%samp= ":#{custom_emoji.shortcode}:"
|
||||
%td
|
||||
= table_link_to 'times', t('admin.custom_emojis.delete'), admin_custom_emoji_path(custom_emoji), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
|
14
app/views/admin/custom_emojis/index.html.haml
Normal file
14
app/views/admin/custom_emojis/index.html.haml
Normal file
@@ -0,0 +1,14 @@
|
||||
- content_for :page_title do
|
||||
= t('admin.custom_emojis.title')
|
||||
|
||||
.table-wrapper
|
||||
%table.table
|
||||
%thead
|
||||
%tr
|
||||
%th= t('admin.custom_emojis.emoji')
|
||||
%th= t('admin.custom_emojis.shortcode')
|
||||
%th
|
||||
%tbody
|
||||
= render @custom_emojis
|
||||
|
||||
= link_to t('admin.custom_emojis.upload'), new_admin_custom_emoji_path, class: 'button'
|
12
app/views/admin/custom_emojis/new.html.haml
Normal file
12
app/views/admin/custom_emojis/new.html.haml
Normal file
@@ -0,0 +1,12 @@
|
||||
- content_for :page_title do
|
||||
= t('.title')
|
||||
|
||||
= simple_form_for @custom_emoji, url: admin_custom_emojis_path do |f|
|
||||
= render 'shared/error_messages', object: @custom_emoji
|
||||
|
||||
.fields-group
|
||||
= f.input :shortcode, placeholder: t('admin.custom_emojis.shortcode'), hint: t('admin.custom_emojis.shortcode_hint')
|
||||
= f.input :image, input_html: { accept: 'image/png' }, hint: t('admin.custom_emojis.image_hint')
|
||||
|
||||
.actions
|
||||
= f.button :button, t('admin.custom_emojis.upload'), type: :submit
|
@@ -1,6 +1,6 @@
|
||||
%tr
|
||||
%td.domain
|
||||
= instance.domain
|
||||
= link_to instance.domain, admin_accounts_path(by_domain: instance.domain)
|
||||
%td.count
|
||||
= instance.accounts_count
|
||||
%td
|
||||
|
@@ -1,6 +1,16 @@
|
||||
- content_for :page_title do
|
||||
= t('admin.instances.title')
|
||||
|
||||
= form_tag admin_instances_url, method: 'GET', class: 'simple_form' do
|
||||
.fields-group
|
||||
- %i(domain_name).each do |key|
|
||||
.input.string.optional
|
||||
= text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.instances.#{key}")
|
||||
|
||||
.actions
|
||||
%button= t('admin.instances.search')
|
||||
= link_to t('admin.instances.reset'), admin_instances_path, class: 'button negative'
|
||||
|
||||
.table-wrapper
|
||||
%table.table
|
||||
%thead
|
||||
|
@@ -10,6 +10,11 @@
|
||||
|
||||
%hr/
|
||||
|
||||
.fields-group
|
||||
= f.input :thumbnail, as: :file, wrapper: :with_block_label, label: t('admin.settings.thumbnail.title'), hint: t('admin.settings.thumbnail.desc_html')
|
||||
|
||||
%hr/
|
||||
|
||||
.fields-group
|
||||
= f.input :timeline_preview, as: :boolean, wrapper: :with_label, label: t('admin.settings.timeline_preview.title'), hint: t('admin.settings.timeline_preview.desc_html')
|
||||
|
||||
|
@@ -6,11 +6,11 @@
|
||||
|
||||
= f.simple_fields_for :account do |ff|
|
||||
.input-with-append
|
||||
= ff.input :username, autofocus: true, placeholder: t('simple_form.labels.defaults.username'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username') }
|
||||
= ff.input :username, autofocus: true, placeholder: t('simple_form.labels.defaults.username'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off' }
|
||||
.append
|
||||
= "@#{site_hostname}"
|
||||
|
||||
= f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }
|
||||
= f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }
|
||||
= f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }
|
||||
= f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }
|
||||
|
||||
|
@@ -2,9 +2,7 @@
|
||||
= 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')
|
||||
= 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')
|
||||
|
||||
.actions
|
||||
= f.button :button, t('auth.login'), type: :submit
|
||||
|
@@ -1,3 +1,4 @@
|
||||
.form-container
|
||||
.flash-message
|
||||
%code= params[:code]
|
||||
%p= t('doorkeeper.authorizations.show.title')
|
||||
%input{ type: 'text', class: 'oauth-code', readonly: true, value: params[:code], onClick: 'select()' }
|
||||
|
@@ -8,8 +8,8 @@
|
||||
= f.input :display_name, placeholder: t('simple_form.labels.defaults.display_name'), hint: t('simple_form.hints.defaults.display_name', count: 30 - @account.display_name.size).html_safe
|
||||
= f.input :note, placeholder: t('simple_form.labels.defaults.note'), hint: t('simple_form.hints.defaults.note', count: 500 - @account.note.size).html_safe
|
||||
|
||||
.card.compact{ style: "background-image: url(#{@account.header.url(:original)})" }
|
||||
.avatar= image_tag @account.avatar.url(:original)
|
||||
.card.compact{ style: "background-image: url(#{@account.header.url(:original)})", data: { original_src: @account.header.url(:original) } }
|
||||
.avatar= image_tag @account.avatar.url(:original), data: { original_src: @account.avatar.url(:original) }
|
||||
|
||||
.fields-group
|
||||
= f.input :avatar, wrapper: :with_label, input_html: { accept: AccountAvatar::IMAGE_MIME_TYPES.join(',') }, hint: t('simple_form.hints.defaults.avatar')
|
||||
|
@@ -1,4 +1,4 @@
|
||||
- if activity.is_a?(Status) && activity.spoiler_text?
|
||||
%meta{ property: 'og:description', content: activity.spoiler_text }/
|
||||
= opengraph 'og:description', activity.spoiler_text
|
||||
- else
|
||||
%meta{ property: 'og:description', content: activity.content }/
|
||||
= opengraph 'og:description', activity.content
|
||||
|
@@ -1,6 +1,23 @@
|
||||
- if activity.is_a?(Status) && activity.non_sensitive_with_media?
|
||||
%meta{ property: 'og:image', content: full_asset_url(activity.media_attachments.first.file.url(:small)) }/
|
||||
- activity.media_attachments.each do |media|
|
||||
- if media.image?
|
||||
= opengraph 'og:image', full_asset_url(media.file.url(:original))
|
||||
= opengraph 'og:image:type', media.file_content_type
|
||||
- unless media.file.meta.nil?
|
||||
= opengraph 'og:image:width', media.file.meta['original']['width']
|
||||
= opengraph 'og:image:height', media.file.meta['original']['height']
|
||||
- elsif media.video?
|
||||
= opengraph 'og:image', full_asset_url(media.file.url(:small))
|
||||
= opengraph 'og:image:type', 'image/png'
|
||||
- unless media.file.meta.nil?
|
||||
= opengraph 'og:image:width', media.file.meta['small']['width']
|
||||
= opengraph 'og:image:height', media.file.meta['small']['height']
|
||||
= opengraph 'og:video', full_asset_url(media.file.url(:original))
|
||||
= opengraph 'og:video:type', media.file_content_type
|
||||
- unless media.file.meta.nil?
|
||||
= opengraph 'og:video:width', media.file.meta['small']['width']
|
||||
= opengraph 'og:video:height', media.file.meta['small']['height']
|
||||
- else
|
||||
%meta{ property: 'og:image', content: full_asset_url(account.avatar.url(:original)) }/
|
||||
%meta{ property: 'og:image:width', content: '120' }/
|
||||
%meta{ property: 'og:image:height', content: '120' }/
|
||||
= opengraph 'og:image', full_asset_url(account.avatar.url(:original))
|
||||
= opengraph 'og:image:width', '120'
|
||||
= opengraph 'og:image:height','120'
|
||||
|
@@ -6,15 +6,15 @@
|
||||
%link{ rel: 'alternate', type: 'application/json+oembed', href: api_oembed_url(url: account_stream_entry_url(@account, @stream_entry), format: 'json') }/
|
||||
%link{ rel: 'alternate', type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(@stream_entry.activity) }/
|
||||
|
||||
%meta{ property: 'og:site_name', content: site_title }/
|
||||
%meta{ property: 'og:type', content: 'article' }/
|
||||
%meta{ property: 'og:title', content: "#{@account.username} on #{site_hostname}" }/
|
||||
%meta{ property: 'og:url', content: account_stream_entry_url(@account, @stream_entry) }/
|
||||
= opengraph 'og:site_name', site_title
|
||||
= opengraph 'og:type', 'article'
|
||||
= opengraph 'og:title', "#{@account.username} on #{site_hostname}"
|
||||
= opengraph 'og:url', account_stream_entry_url(@account, @stream_entry)
|
||||
|
||||
= render 'stream_entries/og_description', activity: @stream_entry.activity
|
||||
= render 'stream_entries/og_image', activity: @stream_entry.activity, account: @account
|
||||
|
||||
%meta{ property: 'twitter:card', content: 'summary' }/
|
||||
= opengraph 'twitter:card', 'summary_large_image'
|
||||
|
||||
- if show_landing_strip?
|
||||
= render partial: 'shared/landing_strip', locals: { account: @stream_entry.account }
|
||||
|
12
app/views/user_mailer/confirmation_instructions.es.html.erb
Normal file
12
app/views/user_mailer/confirmation_instructions.es.html.erb
Normal file
@@ -0,0 +1,12 @@
|
||||
<p>¡Bienvenido, <%= @resource.email %>!</p>
|
||||
|
||||
<p>Acabas de crear una cuenta en <%= @instance %>.</p>
|
||||
|
||||
<p>Para confirmar tu registro, por favor ingresa al siguiente enlace:<br>
|
||||
<%= link_to 'Confirmar mi cuenta', confirmation_url(@resource, confirmation_token: @token) %>
|
||||
|
||||
<p>También revisa nuestros <%= link_to 'términos y condiciones', terms_url %>.</p>
|
||||
|
||||
<p>Sinceramente,<p>
|
||||
|
||||
<p>El equipo de <%= @instance %></p>
|
12
app/views/user_mailer/confirmation_instructions.es.text.erb
Normal file
12
app/views/user_mailer/confirmation_instructions.es.text.erb
Normal file
@@ -0,0 +1,12 @@
|
||||
¡Bienvenido, <%= @resource.email %>!
|
||||
|
||||
Acabas de crear una cuenta en <%= @instance %>.
|
||||
|
||||
Para confirmar tu registro, por favor ingresa al siguiente enlace:
|
||||
<%= confirmation_url(@resource, confirmation_token: @token) %>
|
||||
|
||||
Por favor, también revisa nuestros términos y condiciones <%= terms_url %>
|
||||
|
||||
Sinceramente,
|
||||
|
||||
El equipo de <%= @instance %>
|
@@ -0,0 +1,12 @@
|
||||
<p>Boas vindas, <%= @resource.email %>!</p>
|
||||
|
||||
<p>Você acabou de criar uma conta no <%= @instance %>.</p>
|
||||
|
||||
<p>Para confirmar o seu cadastro, por favor clique no link a seguir: <br>
|
||||
<%= link_to 'Confirmar cadastro', confirmation_url(@resource, confirmation_token: @token) %>
|
||||
|
||||
<p>Por favor, leia também os nossos <%= link_to 'termos de serviços', terms_url %>.</p>
|
||||
|
||||
<p>Atenciosamente,<p>
|
||||
|
||||
<p>A equipe do <%= @instance %></p>
|
@@ -0,0 +1,12 @@
|
||||
Boas vindas, <%= @resource.email %>!
|
||||
|
||||
Você acabou de criar uma conta no <%= @instance %>.
|
||||
|
||||
Para confirmar o seu cadastro, por favor clique no link a seguir:
|
||||
<%= confirmation_url(@resource, confirmation_token: @token) %>
|
||||
|
||||
Por favor, leia também os nossos termos e condições de uso <%= terms_url %>
|
||||
|
||||
Atenciosamente,
|
||||
|
||||
A equipe do <%= @instance %>
|
@@ -3,7 +3,7 @@
|
||||
<p>你刚刚在 <%= @instance %> 创建了帐号。</p>
|
||||
|
||||
<p>点击下面的链接来完成注册啦 : <br>
|
||||
<%= link_to '确认账户', confirmation_url(@resource, confirmation_token: @token) %>
|
||||
<%= link_to '确认帐户', confirmation_url(@resource, confirmation_token: @token) %>
|
||||
|
||||
<p>别忘了看看 <%= link_to '使用条款', terms_url %>。</p>
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
你刚刚在 <%= @instance %> 创建了帐号。
|
||||
|
||||
点击下面的链接来完成注册啦 : <br>
|
||||
<%= link_to '确认账户', confirmation_url(@resource, confirmation_token: @token) %>
|
||||
<%= link_to '确认帐户', confirmation_url(@resource, confirmation_token: @token) %>
|
||||
|
||||
别忘了看看 <%= link_to 'terms and conditions', terms_url %>。
|
||||
|
||||
|
3
app/views/user_mailer/password_change.es.html.erb
Normal file
3
app/views/user_mailer/password_change.es.html.erb
Normal file
@@ -0,0 +1,3 @@
|
||||
<p>¡Hola, <%= @resource.email %>!</p>
|
||||
|
||||
<p>Te contactamos para notificarte que tu contraseña en <%= @instance %> ha sido modificada.</p>
|
3
app/views/user_mailer/password_change.es.text.erb
Normal file
3
app/views/user_mailer/password_change.es.text.erb
Normal file
@@ -0,0 +1,3 @@
|
||||
¡Hola, <%= @resource.email %>!
|
||||
|
||||
Te contactamos para notificarte que tu contraseña en <%= @instance %> ha sido modificada.
|
3
app/views/user_mailer/password_change.pt-BR.html.erb
Normal file
3
app/views/user_mailer/password_change.pt-BR.html.erb
Normal file
@@ -0,0 +1,3 @@
|
||||
<p>Olá, <%= @resource.email %>!</p>
|
||||
|
||||
<p>Estamos te contatando para te notificar que a senha senha no <%= @instance %> foi modificada.</p>
|
3
app/views/user_mailer/password_change.pt-BR.text.erb
Normal file
3
app/views/user_mailer/password_change.pt-BR.text.erb
Normal file
@@ -0,0 +1,3 @@
|
||||
Olá, <%= @resource.email %>!
|
||||
|
||||
Estamos te contatando para te notificar que a senha senha no <%= @instance %> foi modificada.
|
@@ -0,0 +1,8 @@
|
||||
<p>¡Hola, <%= @resource.email %>!</p>
|
||||
|
||||
<p>Alguien pidió un enlace para cambiar tu contraseña en <%= @instance %>. Puedes hacer esto con el siguiente enlace.</p>
|
||||
|
||||
<p><%= link_to 'Cambiar mi contraseña', edit_password_url(@resource, reset_password_token: @token) %></p>
|
||||
|
||||
<p>Si no fuiste tú, por favor ignora este mensaje.</p>
|
||||
<p>Tu contraseña no cambiará hasta que ingreses al enlace y crees una nueva.</p>
|
@@ -0,0 +1,8 @@
|
||||
¡Hola, <%= @resource.email %>!
|
||||
|
||||
Alguien pidió un enlace para cambiar tu contraseña en <%= @instance %>. Puedes hacer esto con el siguiente enlace.
|
||||
|
||||
<%= edit_password_url(@resource, reset_password_token: @token) %>
|
||||
|
||||
Si no fuiste tú, por favor ignora este mensaje.
|
||||
Tu contraseña no cambiará hasta que ingreses al enlace y crees una nueva.
|
@@ -0,0 +1,8 @@
|
||||
<p>Olá, <%= @resource.email %>!</p>
|
||||
|
||||
<p>Alguém solicitou um link para mudar a sua senha no <%= @instance %>. Você pode fazer isso através do link abaixo:</p>
|
||||
|
||||
<p><%= link_to 'Mudar a minha senha', edit_password_url(@resource, reset_password_token: @token) %></p>
|
||||
|
||||
<p>Se você não solicitou isso, por favor ignore este e-mail.</p>
|
||||
<p>A senha senha não será modificada até que você acesse o link acima e crie uma nova.</p>
|
@@ -0,0 +1,8 @@
|
||||
Olá, <%= @resource.email %>!
|
||||
|
||||
Alguém solicitou um link para mudar a sua senha no <%= @instance %>. Você pode fazer isso através do link abaixo:
|
||||
|
||||
<%= edit_password_url(@resource, reset_password_token: @token) %>
|
||||
|
||||
Se você não solicitou isso, por favor ignore este e-mail.
|
||||
A senha senha não será modificada até que você acesse o link acima e crie uma nova.
|
@@ -1,6 +1,6 @@
|
||||
<p><%= @resource.email %> ,嗨呀!!</p>
|
||||
|
||||
<p>有人(但愿是你)请求更改你Mastodon账户的密码。如果是你的话,请点击下面的链接:</p>
|
||||
<p>有人(但愿是你)请求更改你Mastodon帐户的密码。如果是你的话,请点击下面的链接:</p>
|
||||
|
||||
<p><%= link_to '更改密码', edit_password_url(@resource, reset_password_token: @token) %></p>
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<%= @resource.email %> ,嗨呀!!
|
||||
|
||||
有人(但愿是你)请求更改你Mastodon账户的密码。如果是你的话,请点击下面的链接:
|
||||
有人(但愿是你)请求更改你Mastodon帐户的密码。如果是你的话,请点击下面的链接:
|
||||
|
||||
<%= link_to '更改密码', edit_password_url(@resource, reset_password_token: @token) %>
|
||||
|
||||
|
Reference in New Issue
Block a user