--- /dev/null
+# frozen_string_literal: true
+
+module Settings
+ class PicturesController < BaseController
+ before_action :authenticate_user!
+ before_action :set_account
+ before_action :set_picture
+
+ def destroy
+ if valid_picture
+ account_params = {
+ @picture => nil,
+ (@picture + '_remote_url') => nil,
+ }
+
+ msg = UpdateAccountService.new.call(@account, account_params) ? I18n.t('generic.changes_saved_msg') : nil
+ redirect_to settings_profile_path, notice: msg, status: 303
+ else
+ bad_request
+ end
+ end
+
+ private
+
+ def set_account
+ @account = current_account
+ end
+
+ def set_picture
+ @picture = params[:id]
+ end
+
+ def valid_picture
+ @picture == 'avatar' || @picture == 'header'
+ end
+ end
+end
safe_join([image_tag(account.avatar.url, width: 15, height: 15, alt: display_name(account), class: 'avatar'), content_tag(:span, account.acct, class: 'username')], ' ')
end
end
+
+ def picture_hint(hint, picture)
+ if picture.original_filename.nil?
+ hint
+ else
+ link = link_to t('generic.delete'), settings_profile_picture_path(picture.name.to_s), data: { method: :delete }
+ safe_join([hint, link], '<br/>'.html_safe)
+ end
+ end
end
= render 'application/card', account: @account
.fields-row__column.fields-group.fields-row__column-6
- = f.input :header, wrapper: :with_label, input_html: { accept: AccountHeader::IMAGE_MIME_TYPES.join(',') }, hint: t('simple_form.hints.defaults.header', dimensions: '1500x500', size: number_to_human_size(AccountHeader::LIMIT))
+ = f.input :header, wrapper: :with_label, input_html: { accept: AccountHeader::IMAGE_MIME_TYPES.join(',') }, hint: picture_hint(t('simple_form.hints.defaults.header', dimensions: '1500x500', size: number_to_human_size(AccountHeader::LIMIT)), @account.header)
- = f.input :avatar, wrapper: :with_label, input_html: { accept: AccountAvatar::IMAGE_MIME_TYPES.join(',') }, hint: t('simple_form.hints.defaults.avatar', dimensions: '400x400', size: number_to_human_size(AccountAvatar::LIMIT))
+ = f.input :avatar, wrapper: :with_label, input_html: { accept: AccountAvatar::IMAGE_MIME_TYPES.join(',') }, hint: picture_hint(t('simple_form.hints.defaults.avatar', dimensions: '400x400', size: number_to_human_size(AccountAvatar::LIMIT)), @account.avatar)
%hr.spacer/
get '/settings', to: redirect('/settings/profile')
namespace :settings do
- resource :profile, only: [:show, :update]
+ resource :profile, only: [:show, :update] do
+ resources :pictures, only: :destroy
+ end
get :preferences, to: redirect('/settings/preferences/appearance')