app/components/avo/actions_component.rb in avo-3.4.1 vs app/components/avo/actions_component.rb in avo-3.4.2
- old
+ new
@@ -29,23 +29,10 @@
else
@actions
end
end
- # When running an action for one record we should do it on a special path.
- # We do that so we get the `record` param inside the action so we can prefill fields.
- def action_path(action)
- return single_record_path(action) if as_row_control
- return many_records_path(action) unless @resource.has_record_id?
-
- if on_record_page?
- single_record_path action
- else
- many_records_path action
- end
- end
-
# How should the action be displayed by default
def is_disabled?(action)
return false if action.standalone || as_row_control
on_index_page?
@@ -57,38 +44,7 @@
@view.in?(%w[show edit new])
end
def on_index_page?
!on_record_page?
- end
-
- def single_record_path(action)
- action_url(action, @resource.record_path)
- end
-
- def many_records_path(action)
- action_url(action, @resource.records_path)
- end
-
- def action_url(action, path)
- Avo::Services::URIService.parse(path)
- .append_paths("actions")
- .append_query(
- {
- action_id: action.to_param,
- arguments: encrypted_arguments(action)
- }.compact
- ).to_s
- end
-
- # Encrypt the arguments so we can pass them as a query param.
- # EncryptionService can generate special characters that can break the URL.
- # We use Base64 to encode the encrypted string so we can safely pass it as a query param and don't break the URL.
- def encrypted_arguments(action)
- return if action.arguments.blank?
-
- Base64.encode64 Avo::Services::EncryptionService.encrypt(
- message: action.arguments,
- purpose: :action_arguments
- )
end
end