mirror of
https://github.com/mastodon/mastodon.git
synced 2024-11-21 21:57:19 +00:00
Extract form
partial in admin/account_actions
This commit is contained in:
parent
0ff7cc8b18
commit
f99a25c384
|
@ -7,8 +7,7 @@ module Admin
|
|||
def new
|
||||
authorize @account, :show?
|
||||
|
||||
@account_action = Admin::AccountAction.new(type: params[:type], report_id: params[:report_id], send_email_notification: true, include_statuses: true)
|
||||
@warning_presets = AccountWarningPreset.all
|
||||
@account_action = Admin::AccountAction.new(type: params[:type], report_id: params[:report_id], send_email_notification: true, include_statuses: true, target_account: @account)
|
||||
end
|
||||
|
||||
def create
|
||||
|
|
|
@ -9,4 +9,8 @@ module Admin::AccountActionsHelper
|
|||
]
|
||||
)
|
||||
end
|
||||
|
||||
def warning_presets
|
||||
AccountWarningPreset.alphabetic
|
||||
end
|
||||
end
|
||||
|
|
|
@ -25,6 +25,8 @@ class Admin::AccountAction
|
|||
alias send_email_notification? send_email_notification
|
||||
alias include_statuses? include_statuses
|
||||
|
||||
delegate :local?, :pretty_acct, to: :target_account, prefix: true
|
||||
|
||||
validates :type, :target_account, :current_account, presence: true
|
||||
validates :type, inclusion: { in: TYPES }
|
||||
|
||||
|
|
34
app/views/admin/account_actions/_form.html.haml
Normal file
34
app/views/admin/account_actions/_form.html.haml
Normal file
|
@ -0,0 +1,34 @@
|
|||
= form.input :report_id,
|
||||
as: :hidden
|
||||
.fields-group
|
||||
= form.input :type,
|
||||
as: :radio_buttons,
|
||||
collection: Admin::AccountAction.types_for_account(form.object.target_account),
|
||||
disabled: Admin::AccountAction.disabled_types_for_account(form.object.target_account),
|
||||
hint: t('simple_form.hints.admin_account_action.type_html', acct: form.object.target_account_pretty_acct),
|
||||
include_blank: false,
|
||||
label_method: ->(type) { account_action_type_label(type) },
|
||||
wrapper: :with_block_label
|
||||
- if form.object.target_account_local?
|
||||
%hr.spacer/
|
||||
.fields-group
|
||||
= form.input :send_email_notification,
|
||||
as: :boolean,
|
||||
wrapper: :with_label
|
||||
- if params[:report_id].present?
|
||||
.fields-group
|
||||
= form.input :include_statuses,
|
||||
as: :boolean,
|
||||
wrapper: :with_label
|
||||
%hr.spacer/
|
||||
- unless warning_presets.empty?
|
||||
.fields-group
|
||||
= form.input :warning_preset_id,
|
||||
collection: warning_presets,
|
||||
label_method: ->(warning_preset) { [warning_preset.title.presence, truncate(warning_preset.text)].compact.join(' - ') },
|
||||
wrapper: :with_block_label
|
||||
.fields-group
|
||||
= form.input :text,
|
||||
as: :text,
|
||||
hint: t('simple_form.hints.admin_account_action.text_html', path: admin_warning_presets_path),
|
||||
wrapper: :with_block_label
|
|
@ -8,50 +8,10 @@
|
|||
.flash-message.warn
|
||||
= t('admin.account_actions.already_silenced')
|
||||
|
||||
= simple_form_for @account_action, url: admin_account_action_path(@account.id) do |f|
|
||||
= f.input :report_id,
|
||||
as: :hidden
|
||||
|
||||
.fields-group
|
||||
= f.input :type,
|
||||
as: :radio_buttons,
|
||||
collection: Admin::AccountAction.types_for_account(@account),
|
||||
disabled: Admin::AccountAction.disabled_types_for_account(@account),
|
||||
hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.pretty_acct),
|
||||
include_blank: false,
|
||||
label_method: ->(type) { account_action_type_label(type) },
|
||||
wrapper: :with_block_label
|
||||
|
||||
- if @account.local?
|
||||
%hr.spacer/
|
||||
|
||||
.fields-group
|
||||
= f.input :send_email_notification,
|
||||
as: :boolean,
|
||||
wrapper: :with_label
|
||||
|
||||
- if params[:report_id].present?
|
||||
.fields-group
|
||||
= f.input :include_statuses,
|
||||
as: :boolean,
|
||||
wrapper: :with_label
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
- unless @warning_presets.empty?
|
||||
.fields-group
|
||||
= f.input :warning_preset_id,
|
||||
collection: @warning_presets,
|
||||
label_method: ->(warning_preset) { [warning_preset.title.presence, truncate(warning_preset.text)].compact.join(' - ') },
|
||||
wrapper: :with_block_label
|
||||
|
||||
.fields-group
|
||||
= f.input :text,
|
||||
as: :text,
|
||||
hint: t('simple_form.hints.admin_account_action.text_html', path: admin_warning_presets_path),
|
||||
wrapper: :with_block_label
|
||||
= simple_form_for @account_action, url: admin_account_action_path(@account.id) do |form|
|
||||
= render form
|
||||
|
||||
.actions
|
||||
= f.button :button,
|
||||
t('admin.account_actions.action'),
|
||||
type: :submit
|
||||
= form.button :button,
|
||||
t('admin.account_actions.action'),
|
||||
type: :submit
|
||||
|
|
Loading…
Reference in a new issue