$this->assign('hasYearlyChart', $yearlyChart);
$this->assign('hasByMonthChart', $monthlyChart);
$this->assign('hasChart', empty($chartData) ? FALSE : TRUE);
- $this->assign('ChartData', json_encode($chartData));
+ $this->assign('chartData', json_encode($chartData ?? []));
}
}
// assign chart data to template
$template = CRM_Core_Smarty::singleton();
$template->assign('uniqueId', $uniqueId);
- $template->assign("chartData", json_encode($theChart));
+ $template->assign("chartData", json_encode($theChart ?? []));
}
}
{if !$section}
{include file="CRM/common/chart.tpl" divId="chart_$uniqueId"}
{/if}
+ {if $chartData}
+ {literal}
+ <script type="text/javascript">
+ CRM.$(function($) {
+ // Build all charts.
+ var allData = {/literal}{$chartData}{literal};
- {literal}
- <script type="text/javascript">
- CRM.$(function($) {
- var allData = {/literal}{$chartData}{literal};
- buildChart( );
-
- $("input[id$='submit_print'],input[id$='submit_pdf']").bind('click', function(e){
- // image creator php file path and append image name
- var url = CRM.url('civicrm/report/chart', 'name=' + '{/literal}{$chartId}{literal}' + '.png');
-
- //fetch object and 'POST' image
- swfobject.getObjectById("chart_{/literal}{$uniqueId}{literal}").post_image(url, true, false);
- });
-
- function buildChart( ) {
$.each( allData, function( chartID, chartValues ) {
var divName = {/literal}"chart_{$uniqueId}"{literal};
createChart( chartID, divName, chartValues.size.xSize, chartValues.size.ySize, allData[chartID].object );
});
- }
- });
- </script>
- {/literal}
+ $("input[id$='submit_print'],input[id$='submit_pdf']").bind('click', function(e){
+ // image creator php file path and append image name
+ var url = CRM.url('civicrm/report/chart', 'name=' + '{/literal}{$chartId}{literal}' + '.png');
+
+ //fetch object and 'POST' image
+ swfobject.getObjectById("chart_{/literal}{$uniqueId}{literal}").post_image(url, true, false);
+ });
+ });
+
+ </script>
+ {/literal}
+ {/if}
{/if}
return;
}
- // Figure out width.
- var w=800;
- var h=400;
- if (div) {
- w = Math.min(div.clientWidth - 32, 800);
- h = Math.min(400, parseInt(w / 2));
- }
+ // Figure out suitable size based on container size.
+ var w = Math.min(div.clientWidth - 32, 800);
+ var h = Math.min(400, parseInt(w / 2));
var chartNode = document.createElement('div');
var heading = document.createElement('h2');
div.style.marginRight = 'auto';
var links = document.createElement('div');
+ links.style.textAlign = 'center';
+ links.style.marginBottom = '1rem';
var linkSVG = document.createElement('a');
linkSVG.href = '#';
linkSVG.textContent = 'Download chart (SVG)';
links.appendChild(linkSVG);
links.appendChild(document.createTextNode(' | '));
links.appendChild(linkPNG);
- //dlLink.dataset.downloadurl = [MIME_TYPE, dlLink.download, dlLink.href].join(':');
-
- div.appendChild(heading);
- div.appendChild(chartNode);
- div.appendChild(links);
var crossfilterData, ndx, dataDimension, dataGroup, chart;
ndx = crossfilter(data.values[0]);
.renderTitle(true);
}
// Delay rendering so that animation looks good.
- window.setTimeout(() => dc.renderAll(), 1500);
+ window.setTimeout(() => {
+ div.appendChild(heading);
+ div.appendChild(chartNode);
+ div.appendChild(links);
+
+ dc.renderAll();
+ }, 1500);
}
</script>
{/literal}