Merge remote-tracking branch 'parent/main' into upstream-20240618

This commit is contained in:
KMY 2024-06-18 07:43:33 +09:00
commit aa2cdc898a
271 changed files with 1839 additions and 1397 deletions

View file

@ -1,38 +1,41 @@
- content_for :page_title do
= t('admin.accounts.title')
= form_tag admin_accounts_url, method: 'GET', class: 'simple_form' do
= form_with url: admin_accounts_url, method: :get, class: :simple_form do |form|
.filters
.filter-subset.filter-subset--with-select
%strong= t('admin.accounts.location.title')
.input.select.optional
= select_tag :origin,
options_for_select([[t('admin.accounts.location.local'), 'local'], [t('admin.accounts.location.remote'), 'remote']], params[:origin]),
prompt: I18n.t('generic.all')
= form.select :origin,
options_for_select([[t('admin.accounts.location.local'), 'local'], [t('admin.accounts.location.remote'), 'remote']], params[:origin]),
prompt: I18n.t('generic.all')
.filter-subset.filter-subset--with-select
%strong= t('admin.accounts.moderation.title')
.input.select.optional
= select_tag :status,
options_for_select(admin_accounts_moderation_options, params[:status]),
prompt: I18n.t('generic.all')
= form.select :status,
options_for_select(admin_accounts_moderation_options, params[:status]),
prompt: I18n.t('generic.all')
.filter-subset.filter-subset--with-select
%strong= t('admin.accounts.role')
.input.select.optional
= select_tag :role_ids,
options_from_collection_for_select(UserRole.assignable, :id, :name, params[:role_ids]),
prompt: I18n.t('admin.accounts.moderation.all')
= form.select :role_ids,
options_from_collection_for_select(UserRole.assignable, :id, :name, params[:role_ids]),
prompt: I18n.t('admin.accounts.moderation.all')
.filter-subset.filter-subset--with-select
%strong= t 'generic.order_by'
.input.select
= select_tag :order,
options_for_select([[t('relationships.most_recent'), 'recent'], [t('relationships.last_active'), 'active']], params[:order])
= form.select :order,
options_for_select([[t('relationships.most_recent'), 'recent'], [t('relationships.last_active'), 'active']], params[:order])
.fields-group
- %i(username by_domain display_name email ip).each do |key|
- next if key == :by_domain && params[:origin] != 'remote'
.input.string.optional
= text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.accounts.#{key}")
= form.text_field key,
value: params[key],
class: 'string optional',
placeholder: I18n.t("admin.accounts.#{key}")
.actions
%button.button= t('admin.accounts.search')
@ -40,7 +43,7 @@
%hr.spacer/
= form_for(@form, url: batch_admin_accounts_path) do |f|
= form_with model: @form, url: batch_admin_accounts_path do |f|
= hidden_field_tag :page, params[:page] || 1
= hidden_field_tag :select_all_matching, '0'

View file

@ -1,19 +1,23 @@
- content_for :page_title do
= t('admin.action_logs.title')
= form_tag admin_action_logs_url, method: 'GET', class: 'simple_form' do
= form_with url: admin_action_logs_url, method: :get, class: :simple_form do |form|
= hidden_field_tag :target_account_id, params[:target_account_id] if params[:target_account_id].present?
.filters
.filter-subset.filter-subset--with-select
%strong= t('admin.action_logs.filter_by_user')
.input.select.optional
= select_tag :account_id, options_from_collection_for_select(@auditable_accounts, :id, :username, params[:account_id]), prompt: I18n.t('admin.accounts.moderation.all')
= form.select :account_id,
options_from_collection_for_select(@auditable_accounts, :id, :username, params[:account_id]),
prompt: I18n.t('admin.accounts.moderation.all')
.filter-subset.filter-subset--with-select
%strong= t('admin.action_logs.filter_by_action')
.input.select.optional
= select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key] }, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all')
= form.select :action_type,
options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key] }, params[:action_type]),
prompt: I18n.t('admin.accounts.moderation.all')
- if @action_logs.empty?
.muted-hint.center-text

View file

@ -21,20 +21,23 @@
- else
= filter_link_to t('admin.accounts.location.remote'), remote: '1', local: nil
= form_tag admin_custom_emojis_url, method: 'GET', class: 'simple_form' do
= form_with url: admin_custom_emojis_url, method: :get, class: :simple_form do |form|
.fields-group
- CustomEmojiFilter::KEYS.each do |key|
= hidden_field_tag key, params[key] if params[key].present?
= form.hidden_field key, value: params[key] if params[key].present?
- %i(shortcode by_domain).each do |key|
.input.string.optional
= text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.custom_emojis.#{key}")
= form.text_field key,
value: params[key],
class: 'string optional',
placeholder: I18n.t("admin.custom_emojis.#{key}")
.actions
%button.button= t('admin.accounts.search')
= link_to t('admin.accounts.reset'), admin_custom_emojis_path, class: 'button negative'
= form_for(@form, url: batch_admin_custom_emojis_path) do |f|
= form_with model: @form, url: batch_admin_custom_emojis_path do |f|
= hidden_field_tag :page, params[:page] || 1
- CustomEmojiFilter::KEYS.each do |key|

View file

@ -4,7 +4,7 @@
- content_for :heading_actions do
= link_to t('admin.email_domain_blocks.add_new'), new_admin_email_domain_block_path, class: 'button'
= form_for(@form, url: batch_admin_email_domain_blocks_path) do |f|
= form_with model: @form, url: batch_admin_email_domain_blocks_path do |f|
= hidden_field_tag :page, params[:page] || 1
.batch-table

View file

@ -6,7 +6,7 @@
- if defined?(@global_private_comment) && @global_private_comment.present?
%p= t('admin.export_domain_blocks.import.private_comment_description_html', comment: @global_private_comment)
= form_for(@form, url: batch_admin_domain_blocks_path) do |f|
= form_with model: @form, url: batch_admin_domain_blocks_path do |f|
.batch-table
.batch-table__toolbar
%label.batch-table__toolbar__select.batch-checkbox-all

View file

@ -5,23 +5,23 @@
%hr.spacer/
= form_tag admin_follow_recommendations_path, method: 'GET', class: 'simple_form' do
= form_with url: admin_follow_recommendations_path, method: :get, class: :simple_form do |form|
- RelationshipFilter::KEYS.each do |key|
= hidden_field_tag key, params[key] if params[key].present?
= form.hidden_field key, value: params[key] if params[key].present?
.filters
.filter-subset.filter-subset--with-select
%strong= t('admin.follow_recommendations.language')
.input.select.optional
= select_tag :language,
options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key] }, @language)
= form.select :language,
options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key] }, @language)
.filter-subset
%strong= t('admin.follow_recommendations.status')
%ul
%li= filter_link_to t('admin.accounts.moderation.active'), status: nil
%li= filter_link_to t('admin.follow_recommendations.suppressed'), status: 'suppressed'
= form_for(@form, url: admin_follow_recommendations_path, method: :patch) do |f|
= form_with model: @form, url: admin_follow_recommendations_path, method: :patch do |f|
- RelationshipFilter::KEYS.each do |key|
= hidden_field_tag key, params[key] if params[key].present?

View file

@ -28,14 +28,17 @@
%li= filter_link_to t('admin.instances.delivery.unavailable'), availability: 'unavailable'
- unless limited_federation_mode?
= form_tag admin_instances_url, method: 'GET', class: 'simple_form' do
= form_with url: admin_instances_url, method: :get, class: :simple_form do |form|
.fields-group
- InstanceFilter::KEYS.each do |key|
= hidden_field_tag key, params[key] if params[key].present?
= form.hidden_field key, value: params[key] if params[key].present?
- %i(by_domain).each do |key|
.input.string.optional
= text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.instances.#{key}")
= form.text_field key,
value: params[key],
class: 'string optional',
placeholder: I18n.t("admin.instances.#{key}")
.actions
%button.button= t('admin.accounts.search')

View file

@ -5,7 +5,7 @@
- content_for :heading_actions do
= link_to t('admin.ip_blocks.add_new'), new_admin_ip_block_path, class: 'button'
= form_for(@form, url: batch_admin_ip_blocks_path) do |f|
= form_with model: @form, url: batch_admin_ip_blocks_path do |f|
= hidden_field_tag :page, params[:page] || 1
.batch-table

View file

@ -24,7 +24,7 @@
%hr.spacer/
= form_for(@form, url: batch_admin_accounts_path) do |f|
= form_with model: @form, url: batch_admin_accounts_path do |f|
.batch-table
.batch-table__toolbar
%label.batch-table__toolbar__select.batch-checkbox-all

View file

@ -1,4 +1,4 @@
= form_tag preview_admin_report_actions_path(report), method: :post do
= form_with url: preview_admin_report_actions_path(report) do |form|
.report-actions
.report-actions__item
.report-actions__item__button
@ -8,7 +8,9 @@
- if statuses.any? { |status| (status.with_media? || status.with_preview_card?) && !status.discarded? }
.report-actions__item
.report-actions__item__button
= button_tag t('admin.reports.mark_as_sensitive'), name: :mark_as_sensitive, class: 'button'
= form.button t('admin.reports.mark_as_sensitive'),
name: :mark_as_sensitive,
class: 'button'
.report-actions__item__description
= t('admin.reports.actions.mark_as_sensitive_description_html')
.report-actions__item
@ -18,21 +20,29 @@
= t('admin.reports.actions.force_cw_description_html')
.report-actions__item
.report-actions__item__button
= button_tag t('admin.reports.delete_and_resolve'), name: :delete, class: 'button button--destructive'
= button_tag t('admin.reports.delete_and_resolve'),
name: :delete,
class: 'button button--destructive'
.report-actions__item__description
= t('admin.reports.actions.delete_description_html')
.report-actions__item
.report-actions__item__button
= button_tag t('admin.accounts.silence'), name: :silence, class: 'button button--destructive'
= form.button t('admin.accounts.silence'),
name: :silence,
class: 'button button--destructive'
.report-actions__item__description
= t('admin.reports.actions.silence_description_html')
.report-actions__item
.report-actions__item__button
= button_tag t('admin.accounts.suspend'), name: :suspend, class: 'button button--destructive'
= form.button t('admin.accounts.suspend'),
name: :suspend,
class: 'button button--destructive'
.report-actions__item__description
= t('admin.reports.actions.suspend_description_html')
.report-actions__item
.report-actions__item__button
= link_to t('admin.accounts.custom'), new_admin_account_action_path(report.target_account_id, report_id: report.id), class: 'button'
= link_to t('admin.accounts.custom'),
new_admin_account_action_path(report.target_account_id, report_id: report.id),
class: 'button'
.report-actions__item__description
= t('admin.reports.actions.other_description_html')

View file

@ -4,8 +4,8 @@
- content_for :page_title do
= t('admin.reports.confirm_action', acct: target_acct)
= form_tag admin_report_actions_path(@report), class: 'simple_form', method: :post do
= hidden_field_tag :moderation_action, @moderation_action
= form_with url: admin_report_actions_path(@report), class: :simple_form do |form|
= form.hidden_field :moderation_action, value: @moderation_action
%p.hint= t("admin.reports.summary.action_preambles.#{@moderation_action}_html", acct: target_acct)
%ul.hint
@ -30,7 +30,9 @@
%p= t "user_mailer.warning.explanation.#{warning_action}", instance: Rails.configuration.x.local_domain
.fields-group
= text_area_tag :text, nil, placeholder: t('admin.reports.summary.warning_placeholder')
= form.text_area :text,
value: nil,
placeholder: t('admin.reports.summary.warning_placeholder')
- unless @report.other?
%p
@ -75,4 +77,7 @@
.actions
= link_to t('admin.reports.cancel'), admin_report_path(@report), class: 'button button-tertiary'
= button_tag t('admin.reports.confirm'), name: :confirm, class: 'button', type: :submit
= form.button t('admin.reports.confirm'),
name: :confirm,
class: 'button',
type: :submit

View file

@ -14,14 +14,17 @@
%li= filter_link_to t('admin.accounts.location.local'), target_origin: 'local'
%li= filter_link_to t('admin.accounts.location.remote'), target_origin: 'remote'
= form_tag admin_reports_url, method: 'GET', class: 'simple_form' do
= form_with url: admin_reports_url, method: :get, class: :simple_form do |form|
.fields-group
- ReportFilter::KEYS.each do |key|
= hidden_field_tag key, params[key] if params[key].present?
= form.hidden_field key, value: params[key] if params[key].present?
- %i(by_target_domain).each do |key|
.input.string.optional
= text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.reports.#{key}")
= form.text_field key,
value: params[key],
class: 'string optional',
placeholder: I18n.t("admin.reports.#{key}")
.actions
%button.button= t('admin.accounts.search')

View file

@ -45,7 +45,7 @@
admin_account_statuses_path(@report.target_account_id, report_id: @report.id),
class: 'table-action-link'
= form_for(@form, url: batch_admin_account_statuses_path(@report.target_account_id, report_id: @report.id)) do |f|
= form_with model: @form, url: batch_admin_account_statuses_path(@report.target_account_id, report_id: @report.id) do |f|
.batch-table
.batch-table__toolbar
%label.batch-table__toolbar__select.batch-checkbox-all

View file

@ -21,7 +21,7 @@
%hr.spacer/
= form_for(@status_batch_action, url: batch_admin_account_statuses_path(@account.id)) do |f|
= form_with model: @status_batch_action, url: batch_admin_account_statuses_path(@account.id) do |f|
= hidden_field_tag :page, params[:page] || 1
- Admin::StatusFilter::KEYS.each do |key|

View file

@ -5,17 +5,17 @@
%hr.spacer/
= form_tag admin_trends_links_path, method: 'GET', class: 'simple_form' do
= form_with url: admin_trends_links_path, method: :get, class: :simple_form do |form|
- Trends::PreviewCardFilter::KEYS.each do |key|
= hidden_field_tag key, params[key] if params[key].present?
= form.hidden_field key, value: params[key] if params[key].present?
.filters
.filter-subset.filter-subset--with-select
%strong= t('admin.follow_recommendations.language')
.input.select.optional
= select_tag :locale,
options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]),
include_blank: true
= form.select :locale,
options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]),
include_blank: true
.filter-subset
%strong= t('admin.trends.trending')
%ul
@ -26,7 +26,7 @@
= t('admin.trends.preview_card_providers.title')
= material_symbol 'chevron_right'
= form_for(@form, url: batch_admin_trends_links_path) do |f|
= form_with model: @form, url: batch_admin_trends_links_path do |f|
= hidden_field_tag :page, params[:page] || 1
- Trends::PreviewCardFilter::KEYS.each do |key|

View file

@ -20,7 +20,7 @@
%hr.spacer/
= form_for(@form, url: batch_admin_trends_links_preview_card_providers_path) do |f|
= form_with model: @form, url: batch_admin_trends_links_preview_card_providers_path do |f|
= hidden_field_tag :page, params[:page] || 1
- Trends::PreviewCardProviderFilter::KEYS.each do |key|

View file

@ -5,22 +5,24 @@
%hr.spacer/
= form_tag admin_trends_statuses_path, method: 'GET', class: 'simple_form' do
= form_with url: admin_trends_statuses_path, method: :get, class: :simple_form do |form|
- Trends::StatusFilter::KEYS.each do |key|
= hidden_field_tag key, params[key] if params[key].present?
= form.hidden_field key, value: params[key] if params[key].present?
.filters
.filter-subset.filter-subset--with-select
%strong= t('admin.follow_recommendations.language')
.input.select.optional
= select_tag :locale, options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), include_blank: true
= form.select :locale,
options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]),
include_blank: true
.filter-subset
%strong= t('admin.trends.trending')
%ul
%li= filter_link_to t('generic.all'), trending: nil
%li= filter_link_to t('admin.trends.only_allowed'), trending: 'allowed'
= form_for(@form, url: batch_admin_trends_statuses_path) do |f|
= form_with model: @form, url: batch_admin_trends_statuses_path do |f|
= hidden_field_tag :page, params[:page] || 1
- Trends::StatusFilter::KEYS.each do |key|

View file

@ -14,7 +14,7 @@
%li= filter_link_to t('admin.trends.rejected'), status: 'rejected'
%li= filter_link_to safe_join([t('admin.accounts.moderation.pending'), "(#{Tag.pending_review.count})"], ' '), status: 'pending_review'
= form_for(@form, url: batch_admin_trends_tags_path) do |f|
= form_with model: @form, url: batch_admin_trends_tags_path do |f|
= hidden_field_tag :page, params[:page] || 1
- Trends::TagFilter::KEYS.each do |key|

View file

@ -1,11 +1,13 @@
- content_for :page_title do
= t('auth.captcha_confirmation.title')
= form_tag auth_captcha_confirmation_url, method: 'POST', class: 'simple_form' do
= form_with url: auth_captcha_confirmation_url, class: :simple_form do |form|
= render 'auth/shared/progress', stage: 'confirm'
= hidden_field_tag :confirmation_token, params[:confirmation_token]
= hidden_field_tag :redirect_to_app, params[:redirect_to_app]
= form.hidden_field :confirmation_token,
value: params[:confirmation_token]
= form.hidden_field :redirect_to_app,
value: params[:redirect_to_app]
%h1.title= t('auth.captcha_confirmation.title')
%p.lead= t('auth.captcha_confirmation.hint_html')
@ -15,4 +17,6 @@
%p.lead= t('auth.captcha_confirmation.help_html', email: mail_to(Setting.site_contact_email, nil))
.actions
= button_tag t('challenge.confirm'), class: 'button', type: :submit
= form.button t('challenge.confirm'),
class: 'button',
type: :submit

View file

@ -13,7 +13,7 @@
%hr.spacer/
= form_for(@status_filter_batch_action, url: batch_filter_statuses_path(@filter.id)) do |f|
= form_with model: @status_filter_batch_action, url: batch_filter_statuses_path(@filter.id) do |f|
= hidden_field_tag :page, params[:page] || 1
- Admin::StatusFilter::KEYS.each do |key|

View file

@ -19,7 +19,8 @@
- SiteUpload::APPLE_ICON_SIZES.each do |size|
%link{ rel: 'apple-touch-icon', sizes: "#{size}x#{size}", href: app_icon_path(size.to_i) || frontend_asset_path("icons/apple-touch-icon-#{size}x#{size}.png") }/
%link{ rel: 'mask-icon', href: frontend_asset_path('images/logo-symbol-icon.svg'), color: '#6364FF' }/
- if use_mask_icon?
%link{ rel: 'mask-icon', href: frontend_asset_path('images/logo-symbol-icon.svg'), color: '#6364FF' }/
%link{ rel: 'manifest', href: manifest_path(format: :json) }/
= theme_color_tags current_theme
%meta{ name: 'apple-mobile-web-app-capable', content: 'yes' }/
@ -29,7 +30,7 @@
= stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous'
= theme_style_tags current_theme
-# Needed for the wicg-inert polyfill. It needs to be on it's own <style> tag, with this `id`
= stylesheet_pack_tag 'inert', media: 'all', id: 'inert-style'
= stylesheet_pack_tag 'inert', media: 'all', crossorigin: 'anonymous', id: 'inert-style'
= javascript_pack_tag 'common', crossorigin: 'anonymous'
= preload_pack_asset "locale/#{I18n.locale}-json.js"

View file

@ -10,7 +10,10 @@
email: content_tag(:strong, @user.email),
settings_path: settings_preferences_notifications_path
= form_tag unsubscribe_path, method: :post do
= hidden_field_tag :token, params[:token]
= hidden_field_tag :type, params[:type]
= button_tag t('mail_subscriptions.unsubscribe.action'), type: :submit
= form_with url: unsubscribe_path do |form|
= form.hidden_field :token,
value: params[:token]
= form.hidden_field :type,
value: params[:type]
= form.button t('mail_subscriptions.unsubscribe.action'),
type: :submit

View file

@ -21,18 +21,31 @@
= t(scope.access, scope: [:doorkeeper, :grouped_scopes, :access])
.actions
= form_tag oauth_authorization_path, method: :post do
= hidden_field_tag :client_id, @pre_auth.client.uid
= hidden_field_tag :redirect_uri, @pre_auth.redirect_uri
= hidden_field_tag :state, @pre_auth.state
= hidden_field_tag :response_type, @pre_auth.response_type
= hidden_field_tag :scope, @pre_auth.scope
= button_tag t('doorkeeper.authorizations.buttons.authorize'), type: :submit
= form_with url: oauth_authorization_path do |form|
= form.hidden_field :client_id,
value: @pre_auth.client.uid
= form.hidden_field :redirect_uri,
value: @pre_auth.redirect_uri
= form.hidden_field :state,
value: @pre_auth.state
= form.hidden_field :response_type,
value: @pre_auth.response_type
= form.hidden_field :scope,
value: @pre_auth.scope
= form.button t('doorkeeper.authorizations.buttons.authorize'),
type: :submit
= form_tag oauth_authorization_path, method: :delete do
= hidden_field_tag :client_id, @pre_auth.client.uid
= hidden_field_tag :redirect_uri, @pre_auth.redirect_uri
= hidden_field_tag :state, @pre_auth.state
= hidden_field_tag :response_type, @pre_auth.response_type
= hidden_field_tag :scope, @pre_auth.scope
= button_tag t('doorkeeper.authorizations.buttons.deny'), type: :submit, class: 'negative'
= form_with url: oauth_authorization_path, method: :delete do |form|
= form.hidden_field :client_id,
value: @pre_auth.client.uid
= form.hidden_field :redirect_uri,
value: @pre_auth.redirect_uri
= form.hidden_field :state,
value: @pre_auth.state
= form.hidden_field :response_type,
value: @pre_auth.response_type
= form.hidden_field :scope,
value: @pre_auth.scope
= form.button t('doorkeeper.authorizations.buttons.deny'),
type: :submit,
class: 'negative'

View file

@ -1,3 +1,7 @@
- content_for :header_tags do
%meta{ name: 'robots', content: 'noindex, noarchive' }/
%link{ rel: 'canonical', href: @redirect_path }
.redirect
.redirect__logo
= link_to render_logo, root_path

View file

@ -31,7 +31,7 @@
%li= filter_link_to t('relationships.most_recent'), order: nil
%li= filter_link_to t('relationships.last_active'), order: 'active'
= form_for(@form, url: relationships_path, method: :patch) do |f|
= form_with model: @form, url: relationships_path, method: :patch do |f|
= hidden_field_tag :page, params[:page] || 1
- RelationshipFilter::KEYS.each do |key|