1 function create_chart(headers, results, x_element, y_elements, y_groups, options) {
3 var type = options.type;
4 var horizontal = options.horizontal;
5 var lines = options.lines;
10 var columns = build_columns(headers, results, x_element, y_elements);
11 var groups = build_group(y_elements, y_groups);
12 var x_values = build_xvalues(headers, results, x_element);
29 var columns = build_pie_columns(headers, results, x_element);
39 $.each(lines, function(index, value) {
40 types[value] = 'line';
49 var chart = c3.generate({
58 function build_pie_columns(headers, results, x_element) {
62 //Get x_element index.
63 $.each(headers, function(index, value) {
64 if (value.cell == x_element) {
69 $.each(results, function(index, value) {
70 var cells = value.cells;
71 $.each( cells, function(i, value) {
73 columns[index] = [value.cell];
76 $.each( cells, function(i, value) {
78 columns[index].push(value.cell);
86 function build_xvalues(headers, results, x_element) {
90 //Get x_element index.
91 $.each(headers, function(index, value) {
92 if (value.cell == x_element) {
97 $.each( results, function (i, value) {
98 var cells = value.cells;
99 $.each( cells, function(index, value) {
100 if (index == h_index) {
101 x_values.push(value.cell);
110 function build_group(y_elements, y_groups) {
111 var groups_hash = {};
114 $.each(y_groups, function(index, value) {
115 var related_y = y_elements.shift();
116 if (!$.isArray(groups_hash[value])) {
117 groups_hash[value] = [];
119 groups_hash[value].push(related_y);
122 $.each(groups_hash, function(key, value) {
123 if (value.length !== 0) {
131 function build_columns(headers, results, x_element, y_elements) {
133 var header_index = [];
136 // Keep order of headers using array index.
137 $.each( headers, function(index, value) {
138 if (value.cell == x_element) {
141 header_index.push(value.cell)
144 $.each( y_elements, function(index, element) {
145 y_values[element] = [element];
148 $.each( results, function (i, value) {
149 var cells = value.cells;
150 $.each( cells, function(index, value) {
151 if (index != x_index) {
152 y_values[header_index[index]].push(value.cell);
158 $.each( y_values, function(key, value) {