Add ability to delete files uploaded for settings in admin UI (#13192)
* Allow deleting site uploads * Refactor and move links into hints * Fix i18n tests * Fix HTML output of site_upload_delete_hintgh/stable
parent
4063f9f278
commit
2423d2f677
|
@ -0,0 +1,21 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Admin
|
||||||
|
class SiteUploadsController < BaseController
|
||||||
|
before_action :set_site_upload
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
authorize :settings, :destroy?
|
||||||
|
|
||||||
|
@site_upload.destroy!
|
||||||
|
|
||||||
|
redirect_to edit_admin_settings_path, notice: I18n.t('admin.site_uploads.destroyed_msg')
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def set_site_upload
|
||||||
|
@site_upload = SiteUpload.find(params[:id])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,11 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Admin::SettingsHelper
|
||||||
|
def site_upload_delete_hint(hint, var)
|
||||||
|
upload = SiteUpload.find_by(var: var.to_s)
|
||||||
|
return hint unless upload
|
||||||
|
|
||||||
|
link = link_to t('admin.site_uploads.delete'), admin_site_upload_path(upload), data: { method: :delete }
|
||||||
|
safe_join([hint, link], '<br/>'.html_safe)
|
||||||
|
end
|
||||||
|
end
|
|
@ -8,4 +8,8 @@ class SettingsPolicy < ApplicationPolicy
|
||||||
def show?
|
def show?
|
||||||
admin?
|
admin?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def destroy?
|
||||||
|
admin?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -30,13 +30,13 @@
|
||||||
|
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :thumbnail, as: :file, wrapper: :with_block_label, label: t('admin.settings.thumbnail.title'), hint: t('admin.settings.thumbnail.desc_html')
|
= f.input :thumbnail, as: :file, wrapper: :with_block_label, label: t('admin.settings.thumbnail.title'), hint: site_upload_delete_hint(t('admin.settings.thumbnail.desc_html'), :thumbnail)
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :hero, as: :file, wrapper: :with_block_label, label: t('admin.settings.hero.title'), hint: t('admin.settings.hero.desc_html')
|
= f.input :hero, as: :file, wrapper: :with_block_label, label: t('admin.settings.hero.title'), hint: site_upload_delete_hint(t('admin.settings.hero.desc_html'), :hero)
|
||||||
|
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :mascot, as: :file, wrapper: :with_block_label, label: t('admin.settings.mascot.title'), hint: t('admin.settings.mascot.desc_html')
|
= f.input :mascot, as: :file, wrapper: :with_block_label, label: t('admin.settings.mascot.title'), hint: site_upload_delete_hint(t('admin.settings.mascot.desc_html'), :mascot)
|
||||||
|
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
|
|
|
@ -537,6 +537,9 @@ en:
|
||||||
trends:
|
trends:
|
||||||
desc_html: Publicly display previously reviewed hashtags that are currently trending
|
desc_html: Publicly display previously reviewed hashtags that are currently trending
|
||||||
title: Trending hashtags
|
title: Trending hashtags
|
||||||
|
site_uploads:
|
||||||
|
delete: Delete uploaded file
|
||||||
|
destroyed_msg: Site upload successfully deleted!
|
||||||
statuses:
|
statuses:
|
||||||
back_to_account: Back to account page
|
back_to_account: Back to account page
|
||||||
batch:
|
batch:
|
||||||
|
|
|
@ -186,6 +186,7 @@ Rails.application.routes.draw do
|
||||||
end
|
end
|
||||||
|
|
||||||
resource :settings, only: [:edit, :update]
|
resource :settings, only: [:edit, :update]
|
||||||
|
resources :site_uploads, only: [:destroy]
|
||||||
|
|
||||||
resources :invites, only: [:index, :create, :destroy] do
|
resources :invites, only: [:index, :create, :destroy] do
|
||||||
collection do
|
collection do
|
||||||
|
|
Reference in New Issue