Browse Source

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_hint
master
ThibG 4 years ago
committed by GitHub
parent
commit
2423d2f677
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 43 additions and 3 deletions
  1. +21
    -0
      app/controllers/admin/site_uploads_controller.rb
  2. +11
    -0
      app/helpers/admin/settings_helper.rb
  3. +4
    -0
      app/policies/settings_policy.rb
  4. +3
    -3
      app/views/admin/settings/edit.html.haml
  5. +3
    -0
      config/locales/en.yml
  6. +1
    -0
      config/routes.rb

+ 21
- 0
app/controllers/admin/site_uploads_controller.rb View File

@ -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

+ 11
- 0
app/helpers/admin/settings_helper.rb View File

@ -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

+ 4
- 0
app/policies/settings_policy.rb View File

@ -8,4 +8,8 @@ class SettingsPolicy < ApplicationPolicy
def show?
admin?
end
def destroy?
admin?
end
end

+ 3
- 3
app/views/admin/settings/edit.html.haml View File

@ -30,13 +30,13 @@
.fields-row
.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
= 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__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/

+ 3
- 0
config/locales/en.yml View File

@ -537,6 +537,9 @@ en:
trends:
desc_html: Publicly display previously reviewed hashtags that are currently trending
title: Trending hashtags
site_uploads:
delete: Delete uploaded file
destroyed_msg: Site upload successfully deleted!
statuses:
back_to_account: Back to account page
batch:

+ 1
- 0
config/routes.rb View File

@ -186,6 +186,7 @@ Rails.application.routes.draw do
end
resource :settings, only: [:edit, :update]
resources :site_uploads, only: [:destroy]
resources :invites, only: [:index, :create, :destroy] do
collection do

Loading…
Cancel
Save