forked from eea/eea.googlecharts
-
Notifications
You must be signed in to change notification settings - Fork 13
/
inline-includes.pt
83 lines (75 loc) · 3.72 KB
/
inline-includes.pt
1
2
3
4
5
6
7
8
9
10
11
12
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
<link href="++resource++eea.googlecharts.view.css" rel="stylesheet" type="text/css"/>
<link href="++resource++eea.googlecharts.print.css" rel="stylesheet" type="text/css" media="print"/>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="++resource++json2.js"></script>
<script type="text/javascript" src="++resource++eea.googlecharts.embed_common.js"></script>
<script type="text/javascript" src="++resource++eea.googlecharts.chart.js"></script>
<script type="text/javascript" src="++resource++eea.googlecharts.datatable.js"></script>
<script type="text/javascript" src="++resource++eea.googlecharts.embed_chart.js"></script>
<script type="text/javascript" src="++resource++eea.googlecharts.embed_dashboard.js"></script>
<script type="text/javascript" src="++resource++eea.googlecharts.custom_filters.js"></script>
<script type="text/javascript" tal:condition="python:context.portal_membership.checkPermission('Modify portal content', context)"
tal:attributes="src string:${context/portal_url}/++resource++eea.googlecharts.inline_resize.js">
</script>
<script type="text/javascript">
jQuery.fn.scrollStopped = function(callback) {
$(this).scroll(function(){
var self = this, $this = $(self);
if ($this.data('scrollTimeout')) {
clearTimeout($this.data('scrollTimeout'));
}
$this.data('scrollTimeout', setTimeout(callback,500,self));
});
};
jQuery(window).scrollStopped(function(){
function isScrolledIntoView(elem){
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemTop <= docViewBottom) && (elemTop >= docViewTop)) || ((elemBottom <= docViewBottom) && (elemBottom >= docViewTop));
}
jQuery.each(jQuery('.embedded-dashboard:visible'), function(idx, elem){
if (isScrolledIntoView(elem)){
if (jQuery(elem).hasClass('not_visible')){
jQuery(elem).removeClass('not_visible');
if (jQuery(elem).hasClass('isChart')){
var $elem = jQuery(elem);
var vhash = elem.id.split('_')[2];
eval('gl_charts[\'googlechart_view_' + vhash + '\'] = drawChart(jQuery(elem).data(\'settings\'), jQuery(elem).data(\'other_options\')).chart;');
}
else{
drawDashboardEmbed(jQuery(elem).data('settings'));
}
jQuery(elem).trigger('eea.embed.loaded');
}
}
});
});
// disable fix from #119540 disable chart resize on window resize
jQuery(document).ready(function(){
var charts = jQuery('.embedded-dashboard');
jQuery(window).resize(_.debounce(function(ev, data) {
var elems = data ? [data['obj']] : charts;
jQuery.each(elems, function(idx, elem){
var $elem = jQuery(elem);
var vhash = elem.id.split('_')[2];
var resize_chart_func = window['resize_chart_' + vhash];
if (resize_chart_func && $.isFunction(resize_chart_func)) {
resize_chart_func($elem);
}
});
}));
charts.bind('eea.embed.loaded', function(ev){
jQuery(window).trigger('resize', {obj: ev.target});
});
jQuery('.embedded-daviz-visualization ul.formTabs a').click(function(){
var $elem = jQuery("#fieldset-"+jQuery(this).attr("id").substr(15) + ' .embedded-dashboard');
$elem.trigger('eea.embed.loaded');
// var $chart = $elem.find('.googlechart_view');
// if (!$chart.length || $elem.width() > $chart.width()){
// $elem.trigger('eea.embed.loaded');
// }
});
});
</script>