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
This commit is contained in:
		
							parent
							
								
									263bedff9e
								
							
						
					
					
						commit
						cb93be3b88
					
				
					 6 changed files with 43 additions and 3 deletions
				
			
		
							
								
								
									
										21
									
								
								app/controllers/admin/site_uploads_controller.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								app/controllers/admin/site_uploads_controller.rb
									
									
									
									
									
										Normal 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
									
								
								app/helpers/admin/settings_helper.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								app/helpers/admin/settings_helper.rb
									
									
									
									
									
										Normal 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
 | 
				
			||||||
| 
						 | 
					@ -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
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue