admin_suite 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3679b3f1b7a2f81d3001c2def3f283c0af6af3ab3c8d593c552fd073f72aaff1
|
|
4
|
+
data.tar.gz: f4087201617ce4d248c4c7727cc7464344e43fed12a50c5a3eb966e86e0d5c61
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c303e1f7222b79e6a0dba629b08657078c104beb661338f721285462aabc3319e2546d6a3549921eb648f079d527c42d05954e4dd22f6455ec3c783ddbb9d92f
|
|
7
|
+
data.tar.gz: 21dbc5ae2cd26045afa6f9dfc0a0852fdb82470ee359fbb18236c655e45ca836301d178e8c9e4ad6fab018c3f95286d528152e2426b5cb6d28f6dcb9c07be0bf
|
|
@@ -64,9 +64,10 @@ module AdminSuite
|
|
|
64
64
|
|
|
65
65
|
executor = Admin::Base::ActionExecutor.new(resource_config, action, admin_suite_actor)
|
|
66
66
|
result = executor.execute_member(@resource, params.to_unsafe_h)
|
|
67
|
+
redirect_target = result.redirect_url.presence || resource_url(@resource)
|
|
67
68
|
|
|
68
69
|
if result.success?
|
|
69
|
-
redirect_to
|
|
70
|
+
redirect_to redirect_target, notice: result.message
|
|
70
71
|
else
|
|
71
72
|
redirect_to resource_url(@resource), alert: result.message
|
|
72
73
|
end
|
|
@@ -211,8 +212,18 @@ module AdminSuite
|
|
|
211
212
|
end
|
|
212
213
|
end
|
|
213
214
|
|
|
214
|
-
|
|
215
|
-
|
|
215
|
+
candidate_keys = []
|
|
216
|
+
candidate_keys << @resource.class.model_name.param_key if defined?(@resource) && @resource.present?
|
|
217
|
+
candidate_keys << resource_class.model_name.param_key
|
|
218
|
+
candidate_keys.uniq!
|
|
219
|
+
|
|
220
|
+
candidate_keys.each do |key|
|
|
221
|
+
if params.key?(key) || params.key?(key.to_sym)
|
|
222
|
+
return params.require(key).permit(permitted_fields + array_fields)
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
params.require(resource_class.model_name.param_key).permit(permitted_fields + array_fields)
|
|
216
227
|
end
|
|
217
228
|
|
|
218
229
|
def toggleable_fields
|
|
@@ -109,14 +109,33 @@ module Admin
|
|
|
109
109
|
|
|
110
110
|
def execute_model_method(record, action, bang: false)
|
|
111
111
|
method_name = bang ? "#{action.name}!" : action.name
|
|
112
|
-
record.public_send(method_name)
|
|
113
|
-
|
|
112
|
+
action_result = record.public_send(method_name)
|
|
113
|
+
return action_result if action_result.is_a?(Result)
|
|
114
|
+
|
|
115
|
+
success_result(
|
|
116
|
+
"#{action.label} completed successfully",
|
|
117
|
+
redirect_url: redirect_url_for_action(action, action_result)
|
|
118
|
+
)
|
|
114
119
|
rescue ActiveRecord::RecordInvalid => e
|
|
115
120
|
failure_result("Validation failed: #{e.record.errors.full_messages.join(', ')}")
|
|
116
121
|
rescue AASM::InvalidTransition => e
|
|
117
122
|
failure_result("Invalid state transition: #{e.message}")
|
|
118
123
|
end
|
|
119
124
|
|
|
125
|
+
def redirect_url_for_action(action, action_result)
|
|
126
|
+
return nil unless action.name.to_sym == :duplicate
|
|
127
|
+
return nil unless action_result.respond_to?(:persisted?) && action_result.persisted?
|
|
128
|
+
return nil unless resource_class.respond_to?(:portal_name) && resource_class.respond_to?(:resource_name_plural)
|
|
129
|
+
|
|
130
|
+
AdminSuite::Engine.routes.url_helpers.resource_path(
|
|
131
|
+
portal: resource_class.portal_name,
|
|
132
|
+
resource_name: resource_class.resource_name_plural,
|
|
133
|
+
id: action_result.to_param
|
|
134
|
+
)
|
|
135
|
+
rescue StandardError
|
|
136
|
+
nil
|
|
137
|
+
end
|
|
138
|
+
|
|
120
139
|
def find_handler_class(action)
|
|
121
140
|
if defined?(AdminSuite) && AdminSuite.config.resolve_action_handler.present?
|
|
122
141
|
resolved = AdminSuite.config.resolve_action_handler.call(resource_class, action.name)
|
data/lib/admin_suite/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: admin_suite
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- TechWright Labs
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-02-
|
|
11
|
+
date: 2026-02-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|