bmcdermott

Members
  • Content count

    2
  • Joined

  • Last visited

Everything posted by bmcdermott

  1. Hi Folks, We are evaluating Fusion charts for use in our Liferay portal. We want to use the javascript charts. We are having some trouble getting charts to render. We have downloaded the FusionCharts Suite XT. We have created a portlet and created the following view.jsp portlet. <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> <portlet:defineObjects /> <%String pathPrefix=renderRequest.getContextPath(); %> <body> <div id="chartContainer">FusionCharts XT will load here!</div> <script type="text/javascript"> FusionCharts.setCurrentRenderer('javascript'); var myChart = new FusionCharts( "Column3D", "myChartId", "400", "300" ); myChart.setXMLData("<chart caption='Weekly Sales Summary' xAxisName='Week' " + "yAxisName='Sales' numberPrefix='>" + "<set label='Week 1' value='14400' />" + "<set label='Week 2' value='19600' />" + "<set label='Week 3' value='24000' />" + "<set label='Week 4' value='15700' />" + "</chart>"); myChart.render("chartContainer"); </script> </body> Per Liferay best practices, I am allowing Liferay to load the javascript by referencing it in the liferay-portal.xml file as such: <?xml version="1.0"?> <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.1.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_1_0.dtd"> <liferay-portlet-app> <portlet> <portlet-name>fusion</portlet-name> <icon>/icon.png</icon> <instanceable>false</instanceable> <header-portlet-css>/css/main.css</header-portlet-css> <footer-portlet-javascript>/js/FusionCharts.js</footer-portlet-javascript> <footer-portlet-javascript>/js/FusionCharts.HC.js</footer-portlet-javascript> <footer-portlet-javascript>/js/FusionCharts.HC.Charts.js</footer-portlet-javascript> <footer-portlet-javascript>/js/jquery.min.js</footer-portlet-javascript> <css-class-wrapper>fusion-portlet</css-class-wrapper> </portlet> <role-mapper> <role-name>administrator</role-name> <role-link>Administrator</role-link> </role-mapper> <role-mapper> <role-name>guest</role-name> <role-link>Guest</role-link> </role-mapper> <role-mapper> <role-name>power-user</role-name> <role-link>Power User</role-link> </role-mapper> <role-mapper> <role-name>user</role-name> <role-link>User</role-link> </role-mapper> </liferay-portlet-app> I realize that this isn't a Liferay forum, but I figured including this info couldn't hurt. By allowing Liferay to handle this, you don't need to worry about getting the context right. I am 99% sure that the javascript is being loaded for two reasons, 1) the control renders at least a little (more below) 2) I can see it in the resulting source in Firebug. So I don't think the issue I am encountering is being caused by the way Liferay loads the js. What is happening?: When I load the portlet for the first time I get a white square with the message "Chart type not supported". If I refresh the portal page, the box disappears and I see the "FusionCharts XT will load here!" from the JSP above. The only way I can get the "Chart type not supported" message to come back is to delete the portlet and add it again. Any refresh and it returns to the "FusionCharts XT will load here!" message without the white square (which I am assuming is the javascript control partially rendering). Any problems in the js files I'm loading? Is my jsp code OK? Any recommendations for further troubleshooting? Finally, is anyone using Fusion charts successfully in Liferay? We are using version liferay-portal-6.1.1-ee-ga2. Thanks, Bob
  2. Fusion Js Not Rendering Correctly In Liferay

    Well I finally got it to work. The solution was to load both FusionCharts.HC.Charts.js and FusionCharts.js in the header; like this: <header-portlet-javascript>/js/FusionCharts.HC.Charts.js</header-portlet-javascript> <header-portlet-javascript>/js/FusionCharts.js</header-portlet-javascript> I tested this several times, when these js files are loaded in the footer, the javascript doesn't load as described in my original post. All of the other js files appear to just need to be in the portlets js folder. I'm not 100% sure which of these are required but these are the one I have in the working solution for a 3D bar chart. firebug-lite.js (probably optional) FusionCharts.HC.Charts.js FusionCharts.HC.js FusionCharts.jqueryplugin.js FusionCharts.js FusionChartsExportComponent.js jquery.min.js One important note, the FusionCharts.HC.Charts.js MUST be loaded before the FusionCharts.js file in Liferay-portlet.xml, or the "Chart type not supported" message is displayed. One other note, the highcharts.js file is not needed. I had read that it was in several Fusion documents. It must have been bundled into the FusionCharts.HC.Charts.js file (with HC indicating High Charts). Bob