def index
@fc_exporter= Fusioncharts::Exporter::FcExporter.new(params)
target=@fc_exporter.exporttargetwindow
filename = @fc_exporter.exportfilename
exportaction = @fc_exporter.exportaction
is_html = exportaction.eql?("download")
validation_result = @fc_exporter.validate
if(validation_result.kind_of?(Fusioncharts::Exporter::FcError) )
logger.info "Warnings"+validation_result.warnings
logger.error "Errors="+validation_result.code2message
Fusioncharts::Exporter::ErrorHandler.set_flash_err(validation_result,flash,is_html,@fc_exporter.meta)
redirect_to :action=>'error',:target=>target
return
end
logger.info "Export Action="+ exportaction
format = @fc_exporter.exportformat
handler =@fc_exporter.format_handler(format.upcase)
if(handler.kind_of?(Fusioncharts::Exporter::FcError))
Fusioncharts::Exporter::ErrorHandler.set_flash_err(handler,flash,is_html,@fc_exporter.meta)
redirect_to :action=>'error',:target=>target
return
end
export_object,fc_error=handler.process_export(@fc_exporter.stream,@fc_exporter.meta,format)
if(fc_error.kind_of?(Fusioncharts::Exporter::FcError))
Fusioncharts::Exporter::ErrorHandler.set_flash_err(fc_error,flash,is_html,@fc_exporter.meta)
redirect_to :action=>'error',:target=>target
return
end
logger.info("Processed using the Format Handler. Proceeding to download/save...")
ext =@fc_exporter.extension(format)
if(exportaction=="download")
mime_type = @fc_exporter.mime_type(ext)
logger.info("Setting mime type as "+mime_type)
headers["content-type"]=mime_type
if(target.downcase == "_self")
headers["Content-Disposition"]='attachment'
else
headers["Content-Disposition"]='inline'
end
headers["filename"]=" " + filename +"."+ ext
send_data(export_object, {:type => mime_type, :stream => true, :filename => " " + filename +"."+ ext})
else
complete_file_path,displayPath, notice = @fc_exporter.determine_path_to_save
handler.write_to_file(complete_file_path)
logger.info "Saved to location on server: "+displayPath
meta_values=Fusioncharts::Exporter::ErrorHandler.meta2qs(@fc_exporter.meta,displayPath)
render :text=>"statusCode=1&statusMessage=successful"+notice+meta_values
end
end