mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-12-27 13:16:07 +00:00
Merge commit '2016c5d912f400ae98ee03ce269112de2f9ec62d' into glitch-soc/merge-upstream
Conflicts: - `config/initializers/cors.rb`: Upstream refactored this file, and glitch-soc had local changes. I could not find the rationale for the glitch-soc changes, so I used upstream's version.
This commit is contained in:
@@ -3,11 +3,12 @@
|
||||
module RoutingHelper
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
include Rails.application.routes.url_helpers
|
||||
include ActionView::Helpers::AssetTagHelper
|
||||
include Webpacker::Helper
|
||||
|
||||
included do
|
||||
include Rails.application.routes.url_helpers
|
||||
|
||||
def default_url_options
|
||||
ActionMailer::Base.default_url_options
|
||||
end
|
||||
|
||||
@@ -43,14 +43,14 @@ class Form::Import
|
||||
validate :validate_data
|
||||
|
||||
def guessed_type
|
||||
return :muting if csv_data.headers.include?('Hide notifications')
|
||||
return :following if csv_data.headers.include?('Show boosts') || csv_data.headers.include?('Notify on new posts') || csv_data.headers.include?('Languages')
|
||||
return :following if data.original_filename&.start_with?('follows') || data.original_filename&.start_with?('following_accounts')
|
||||
return :blocking if data.original_filename&.start_with?('blocks') || data.original_filename&.start_with?('blocked_accounts')
|
||||
return :muting if data.original_filename&.start_with?('mutes') || data.original_filename&.start_with?('muted_accounts')
|
||||
return :domain_blocking if data.original_filename&.start_with?('domain_blocks') || data.original_filename&.start_with?('blocked_domains')
|
||||
return :bookmarks if data.original_filename&.start_with?('bookmarks')
|
||||
return :lists if data.original_filename&.start_with?('lists')
|
||||
return :muting if csv_headers_match?('Hide notifications')
|
||||
return :following if csv_headers_match?('Show boosts') || csv_headers_match?('Notify on new posts') || csv_headers_match?('Languages')
|
||||
return :following if file_name_matches?('follows') || file_name_matches?('following_accounts')
|
||||
return :blocking if file_name_matches?('blocks') || file_name_matches?('blocked_accounts')
|
||||
return :muting if file_name_matches?('mutes') || file_name_matches?('muted_accounts')
|
||||
return :domain_blocking if file_name_matches?('domain_blocks') || file_name_matches?('blocked_domains')
|
||||
return :bookmarks if file_name_matches?('bookmarks')
|
||||
return :lists if file_name_matches?('lists')
|
||||
end
|
||||
|
||||
# Whether the uploaded CSV file seems to correspond to a different import type than the one selected
|
||||
@@ -79,6 +79,14 @@ class Form::Import
|
||||
|
||||
private
|
||||
|
||||
def file_name_matches?(string)
|
||||
data.original_filename&.start_with?(string)
|
||||
end
|
||||
|
||||
def csv_headers_match?(string)
|
||||
csv_data.headers.include?(string)
|
||||
end
|
||||
|
||||
def default_csv_headers
|
||||
case type.to_sym
|
||||
when :following, :blocking, :muting
|
||||
|
||||
@@ -19,7 +19,7 @@ class ReportFilter
|
||||
scope = Report.unresolved
|
||||
|
||||
params.each do |key, value|
|
||||
scope = scope.merge scope_for(key, value), rewhere: true
|
||||
scope = scope.merge scope_for(key, value)
|
||||
end
|
||||
|
||||
scope
|
||||
|
||||
@@ -1,40 +1,36 @@
|
||||
= simple_form_for @role, url: @role.new_record? ? admin_roles_path : admin_role_path(@role) do |f|
|
||||
= render 'shared/error_messages', object: @role
|
||||
= render 'shared/error_messages', object: form.object
|
||||
|
||||
- if @role.everyone?
|
||||
.flash-message.info
|
||||
= t('admin.roles.everyone_full_description_html')
|
||||
- else
|
||||
- if form.object.everyone?
|
||||
.flash-message.info
|
||||
= t('admin.roles.everyone_full_description_html')
|
||||
- else
|
||||
.fields-group
|
||||
= form.input :name, wrapper: :with_label
|
||||
|
||||
- unless current_user.role == form.object
|
||||
.fields-group
|
||||
= f.input :name, wrapper: :with_label
|
||||
= form.input :position, wrapper: :with_label, input_html: { max: current_user.role.position - 1 }
|
||||
|
||||
- unless current_user.role.id == @role.id
|
||||
.fields-group
|
||||
= f.input :position, wrapper: :with_label, input_html: { max: current_user.role.position - 1 }
|
||||
.fields-group
|
||||
= form.input :color, wrapper: :with_label, input_html: { placeholder: '#000000', type: 'color' }
|
||||
|
||||
.fields-group
|
||||
= f.input :color, wrapper: :with_label, input_html: { placeholder: '#000000', type: 'color' }
|
||||
%hr.spacer/
|
||||
|
||||
%hr.spacer/
|
||||
.fields-group
|
||||
= form.input :highlighted, wrapper: :with_label
|
||||
|
||||
.fields-group
|
||||
= f.input :highlighted, wrapper: :with_label
|
||||
%hr.spacer/
|
||||
|
||||
%hr.spacer/
|
||||
- unless current_user.role == form.object
|
||||
|
||||
- unless current_user.role.id == @role.id
|
||||
.field-group
|
||||
.input.with_block_label
|
||||
%label= t('simple_form.labels.user_role.permissions_as_keys')
|
||||
%span.hint= t('simple_form.hints.user_role.permissions_as_keys')
|
||||
|
||||
.field-group
|
||||
.input.with_block_label
|
||||
%label= t('simple_form.labels.user_role.permissions_as_keys')
|
||||
%span.hint= t('simple_form.hints.user_role.permissions_as_keys')
|
||||
- (form.object.everyone? ? UserRole::Flags::CATEGORIES.slice(:invites) : UserRole::Flags::CATEGORIES).each do |category, permissions|
|
||||
%h4= t(category, scope: 'admin.roles.categories')
|
||||
|
||||
- (@role.everyone? ? UserRole::Flags::CATEGORIES.slice(:invites) : UserRole::Flags::CATEGORIES).each do |category, permissions|
|
||||
%h4= t(category, scope: 'admin.roles.categories')
|
||||
= form.input :permissions_as_keys, collection: permissions, wrapper: :with_block_label, include_blank: false, label_method: ->(privilege) { safe_join([t("admin.roles.privileges.#{privilege}"), content_tag(:span, t("admin.roles.privileges.#{privilege}_description"), class: 'hint')]) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label: false, hint: false, disabled: permissions.filter { |privilege| UserRole::FLAGS[privilege] & current_user.role.computed_permissions == 0 }
|
||||
|
||||
= f.input :permissions_as_keys, collection: permissions, wrapper: :with_block_label, include_blank: false, label_method: ->(privilege) { safe_join([t("admin.roles.privileges.#{privilege}"), content_tag(:span, t("admin.roles.privileges.#{privilege}_description"), class: 'hint')]) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label: false, hint: false, disabled: permissions.filter { |privilege| UserRole::FLAGS[privilege] & current_user.role.computed_permissions == 0 }
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
.actions
|
||||
= f.button :button, @role.new_record? ? t('admin.roles.add_new') : t('generic.save_changes'), type: :submit
|
||||
%hr.spacer/
|
||||
|
||||
@@ -4,4 +4,7 @@
|
||||
- content_for :heading_actions do
|
||||
= link_to t('admin.roles.delete'), admin_role_path(@role), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' if can?(:destroy, @role)
|
||||
|
||||
= render partial: 'form'
|
||||
= simple_form_for @role, url: admin_role_path(@role) do |form|
|
||||
= render partial: 'form', object: form
|
||||
.actions
|
||||
= form.button :button, t('generic.save_changes'), type: :submit
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
- content_for :page_title do
|
||||
= t('admin.roles.add_new')
|
||||
|
||||
= render partial: 'form'
|
||||
= simple_form_for @role, url: admin_roles_path do |form|
|
||||
= render partial: 'form', object: form
|
||||
.actions
|
||||
= form.button :button, t('admin.roles.add_new'), type: :submit
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
= simple_form_for @webhook, url: @webhook.new_record? ? admin_webhooks_path : admin_webhook_path(@webhook) do |f|
|
||||
= render 'shared/error_messages', object: @webhook
|
||||
= render 'shared/error_messages', object: form.object
|
||||
|
||||
.fields-group
|
||||
= f.input :url, wrapper: :with_block_label, input_html: { placeholder: 'https://' }
|
||||
.fields-group
|
||||
= form.input :url, wrapper: :with_block_label, input_html: { placeholder: 'https://' }
|
||||
|
||||
.fields-group
|
||||
= f.input :events, collection: Webhook::EVENTS, wrapper: :with_block_label, include_blank: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) }
|
||||
.fields-group
|
||||
= form.input :events, collection: Webhook::EVENTS, wrapper: :with_block_label, include_blank: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) }
|
||||
|
||||
.fields-group
|
||||
= f.input :template, wrapper: :with_block_label, input_html: { placeholder: '{ "content": "Hello {{object.username}}" }' }
|
||||
|
||||
.actions
|
||||
= f.button :button, @webhook.new_record? ? t('admin.webhooks.add_new') : t('generic.save_changes'), type: :submit
|
||||
.fields-group
|
||||
= form.input :template, wrapper: :with_block_label, input_html: { placeholder: '{ "content": "Hello {{object.username}}" }' }
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
- content_for :page_title do
|
||||
= t('admin.webhooks.edit')
|
||||
|
||||
= render partial: 'form'
|
||||
= simple_form_for @webhook, url: admin_webhook_path(@webhook) do |form|
|
||||
= render partial: 'form', object: form
|
||||
.actions
|
||||
= form.button :button, t('generic.save_changes'), type: :submit
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
- content_for :page_title do
|
||||
= t('admin.webhooks.new')
|
||||
|
||||
= render partial: 'form'
|
||||
= simple_form_for @webhook, url: admin_webhooks_path do |form|
|
||||
= render partial: 'form', object: form
|
||||
.actions
|
||||
= form.button :button, t('admin.webhooks.add_new'), type: :submit
|
||||
|
||||
Reference in New Issue
Block a user