module Admin
class ReportedStatusesController < BaseController
before_action :set_report
- before_action :set_status, only: [:update, :destroy]
def create
authorize :status, :update?
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
def set_report
@report = Report.find(params[:report_id])
end
-
- def set_status
- @status = @report.statuses.find(params[:id])
- end
end
end
helper_method :current_params
before_action :set_account
- before_action :set_status, only: [:update, :destroy]
PER_PAGE = 20
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
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
}
}
-.simple_form.new_report_note {
+.simple_form.new_report_note,
+.simple_form.new_account_moderation_note {
max-width: 100%;
}
-%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)
= @account.acct
.table-wrapper
- %table.table
+ %table.table.inline-table
%tbody
%tr
%th= t('admin.accounts.username')
%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
= 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')
= 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')
%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
%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?
- 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
%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
unfollow: إلغاء المتابعة
admin:
account_moderation_notes:
- account: مُشرِف
create: إنشاء
- created_at: التاريخ
created_msg: تم إنشاء ملاحظة الإشراف بنجاح !
delete: حذف
destroyed_msg: تم تدمير ملاحظة الإشراف بنجاح !
are_you_sure: هل أنت متأكد ؟
comment:
none: لا شيء
- delete: حذف
id: معرّف ID
mark_as_resolved: إعتبار التقرير كمحلول
- nsfw:
- 'false': الكشف عن الصور
- 'true': إخفاء الوسائط المرفقة
report: 'التقرير #%{id}'
report_contents: المحتويات
reported_account: حساب مُبلّغ عنه
back_to_account: العودة إلى صفحة الحساب
batch:
delete: حذف
- execute: تفعيل
failed_to_execute: خطأ في التفعيل
media:
- hide: إخفاء الوسائط
- show: إظهار الوسائط
title: الوسائط
title: منشورات الحساب
with_media: بالوسائط
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!
comment:
none: Cap
created_at: Reportat
- delete: Suprimeix
id: ID
mark_as_resolved: Marca com a resolt
mark_as_unresolved: Marcar sense resoldre
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
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
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!
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
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
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
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!
comment:
none: None
created_at: Reported
- delete: Delete
id: ID
mark_as_resolved: Mark as resolved
mark_as_unresolved: Mark as unresolved
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
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
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!
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
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
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!"
comment:
none: Ninguno
created_at: Denunciado
- delete: Eliminar
id: ID
mark_as_resolved: Marcar como resuelto
mark_as_unresolved: Marcar como no resuelto
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
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
unfollow: پایان پیگیری
admin:
account_moderation_notes:
- account: مدیر
create: نوشتن
- created_at: تاریخ
created_msg: یادداشت مدیر با موفقیت ساخته شد!
delete: پاک کردن
destroyed_msg: یادداشت مدیر با موفقیت پاک شد!
are_you_sure: آیا مطمئن هستید؟
comment:
none: خالی
- delete: پاککردن
id: شناسه
mark_as_resolved: علامتگذاری به عنوان حلشده
- nsfw:
- 'false': نمایش پیوستهای تصویری
- 'true': نهفتن پیوستهای تصویری
report: 'گزارش #%{id}'
report_contents: محتوا
reported_account: حساب گزارششده
delete: پاککردن
nsfw_off: NSFW خاموش
nsfw_on: NSFW روشن
- execute: اجرا
failed_to_execute: اجرا نشد
media:
- hide: نهفتن رسانه
- show: نمایش رسانه
title: رسانه
no_media: بدون رسانه
title: نوشتههای حساب
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!
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
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
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 !
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
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
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
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!
comment:
none: Nada
created_at: Reportado
- delete: Eliminar
id: ID
mark_as_resolved: Marcar como resolto
mark_as_unresolved: Marcar como non resolto
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
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
unfollow: הפסקת מעקב
admin:
account_moderation_notes:
- account: מנחה דיון
create: ליצור
- created_at: תאריך
created_msg: הודעת מנחה נוצרה בהצלחה!
delete: למחוק
destroyed_msg: הודעת מנחה נמחקה בהצלחה!
are_you_sure: 100% על בטוח?
comment:
none: ללא
- delete: מחיקה
id: ID
mark_as_resolved: סימון כפתור
- nsfw:
- 'false': לכל המשפחה
- 'true': תוכן רגיש
report: 'דווח על #%{id}'
report_contents: תוכן
reported_account: חשבון מדווח
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!
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
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
reports:
comment:
none: Tidak ada
- delete: Hapus
id: ID
mark_as_resolved: Tandai telah diseleseikan
report: 'Laporkan #%{id}'
reports:
comment:
none: None
- delete: Delete
id: ID
mark_as_resolved: Mark as resolved
report: 'Report #%{id}'
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!
assigned: Moderatore assegnato
comment:
none: Nessuno
- delete: Elimina
id: ID
mark_as_resolved: Segna come risolto
mark_as_unresolved: Segna come non risolto
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
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
unfollow: フォロー解除
admin:
account_moderation_notes:
- account: モデレータ
create: 書き込む
- created_at: 日付
created_msg: モデレーションメモを書き込みました!
delete: 削除
destroyed_msg: モデレーションメモを削除しました!
comment:
none: なし
created_at: レポート日時
- delete: 削除
id: ID
mark_as_resolved: 解決済みとしてマーク
mark_as_unresolved: 未解決として再び開く
create_and_unresolve: 書き込み、未解決として開く
delete: 削除
placeholder: このレポートに取られた措置や、その他の更新を記述してください…
- nsfw:
- 'false': NSFW オフ
- 'true': NSFW オン
reopen: 再び開く
report: レポート#%{id}
report_contents: 内容
delete: 削除
nsfw_off: 閲覧注意のマークを取り除く
nsfw_on: 閲覧注意としてマークする
- execute: 実行
failed_to_execute: 実行に失敗しました
media:
- hide: メディアを隠す
- show: メディアを表示
title: メディア
no_media: メディアなし
title: トゥート一覧
unfollow: 팔로우 해제
admin:
account_moderation_notes:
- account: 모더레이터
create: 작성하기
- created_at: 작성 날짜
created_msg: 모더레이션 기록이 성공적으로 작성되었습니다!
delete: 삭제
destroyed_msg: 모더레이션 기록이 성공적으로 삭제되었습니다!
comment:
none: 없음
created_at: 리포트 시각
- delete: 삭제
id: ID
mark_as_resolved: 해결 완료 처리
mark_as_unresolved: 미해결로 표시
create_and_unresolve: 노트 작성과 함께 미해결로 표시
delete: 삭제
placeholder: 이 리포트에 대한 조치, 다른 업데이트 사항에 대해 설명합니다…
- nsfw:
- 'false': NSFW 꺼짐
- 'true': NSFW 켜짐
reopen: 리포트 다시 열기
report: '신고 #%{id}'
report_contents: 내용
delete: 삭제
nsfw_off: NSFW 끄기
nsfw_on: NSFW 켜기
- execute: 실행
failed_to_execute: 실행을 실패하였습니다
media:
- hide: 미디어 숨기기
- show: 미디어 보여주기
title: 미디어
no_media: 미디어 없음
title: 계정 툿
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!
comment:
none: Geen
created_at: Gerapporteerd op
- delete: Verwijderen
id: ID
mark_as_resolved: Markeer als opgelost
mark_as_unresolved: Markeer als onopgelost
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
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
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!
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
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
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 !
comment:
none: Pas cap
created_at: Creacion
- delete: Suprimir
id: ID
mark_as_resolved: Marcar coma resolgut
mark_as_unresolved: Marcar coma pas resolgut
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
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
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ą!
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
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ść
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
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!
comment:
none: Nenhum
created_at: Denunciado
- delete: Excluir
id: ID
mark_as_resolved: Marcar como resolvido
mark_as_unresolved: Marcar como não resolvido
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
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
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!
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
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
unfollow: Отписаться
admin:
account_moderation_notes:
- account: Модератор
create: Создать
- created_at: Дата
created_msg: Заметка модератора успешно создана!
delete: Удалить
destroyed_msg: Заметка модератора успешно удалена!
are_you_sure: Вы уверены?
comment:
none: Нет
- delete: Удалить
id: ID
mark_as_resolved: Отметить как разрешенную
- nsfw:
- 'false': Показать мультимедийные вложения
- 'true': Скрыть мультимедийные вложения
report: 'Жалоба #%{id}'
report_contents: Содержимое
reported_account: Аккаунт нарушителя
delete: Удалить
nsfw_off: Выключить NSFW
nsfw_on: Включить NSFW
- execute: Выполнить
failed_to_execute: Не удалось выполнить
media:
- hide: Скрыть медиаконтент
- show: Показать медиаконтент
title: Медиаконтент
no_media: Без медиаконтента
title: Статусы аккаунта
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á!
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é
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
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
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!
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
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
unfollow: Отпрати
admin:
account_moderation_notes:
- account: Модератор
create: Направи
- created_at: Датум
created_msg: Модераторска белешка успешно направљена!
delete: Обриши
destroyed_msg: Модераторска белешка успешно обрисана!
are_you_sure: Да ли сте сигурни?
comment:
none: Ништа
- delete: Обриши
id: ID
mark_as_resolved: Означи као решен
- nsfw:
- 'false': Откриј медијске прилоге
- 'true': Сакриј медијске прилоге
report: 'Пријава #%{id}'
report_contents: Садржај
reported_account: Пријављени налог
delete: Обриши
nsfw_off: NSFW искључен
nsfw_on: NSFW укључен
- execute: Изврши
failed_to_execute: Неуспело извршавање
media:
- hide: Сакриј мултимедију
- show: Прикажи мултимедију
title: Мултимедија
no_media: Без мултимедије
title: Статуси налога
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!
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
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
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
reports:
comment:
none: None
- delete: ลบ
id: ไอดี
mark_as_resolved: ทำเครื่องหมายว่าจัดการแล้ว
report: 'Report #%{id}'
reports:
comment:
none: Yok
- delete: Sil
id: ID
mark_as_resolved: Giderildi olarak işaretle
report: 'Şikayet #%{id}'
reports:
comment:
none: Немає
- delete: Видалити
id: ID
mark_as_resolved: Відмітити як вирішену
report: 'Скарга #%{id}'
unfollow: 取消关注
admin:
account_moderation_notes:
- account: 管理员
create: 新建
- created_at: 日期
created_msg: 管理备忘建立成功!
delete: 删除
destroyed_msg: 管理备忘删除成功!
are_you_sure: 你确定吗?
comment:
none: 没有
- delete: 删除
id: ID
mark_as_resolved: 标记为“已处理”
- nsfw:
- 'false': 取消 NSFW 标记
- 'true': 添加 NSFW 标记
report: '举报 #%{id}'
report_contents: 内容
reported_account: 举报用户
delete: 删除
nsfw_off: 取消 NSFW 标记
nsfw_on: 添加 NSFW 标记
- execute: 执行
failed_to_execute: 执行失败
media:
- hide: 隐藏媒体文件
- show: 显示媒体文件
title: 媒体文件
no_media: 不含媒体文件
title: 帐户嘟文
unfollow: 取消關注
admin:
account_moderation_notes:
- account: 管理員
create: 新增
- created_at: 日期
created_msg: 管理記錄已新增
delete: 刪除
destroyed_msg: 管理記錄已被刪除
comment:
none: 沒有
created_at: 日期
- delete: 刪除
id: ID
mark_as_resolved: 標示為「已處理」
mark_as_unresolved: 標示為「未處理」
create_and_unresolve: 建立筆記並標示為「未處理」
delete: 刪除
placeholder: 記錄已執行的動作,或其他更新
- nsfw:
- 'false': 取消 NSFW 標記
- 'true': 添加 NSFW 標記
reopen: 重開舉報
report: '舉報 #%{id}'
report_contents: 舉報內容
delete: 刪除
nsfw_off: 取消 NSFW 標記
nsfw_on: 添加 NSFW 標記
- execute: 執行
failed_to_execute: 執行失敗
media:
- hide: 隱藏媒體檔案
- show: 顯示媒體檔案
title: 媒體檔案
no_media: 不含媒體檔案
title: 帳戶文章
reports:
comment:
none: 無
- delete: 刪除
id: ID
mark_as_resolved: 標記為已解決
report: '檢舉 #%{id}'
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]
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
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
end
end
- context 'updates sensitive column to false' do
+ context 'when action is nsfw_off' do
let(:action) { 'nsfw_off' }
let(:sensitive) { false }
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
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
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
end
end
- context 'updates sensitive column to false' do
+ context 'when action is nsfw_off' do
let(:action) { 'nsfw_off' }
let(:sensitive) { false }
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
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