def rpc
if !request.ajax? && !params["extAction"]
return "Ext::Direct::RemotingProvider#rpc -- This method is an ajax-handler only"
end
is_form = false
is_upload = false
if params["extAction"] && params["extMethod"]
is_form = true
is_upload = params.delete("extUpload") == 'true'
request = {
"xcontroller" => params.delete("extAction"),
"xaction" => params.delete("extMethod"),
"type" => "rpc",
"id" => params.delete("id"),
"tid" => params.delete("extTID"),
"format" => params.delete("format"),
"data" => params
}
params.delete('controller')
params.delete('action')
res = "<html><body><textarea>#{handle_request(request).gsub(/"/, "\"")}</textarea></body></html>"
return res
elsif (params[:inflated_object])
return "[" + params[:inflated_object].collect {|req| handle_request(req)}.join(',') + "]"
else
return handle_request(params)
end
end