Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `README.md`:
  Upstream updated its README, while we have a completely different one.
  Kept our README.
- `app/controllers/concerns/web_app_controller_concern.rb`:
  Conflict because of glitch-soc's theming system.
  Additionally, glitch-soc has different behavior regarding moved accounts.
  Ported some of the changes, but kept our overall behavior.
- `app/javascript/packs/admin.js`:
  Code changes actually applied to `app/javascript/core/admin.js`
This commit is contained in:
Claire
2023-01-05 14:16:25 +01:00
47 changed files with 357 additions and 327 deletions

View File

@@ -83,6 +83,7 @@ class Form::AdminSettings
validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks_rationale) }
validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@media_cache_retention_period) || defined?(@content_cache_retention_period) || defined?(@backups_retention_period) }
validates :site_short_description, length: { maximum: 200 }, if: -> { defined?(@site_short_description) }
validate :validate_site_uploads
KEYS.each do |key|
define_method(key) do
@@ -104,11 +105,16 @@ class Form::AdminSettings
define_method("#{key}=") do |file|
value = public_send(key)
value.file = file
rescue Mastodon::DimensionsValidationError => e
errors.add(key.to_sym, e.message)
end
end
def save
return false unless valid?
# NOTE: Annoyingly, files are processed and can error out before
# validations are called, and `valid?` clears errors…
# So for now, return early if errors aren't empty.
return false unless errors.empty? && valid?
KEYS.each do |key|
next if PSEUDO_KEYS.include?(key) || !instance_variable_defined?("@#{key}")
@@ -141,4 +147,16 @@ class Form::AdminSettings
value
end
end
def validate_site_uploads
UPLOAD_KEYS.each do |key|
next unless instance_variable_defined?("@#{key}")
upload = instance_variable_get("@#{key}")
next if upload.valid?
upload.errors.each do |error|
errors.import(error, attribute: key)
end
end
end
end