| <#-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <script language="javascript" type="text/javascript" src="<@ofbizContentUrl>/images/jquery/plugins/flot/excanvas.min.js</@ofbizContentUrl>"></script> |
| <script language="javascript" type="text/javascript" src="<@ofbizContentUrl>/images/jquery/plugins/flot/jquery.flot.js</@ofbizContentUrl>"></script> |
| |
| <div id="${chartId}Div" style="width:600px;height:300px;"></div> |
| |
| <script type="text/javascript"> |
| jQuery(document).ready( function() { |
| /* Code Example: How should a chart Data Object look like */ |
| /*var d1 = [[0, Math.ceil(Math.random()*40)]]; |
| var d2 = [[1, Math.ceil(Math.random()*30)]]; |
| var d3 = [[2, Math.ceil(Math.random()*20)]]; |
| var d4 = [[3, Math.ceil(Math.random()*10)]]; |
| var d5 = [[4, Math.ceil(Math.random()*10)]]; |
| var data = [ |
| {data:d1, label: 'Comedy'}, |
| {data:d2, label: 'Action'}, |
| {data:d3, label: 'Romance'}, |
| {data:d4, label: 'Drama'}, |
| {data:d5, label: 'Other'} |
| ];*/ |
| /* End Example */ |
| |
| var labelsAsText = "${labelsText}"; |
| var labels = []; |
| labels = labelsAsText.split(","); |
| |
| var dataAsText = "${dataText}"; |
| var chartData = []; |
| chartData = dataAsText.split(','); |
| |
| var allData = []; |
| var y = 0; |
| for(var i=0; i<chartData.length-1 ; i=i+2) { |
| var coordinates = [chartData[i], chartData[i+1]]; |
| allData[y] = {label: labels[y], data: [coordinates]}; |
| y++; |
| } |
| |
| var options = { |
| series: { |
| bars: {show: true, barWidth: 0.9,steps: 2, align: 'center',} |
| }, |
| grid: { hoverable: true, autoHighlight: true }, |
| }; |
| |
| jQuery.plot(jQuery("#${chartId}Div"), allData, options); |
| |
| // function to show the mouse hover tooltip effect |
| var previousPoint = null; |
| jQuery("#${chartId}Div").bind("plothover", function (event, pos, item) { |
| if (item) { |
| if (previousPoint != item.datapoint) { |
| previousPoint = item.datapoint; |
| |
| jQuery("#tooltip").remove(); |
| var x = item.datapoint[0], |
| y = item.datapoint[1] - item.datapoint[2]; |
| |
| showTooltip(item.pageX, item.pageY, x + "/" + y + " " + item.series.label); |
| } |
| } |
| else { |
| jQuery("#tooltip").remove(); |
| previousPoint = null; |
| } |
| }); |
| |
| // TODO make a nice looking tooltip |
| function showTooltip(x, y, contents) { |
| var tooltip = jQuery('div#tooltip').length > 0 ? jQuery('div#tooltip').html(contents) : jQuery('<div id="tooltip" calss="tooltip">' + contents + '</div>').appendTo("body"); |
| var padding = 10, |
| left = x + padding, |
| top = y + padding; |
| |
| tooltip.css( { |
| position: 'absolute', |
| top: top, |
| left: left, |
| 'z-index': 100000, |
| opacity: 0.80 |
| }).show(); |
| } |
| |
| }); |
| </script> |