From 2ef9d650520f95e0b1b4b292bce7b80b9967f146 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 5 May 2018 00:55:09 +0200 Subject: Improve rendering of bio fields (#7353) Fix #7335 --- app/views/accounts/_header.html.haml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'app/views') diff --git a/app/views/accounts/_header.html.haml b/app/views/accounts/_header.html.haml index f246f5326..41315f039 100644 --- a/app/views/accounts/_header.html.haml +++ b/app/views/accounts/_header.html.haml @@ -24,12 +24,11 @@ .account__header__content.p-note.emojify= Formatter.instance.simplified_format(account, custom_emojify: true) - unless 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) .details-counters .counter{ class: active_nav_class(short_account_url(account)) } -- cgit From c7d1a2e400cd6677057a8af90fff866207576098 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 5 May 2018 23:06:29 +0200 Subject: Improve admin UI for accounts (#7360) * Improve design of account statuses admin UI (consistent with reports) * Make account moderation notes look consistent with report notes * i18n-tasks remove-unused * Fix code style issues * Fix tests --- .../admin/reported_statuses_controller.rb | 19 -------- app/controllers/admin/statuses_controller.rb | 35 +++++---------- app/javascript/styles/mastodon/admin.scss | 3 +- .../_account_moderation_note.html.haml | 15 +++---- app/views/admin/accounts/show.html.haml | 39 +++++++--------- app/views/admin/reports/_status.html.haml | 2 +- app/views/admin/statuses/index.html.haml | 52 +++++++++------------- config/locales/ar.yml | 9 ---- config/locales/ca.yml | 9 ---- config/locales/de.yml | 9 ---- config/locales/en.yml | 11 +---- config/locales/eo.yml | 9 ---- config/locales/es.yml | 9 ---- config/locales/fa.yml | 9 ---- config/locales/fi.yml | 9 ---- config/locales/fr.yml | 9 ---- config/locales/gl.yml | 9 ---- config/locales/he.yml | 6 --- config/locales/hu.yml | 9 ---- config/locales/id.yml | 1 - config/locales/io.yml | 1 - config/locales/it.yml | 9 ---- config/locales/ja.yml | 9 ---- config/locales/ko.yml | 9 ---- config/locales/nl.yml | 9 ---- config/locales/no.yml | 9 ---- config/locales/oc.yml | 9 ---- config/locales/pl.yml | 9 ---- config/locales/pt-BR.yml | 9 ---- config/locales/pt.yml | 9 ---- config/locales/ru.yml | 9 ---- config/locales/sk.yml | 9 ---- config/locales/sr-Latn.yml | 9 ---- config/locales/sr.yml | 9 ---- config/locales/sv.yml | 9 ---- config/locales/th.yml | 1 - config/locales/tr.yml | 1 - config/locales/uk.yml | 1 - config/locales/zh-CN.yml | 9 ---- config/locales/zh-HK.yml | 9 ---- config/locales/zh-TW.yml | 1 - config/routes.rb | 4 +- .../admin/reported_statuses_controller_spec.rb | 49 ++++---------------- spec/controllers/admin/statuses_controller_spec.rb | 48 ++++---------------- 44 files changed, 77 insertions(+), 446 deletions(-) (limited to 'app/views') diff --git a/app/controllers/admin/reported_statuses_controller.rb b/app/controllers/admin/reported_statuses_controller.rb index 522f68c98..d3c2f5e9e 100644 --- a/app/controllers/admin/reported_statuses_controller.rb +++ b/app/controllers/admin/reported_statuses_controller.rb @@ -3,7 +3,6 @@ module Admin class ReportedStatusesController < BaseController before_action :set_report - before_action :set_status, only: [:update, :destroy] def create authorize :status, :update? @@ -14,20 +13,6 @@ module Admin redirect_to admin_report_path(@report) end - def update - authorize @status, :update? - @status.update!(status_params) - log_action :update, @status - redirect_to admin_report_path(@report) - end - - def destroy - authorize @status, :destroy? - RemovalWorker.perform_async(@status.id) - log_action :destroy, @status - render json: @status - end - private def status_params @@ -51,9 +36,5 @@ module Admin def set_report @report = Report.find(params[:report_id]) end - - def set_status - @status = @report.statuses.find(params[:id]) - end end end diff --git a/app/controllers/admin/statuses_controller.rb b/app/controllers/admin/statuses_controller.rb index d5787acfb..382bfc4a2 100644 --- a/app/controllers/admin/statuses_controller.rb +++ b/app/controllers/admin/statuses_controller.rb @@ -5,7 +5,6 @@ module Admin helper_method :current_params before_action :set_account - before_action :set_status, only: [:update, :destroy] PER_PAGE = 20 @@ -26,40 +25,18 @@ module Admin def create authorize :status, :update? - @form = Form::StatusBatch.new(form_status_batch_params.merge(current_account: current_account)) + @form = Form::StatusBatch.new(form_status_batch_params.merge(current_account: current_account, action: action_from_button)) flash[:alert] = I18n.t('admin.statuses.failed_to_execute') unless @form.save redirect_to admin_account_statuses_path(@account.id, current_params) end - def update - authorize @status, :update? - @status.update!(status_params) - log_action :update, @status - redirect_to admin_account_statuses_path(@account.id, current_params) - end - - def destroy - authorize @status, :destroy? - RemovalWorker.perform_async(@status.id) - log_action :destroy, @status - render json: @status - end - private - def status_params - params.require(:status).permit(:sensitive) - end - def form_status_batch_params params.require(:form_status_batch).permit(:action, status_ids: []) end - def set_status - @status = @account.statuses.find(params[:id]) - end - def set_account @account = Account.find(params[:account_id]) end @@ -72,5 +49,15 @@ module Admin page: page > 1 && page, }.select { |_, value| value.present? } end + + def action_from_button + if params[:nsfw_on] + 'nsfw_on' + elsif params[:nsfw_off] + 'nsfw_off' + elsif params[:delete] + 'delete' + end + end end end diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index a6cc8b62b..1948a2a23 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -336,7 +336,8 @@ } } -.simple_form.new_report_note { +.simple_form.new_report_note, +.simple_form.new_account_moderation_note { max-width: 100%; } diff --git a/app/views/admin/account_moderation_notes/_account_moderation_note.html.haml b/app/views/admin/account_moderation_notes/_account_moderation_note.html.haml index 6761a4319..432fb79a6 100644 --- a/app/views/admin/account_moderation_notes/_account_moderation_note.html.haml +++ b/app/views/admin/account_moderation_notes/_account_moderation_note.html.haml @@ -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) diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 7312618ee..2e6de1864 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -2,7 +2,7 @@ = @account.acct .table-wrapper - %table.table + %table.table.inline-table %tbody %tr %th= t('admin.accounts.username') @@ -73,17 +73,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 +120,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 +149,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 +169,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 diff --git a/app/views/admin/reports/_status.html.haml b/app/views/admin/reports/_status.html.haml index 137609539..9057e6048 100644 --- a/app/views/admin/reports/_status.html.haml +++ b/app/views/admin/reports/_status.html.haml @@ -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? diff --git a/app/views/admin/statuses/index.html.haml b/app/views/admin/statuses/index.html.haml index fe2581527..880a24f76 100644 --- a/app/views/admin/statuses/index.html.haml +++ b/app/views/admin/statuses/index.html.haml @@ -3,11 +3,8 @@ - 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 @@ -15,33 +12,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') + +%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] -- 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 + .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 diff --git a/config/locales/ar.yml b/config/locales/ar.yml index e9ca3038e..a5179ae14 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -52,9 +52,7 @@ ar: unfollow: إلغاء المتابعة admin: account_moderation_notes: - account: مُشرِف create: إنشاء - created_at: التاريخ created_msg: تم إنشاء ملاحظة الإشراف بنجاح ! delete: حذف destroyed_msg: تم تدمير ملاحظة الإشراف بنجاح ! @@ -241,12 +239,8 @@ ar: are_you_sure: هل أنت متأكد ؟ comment: none: لا شيء - delete: حذف id: معرّف ID mark_as_resolved: إعتبار التقرير كمحلول - nsfw: - 'false': الكشف عن الصور - 'true': إخفاء الوسائط المرفقة report: 'التقرير #%{id}' report_contents: المحتويات reported_account: حساب مُبلّغ عنه @@ -305,11 +299,8 @@ ar: back_to_account: العودة إلى صفحة الحساب batch: delete: حذف - execute: تفعيل failed_to_execute: خطأ في التفعيل media: - hide: إخفاء الوسائط - show: إظهار الوسائط title: الوسائط title: منشورات الحساب with_media: بالوسائط diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 2758bb487..a8c75c32d 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -53,9 +53,7 @@ ca: unfollow: Deixa de seguir admin: account_moderation_notes: - account: Moderador create: Crea - created_at: Data created_msg: La nota de moderació s'ha creat correctament! delete: Suprimeix destroyed_msg: Nota de moderació destruïda amb èxit! @@ -269,7 +267,6 @@ ca: comment: none: Cap created_at: Reportat - delete: Suprimeix id: ID mark_as_resolved: Marca com a resolt mark_as_unresolved: Marcar sense resoldre @@ -279,9 +276,6 @@ ca: create_and_unresolve: Reobrir amb nota delete: Esborrar placeholder: Descriu les accions que s'han pres o qualsevol altra actualització d'aquest informe… - nsfw: - 'false': Mostra els fitxers multimèdia adjunts - 'true': Amaga els fitxers multimèdia adjunts reopen: Reobrir informe report: 'Informe #%{id}' report_contents: Contingut @@ -356,11 +350,8 @@ ca: delete: Suprimeix nsfw_off: Marcar com a no sensible nsfw_on: Marcar com a sensible - execute: Executa failed_to_execute: No s'ha pogut executar media: - hide: Amaga el contingut multimèdia - show: Mostra el contingut multimèdia title: Contingut multimèdia no_media: Sense contingut multimèdia title: Estats del compte diff --git a/config/locales/de.yml b/config/locales/de.yml index 6b2c08735..aa4295c89 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -53,9 +53,7 @@ de: unfollow: Entfolgen admin: account_moderation_notes: - account: Moderator*in create: Erstellen - created_at: Datum created_msg: Moderationsnotiz erfolgreich erstellt! delete: Löschen destroyed_msg: Moderationsnotiz erfolgreich gelöscht! @@ -269,7 +267,6 @@ de: comment: none: Kein created_at: Gemeldet - delete: Löschen id: ID mark_as_resolved: Als gelöst markieren mark_as_unresolved: Als ungelöst markieren @@ -279,9 +276,6 @@ de: create_and_unresolve: Mit Kommentar wieder öffnen delete: Löschen placeholder: Beschreibe, welche Maßnahmen ergriffen wurden oder andere Neuigkeiten zu dieser Meldung… - nsfw: - 'false': Medienanhänge wieder anzeigen - 'true': Medienanhänge verbergen reopen: Meldung wieder öffnen report: 'Meldung #%{id}' report_contents: Inhalt @@ -356,11 +350,8 @@ de: delete: Löschen nsfw_off: Als nicht heikel markieren nsfw_on: Als heikel markieren - execute: Ausführen failed_to_execute: Ausführen fehlgeschlagen media: - hide: Medien verbergen - show: Medien anzeigen title: Medien no_media: Keine Medien title: Beiträge des Kontos diff --git a/config/locales/en.yml b/config/locales/en.yml index f7127f794..7e389b1c2 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -53,9 +53,7 @@ en: unfollow: Unfollow admin: account_moderation_notes: - account: Moderator - create: Create - created_at: Date + create: Leave note created_msg: Moderation note successfully created! delete: Delete destroyed_msg: Moderation note successfully destroyed! @@ -269,7 +267,6 @@ en: comment: none: None created_at: Reported - delete: Delete id: ID mark_as_resolved: Mark as resolved mark_as_unresolved: Mark as unresolved @@ -279,9 +276,6 @@ en: create_and_unresolve: Reopen with note delete: Delete placeholder: Describe what actions have been taken, or any other updates to this report… - nsfw: - 'false': Unhide media attachments - 'true': Hide media attachments reopen: Reopen report report: 'Report #%{id}' report_contents: Contents @@ -356,11 +350,8 @@ en: delete: Delete nsfw_off: Mark as not sensitive nsfw_on: Mark as sensitive - execute: Execute failed_to_execute: Failed to execute media: - hide: Hide media - show: Show media title: Media no_media: No media title: Account statuses diff --git a/config/locales/eo.yml b/config/locales/eo.yml index c768d8a03..9c44d0e62 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -52,9 +52,7 @@ eo: unfollow: Ne plu sekvi admin: account_moderation_notes: - account: Kontrolanto create: Krei - created_at: Dato created_msg: Kontrola noto sukcese kreita! delete: Forigi destroyed_msg: Kontrola noto sukcese detruita! @@ -244,12 +242,8 @@ eo: are_you_sure: Ĉu vi certas? comment: none: Nenio - delete: Forigi id: ID mark_as_resolved: Marki kiel solvita - nsfw: - 'false': Malkaŝi aŭdovidajn kunsendaĵojn - 'true': Kaŝi aŭdovidajn kunsendaĵojn report: 'Signalo #%{id}' report_contents: Enhavo reported_account: Signalita konto @@ -320,11 +314,8 @@ eo: delete: Forigi nsfw_off: Malŝalti NSFW nsfw_on: Ŝalti NSFW - execute: Ekigi failed_to_execute: Ekigo malsukcesa media: - hide: Kaŝi aŭdovidaĵojn - show: Montri aŭdovidaĵojn title: Aŭdovidaĵoj no_media: Neniu aŭdovidaĵo title: Mesaĝoj de la konto diff --git a/config/locales/es.yml b/config/locales/es.yml index cd36e3a97..be7dcd81e 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -53,9 +53,7 @@ es: unfollow: Dejar de seguir admin: account_moderation_notes: - account: Moderador create: Crear - created_at: Fecha created_msg: "¡Nota de moderación creada con éxito!" delete: Borrar destroyed_msg: "¡Nota de moderación destruida con éxito!" @@ -269,7 +267,6 @@ es: comment: none: Ninguno created_at: Denunciado - delete: Eliminar id: ID mark_as_resolved: Marcar como resuelto mark_as_unresolved: Marcar como no resuelto @@ -279,9 +276,6 @@ es: create_and_unresolve: Reabrir con una nota delete: Eliminar placeholder: Especificar qué acciones se han tomado o cualquier otra novedad respecto a esta denuncia… - nsfw: - 'false': Mostrar multimedia - 'true': Ocultar multimedia reopen: Reabrir denuncia report: 'Reportar #%{id}' report_contents: Contenido @@ -356,11 +350,8 @@ es: delete: Eliminar nsfw_off: Marcar contenido como no sensible nsfw_on: Marcar contenido como sensible - execute: Ejecutar failed_to_execute: Falló al ejecutar media: - hide: Ocultar multimedia - show: Mostrar multimedia title: Multimedia no_media: No hay multimedia title: Estado de las cuentas diff --git a/config/locales/fa.yml b/config/locales/fa.yml index a3005547a..3aa40f0b3 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -52,9 +52,7 @@ fa: unfollow: پایان پیگیری admin: account_moderation_notes: - account: مدیر create: نوشتن - created_at: تاریخ created_msg: یادداشت مدیر با موفقیت ساخته شد! delete: پاک کردن destroyed_msg: یادداشت مدیر با موفقیت پاک شد! @@ -244,12 +242,8 @@ fa: are_you_sure: آیا مطمئن هستید؟ comment: none: خالی - delete: پاک‌کردن id: شناسه mark_as_resolved: علامت‌گذاری به عنوان حل‌شده - nsfw: - 'false': نمایش پیوست‌های تصویری - 'true': نهفتن پیوست‌های تصویری report: 'گزارش #%{id}' report_contents: محتوا reported_account: حساب گزارش‌شده @@ -308,11 +302,8 @@ fa: delete: پاک‌کردن nsfw_off: NSFW خاموش nsfw_on: NSFW روشن - execute: اجرا failed_to_execute: اجرا نشد media: - hide: نهفتن رسانه - show: نمایش رسانه title: رسانه no_media: بدون رسانه title: نوشته‌های حساب diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 550ad1805..b313c8723 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -52,9 +52,7 @@ fi: unfollow: Lopeta seuraaminen admin: account_moderation_notes: - account: Moderaattori create: Luo - created_at: Päiväys created_msg: Moderointimerkinnän luonti onnistui! delete: Poista destroyed_msg: Moderointimerkinnän poisto onnistui! @@ -244,12 +242,8 @@ fi: are_you_sure: Oletko varma? comment: none: Ei mitään - delete: Poista id: Tunniste mark_as_resolved: Merkitse ratkaistuksi - nsfw: - 'false': Peru medialiitteiden piilotus - 'true': Piilota medialiitteet report: Raportti nro %{id} report_contents: Sisältö reported_account: Raportoitu tili @@ -320,11 +314,8 @@ fi: delete: Poista nsfw_off: NSFW POIS nsfw_on: NSFW PÄÄLLÄ - execute: Suorita failed_to_execute: Suoritus epäonnistui media: - hide: Piilota media - show: Näytä media title: Media no_media: Ei mediaa title: Tilin tilat diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 462ce7b4b..3b543fdb7 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -53,9 +53,7 @@ fr: unfollow: Ne plus suivre admin: account_moderation_notes: - account: Modérateur·ice create: Créer - created_at: Date created_msg: Note de modération créée avec succès ! delete: Supprimer destroyed_msg: Note de modération supprimée avec succès ! @@ -269,7 +267,6 @@ fr: comment: none: Aucun created_at: Signalé - delete: Supprimer id: ID mark_as_resolved: Marquer comme résolu mark_as_unresolved: Marquer comme non-résolu @@ -279,9 +276,6 @@ fr: create_and_unresolve: Ré-ouvrir avec une note delete: Effacer placeholder: Décrivez quelles actions ont été prises, ou toute autre mise à jour de ce signalement… - nsfw: - 'false': Ré-afficher les médias - 'true': Masquer les médias reopen: Ré-ouvrir le signalement report: 'Signalement #%{id}' report_contents: Contenu @@ -356,11 +350,8 @@ fr: delete: Supprimer nsfw_off: Marquer comme non-sensible nsfw_on: Marquer comme sensible - execute: Exécuter failed_to_execute: Erreur d’exécution media: - hide: Masquer les médias - show: Montrer les médias title: Médias no_media: Aucun média title: État du compte diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 6f2270224..eec1b4e1e 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -53,9 +53,7 @@ gl: unfollow: Deixar de seguir admin: account_moderation_notes: - account: Moderador create: Crear - created_at: Data created_msg: Nota a moderación creada con éxito! delete: Eliminar destroyed_msg: Nota a moderación destruída con éxito! @@ -269,7 +267,6 @@ gl: comment: none: Nada created_at: Reportado - delete: Eliminar id: ID mark_as_resolved: Marcar como resolto mark_as_unresolved: Marcar como non resolto @@ -279,9 +276,6 @@ gl: create_and_unresolve: Voltar a abrir con nota delete: Eliminar placeholder: Describir qué decisións foron tomadas, ou calquer actualización a este informe… - nsfw: - 'false': Non agochar anexos de medios - 'true': Agochar anexos de medios reopen: Voltar a abrir o informe report: 'Informe #%{id}' report_contents: Contidos @@ -356,11 +350,8 @@ gl: delete: Eliminar nsfw_off: Marcar como non sensible nsfw_on: Marcar como sensible - execute: Executar failed_to_execute: Fallou a execución media: - hide: Agochar medios - show: Mostar medios title: Medios no_media: Sen medios title: Estados da conta diff --git a/config/locales/he.yml b/config/locales/he.yml index d641c6e1a..d66d9f034 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -52,9 +52,7 @@ he: unfollow: הפסקת מעקב admin: account_moderation_notes: - account: מנחה דיון create: ליצור - created_at: תאריך created_msg: הודעת מנחה נוצרה בהצלחה! delete: למחוק destroyed_msg: הודעת מנחה נמחקה בהצלחה! @@ -181,12 +179,8 @@ he: are_you_sure: 100% על בטוח? comment: none: ללא - delete: מחיקה id: ID mark_as_resolved: סימון כפתור - nsfw: - 'false': לכל המשפחה - 'true': תוכן רגיש report: 'דווח על #%{id}' report_contents: תוכן reported_account: חשבון מדווח diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 7fe431d37..422c05955 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -52,9 +52,7 @@ hu: unfollow: Követés abbahagyása admin: account_moderation_notes: - account: Moderátor create: Új bejegyzés - created_at: Dátum created_msg: Moderációs bejegyzés létrehozva! delete: Törlés destroyed_msg: Moderációs bejegyzés törölve! @@ -244,12 +242,8 @@ hu: are_you_sure: Biztos vagy benne? comment: none: Egyik sem - delete: Törlés id: ID mark_as_resolved: Megjelölés megoldottként - nsfw: - 'false': Média-csatolmányok rejtésének feloldása - 'true': Média-csatolmányok elrejtése report: "#%{id} számú jelentés" report_contents: Tartalom reported_account: Bejelentett fiók @@ -314,11 +308,8 @@ hu: delete: Törlés nsfw_off: Szenzitív tartalom kikapcsolva nsfw_on: Szenzitív tartalom bekapcsolva - execute: Végrehajt failed_to_execute: Végrehajtás sikertelen media: - hide: Média elrejtése - show: Média megjelenítése title: Média no_media: Nem található médiafájl title: Felhasználó tülkjei diff --git a/config/locales/id.yml b/config/locales/id.yml index 5a63b8038..0476e2848 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -107,7 +107,6 @@ id: reports: comment: none: Tidak ada - delete: Hapus id: ID mark_as_resolved: Tandai telah diseleseikan report: 'Laporkan #%{id}' diff --git a/config/locales/io.yml b/config/locales/io.yml index 7c25acc47..bf15de488 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -106,7 +106,6 @@ io: reports: comment: none: None - delete: Delete id: ID mark_as_resolved: Mark as resolved report: 'Report #%{id}' diff --git a/config/locales/it.yml b/config/locales/it.yml index e010be02d..c1ac176c4 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -49,9 +49,7 @@ it: unfollow: Non seguire più admin: account_moderation_notes: - account: Moderatore create: Crea - created_at: Data created_msg: Nota di moderazione creata con successo! delete: Elimina destroyed_msg: Nota di moderazione distrutta con successo! @@ -214,7 +212,6 @@ it: assigned: Moderatore assegnato comment: none: Nessuno - delete: Elimina id: ID mark_as_resolved: Segna come risolto mark_as_unresolved: Segna come non risolto @@ -223,9 +220,6 @@ it: create_and_resolve: Risolvi con nota create_and_unresolve: Riapri con nota delete: Elimina - nsfw: - 'false': Mostra gli allegati multimediali - 'true': Nascondi allegati multimediali report_contents: Contenuti resolved: Risolto silence_account: Silenzia account @@ -266,11 +260,8 @@ it: delete: Elimina nsfw_off: NSFW OFF nsfw_on: NSFW ON - execute: Esegui failed_to_execute: Impossibile eseguire media: - hide: Nascondi media - show: Mostra media title: Media no_media: Nessun media with_media: con media diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 5b3cc5f15..bc48613b9 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -53,9 +53,7 @@ ja: unfollow: フォロー解除 admin: account_moderation_notes: - account: モデレータ create: 書き込む - created_at: 日付 created_msg: モデレーションメモを書き込みました! delete: 削除 destroyed_msg: モデレーションメモを削除しました! @@ -269,7 +267,6 @@ ja: comment: none: なし created_at: レポート日時 - delete: 削除 id: ID mark_as_resolved: 解決済みとしてマーク mark_as_unresolved: 未解決として再び開く @@ -279,9 +276,6 @@ ja: create_and_unresolve: 書き込み、未解決として開く delete: 削除 placeholder: このレポートに取られた措置や、その他の更新を記述してください… - nsfw: - 'false': NSFW オフ - 'true': NSFW オン reopen: 再び開く report: レポート#%{id} report_contents: 内容 @@ -356,11 +350,8 @@ ja: delete: 削除 nsfw_off: 閲覧注意のマークを取り除く nsfw_on: 閲覧注意としてマークする - execute: 実行 failed_to_execute: 実行に失敗しました media: - hide: メディアを隠す - show: メディアを表示 title: メディア no_media: メディアなし title: トゥート一覧 diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 0f3c6483f..bd6717d49 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -53,9 +53,7 @@ ko: unfollow: 팔로우 해제 admin: account_moderation_notes: - account: 모더레이터 create: 작성하기 - created_at: 작성 날짜 created_msg: 모더레이션 기록이 성공적으로 작성되었습니다! delete: 삭제 destroyed_msg: 모더레이션 기록이 성공적으로 삭제되었습니다! @@ -271,7 +269,6 @@ ko: comment: none: 없음 created_at: 리포트 시각 - delete: 삭제 id: ID mark_as_resolved: 해결 완료 처리 mark_as_unresolved: 미해결로 표시 @@ -281,9 +278,6 @@ ko: create_and_unresolve: 노트 작성과 함께 미해결로 표시 delete: 삭제 placeholder: 이 리포트에 대한 조치, 다른 업데이트 사항에 대해 설명합니다… - nsfw: - 'false': NSFW 꺼짐 - 'true': NSFW 켜짐 reopen: 리포트 다시 열기 report: '신고 #%{id}' report_contents: 내용 @@ -358,11 +352,8 @@ ko: delete: 삭제 nsfw_off: NSFW 끄기 nsfw_on: NSFW 켜기 - execute: 실행 failed_to_execute: 실행을 실패하였습니다 media: - hide: 미디어 숨기기 - show: 미디어 보여주기 title: 미디어 no_media: 미디어 없음 title: 계정 툿 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 7a488bb0f..00f21babd 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -53,9 +53,7 @@ nl: unfollow: Ontvolgen admin: account_moderation_notes: - account: Moderator create: Aanmaken - created_at: Datum created_msg: Aanmaken van opmerking voor moderatoren geslaagd! delete: Verwijderen destroyed_msg: Verwijderen van opmerking voor moderatoren geslaagd! @@ -269,7 +267,6 @@ nl: comment: none: Geen created_at: Gerapporteerd op - delete: Verwijderen id: ID mark_as_resolved: Markeer als opgelost mark_as_unresolved: Markeer als onopgelost @@ -279,9 +276,6 @@ nl: create_and_unresolve: Heropenen met opmerking delete: Verwijderen placeholder: Beschrijf welke acties zijn ondernomen of andere opmerkingen over deze gerapporteerde toot… - nsfw: - 'false': Media tonen - 'true': Media verbergen reopen: Gerapporteerde toot heropenen report: 'Gerapporteerde toot #%{id}' report_contents: Inhoud @@ -356,11 +350,8 @@ nl: delete: Verwijderen nsfw_off: Als niet gevoelig markeren nsfw_on: Als gevoelig markeren - execute: Uitvoeren failed_to_execute: Uitvoeren mislukt media: - hide: Media verbergen - show: Media tonen title: Media no_media: Geen media title: Toots van account diff --git a/config/locales/no.yml b/config/locales/no.yml index 8b84182af..6ce2c0f01 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -52,9 +52,7 @@ unfollow: Slutte følge admin: account_moderation_notes: - account: Moderator create: Lag - created_at: Dato created_msg: Moderasjonsnotat laget uten problem! delete: Slett destroyed_msg: Moderasjonsnotat slettet uten problem! @@ -244,12 +242,8 @@ are_you_sure: Er du sikker? comment: none: Ingen - delete: Slett id: ID mark_as_resolved: Merk som løst - nsfw: - 'false': Vis mediavedlegg - 'true': Skjul mediavedlegg report: 'Rapportér #%{id}' report_contents: Innhold reported_account: Rapportert konto @@ -314,11 +308,8 @@ delete: Slett nsfw_off: NSFW AV nsfw_on: NSFW PÅ - execute: Utfør failed_to_execute: Utføring mislyktes media: - hide: Skjul media - show: Vis media title: Media no_media: Ingen media title: Kontostatuser diff --git a/config/locales/oc.yml b/config/locales/oc.yml index c248ffd85..c11fe614b 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -53,9 +53,7 @@ oc: unfollow: Quitar de sègre admin: account_moderation_notes: - account: Moderator create: Crear - created_at: Data created_msg: Nòta de moderacion ben creada ! delete: Suprimir destroyed_msg: Nòta de moderacion ben suprimida ! @@ -265,7 +263,6 @@ oc: comment: none: Pas cap created_at: Creacion - delete: Suprimir id: ID mark_as_resolved: Marcar coma resolgut mark_as_unresolved: Marcar coma pas resolgut @@ -274,9 +271,6 @@ oc: create_and_resolve: Resòlvre amb una nòta create_and_unresolve: Tornar dobrir amb una nòta placeholder: Explicatz las accions que son estadas menadas o çò qu’es estat fach per aqueste rapòrt… - nsfw: - 'false': Sens contengut sensible - 'true': Contengut sensible activat reopen: Tornar dobrir lo rapòrt report: 'senhalament #%{id}' report_contents: Contenguts @@ -348,11 +342,8 @@ oc: delete: Suprimir nsfw_off: NSFW OFF nsfw_on: NSFW ON - execute: Lançar failed_to_execute: Fracàs media: - hide: Amagar mèdia - show: Mostrar mèdia title: Mèdia no_media: Cap mèdia title: Estatuts del compte diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 7455df2c0..bd38aa6f7 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -53,9 +53,7 @@ pl: unfollow: Przestań śledzić admin: account_moderation_notes: - account: Autor create: Dodaj - created_at: Data created_msg: Pomyślnie dodano notatkę moderacyjną! delete: Usuń destroyed_msg: Pomyślnie usunięto notatkę moderacyjną! @@ -270,7 +268,6 @@ pl: comment: none: Brak created_at: Zgłoszono - delete: Usuń id: ID mark_as_resolved: Oznacz jako rozwiązane mark_as_unresolved: Oznacz jako nierozwiązane @@ -280,9 +277,6 @@ pl: create_and_unresolve: Cofnij rozwiązanie i pozostaw notatkę delete: Usuń placeholder: Opisz wykonane akcje i inne szczegóły dotyczące tego zgłoszenia… - nsfw: - 'false': Nie oznaczaj jako NSFW - 'true': Oznaczaj jako NSFW reopen: Otwórz ponownie report: 'Zgłoszenie #%{id}' report_contents: Zawartość @@ -357,11 +351,8 @@ pl: delete: Usuń nsfw_off: Cofnij NSFW nsfw_on: Oznacz jako NSFW - execute: Wykonaj failed_to_execute: Nie udało się wykonać media: - hide: Ukryj zawartość multimedialną - show: Pokaż zawartość multimedialną title: Media no_media: Bez zawartości multimedialnej title: Wpisy konta diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 4a574a575..862833d87 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -53,9 +53,7 @@ pt-BR: unfollow: Deixar de seguir admin: account_moderation_notes: - account: Moderador create: Criar - created_at: Data created_msg: Nota de moderação criada com sucesso! delete: Excluir destroyed_msg: Nota de moderação excluída com sucesso! @@ -269,7 +267,6 @@ pt-BR: comment: none: Nenhum created_at: Denunciado - delete: Excluir id: ID mark_as_resolved: Marcar como resolvido mark_as_unresolved: Marcar como não resolvido @@ -279,9 +276,6 @@ pt-BR: create_and_unresolve: Reabrir com nota delete: Excluir placeholder: Descreva que ações foram tomadas, ou quaisquer atualizações sobre esta denúncia… - nsfw: - 'false': Mostrar mídias anexadas - 'true': Esconder mídias anexadas reopen: Reabrir denúncia report: 'Denúncia #%{id}' report_contents: Conteúdos @@ -356,11 +350,8 @@ pt-BR: delete: Deletar nsfw_off: Marcar como não-sensível nsfw_on: Marcar como sensível - execute: Executar failed_to_execute: Falha em executar media: - hide: Esconder mídia - show: Mostrar mídia title: Mídia no_media: Não há mídia title: Postagens da conta diff --git a/config/locales/pt.yml b/config/locales/pt.yml index fb2a6cad1..62a7ef0ec 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -52,9 +52,7 @@ pt: unfollow: Deixar de seguir admin: account_moderation_notes: - account: Moderador create: Criar - created_at: Data created_msg: Nota de moderação criada com sucesso! delete: Eliminar destroyed_msg: Nota de moderação excluída com sucesso! @@ -244,12 +242,8 @@ pt: are_you_sure: Tens a certeza? comment: none: Nenhum - delete: Eliminar id: ID mark_as_resolved: Marcar como resolvido - nsfw: - 'false': Mostrar imagens/vídeos - 'true': Esconder imagens/vídeos report: 'Denúncia #%{id}' report_contents: Conteúdos reported_account: Conta denunciada @@ -314,11 +308,8 @@ pt: delete: Eliminar nsfw_off: NSFW OFF nsfw_on: NSFW ON - execute: Executar failed_to_execute: Falhou ao executar media: - hide: Esconder média - show: Mostrar média title: Média no_media: Não há média title: Estado das contas diff --git a/config/locales/ru.yml b/config/locales/ru.yml index bf4225758..603e1f3ca 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -52,9 +52,7 @@ ru: unfollow: Отписаться admin: account_moderation_notes: - account: Модератор create: Создать - created_at: Дата created_msg: Заметка модератора успешно создана! delete: Удалить destroyed_msg: Заметка модератора успешно удалена! @@ -246,12 +244,8 @@ ru: are_you_sure: Вы уверены? comment: none: Нет - delete: Удалить id: ID mark_as_resolved: Отметить как разрешенную - nsfw: - 'false': Показать мультимедийные вложения - 'true': Скрыть мультимедийные вложения report: 'Жалоба #%{id}' report_contents: Содержимое reported_account: Аккаунт нарушителя @@ -322,11 +316,8 @@ ru: delete: Удалить nsfw_off: Выключить NSFW nsfw_on: Включить NSFW - execute: Выполнить failed_to_execute: Не удалось выполнить media: - hide: Скрыть медиаконтент - show: Показать медиаконтент title: Медиаконтент no_media: Без медиаконтента title: Статусы аккаунта diff --git a/config/locales/sk.yml b/config/locales/sk.yml index fc9e9452c..7fb097f03 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -53,9 +53,7 @@ sk: unfollow: Prestať sledovať admin: account_moderation_notes: - account: Moderátor create: Vytvoriť - created_at: Dátum created_msg: Poznámka moderátora bola úspešne vytvorená! delete: Zmazať destroyed_msg: Poznámka moderátora bola úspešne zmazaná! @@ -268,7 +266,6 @@ sk: comment: none: Žiadne created_at: Nahlásené - delete: Vymazať id: Identifikácia mark_as_resolved: Označiť ako vyriešené mark_as_unresolved: Označ ako nevyriešené @@ -278,9 +275,6 @@ sk: create_and_unresolve: Otvor znovu, s poznámkou delete: Vymaž placeholder: Opíš aké opatrenia boli urobené, alebo akékoľvek iné aktualizácie k tomuto nahláseniu… - nsfw: - 'false': Odkryť mediálne prílohy - 'true': Skryť mediálne prílohy reopen: Znovu otvor report report: Nahlásiť report_contents: Obsah @@ -355,11 +349,8 @@ sk: delete: Vymazať nsfw_off: Obsah nieje chúlostivý nsfw_on: Označ obeah aka chúlostivý - execute: Vykonať failed_to_execute: Nepodarilo sa vykonať media: - hide: Skryť médiá - show: Zobraziť médiá title: Médiá no_media: Žiadné médiá title: Statusy na účte diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 742c976d1..dba952917 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -52,9 +52,7 @@ sr-Latn: unfollow: Otprati admin: account_moderation_notes: - account: Moderator create: Napravi - created_at: Datum created_msg: Moderatorska beleška uspešno napravljena! delete: Obriši destroyed_msg: Moderatorska beleška uspešno obrisana! @@ -246,12 +244,8 @@ sr-Latn: are_you_sure: Da li ste sigurni? comment: none: Ništa - delete: Obriši id: ID mark_as_resolved: Označi kao rešen - nsfw: - 'false': Otkrij medijske priloge - 'true': Sakrij medijske priloge report: 'Prijava #%{id}' report_contents: Sadržaj reported_account: Prijavljeni nalog @@ -310,11 +304,8 @@ sr-Latn: delete: Obriši nsfw_off: NSFW isključen nsfw_on: NSFW uključen - execute: Izvrši failed_to_execute: Neuspelo izvršavanje media: - hide: Sakrij multimediju - show: Prikaži multimediju title: Multimedija no_media: Bez multimedije title: Statusi naloga diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 0d55910a6..74abf0323 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -52,9 +52,7 @@ sr: unfollow: Отпрати admin: account_moderation_notes: - account: Модератор create: Направи - created_at: Датум created_msg: Модераторска белешка успешно направљена! delete: Обриши destroyed_msg: Модераторска белешка успешно обрисана! @@ -246,12 +244,8 @@ sr: are_you_sure: Да ли сте сигурни? comment: none: Ништа - delete: Обриши id: ID mark_as_resolved: Означи као решен - nsfw: - 'false': Откриј медијске прилоге - 'true': Сакриј медијске прилоге report: 'Пријава #%{id}' report_contents: Садржај reported_account: Пријављени налог @@ -310,11 +304,8 @@ sr: delete: Обриши nsfw_off: NSFW искључен nsfw_on: NSFW укључен - execute: Изврши failed_to_execute: Неуспело извршавање media: - hide: Сакриј мултимедију - show: Прикажи мултимедију title: Мултимедија no_media: Без мултимедије title: Статуси налога diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 845248652..9e0bb0856 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -53,9 +53,7 @@ sv: unfollow: Sluta följa admin: account_moderation_notes: - account: Moderator create: Skapa - created_at: Datum created_msg: Modereringsnotering skapad utan problem! delete: Ta bort destroyed_msg: Modereringsnotering borttagen utan problem! @@ -269,7 +267,6 @@ sv: comment: none: Ingen created_at: Anmäld - delete: Radera id: ID mark_as_resolved: Markera som löst mark_as_unresolved: Markera som olöst @@ -279,9 +276,6 @@ sv: create_and_unresolve: Återuppta med anteckning delete: Radera placeholder: Beskriv vilka åtgärder som vidtagits eller andra uppdateringar till den här anmälan… - nsfw: - 'false': Visa bifogade mediafiler - 'true': Dölj bifogade mediafiler reopen: Återuppta anmälan report: 'Anmäl #%{id}' report_contents: Innehåll @@ -356,11 +350,8 @@ sv: delete: Radera nsfw_off: Markera som ej känslig nsfw_on: Markera som känslig - execute: Utför failed_to_execute: Misslyckades att utföra media: - hide: Dölj media - show: Visa media title: Media no_media: Ingen media title: Kontostatus diff --git a/config/locales/th.yml b/config/locales/th.yml index 350b93b52..9d93115b0 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -109,7 +109,6 @@ th: reports: comment: none: None - delete: ลบ id: ไอดี mark_as_resolved: ทำเครื่องหมายว่าจัดการแล้ว report: 'Report #%{id}' diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 6e7aeb77e..0d78216b6 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -108,7 +108,6 @@ tr: reports: comment: none: Yok - delete: Sil id: ID mark_as_resolved: Giderildi olarak işaretle report: 'Şikayet #%{id}' diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 44f64b5c9..6fe46b4d9 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -100,7 +100,6 @@ uk: reports: comment: none: Немає - delete: Видалити id: ID mark_as_resolved: Відмітити як вирішену report: 'Скарга #%{id}' diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 78c72bd30..7ea491fd4 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -52,9 +52,7 @@ zh-CN: unfollow: 取消关注 admin: account_moderation_notes: - account: 管理员 create: 新建 - created_at: 日期 created_msg: 管理备忘建立成功! delete: 删除 destroyed_msg: 管理备忘删除成功! @@ -242,12 +240,8 @@ zh-CN: are_you_sure: 你确定吗? comment: none: 没有 - delete: 删除 id: ID mark_as_resolved: 标记为“已处理” - nsfw: - 'false': 取消 NSFW 标记 - 'true': 添加 NSFW 标记 report: '举报 #%{id}' report_contents: 内容 reported_account: 举报用户 @@ -312,11 +306,8 @@ zh-CN: delete: 删除 nsfw_off: 取消 NSFW 标记 nsfw_on: 添加 NSFW 标记 - execute: 执行 failed_to_execute: 执行失败 media: - hide: 隐藏媒体文件 - show: 显示媒体文件 title: 媒体文件 no_media: 不含媒体文件 title: 帐户嘟文 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index a27b0c04c..3f91b7191 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -53,9 +53,7 @@ zh-HK: unfollow: 取消關注 admin: account_moderation_notes: - account: 管理員 create: 新增 - created_at: 日期 created_msg: 管理記錄已新增 delete: 刪除 destroyed_msg: 管理記錄已被刪除 @@ -268,7 +266,6 @@ zh-HK: comment: none: 沒有 created_at: 日期 - delete: 刪除 id: ID mark_as_resolved: 標示為「已處理」 mark_as_unresolved: 標示為「未處理」 @@ -278,9 +275,6 @@ zh-HK: create_and_unresolve: 建立筆記並標示為「未處理」 delete: 刪除 placeholder: 記錄已執行的動作,或其他更新 - nsfw: - 'false': 取消 NSFW 標記 - 'true': 添加 NSFW 標記 reopen: 重開舉報 report: '舉報 #%{id}' report_contents: 舉報內容 @@ -355,11 +349,8 @@ zh-HK: delete: 刪除 nsfw_off: 取消 NSFW 標記 nsfw_on: 添加 NSFW 標記 - execute: 執行 failed_to_execute: 執行失敗 media: - hide: 隱藏媒體檔案 - show: 顯示媒體檔案 title: 媒體檔案 no_media: 不含媒體檔案 title: 帳戶文章 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index f69d22d79..d8c0f89a9 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -80,7 +80,6 @@ zh-TW: reports: comment: none: 無 - delete: 刪除 id: ID mark_as_resolved: 標記為已解決 report: '檢舉 #%{id}' diff --git a/config/routes.rb b/config/routes.rb index d959301e9..90f6ac594 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -135,7 +135,7 @@ Rails.application.routes.draw do end resources :reports, only: [:index, :show, :update] do - resources :reported_statuses, only: [:create, :update, :destroy] + resources :reported_statuses, only: [:create] end resources :report_notes, only: [:create, :destroy] @@ -156,7 +156,7 @@ Rails.application.routes.draw do resource :silence, only: [:create, :destroy] resource :suspension, only: [:create, :destroy] resource :confirmation, only: [:create] - resources :statuses, only: [:index, :create, :update, :destroy] + resources :statuses, only: [:index, :create] resource :role do member do diff --git a/spec/controllers/admin/reported_statuses_controller_spec.rb b/spec/controllers/admin/reported_statuses_controller_spec.rb index 29957ed37..7adbf36b9 100644 --- a/spec/controllers/admin/reported_statuses_controller_spec.rb +++ b/spec/controllers/admin/reported_statuses_controller_spec.rb @@ -22,7 +22,7 @@ describe Admin::ReportedStatusesController do let(:sensitive) { true } let!(:media_attachment) { Fabricate(:media_attachment, status: status) } - context 'updates sensitive column to true' do + context 'when action is nsfw_on' do it 'updates sensitive column' do is_expected.to change { status.reload.sensitive @@ -30,7 +30,7 @@ describe Admin::ReportedStatusesController do end end - context 'updates sensitive column to false' do + context 'when action is nsfw_off' do let(:action) { 'nsfw_off' } let(:sensitive) { false } @@ -41,35 +41,13 @@ describe Admin::ReportedStatusesController do end end - it 'redirects to report page' do - subject.call - expect(response).to redirect_to(admin_report_path(report)) - end - end - - describe 'PATCH #update' do - subject do - -> { patch :update, params: { report_id: report, id: status, status: { sensitive: sensitive } } } - end - - let(:status) { Fabricate(:status, sensitive: !sensitive) } - let(:sensitive) { true } - - context 'updates sensitive column to true' do - it 'updates sensitive column' do - is_expected.to change { - status.reload.sensitive - }.from(false).to(true) - end - end + context 'when action is delete' do + let(:action) { 'delete' } - context 'updates sensitive column to false' do - let(:sensitive) { false } - - it 'updates sensitive column' do - is_expected.to change { - status.reload.sensitive - }.from(true).to(false) + it 'removes a status' do + allow(RemovalWorker).to receive(:perform_async) + subject.call + expect(RemovalWorker).to have_received(:perform_async).with(status_ids.first) end end @@ -78,15 +56,4 @@ describe Admin::ReportedStatusesController do expect(response).to redirect_to(admin_report_path(report)) end end - - describe 'DELETE #destroy' do - it 'removes a status' do - allow(RemovalWorker).to receive(:perform_async) - - delete :destroy, params: { report_id: report, id: status } - expect(response).to have_http_status(200) - expect(RemovalWorker). - to have_received(:perform_async).with(status.id) - end - end end diff --git a/spec/controllers/admin/statuses_controller_spec.rb b/spec/controllers/admin/statuses_controller_spec.rb index cbaf39786..6afcc1442 100644 --- a/spec/controllers/admin/statuses_controller_spec.rb +++ b/spec/controllers/admin/statuses_controller_spec.rb @@ -34,13 +34,13 @@ describe Admin::StatusesController do describe 'POST #create' do subject do - -> { post :create, params: { account_id: account.id, form_status_batch: { action: action, status_ids: status_ids } } } + -> { post :create, params: { :account_id => account.id, action => '', :form_status_batch => { status_ids: status_ids } } } end let(:action) { 'nsfw_on' } let(:status_ids) { [media_attached_status.id] } - context 'updates sensitive column to true' do + context 'when action is nsfw_on' do it 'updates sensitive column' do is_expected.to change { media_attached_status.reload.sensitive @@ -48,7 +48,7 @@ describe Admin::StatusesController do end end - context 'updates sensitive column to false' do + context 'when action is nsfw_off' do let(:action) { 'nsfw_off' } let(:sensitive) { false } @@ -59,32 +59,13 @@ describe Admin::StatusesController do end end - it 'redirects to account statuses page' do - subject.call - expect(response).to redirect_to(admin_account_statuses_path(account.id)) - end - end - - describe 'PATCH #update' do - subject do - -> { patch :update, params: { account_id: account.id, id: media_attached_status, status: { sensitive: sensitive } } } - end - - context 'updates sensitive column to true' do - it 'updates sensitive column' do - is_expected.to change { - media_attached_status.reload.sensitive - }.from(false).to(true) - end - end - - context 'updates sensitive column to false' do - let(:sensitive) { false } + context 'when action is delete' do + let(:action) { 'delete' } - it 'updates sensitive column' do - is_expected.to change { - media_attached_status.reload.sensitive - }.from(true).to(false) + it 'removes a status' do + allow(RemovalWorker).to receive(:perform_async) + subject.call + expect(RemovalWorker).to have_received(:perform_async).with(status_ids.first) end end @@ -93,15 +74,4 @@ describe Admin::StatusesController do expect(response).to redirect_to(admin_account_statuses_path(account.id)) end end - - describe 'DELETE #destroy' do - it 'removes a status' do - allow(RemovalWorker).to receive(:perform_async) - - delete :destroy, params: { account_id: account.id, id: status } - expect(response).to have_http_status(200) - expect(RemovalWorker). - to have_received(:perform_async).with(status.id) - end - end end -- cgit From b611dbac79f9bae66a6b0fccec017fbd7c3ebee3 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 6 May 2018 10:52:36 +0200 Subject: Add contact e-mail hint to 2FA login form (#7376) --- app/views/auth/sessions/two_factor.html.haml | 7 +++++-- config/locales/en.yml | 1 + config/locales/simple_form.en.yml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'app/views') diff --git a/app/views/auth/sessions/two_factor.html.haml b/app/views/auth/sessions/two_factor.html.haml index 2b07c923b..1af3193ae 100644 --- a/app/views/auth/sessions/two_factor.html.haml +++ b/app/views/auth/sessions/two_factor.html.haml @@ -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)) diff --git a/config/locales/en.yml b/config/locales/en.yml index 7e389b1c2..bb08ccc54 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -827,5 +827,6 @@ en: users: invalid_email: The e-mail address is invalid invalid_otp_token: Invalid two-factor code + otp_lost_help_html: If you lost access to both, you may get in touch with %{email} seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. signed_in_as: 'Signed in as:' diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 1a0d60f71..7ba32906d 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -19,7 +19,7 @@ en: imports: data: CSV file exported from another Mastodon instance sessions: - otp: Enter the Two-factor code from your phone or use one of your recovery codes. + otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:' user: filtered_languages: Checked languages will be filtered from public timelines for you labels: -- cgit From 39efc6d533bc3616ef3e199ab83d7753f07afb4c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 6 May 2018 10:53:10 +0200 Subject: Add hint about 7 day cooldown for archive takeout (#7375) --- app/views/settings/exports/show.html.haml | 6 +++--- config/locales/en.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'app/views') diff --git a/app/views/settings/exports/show.html.haml b/app/views/settings/exports/show.html.haml index 89d768d3f..30cd26914 100644 --- a/app/views/settings/exports/show.html.haml +++ b/app/views/settings/exports/show.html.haml @@ -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') diff --git a/config/locales/en.yml b/config/locales/en.yml index bb08ccc54..4f967f9ac 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -457,7 +457,7 @@ en: archive_takeout: date: Date download: Download your archive - hint_html: You can request an archive of your toots and uploaded media. The exported data will be in ActivityPub format, readable by any compliant software. + hint_html: You can request an archive of your toots and uploaded media. The exported data will be in ActivityPub format, readable by any compliant software. You can request an archive every 7 days. in_progress: Compiling your archive... request: Request your archive size: Size -- cgit From bd10a7e48076c913a652c347b0477496be8813fa Mon Sep 17 00:00:00 2001 From: Shuhei Kitagawa Date: Sun, 6 May 2018 17:59:03 +0900 Subject: Add resend confirmation for admin (#7378) * Add confirmations_controller#resend * Add tests for confirmations_controller#resend * Add translations --- app/controllers/admin/confirmations_controller.rb | 19 +++++++++++++ app/views/admin/accounts/show.html.haml | 10 +++++-- config/locales/ar.yml | 6 +++++ config/locales/ca.yml | 6 +++++ config/locales/de.yml | 6 +++++ config/locales/en.yml | 6 +++++ config/locales/eo.yml | 6 +++++ config/locales/es.yml | 6 +++++ config/locales/fa.yml | 6 +++++ config/locales/fi.yml | 6 +++++ config/locales/fr.yml | 6 +++++ config/locales/gl.yml | 6 +++++ config/locales/he.yml | 6 +++++ config/locales/hu.yml | 6 +++++ config/locales/id.yml | 6 +++++ config/locales/it.yml | 6 +++++ config/locales/ja.yml | 6 +++++ config/locales/ko.yml | 6 +++++ config/locales/nl.yml | 6 +++++ config/locales/no.yml | 6 +++++ config/locales/oc.yml | 6 +++++ config/locales/pl.yml | 6 +++++ config/locales/pt-BR.yml | 6 +++++ config/locales/pt.yml | 6 +++++ config/locales/ru.yml | 6 +++++ config/locales/sk.yml | 6 +++++ config/locales/sr-Latn.yml | 6 +++++ config/locales/sr.yml | 6 +++++ config/locales/sv.yml | 6 +++++ config/locales/th.yml | 6 +++++ config/locales/tr.yml | 6 +++++ config/locales/zh-CN.yml | 6 +++++ config/locales/zh-HK.yml | 6 +++++ config/routes.rb | 9 +++++-- .../admin/confirmations_controller_spec.rb | 31 ++++++++++++++++++++++ 35 files changed, 251 insertions(+), 4 deletions(-) (limited to 'app/views') diff --git a/app/controllers/admin/confirmations_controller.rb b/app/controllers/admin/confirmations_controller.rb index 34dfb458e..8d3477e66 100644 --- a/app/controllers/admin/confirmations_controller.rb +++ b/app/controllers/admin/confirmations_controller.rb @@ -3,6 +3,7 @@ module Admin class ConfirmationsController < BaseController before_action :set_user + before_action :check_confirmation, only: [:resend] def create authorize @user, :confirm? @@ -11,10 +12,28 @@ module Admin redirect_to admin_accounts_path end + def resend + authorize @user, :confirm? + + @user.resend_confirmation_instructions + + log_action :confirm, @user + + flash[:notice] = I18n.t('admin.accounts.resend_confirmation.success') + redirect_to admin_accounts_path + end + private def set_user @user = Account.find(params[:account_id]).user || raise(ActiveRecord::RecordNotFound) end + + def check_confirmation + if @user.confirmed? + flash[:error] = I18n.t('admin.accounts.resend_confirmation.already_confirmed') + redirect_to admin_accounts_path + end + end end end diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 2e6de1864..ed8190af5 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -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 diff --git a/config/locales/ar.yml b/config/locales/ar.yml index a5179ae14..eb0127eb5 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -61,6 +61,7 @@ ar: by_domain: النطاق confirm: تأكيد confirmed: مؤكَّد + confirming: التأكد demote: إنزال الرُتبة الوظيفية disable: تعطيل disable_two_factor_authentication: تعطيل 2FA @@ -69,6 +70,7 @@ ar: domain: النطاق edit: تعديل email: البريد الإلكتروني + email_status: حالة البريد الإلكتروني enable: تفعيل enabled: مفعَّل feed_url: عنوان رابط التغذية @@ -106,6 +108,10 @@ ar: public: عمومي push_subscription_expires: انتهاء الاشتراك ”PuSH“ redownload: تحديث الصورة الرمزية + resend_confirmation: + already_confirmed: هذا المستخدم مؤكد بالفعل + send: أعد إرسال رسالة البريد الالكتروني الخاصة بالتأكيد + success: تم إرسال رسالة التأكيد بنجاح! reset: إعادة التعيين reset_password: إعادة ضبط كلمة السر resubscribe: اشترك مرة أخرى diff --git a/config/locales/ca.yml b/config/locales/ca.yml index a8c75c32d..bdc3f7484 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -70,6 +70,7 @@ ca: title: Canviar adreça de correu de %{username} confirm: Confirma confirmed: Confirmat + confirming: Confirmando demote: Degrada disable: Inhabilita disable_two_factor_authentication: Desactiva 2FA @@ -78,6 +79,7 @@ ca: domain: Domini edit: Edita email: Correu electrònic + email_status: Estado del correo electrónico enable: Habilita enabled: Habilitat feed_url: URL del canal @@ -116,6 +118,10 @@ ca: push_subscription_expires: La subscripció PuSH expira redownload: Actualitza l'avatar remove_avatar: Eliminar avatar + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar el correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado con éxito!" reset: Reinicialitza reset_password: Restableix la contrasenya resubscribe: Torna a subscriure diff --git a/config/locales/de.yml b/config/locales/de.yml index aa4295c89..05d7e01b3 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -70,6 +70,7 @@ de: title: E-Mail-Adresse für %{username} ändern confirm: Bestätigen confirmed: Bestätigt + confirming: Bestätigung demote: Degradieren disable: Ausschalten disable_two_factor_authentication: 2FA abschalten @@ -78,6 +79,7 @@ de: domain: Domain edit: Bearbeiten email: E-Mail + email_status: E-Mail-Status enable: Freischalten enabled: Freigegeben feed_url: Feed-URL @@ -116,6 +118,10 @@ de: push_subscription_expires: PuSH-Abonnement läuft aus redownload: Avatar neu laden remove_avatar: Profilbild entfernen + resend_confirmation: + already_confirmed: Dieser Benutzer wurde bereits bestätigt + send: Bestätigungsmail erneut senden + success: Bestätigungs-E-Mail erfolgreich gesendet! reset: Zurücksetzen reset_password: Passwort zurücksetzen resubscribe: Wieder abonnieren diff --git a/config/locales/en.yml b/config/locales/en.yml index 4f967f9ac..e18354eac 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -70,6 +70,7 @@ en: title: Change Email for %{username} confirm: Confirm confirmed: Confirmed + confirming: Confirming demote: Demote disable: Disable disable_two_factor_authentication: Disable 2FA @@ -78,6 +79,7 @@ en: domain: Domain edit: Edit email: E-mail + email_status: E-mail Status enable: Enable enabled: Enabled feed_url: Feed URL @@ -116,6 +118,10 @@ en: push_subscription_expires: PuSH subscription expires redownload: Refresh avatar remove_avatar: Remove avatar + resend_confirmation: + already_confirmed: This user is already confirmed + send: Resend confirmation email + success: Confirmation email successfully sent! reset: Reset reset_password: Reset password resubscribe: Resubscribe diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 9c44d0e62..47d591993 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -61,6 +61,7 @@ eo: by_domain: Domajno confirm: Konfirmi confirmed: Konfirmita + confirming: Konfirmante demote: Degradi disable: Malebligi disable_two_factor_authentication: Malebligi 2FA @@ -69,6 +70,7 @@ eo: domain: Domajno edit: Redakti email: Retpoŝto + email_status: Retpoŝto Stato enable: Ebligi enabled: Ebligita feed_url: URL de la fluo @@ -106,6 +108,10 @@ eo: public: Publika push_subscription_expires: Eksvalidiĝo de la abono al PuSH redownload: Aktualigi profilbildon + resend_confirmation: + already_confirmed: Ĉi tiu uzanto jam estas konfirmita + send: Esend konfirmi retpoŝton + success: Konfirma retpoŝto sukcese sendis reset: Restarigi reset_password: Restarigi pasvorton resubscribe: Reaboni diff --git a/config/locales/es.yml b/config/locales/es.yml index be7dcd81e..11bee3239 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -70,6 +70,7 @@ es: title: Cambiar el correo electrónico de %{username} confirm: Confirmar confirmed: Confirmado + confirming: Confirmando demote: Degradar disable: Deshabilitar disable_two_factor_authentication: Desactivar autenticación de dos factores @@ -78,6 +79,7 @@ es: domain: Dominio edit: Editar email: E-mail + email_status: E-mail Status enable: Habilitar enabled: Habilitada feed_url: URL de notificaciones @@ -116,6 +118,10 @@ es: push_subscription_expires: Expiración de la suscripción PuSH redownload: Refrescar avatar remove_avatar: Eliminar el avatar + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar el correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado con éxito" reset: Reiniciar reset_password: Reiniciar contraseña resubscribe: Re-suscribir diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 3aa40f0b3..5255e0e38 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -61,6 +61,7 @@ fa: by_domain: دامین confirm: تأیید confirmed: تأیید شد + confirming: تأیید demote: تنزل‌دادن disable: غیرفعال disable_two_factor_authentication: غیرفعال‌سازی ورود دومرحله‌ای @@ -69,6 +70,7 @@ fa: domain: دامین edit: ویرایش email: ایمیل + email_status: وضعیت ایمیل enable: فعال enabled: فعال feed_url: نشانی فید @@ -106,6 +108,10 @@ fa: public: عمومی push_subscription_expires: عضویت از راه PuSH منقضی شد redownload: به‌روزرسانی تصویر نمایه + resend_confirmation: + already_confirmed: این کاربر قبلا تایید شده است + send: ایمیل تایید را دوباره بفرستید + success: ایمیل تایید با موفقیت ارسال شد reset: بازنشانی reset_password: بازنشانی رمز resubscribe: اشتراک دوباره diff --git a/config/locales/fi.yml b/config/locales/fi.yml index b313c8723..fca58cc0f 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -61,6 +61,7 @@ fi: by_domain: Verkko-osoite confirm: Vahvista confirmed: Vahvistettu + confirming: Vahvistavat demote: Alenna disable: Poista käytöstä disable_two_factor_authentication: Poista 2FA käytöstä @@ -69,6 +70,7 @@ fi: domain: Verkko-osoite edit: Muokkaa email: Sähköposti + email_status: Sähköpostin tila enable: Ota käyttöön enabled: Käytössä feed_url: Syötteen URL @@ -106,6 +108,10 @@ fi: public: Julkinen push_subscription_expires: PuSH-tilaus vanhenee redownload: Päivitä profiilikuva + resend_confirmation: + already_confirmed: Tämä käyttäjä on jo vahvistettu + send: Lähetä varmistusviesti uudelleen + success: Vahvistusviesti lähetettiin onnistuneesti reset: Palauta reset_password: Palauta salasana resubscribe: Tilaa uudelleen diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 3b543fdb7..e7142f3fd 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -70,6 +70,7 @@ fr: title: Modifier le courriel pour %{username} confirm: Confirmer confirmed: Confirmé + confirming: Confirmant demote: Rétrograder disable: Désactiver disable_two_factor_authentication: Désactiver l’authentification à deux facteurs @@ -78,6 +79,7 @@ fr: domain: Domaine edit: Éditer email: Courriel + email_status: État de la messagerie enable: Activer enabled: Activé feed_url: URL du flux @@ -116,6 +118,10 @@ fr: push_subscription_expires: Expiration de l’abonnement PuSH redownload: Rafraîchir les avatars remove_avatar: Supprimer l'avatar + resend_confirmation: + already_confirmed: Cet utilisateur est déjà confirmé + send: Renvoyer un courriel de confirmation + success: Email de confirmation envoyé avec succès ! reset: Réinitialiser reset_password: Réinitialiser le mot de passe resubscribe: Se réabonner diff --git a/config/locales/gl.yml b/config/locales/gl.yml index eec1b4e1e..e00c4b433 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -70,6 +70,7 @@ gl: title: Cambiar o correo-e de %{username} confirm: Confirmar confirmed: Confirmado + confirming: Confirmar demote: Degradar disable: Deshabilitar disable_two_factor_authentication: Deshabilitar 2FA @@ -78,6 +79,7 @@ gl: domain: Dominio edit: Editar email: E-mail + email_status: Estado del correo electrónico enable: Habilitar enabled: Habilitado feed_url: URL fonte @@ -116,6 +118,10 @@ gl: push_subscription_expires: A suscrición PuSH caduca redownload: Actualizar avatar remove_avatar: Eliminar avatar + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar el correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado con éxito!" reset: Restablecer reset_password: Restablecer contrasinal resubscribe: Voltar a suscribir diff --git a/config/locales/he.yml b/config/locales/he.yml index d66d9f034..c127db385 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -61,6 +61,7 @@ he: by_domain: שם מתחם confirm: אישור confirmed: אושר + confirming: המאשר demote: הורדה בדרגה disable: לחסום disable_two_factor_authentication: ביטול הזדהות דו-שלבית @@ -69,6 +70,7 @@ he: domain: תחום edit: עריכה email: דוא"ל + email_status: סטטוס דוא"ל enable: לאפשר enabled: מאופשר feed_url: כתובת פיד @@ -106,6 +108,10 @@ he: public: פומבי push_subscription_expires: הרשמה להודעות בדחיפה פגה redownload: לקריאה מחדש של האווטאר + resend_confirmation: + already_confirmed: משתמש זה כבר אושר + send: שלח מחדש דוא"ל אימות + success: הודעת האימייל נשלחה בהצלחה! reset: איפוס reset_password: אתחול סיסמא resubscribe: להרשם מחדש diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 422c05955..0cd0021c1 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -61,6 +61,7 @@ hu: by_domain: Domain confirm: Megerősítés confirmed: Megerősítve + confirming: Megerősítve demote: Lefokozás disable: Kikapcsolás disable_two_factor_authentication: Kétlépcsős azonosítás kikapcsolása @@ -69,6 +70,7 @@ hu: domain: Domain edit: Szerkesztés email: E-mail + email_status: E-mail állapot enable: Engedélyezés enabled: Engedélyezve feed_url: Hírcsatorna URL @@ -106,6 +108,10 @@ hu: public: Nyilvános push_subscription_expires: A PuSH feliratkozás elévül redownload: Profilkép frissítése + resend_confirmation: + already_confirmed: Ezt a felhasználót már megerősítették + send: Küldd újra a megerősítő email-t + success: A megerősítő e-mail sikeresen elküldve! reset: Visszaállítás reset_password: Jelszó visszaállítása resubscribe: Feliratkozás ismét diff --git a/config/locales/id.yml b/config/locales/id.yml index 0476e2848..4fb75f2b0 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -29,10 +29,12 @@ id: are_you_sure: Anda yakin? confirm: Konfirmasi confirmed: Dikonfirmasi + confirming: Mengkonfirmasi display_name: Nama domain: Domain edit: Ubah email: E-mail + email_status: Status Email feed_url: URL Feed followers: Pengikut follows: Mengikut @@ -58,6 +60,10 @@ id: profile_url: URL profil public: Publik push_subscription_expires: Langganan PuSH telah kadaluarsa + resend_confirmation: + already_confirmed: Pengguna ini sudah dikonfirmasi + send: Kirim ulang email konfirmasi + success: Email konfirmasi berhasil dikirim! reset_password: Reset kata sandi salmon_url: URL Salmon show: diff --git a/config/locales/it.yml b/config/locales/it.yml index c1ac176c4..eafe6b2a1 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -66,6 +66,7 @@ it: title: Cambia email per %{username} confirm: Conferma confirmed: Confermato + confirming: Confermando demote: Declassa disable: Disabilita disable_two_factor_authentication: Disabilita 2FA @@ -74,6 +75,7 @@ it: domain: Dominio edit: Modifica email: Email + email_status: Stato email enable: Abilita enabled: Abilitato feed_url: URL Feed @@ -111,6 +113,10 @@ it: public: Pubblico redownload: Aggiorna avatar remove_avatar: Rimuovi avatar + resend_confirmation: + already_confirmed: Questo utente è già confermato + send: Reinvia email di conferma + success: Email di conferma inviata con successo! reset: Reimposta reset_password: Reimposta password resubscribe: Riscriversi diff --git a/config/locales/ja.yml b/config/locales/ja.yml index bc48613b9..c7025fc18 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -70,6 +70,7 @@ ja: title: "%{username} さんのメールアドレスを変更" confirm: 確認 confirmed: 確認済み + confirming: 確認中 demote: 降格 disable: 無効化 disable_two_factor_authentication: 二段階認証を無効にする @@ -78,6 +79,7 @@ ja: domain: ドメイン edit: 編集 email: メールアドレス + email_status: メールアドレスの状態 enable: 有効化 enabled: 有効 feed_url: フィードURL @@ -116,6 +118,10 @@ ja: push_subscription_expires: PuSH購読期限 redownload: アバターの更新 remove_avatar: アイコンを削除 + resend_confirmation: + already_confirmed: メールアドレスは確認済みです。 + send: 確認メールを再送 + success: 確認メールを再送信しました! reset: リセット reset_password: パスワード再設定 resubscribe: 再講読 diff --git a/config/locales/ko.yml b/config/locales/ko.yml index bd6717d49..92e99ce50 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -70,6 +70,7 @@ ko: title: "%{username}의 이메일 주소 변경" confirm: 확인 confirmed: 확인됨 + confirming: 확인 중 demote: 모더레이터 강등 disable: 비활성화 disable_two_factor_authentication: 2단계 인증을 비활성화 @@ -78,6 +79,7 @@ ko: domain: 도메인 edit: 편집 email: E-mail + email_status: 이메일 상태 enable: 활성화 enabled: 활성화된 feed_url: 피드 URL @@ -116,6 +118,10 @@ ko: push_subscription_expires: PuSH 구독 기간 만료 redownload: 아바타 업데이트 remove_avatar: 아바타 지우기 + resend_confirmation: + already_confirmed: 이 사용자는 이미 확인되었습니다. + send: 다시 확인 이메일 + success: 확인 이메일이 전송되었습니다. reset: 초기화 reset_password: 비밀번호 초기화 resubscribe: 다시 구독 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 00f21babd..6ca81b375 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -70,6 +70,7 @@ nl: title: E-mailadres veranderen voor %{username} confirm: Bevestigen confirmed: Bevestigd + confirming: Bevestiging demote: Degraderen disable: Uitschakelen disable_two_factor_authentication: 2FA uitschakelen @@ -78,6 +79,7 @@ nl: domain: Domein edit: Bewerken email: E-mail + email_status: E-mail Status enable: Inschakelen enabled: Ingeschakeld feed_url: Feed-URL @@ -116,6 +118,10 @@ nl: push_subscription_expires: PuSH-abonnement verloopt op redownload: Avatar vernieuwen remove_avatar: Avatar verwijderen + resend_confirmation: + already_confirmed: Deze gebruiker is al bevestigd + send: Verzend bevestigingsmail opnieuw + success: Bevestigingsmail succesvol verzonden! reset: Opnieuw reset_password: Wachtwoord opnieuw instellen resubscribe: Opnieuw abonneren diff --git a/config/locales/no.yml b/config/locales/no.yml index 6ce2c0f01..837042f85 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -61,6 +61,7 @@ by_domain: Domene confirm: Bekreft confirmed: Bekreftet + confirming: Bekrefte demote: Degrader disable: Deaktiver disable_two_factor_authentication: Skru av 2FA @@ -69,6 +70,7 @@ domain: Domene edit: Redigér email: E-post + email_status: E-poststatus enable: Aktiver enabled: Aktivert feed_url: Feed-URL @@ -106,6 +108,10 @@ public: Offentlig push_subscription_expires: PuSH-abonnent utløper redownload: Oppdater avatar + resend_confirmation: + already_confirmed: Denne brukeren er allerede bekreftet + send: Send bekreftelses-epost på nytt + success: Bekreftelses e-post er vellykket sendt! reset: Tilbakestill reset_password: Nullstill passord resubscribe: Abonner på nytt diff --git a/config/locales/oc.yml b/config/locales/oc.yml index c11fe614b..e61f7ebd0 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -70,6 +70,7 @@ oc: title: Cambiar l’adreça a %{username} confirm: Confirmar confirmed: Confirmat + confirming: Confirmando demote: Retrogradar disable: Desactivar disable_two_factor_authentication: Desactivar 2FA @@ -78,6 +79,7 @@ oc: domain: Domeni edit: Modificar email: Corrièl + email_status: Estado del correo electrónico enable: Activar enabled: Activat feed_url: Flux URL @@ -116,6 +118,10 @@ oc: push_subscription_expires: Fin de l’abonament PuSH redownload: Actualizar los avatars remove_avatar: Supriir l’avatar + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar el correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado con éxito!" reset: Reïnicializar reset_password: Reïnicializar lo senhal resubscribe: Se tornar abonar diff --git a/config/locales/pl.yml b/config/locales/pl.yml index bd38aa6f7..1fbe0d5c8 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -70,6 +70,7 @@ pl: title: Zmień adres e-mail dla %{username} confirm: Potwierdź confirmed: Potwierdzono + confirming: Potwierdzam demote: Degraduj disable: Dezaktywuj disable_two_factor_authentication: Wyłącz uwierzytelnianie dwuetapowe @@ -78,6 +79,7 @@ pl: domain: Domena edit: Edytuj email: Adres e-mail + email_status: Status e-maila enable: Aktywuj enabled: Aktywowano feed_url: Adres kanału @@ -116,6 +118,10 @@ pl: push_subscription_expires: Subskrypcja PuSH wygasa redownload: Odśwież awatar remove_avatar: Usun awatar + resend_confirmation: + already_confirmed: Ten użytkownik jest już potwierdzony + send: Wyślij ponownie email potwierdzający + success: E-mail z potwierdzeniem został wysłany! reset: Resetuj reset_password: Resetuj hasło resubscribe: Ponów subskrypcję diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 862833d87..37abeffd9 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -70,6 +70,7 @@ pt-BR: title: Mudar e-mail para %{username} confirm: Confirmar confirmed: Confirmado + confirming: Confirmando demote: Rebaixar disable: Desativar disable_two_factor_authentication: Desativar 2FA @@ -78,6 +79,7 @@ pt-BR: domain: Domínio edit: Editar email: E-mail + email_status: Estado del correo electrónico enable: Ativar enabled: Ativado feed_url: URL do feed @@ -116,6 +118,10 @@ pt-BR: push_subscription_expires: Inscrição PuSH expira redownload: Atualizar avatar remove_avatar: Remover avatar + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar el correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado con éxito!" reset: Anular reset_password: Modificar senha resubscribe: Reinscrever-se diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 62a7ef0ec..7c10124ff 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -61,6 +61,7 @@ pt: by_domain: Domínio confirm: Confirme confirmed: Confirmado + confirming: Confirmer demote: Rebaixar disable: Desativar disable_two_factor_authentication: Desativar 2FA @@ -69,6 +70,7 @@ pt: domain: Domínio edit: Editar email: E-mail + email_status: État de la messagerie enable: Ativar enabled: Ativado feed_url: URL do Feed @@ -106,6 +108,10 @@ pt: public: Público push_subscription_expires: A Inscrição PuSH expira redownload: Atualizar avatar + resend_confirmation: + already_confirmed: Cet utilisateur est déjà confirmé + send: Renvoyer un courriel de confirmation + success: Email de confirmation envoyé avec succès! reset: Restaurar reset_password: Reset palavra-passe resubscribe: Reinscrever diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 603e1f3ca..99825a765 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -61,6 +61,7 @@ ru: by_domain: Домен confirm: Подтвердить confirmed: Подтверждено + confirming: подтверждающий demote: Разжаловать disable: Отключить disable_two_factor_authentication: Отключить 2FA @@ -69,6 +70,7 @@ ru: domain: Домен edit: Изменить email: E-mail + email_status: Статус электронной почты enable: Включить enabled: Включен feed_url: URL фида @@ -106,6 +108,10 @@ ru: public: Публичный push_subscription_expires: Подписка PuSH истекает redownload: Обновить аватар + resend_confirmation: + already_confirmed: Этот пользователь уже подтвержден + send: Повторно отправить подтверждение по электронной почте + success: Письмо с подтверждением успешно отправлено! reset: Сбросить reset_password: Сбросить пароль resubscribe: Переподписаться diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 7fb097f03..ef756b474 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -70,6 +70,7 @@ sk: title: Zmeň email pre %{username} confirm: Potvrdiť confirmed: Potvrdený + confirming: Potvrdzujúci demote: Degradovať disable: Zablokovať disable_two_factor_authentication: Zakázať 2FA @@ -78,6 +79,7 @@ sk: domain: Doména edit: Upraviť email: Email + email_status: Stav Email enable: Povoliť enabled: Povolený feed_url: URL časovej osi @@ -116,6 +118,10 @@ sk: push_subscription_expires: PuSH odoberanie expiruje redownload: Obnoviť avatar remove_avatar: Odstrániť avatár + resend_confirmation: + already_confirmed: Tento používateľ už bol potvrdený + send: Znova odoslať potvrdzovací e-mail + success: Potvrdený e-mail bol úspešne odoslaný! reset: Reset reset_password: Obnoviť heslo resubscribe: Znovu odoberať diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index dba952917..0c7756c53 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -61,6 +61,7 @@ sr-Latn: by_domain: Domen confirm: Potvrdi confirmed: Potvrđeno + confirming: Potvrđujući demote: Ražaluj disable: Isključi disable_two_factor_authentication: Isključi 2FA @@ -69,6 +70,7 @@ sr-Latn: domain: Domen edit: Izmeni email: E-pošta + email_status: Status e-pošte enable: Uključi enabled: Uključeno feed_url: Adresa dovoda @@ -106,6 +108,10 @@ sr-Latn: public: Javno push_subscription_expires: PuSH subscription expires redownload: Osveži avatar + resend_confirmation: + already_confirmed: Ovaj korisnik je već potvrđen + send: Ponovo pošaljite e-poruku za potvrdu + success: E-mail potvrde je uspešno poslat! reset: Resetuj reset_password: Resetuj lozinku resubscribe: Ponovo se pretplati diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 74abf0323..1cb87ff30 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -61,6 +61,7 @@ sr: by_domain: Домен confirm: Потврди confirmed: Потврђено + confirming: Потврдување demote: Ражалуј disable: Искључи disable_two_factor_authentication: Искључи 2FA @@ -69,6 +70,7 @@ sr: domain: Домен edit: Измени email: Е-пошта + email_status: Е-пошта статус enable: Укључи enabled: Укључено feed_url: Адреса довода @@ -106,6 +108,10 @@ sr: public: Јавно push_subscription_expires: PuSH subscription expires redownload: Освежи аватар + resend_confirmation: + already_confirmed: Овој корисник е веќе потврден + send: Препрати го е-мајлот за потврда + success: Е-пошта за потврда успешно испратена! reset: Ресетуј reset_password: Ресетуј лозинку resubscribe: Поново се претплати diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 9e0bb0856..1b0965655 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -70,6 +70,7 @@ sv: title: Byt E-postadress för %{username} confirm: Bekräfta confirmed: Bekräftad + confirming: Bekräftande demote: Degradera disable: inaktivera disable_two_factor_authentication: Inaktivera 2FA @@ -78,6 +79,7 @@ sv: domain: Domän edit: Redigera email: E-post + email_status: E-poststatus enable: Aktivera enabled: Aktiverad feed_url: Flödes URL @@ -116,6 +118,10 @@ sv: push_subscription_expires: PuSH-prenumerationen löper ut redownload: Uppdatera avatar remove_avatar: Ta bort avatar + resend_confirmation: + already_confirmed: Den här användaren är redan bekräftad + send: Skicka om e-postbekräftelse + success: Bekräftelsemeddelande skickas framgångsrikt! reset: Återställ reset_password: Återställ lösenord resubscribe: Starta en ny prenumeration diff --git a/config/locales/th.yml b/config/locales/th.yml index 9d93115b0..6804dbd13 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -29,11 +29,13 @@ th: are_you_sure: แน่ใจนะ? confirm: ยืนยัน confirmed: ยึนยันแล้ว + confirming: ยืนยัน disable_two_factor_authentication: Disable 2FA display_name: ชื่อสำหรับดีสเพล domain: โดแมน edit: แก้ไข email: อีเมล์ + email_status: สถานะอีเมล feed_url: Feed URL followers: ผู้ติดตาม follows: ติดตาม @@ -59,6 +61,10 @@ th: profile_url: Profile URL public: สาธารณะ push_subscription_expires: PuSH subscription expires + resend_confirmation: + already_confirmed: ผู้ใช้รายนี้ได้รับการยืนยันแล้ว + send: ส่งอีเมลยืนยันอีกครั้ง + success: ยืนยันอีเมลเรียบร้อยแล้ว! reset_password: รีเซ็ตรหัสผ่าน salmon_url: Salmon URL show: diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 0d78216b6..8bafbface 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -29,10 +29,12 @@ tr: are_you_sure: Emin misiniz? confirm: Onayla confirmed: Onaylandı + confirming: Onaylama display_name: Görünen adınız domain: Sunucu edit: Düzenle email: E-posta + email_status: Email Durumu feed_url: Besleme linki followers: Takipçiler follows: Takip edilen @@ -58,6 +60,10 @@ tr: profile_url: Profil linki public: Herkese açık push_subscription_expires: PuSH aboneliği dolumu + resend_confirmation: + already_confirmed: Bu kullanıcı zaten onaylandı + send: Doğrulama epostasını yeniden gönder + success: Onay e-postası başarıyla gönderildi! reset_password: Parolayı değiştir salmon_url: Salmon Linki show: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 7ea491fd4..5eca9e6a5 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -61,6 +61,7 @@ zh-CN: by_domain: 域名 confirm: 确认 confirmed: 已确认 + confirming: 确认 demote: 降任 disable: 停用 disable_two_factor_authentication: 停用双重认证 @@ -69,6 +70,7 @@ zh-CN: domain: 域名 edit: 编辑 email: 电子邮件地址 + email_status: 电子邮件状态 enable: 启用 enabled: 已启用 feed_url: 订阅 URL @@ -106,6 +108,10 @@ zh-CN: public: 公开页面 push_subscription_expires: PuSH 订阅过期时间 redownload: 刷新头像 + resend_confirmation: + already_confirmed: 该用户已被确认 + send: 重发确认邮件 + success: 确认电子邮件成功发送! reset: 重置 reset_password: 重置密码 resubscribe: 重新订阅 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 3f91b7191..c5d8c8696 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -70,6 +70,7 @@ zh-HK: title: 改變 %{username} 的電郵 confirm: 確定 confirmed: 已確定 + confirming: 確定 demote: 降任 disable: 停用 disable_two_factor_authentication: 停用雙重認證 @@ -78,6 +79,7 @@ zh-HK: domain: 域名 edit: 編輯 email: 電郵地址 + email_status: 电子邮件状态 enable: 啟用 enabled: 已啟用 feed_url: Feed URL @@ -116,6 +118,10 @@ zh-HK: push_subscription_expires: PuSH 訂閱過期 redownload: 更新頭像 remove_avatar: 取消頭像 + resend_confirmation: + already_confirmed: 该用户已被确认 + send: 重发确认邮件 + success: 确认电子邮件成功发送! reset: 重設 reset_password: 重設密碼 resubscribe: 重新訂閱 diff --git a/config/routes.rb b/config/routes.rb index 90f6ac594..4c920cf74 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -155,8 +155,13 @@ Rails.application.routes.draw do resource :reset, only: [:create] resource :silence, only: [:create, :destroy] resource :suspension, only: [:create, :destroy] - resource :confirmation, only: [:create] - resources :statuses, only: [:index, :create] + resources :statuses, only: [:index, :create, :update, :destroy] + + resource :confirmation, only: [:create] do + collection do + post :resend + end + end resource :role do member do diff --git a/spec/controllers/admin/confirmations_controller_spec.rb b/spec/controllers/admin/confirmations_controller_spec.rb index 7c8034964..eec2b2f5c 100644 --- a/spec/controllers/admin/confirmations_controller_spec.rb +++ b/spec/controllers/admin/confirmations_controller_spec.rb @@ -30,4 +30,35 @@ RSpec.describe Admin::ConfirmationsController, type: :controller do expect(response).to have_http_status(404) end end + + describe 'POST #resernd' do + subject { post :resend, params: { account_id: account.id } } + + let(:account) { Fabricate(:account) } + let!(:user) { Fabricate(:user, confirmed_at: confirmed_at, account: account) } + + before do + allow(UserMailer).to receive(:confirmation_instructions) { double(:email, deliver_later: nil) } + end + + context 'when email is not confirmed' do + let(:confirmed_at) { nil } + + it 'resends confirmation mail' do + expect(subject).to redirect_to admin_accounts_path + expect(flash[:notice]).to eq I18n.t('admin.accounts.resend_confirmation.success') + expect(UserMailer).to have_received(:confirmation_instructions).once + end + end + + context 'when email is confirmed' do + let(:confirmed_at) { Time.zone.now } + + it 'does not resend confirmation mail' do + expect(subject).to redirect_to admin_accounts_path + expect(flash[:error]).to eq I18n.t('admin.accounts.resend_confirmation.already_confirmed') + expect(UserMailer).not_to have_received(:confirmation_instructions) + end + end + end end -- cgit From 61a90186070395e133ad2f8e959bdf003a8615ca Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 6 May 2018 11:48:51 +0200 Subject: Enable custom emojis in profiles (notes, field values, display names) (#7374) Follow-up to #6124 --- app/helpers/stream_entries_helper.rb | 4 ++-- .../mastodon/actions/importer/normalizer.js | 19 +++++++++++-------- app/lib/formatter.rb | 12 ++++++++++-- app/models/account.rb | 6 +++++- app/serializers/rest/account_serializer.rb | 1 + app/views/about/_administration.html.haml | 2 +- app/views/about/_contact.html.haml | 2 +- app/views/accounts/_grid_card.html.haml | 2 +- app/views/accounts/_header.html.haml | 4 ++-- app/views/accounts/_moved_strip.html.haml | 4 ++-- app/views/admin/reports/_account.html.haml | 2 +- app/views/authorize_follows/_card.html.haml | 2 +- app/views/remote_unfollows/_card.html.haml | 2 +- app/views/shared/_landing_strip.html.haml | 2 +- app/views/stream_entries/_detailed_status.html.haml | 2 +- app/views/stream_entries/_simple_status.html.haml | 2 +- app/views/stream_entries/_status.html.haml | 2 +- 17 files changed, 43 insertions(+), 27 deletions(-) (limited to 'app/views') diff --git a/app/helpers/stream_entries_helper.rb b/app/helpers/stream_entries_helper.rb index c6f12ecd4..707c8e26c 100644 --- a/app/helpers/stream_entries_helper.rb +++ b/app/helpers/stream_entries_helper.rb @@ -4,8 +4,8 @@ module StreamEntriesHelper EMBEDDED_CONTROLLER = 'statuses' EMBEDDED_ACTION = 'embed' - def display_name(account) - account.display_name.presence || account.username + def display_name(account, **options) + Formatter.instance.format_display_name(account, options) end def account_description(account) diff --git a/app/javascript/mastodon/actions/importer/normalizer.js b/app/javascript/mastodon/actions/importer/normalizer.js index 5f1274fab..057bff58b 100644 --- a/app/javascript/mastodon/actions/importer/normalizer.js +++ b/app/javascript/mastodon/actions/importer/normalizer.js @@ -3,18 +3,25 @@ import emojify from '../../features/emoji/emoji'; const domParser = new DOMParser(); +const makeEmojiMap = record => record.emojis.reduce((obj, emoji) => { + obj[`:${emoji.shortcode}:`] = emoji; + return obj; +}, {}); + export function normalizeAccount(account) { account = { ...account }; + const emojiMap = makeEmojiMap(account); const displayName = account.display_name.length === 0 ? account.username : account.display_name; - account.display_name_html = emojify(escapeTextContentForBrowser(displayName)); - account.note_emojified = emojify(account.note); + + account.display_name_html = emojify(escapeTextContentForBrowser(displayName), emojiMap); + account.note_emojified = emojify(account.note, emojiMap); if (account.fields) { account.fields = account.fields.map(pair => ({ ...pair, name_emojified: emojify(escapeTextContentForBrowser(pair.name)), - value_emojified: emojify(pair.value), + value_emojified: emojify(pair.value, emojiMap), })); } @@ -42,11 +49,7 @@ export function normalizeStatus(status, normalOldStatus) { normalStatus.hidden = normalOldStatus.get('hidden'); } else { const searchContent = [status.spoiler_text, status.content].join('\n\n').replace(//g, '\n').replace(/<\/p>

/g, '\n\n'); - - const emojiMap = normalStatus.emojis.reduce((obj, emoji) => { - obj[`:${emoji.shortcode}:`] = emoji; - return obj; - }, {}); + const emojiMap = makeEmojiMap(normalStatus); normalStatus.search_index = domParser.parseFromString(searchContent, 'text/html').documentElement.textContent; normalStatus.contentHtml = emojify(normalStatus.content, emojiMap); diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb index 050c651ee..e1ab05cc0 100644 --- a/app/lib/formatter.rb +++ b/app/lib/formatter.rb @@ -67,9 +67,17 @@ class Formatter html.html_safe # rubocop:disable Rails/OutputSafety end - def format_field(account, str) + def format_display_name(account, **options) + html = encode(account.display_name.presence || account.username) + html = encode_custom_emojis(html, account.emojis) if options[:custom_emojify] + html.html_safe # rubocop:disable Rails/OutputSafety + end + + def format_field(account, str, **options) return reformat(str).html_safe unless account.local? # rubocop:disable Rails/OutputSafety - encode_and_link_urls(str, me: true).html_safe # rubocop:disable Rails/OutputSafety + html = encode_and_link_urls(str, me: true) + html = encode_custom_emojis(html, account.emojis) if options[:custom_emojify] + html.html_safe # rubocop:disable Rails/OutputSafety end def linkify(text) diff --git a/app/models/account.rb b/app/models/account.rb index 72ba0398e..4467d1512 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -398,7 +398,7 @@ class Account < ApplicationRecord end def emojis - @emojis ||= CustomEmoji.from_text(note, domain) + @emojis ||= CustomEmoji.from_text(emojifiable_text, domain) end before_create :generate_keys @@ -425,4 +425,8 @@ class Account < ApplicationRecord self.domain = TagManager.instance.normalize_domain(domain) end + + def emojifiable_text + [note, display_name, fields.map(&:value)].join(' ') + end end diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb index 863238eb7..8761bbb5e 100644 --- a/app/serializers/rest/account_serializer.rb +++ b/app/serializers/rest/account_serializer.rb @@ -8,6 +8,7 @@ class REST::AccountSerializer < ActiveModel::Serializer :followers_count, :following_count, :statuses_count has_one :moved_to_account, key: :moved, serializer: REST::AccountSerializer, if: :moved_and_not_nested? + has_many :emojis, serializer: REST::CustomEmojiSerializer class FieldSerializer < ActiveModel::Serializer attributes :name, :value diff --git a/app/views/about/_administration.html.haml b/app/views/about/_administration.html.haml index ec5834f9c..02286d68b 100644 --- a/app/views/about/_administration.html.haml +++ b/app/views/about/_administration.html.haml @@ -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 diff --git a/app/views/about/_contact.html.haml b/app/views/about/_contact.html.haml index cf21ad5a3..3215d50b5 100644 --- a/app/views/about/_contact.html.haml +++ b/app/views/about/_contact.html.haml @@ -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 diff --git a/app/views/accounts/_grid_card.html.haml b/app/views/accounts/_grid_card.html.haml index 95acbd581..a59ed128e 100644 --- a/app/views/accounts/_grid_card.html.haml +++ b/app/views/accounts/_grid_card.html.haml @@ -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? diff --git a/app/views/accounts/_header.html.haml b/app/views/accounts/_header.html.haml index 41315f039..13dcaf616 100644 --- a/app/views/accounts/_header.html.haml +++ b/app/views/accounts/_header.html.haml @@ -5,7 +5,7 @@ .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? @@ -28,7 +28,7 @@ - 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) + %dd.emojify{ title: field.value }= Formatter.instance.format_field(account, field.value, custom_emojify: true) .details-counters .counter{ class: active_nav_class(short_account_url(account)) } diff --git a/app/views/accounts/_moved_strip.html.haml b/app/views/accounts/_moved_strip.html.haml index 6a14a5dd3..ae18c6dc7 100644 --- a/app/views/accounts/_moved_strip.html.haml +++ b/app/views/accounts/_moved_strip.html.haml @@ -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} diff --git a/app/views/admin/reports/_account.html.haml b/app/views/admin/reports/_account.html.haml index 22b7a0861..9ac161c9c 100644 --- a/app/views/admin/reports/_account.html.haml +++ b/app/views/admin/reports/_account.html.haml @@ -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} diff --git a/app/views/authorize_follows/_card.html.haml b/app/views/authorize_follows/_card.html.haml index e81e292ba..9abcfd37e 100644 --- a/app/views/authorize_follows/_card.html.haml +++ b/app/views/authorize_follows/_card.html.haml @@ -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? diff --git a/app/views/remote_unfollows/_card.html.haml b/app/views/remote_unfollows/_card.html.haml index e81e292ba..9abcfd37e 100644 --- a/app/views/remote_unfollows/_card.html.haml +++ b/app/views/remote_unfollows/_card.html.haml @@ -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? diff --git a/app/views/shared/_landing_strip.html.haml b/app/views/shared/_landing_strip.html.haml index ae26fc1ff..78f5ed4bc 100644 --- a/app/views/shared/_landing_strip.html.haml +++ b/app/views/shared/_landing_strip.html.haml @@ -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) diff --git a/app/views/stream_entries/_detailed_status.html.haml b/app/views/stream_entries/_detailed_status.html.haml index afc66d148..c0f1e4f0f 100644 --- a/app/views/stream_entries/_detailed_status.html.haml +++ b/app/views/stream_entries/_detailed_status.html.haml @@ -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? diff --git a/app/views/stream_entries/_simple_status.html.haml b/app/views/stream_entries/_simple_status.html.haml index a6f5120fb..b89860ad9 100644 --- a/app/views/stream_entries/_simple_status.html.haml +++ b/app/views/stream_entries/_simple_status.html.haml @@ -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< diff --git a/app/views/stream_entries/_status.html.haml b/app/views/stream_entries/_status.html.haml index 9764bc74d..b87ca2177 100644 --- a/app/views/stream_entries/_status.html.haml +++ b/app/views/stream_entries/_status.html.haml @@ -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 -- cgit From 42cd363542abf0a12a4e877b3ad26024f24577ef Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 7 May 2018 09:31:07 +0200 Subject: Bot nameplates (#7391) * Store actor type in database * Add bot nameplate to web UI, add setting to preferences, API, AP Fix #7365 * Fix code style issues --- app/controllers/api/v1/accounts/credentials_controller.rb | 2 +- app/controllers/settings/profiles_controller.rb | 2 +- app/javascript/mastodon/features/account/components/header.js | 4 ++++ app/javascript/styles/mastodon/components.scss | 6 ++++++ app/javascript/styles/mastodon/forms.scss | 4 ++++ app/models/account.rb | 11 +++++++++++ app/serializers/activitypub/actor_serializer.rb | 2 +- app/serializers/rest/account_serializer.rb | 2 +- app/services/activitypub/process_account_service.rb | 1 + app/views/accounts/_header.html.haml | 6 +++++- app/views/settings/profiles/show.html.haml | 3 +++ config/locales/en.yml | 1 + config/locales/simple_form.en.yml | 2 ++ db/migrate/20180506221944_add_actor_type_to_accounts.rb | 5 +++++ db/schema.rb | 3 ++- 15 files changed, 48 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20180506221944_add_actor_type_to_accounts.rb (limited to 'app/views') diff --git a/app/controllers/api/v1/accounts/credentials_controller.rb b/app/controllers/api/v1/accounts/credentials_controller.rb index a3c4008e6..259d07be8 100644 --- a/app/controllers/api/v1/accounts/credentials_controller.rb +++ b/app/controllers/api/v1/accounts/credentials_controller.rb @@ -21,7 +21,7 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController private def account_params - params.permit(:display_name, :note, :avatar, :header, :locked, fields_attributes: [:name, :value]) + params.permit(:display_name, :note, :avatar, :header, :locked, :bot, fields_attributes: [:name, :value]) end def user_settings_params diff --git a/app/controllers/settings/profiles_controller.rb b/app/controllers/settings/profiles_controller.rb index 5d81668de..1b01fc75f 100644 --- a/app/controllers/settings/profiles_controller.rb +++ b/app/controllers/settings/profiles_controller.rb @@ -27,7 +27,7 @@ class Settings::ProfilesController < ApplicationController private def account_params - params.require(:account).permit(:display_name, :note, :avatar, :header, :locked, fields_attributes: [:name, :value]) + params.require(:account).permit(:display_name, :note, :avatar, :header, :locked, :bot, fields_attributes: [:name, :value]) end def set_account diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js index 47915e6fb..7358053da 100644 --- a/app/javascript/mastodon/features/account/components/header.js +++ b/app/javascript/mastodon/features/account/components/header.js @@ -131,6 +131,7 @@ export default class Header extends ImmutablePureComponent { const content = { __html: account.get('note_emojified') }; const displayNameHtml = { __html: account.get('display_name_html') }; const fields = account.get('fields'); + const badge = account.get('bot') ? (

) : null; return (
@@ -139,6 +140,9 @@ export default class Header extends ImmutablePureComponent { @{account.get('acct')} {lockedIcon} + + {badge} +
{fields.size > 0 && ( diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 3e2a1ae10..158bf6851 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -5159,6 +5159,12 @@ noscript { } } +.account__header .roles { + margin-top: 20px; + margin-bottom: 20px; + padding: 0 15px; +} + .account__header .account__header__fields { font-size: 14px; line-height: 20px; diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index f97890187..de16784a8 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -87,6 +87,10 @@ code { align-items: flex-start; } + &.file .label_input { + flex-wrap: nowrap; + } + &.select .label_input { align-items: initial; } diff --git a/app/models/account.rb b/app/models/account.rb index 4467d1512..2b3ef5cdc 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -45,6 +45,7 @@ # moved_to_account_id :bigint(8) # featured_collection_url :string # fields :jsonb +# actor_type :string # class Account < ApplicationRecord @@ -149,6 +150,16 @@ class Account < ApplicationRecord moved_to_account_id.present? end + def bot? + %w(Application Service).include? actor_type + end + + alias bot bot? + + def bot=(val) + self.actor_type = ActiveModel::Type::Boolean.new.cast(val) ? 'Service' : 'Person' + end + def acct local? ? username : "#{username}@#{domain}" end diff --git a/app/serializers/activitypub/actor_serializer.rb b/app/serializers/activitypub/actor_serializer.rb index fcf3bdf17..41c9aa44e 100644 --- a/app/serializers/activitypub/actor_serializer.rb +++ b/app/serializers/activitypub/actor_serializer.rb @@ -37,7 +37,7 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer end def type - 'Person' + object.bot? ? 'Service' : 'Person' end def following diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb index 8761bbb5e..6adcd7039 100644 --- a/app/serializers/rest/account_serializer.rb +++ b/app/serializers/rest/account_serializer.rb @@ -3,7 +3,7 @@ class REST::AccountSerializer < ActiveModel::Serializer include RoutingHelper - attributes :id, :username, :acct, :display_name, :locked, :created_at, + attributes :id, :username, :acct, :display_name, :locked, :bot, :created_at, :note, :url, :avatar, :avatar_static, :header, :header_static, :followers_count, :following_count, :statuses_count diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index f67ebb443..cc416b671 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -71,6 +71,7 @@ class ActivityPub::ProcessAccountService < BaseService @account.note = @json['summary'] || '' @account.locked = @json['manuallyApprovesFollowers'] || false @account.fields = property_values || {} + @account.actor_type = @json['type'] end def set_fetchable_attributes! diff --git a/app/views/accounts/_header.html.haml b/app/views/accounts/_header.html.haml index 13dcaf616..4098d6778 100644 --- a/app/views/accounts/_header.html.haml +++ b/app/views/accounts/_header.html.haml @@ -10,7 +10,11 @@ %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 diff --git a/app/views/settings/profiles/show.html.haml b/app/views/settings/profiles/show.html.haml index f28834d72..a84f8a7da 100644 --- a/app/views/settings/profiles/show.html.haml +++ b/app/views/settings/profiles/show.html.haml @@ -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') diff --git a/config/locales/en.yml b/config/locales/en.yml index e18354eac..5369311ac 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -49,6 +49,7 @@ en: reserved_username: The username is reserved roles: admin: Admin + bot: Bot moderator: Mod unfollow: Unfollow admin: diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 7ba32906d..495c6166b 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -4,6 +4,7 @@ en: hints: defaults: avatar: PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px + bot: Warns people that the account does not represent a person digest: Only sent after a long period of inactivity and only if you have received any personal messages in your absence display_name: one: 1 character left @@ -29,6 +30,7 @@ en: value: Content defaults: avatar: Avatar + bot: This is a bot account confirm_new_password: Confirm new password confirm_password: Confirm password current_password: Current password diff --git a/db/migrate/20180506221944_add_actor_type_to_accounts.rb b/db/migrate/20180506221944_add_actor_type_to_accounts.rb new file mode 100644 index 000000000..7cfed640f --- /dev/null +++ b/db/migrate/20180506221944_add_actor_type_to_accounts.rb @@ -0,0 +1,5 @@ +class AddActorTypeToAccounts < ActiveRecord::Migration[5.2] + def change + add_column :accounts, :actor_type, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 566a320d8..f7fa24b83 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2018_04_16_210259) do +ActiveRecord::Schema.define(version: 2018_05_06_221944) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -75,6 +75,7 @@ ActiveRecord::Schema.define(version: 2018_04_16_210259) do t.bigint "moved_to_account_id" t.string "featured_collection_url" t.jsonb "fields" + t.string "actor_type" t.index "(((setweight(to_tsvector('simple'::regconfig, (display_name)::text), 'A'::\"char\") || setweight(to_tsvector('simple'::regconfig, (username)::text), 'B'::\"char\")) || setweight(to_tsvector('simple'::regconfig, (COALESCE(domain, ''::character varying))::text), 'C'::\"char\")))", name: "search_index", using: :gin t.index "lower((username)::text), lower((domain)::text)", name: "index_accounts_on_username_and_domain_lower" t.index ["uri"], name: "index_accounts_on_uri" -- cgit From e0b1e17bd04d7f9b533ab462aee4544a5f5fb926 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Tue, 8 May 2018 20:33:09 +0900 Subject: Show media modal on public timeline (#7413) --- app/javascript/mastodon/components/status.js | 2 +- app/javascript/mastodon/containers/timeline_container.js | 12 ++++++++++-- app/javascript/mastodon/features/ui/components/modal_root.js | 11 +++++++++++ app/views/about/show.html.haml | 2 ++ app/views/tags/show.html.haml | 2 ++ 5 files changed, 26 insertions(+), 3 deletions(-) (limited to 'app/views') diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 402d558c4..953d98c20 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -206,7 +206,7 @@ export default class Status extends ImmutablePureComponent { ); } else { media = ( - + {Component => } ); diff --git a/app/javascript/mastodon/containers/timeline_container.js b/app/javascript/mastodon/containers/timeline_container.js index 8719bb5c9..a1a4bd024 100644 --- a/app/javascript/mastodon/containers/timeline_container.js +++ b/app/javascript/mastodon/containers/timeline_container.js @@ -1,4 +1,5 @@ -import React from 'react'; +import React, { Fragment } from 'react'; +import ReactDOM from 'react-dom'; import { Provider } from 'react-redux'; import PropTypes from 'prop-types'; import configureStore from '../store/configureStore'; @@ -8,6 +9,7 @@ import { getLocale } from '../locales'; import PublicTimeline from '../features/standalone/public_timeline'; import CommunityTimeline from '../features/standalone/community_timeline'; import HashtagTimeline from '../features/standalone/hashtag_timeline'; +import ModalContainer from '../features/ui/containers/modal_container'; import initialState from '../initial_state'; const { localeData, messages } = getLocale(); @@ -47,7 +49,13 @@ export default class TimelineContainer extends React.PureComponent { return ( - {timeline} + + {timeline} + {ReactDOM.createPortal( + , + document.getElementById('modal-container'), + )} + ); diff --git a/app/javascript/mastodon/features/ui/components/modal_root.js b/app/javascript/mastodon/features/ui/components/modal_root.js index 4185cba32..a334318ce 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.js +++ b/app/javascript/mastodon/features/ui/components/modal_root.js @@ -40,6 +40,17 @@ export default class ModalRoot extends React.PureComponent { onClose: PropTypes.func.isRequired, }; + getSnapshotBeforeUpdate () { + const visible = !!this.props.type; + return { + overflowY: visible ? 'hidden' : null, + }; + } + + componentDidUpdate (prevProps, prevState, { overflowY }) { + document.body.style.overflowY = overflowY; + } + renderLoading = modalId => () => { return ['MEDIA', 'VIDEO', 'BOOST', 'CONFIRM', 'ACTIONS'].indexOf(modalId) === -1 ? : null; } diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml index 870dafdf5..fba46d54b 100644 --- a/app/views/about/show.html.haml +++ b/app/views/about/show.html.haml @@ -142,3 +142,5 @@ %p = link_to t('about.source_code'), @instance_presenter.source_url = " (#{@instance_presenter.version_number})" + +#modal-container diff --git a/app/views/tags/show.html.haml b/app/views/tags/show.html.haml index f8cdc9952..d46f35999 100644 --- a/app/views/tags/show.html.haml +++ b/app/views/tags/show.html.haml @@ -34,3 +34,5 @@ %p= t 'about.about_mastodon_html' = render 'features' + +#modal-container -- cgit