-
Notifications
You must be signed in to change notification settings - Fork 2.3k
/
Copy pathdelete.rb
58 lines (46 loc) · 1.47 KB
/
delete.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# frozen_string_literal: true
module RailsAdmin
module Config
module Actions
class Delete < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :member do
true
end
register_instance_option :route_fragment do
'delete'
end
register_instance_option :http_methods do
%i[get delete]
end
register_instance_option :authorization_key do
:destroy
end
register_instance_option :controller do
proc do
if request.get? # DELETE
respond_to do |format|
format.html { render @action.template_name }
format.js { render @action.template_name, layout: false }
end
elsif request.delete? # DESTROY
@auditing_adapter&.delete_object(@object, @abstract_model, _current_user)
if @object.destroy
flash[:success] = t('admin.flash.successful', name: @model_config.label, action: t('admin.actions.delete.done'))
redirect_to index_path
else
handle_save_error :delete
end
end
end
end
register_instance_option :link_icon do
'fas fa-times'
end
register_instance_option :writable? do
!(bindings[:object] && bindings[:object].readonly?)
end
end
end
end
end