diff --git a/app/controllers/avo/actions_controller.rb b/app/controllers/avo/actions_controller.rb index a0b9a1aba..63c30b645 100644 --- a/app/controllers/avo/actions_controller.rb +++ b/app/controllers/avo/actions_controller.rb @@ -11,6 +11,7 @@ class ActionsController < ApplicationController end before_action :set_action, only: [:show, :handle] before_action :verify_authorization, only: [:show, :handle] + before_action :set_query, :set_fields, only: :handle layout :choose_layout @@ -47,14 +48,11 @@ def build_background_url end def handle - resource_ids = action_params[:fields][:avo_resource_ids].split(",") - performed_action = @action.handle_action( - fields: action_params[:fields].except(:avo_resource_ids, :avo_selected_query), + fields: @fields, current_user: _current_user, resource: @resource, - query: decrypted_query || - (resource_ids.any? ? @resource.find_record(resource_ids, params: params) : []) + query: @query ) @response = performed_action.response @@ -63,6 +61,16 @@ def handle private + def set_query + resource_ids = action_params[:fields][:avo_resource_ids].split(",") + + @query = decrypted_query || (resource_ids.any? ? @resource.find_record(resource_ids, params: params) : []) + end + + def set_fields + @fields = action_params[:fields].except(:avo_resource_ids, :avo_selected_query) + end + def action_params @action_params ||= params.permit(:id, :authenticity_token, :resource_name, :action_id, :button, fields: {}) end