13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/anychart/anychart_helpers.rb', line 13
def anychart(xml, options={})
random_hex = ActiveSupport::SecureRandom.hex
default_options = {
:anychart_swf_path => '/anychart/swf/AnyChart.swf',
:anychart_swf_preloader => '/anychart/swf/Preloader.swf',
:wrap_id => "anychart_wrap_#{random_hex}",
:wrap_class => "anychart_wrap",
:id => "anychart_graph_#{random_hex}",
:class => "anychart_graph",
:background_color => "#999999",
:wMode => "transparent",
:chart_height => "100%",
:chart_width => "100%",
:classid => "clsid:CLA_#{random_hex}",
:js_chart_name => "chart_#{random_hex}",
:show_get_flash_player_message => true
}
opts = default_options.merge(options)
chart_height = opts[:chart_height].kind_of?(String) ? opts[:chart_height] : "#{opts[:chart_height]}px"
chart_width = opts[:chart_width].kind_of?(String) ? opts[:chart_width] : "#{opts[:chart_width]}px"
get_flash_player_message = "<script type='text/javascript' charset='utf-8'>
//<![CDATA[
document.write(\"<center>\");
document.write(\"Precisa do Adobe Flash Player 9 (ou superior) para visualizar o gráfico.<br /><br />\");
document.write(\"<a href='http://www.adobe.com/go/getflashplayer'><img border='0' src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' /></a><br />\");
document.write(\"</center>\");
//]]>
</script>".html_safe
"<div class='#{opts[:wrap_class]}' id='#{opts[:wrap_id]}'>
<div class='#{opts[:class]}' id='#{opts[:id]}'>
<noscript>
<object id='obj_#{opts[:id]}'
name='obj_#{opts[:id]}'
classid='clsid:#{opts[:classid]}'
width='100%'
height='100%'
codebase='http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab'>
<param name='movie' value='#{opts[:anychart_swf_preloader]}' />
<param name='bgcolor' value='#{opts[:background_color]}' />
<param name='allowScriptAccess' value='always' />
<param name='flashvars' value='swfFile=#{opts[:anychart_swf_path]}&XMLFile=#{xml}' />
<embed type='application/x-shockwave-flash'
pluginspage='http://www.adobe.com/go/getflashplayer'
src='#{opts[:anychart_swf_preloader]}'
id='obj_#{opts[:id]}'
name='obj_#{opts[:id]}'
bgColor='#{opts[:background_color]}'
allowScriptAccess='always'
flashvars='swfFile=#{opts[:anychart_swf_path]}&XMLFile=#{xml}'
</embed>
</object>
</noscript>
#{get_flash_player_message if opts[:show_get_flash_player_message] }
</div>
</div>
<script type='text/javascript' language='javascript'>
//<![CDATA[
var #{opts[:js_chart_name]} = new AnyChart('#{opts[:anychart_swf_path]}','#{opts[:anychart_swf_preloader]}');
#{opts[:js_chart_name]}.width = \"#{chart_width}\";
#{opts[:js_chart_name]}.height = \"#{chart_height}\";
#{opts[:js_chart_name]}.setXMLFile(\"#{xml}\");
#{opts[:js_chart_name]}.wMode = 'transparent';
#{opts[:js_chart_name]}.write(\"#{opts[:id]}\");
//]]>
</script>".html_safe
end
|