Skip to content

Commit 3715b1d

Browse files
WIP format columns
1 parent 578b7b5 commit 3715b1d

File tree

2 files changed

+57
-33
lines changed

2 files changed

+57
-33
lines changed

classes/Visualizer/Render/Sidebar/Type/DataTable.php

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ protected function _toHTML() {
115115
$this->_supportsAnimation = false;
116116
$this->_renderGeneralSettings();
117117
$this->_renderTableSettings();
118-
$this->_renderSeriesSettings();
118+
// $this->_renderColumnSettings();
119119
$this->_renderAdvancedSettings();
120120
}
121121

@@ -350,17 +350,6 @@ protected function _renderTableSettings() {
350350
self::_renderGroupEnd();
351351
}
352352

353-
/**
354-
* Renders concreate series settings.
355-
*
356-
* @since 1.4.0
357-
*
358-
* @access protected
359-
* @param int $index The series index.
360-
*/
361-
protected function _renderSeries( $index ) {
362-
$this->_renderFormatField( $index );
363-
}
364353

365354
/**
366355
* Renders combo series settings
@@ -369,8 +358,16 @@ protected function _renderSeries( $index ) {
369358
*
370359
* @access protected
371360
*/
372-
protected function _renderSeriesSettings() {
373-
361+
protected function _renderColumnSettings() {
362+
self::_renderGroupStart( esc_html__( 'Column Settings', 'visualizer' ) );
363+
for ( $i = 0, $cnt = count( $this->__series ) - 1; $i < $cnt; $i++ ) {
364+
if ( ! empty( $this->__series[ $i ]['label'] ) ) {
365+
self::_renderSectionStart( esc_html( $this->__series[ $i ]['label'] ), false );
366+
$this->_renderFormatField( $i );
367+
self::_renderSectionEnd();
368+
}
369+
}
370+
self::_renderGroupEnd();
374371
}
375372

376373
}

js/render-datatables.js

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
}
1010

1111
function renderSpecificChart(id, chart, v) {
12-
var render, container, series, data, table, settings, i, j, row, date, axis, property, format, formatter;
12+
var render, container, series, data, table, settings, i, j, row, date, axis, property, format, formatter, type, rows, cols;
1313

1414
if(chart.library !== 'datatables'){
1515
return;
@@ -27,24 +27,6 @@
2727
$('#' + id).append($('<table class="dataTable table table-striped"></table>'));
2828
}
2929

30-
var cols = [];
31-
for (j = 0; j < series.length; j++) {
32-
var col = { title: series[j].label, data: series[j].label, type: series[j].type };
33-
if(typeof chart.settings['cssClassNames'] !== 'undefined' && typeof chart.settings['cssClassNames']['tableCell'] !== 'undefined'){
34-
col['className'] = chart.settings['cssClassNames']['tableCell'];
35-
}
36-
cols.push(col);
37-
}
38-
39-
var rows = [];
40-
for (i = 0; i < data.length; i++) {
41-
row = [];
42-
for (j = 0; j < series.length; j++) {
43-
row[ series[j].label ] = data[i][j];
44-
}
45-
rows.push(row);
46-
}
47-
4830
settings = {
4931
destroy: true,
5032
paging: false,
@@ -125,6 +107,39 @@
125107

126108
$.extend( $.fn.dataTable.defaults, settings );
127109

110+
cols = [];
111+
for (j = 0; j < series.length; j++) {
112+
type = series[j].type;
113+
switch(type){
114+
case 'number':
115+
type = 'num';
116+
break;
117+
case 'date':
118+
case 'datetime':
119+
case 'timeofday':
120+
type = 'date';
121+
break;
122+
}
123+
var col = { title: series[j].label, data: series[j].label, type: type };
124+
if(typeof chart.settings['cssClassNames'] !== 'undefined' && typeof chart.settings['cssClassNames']['tableCell'] !== 'undefined'){
125+
col['className'] = chart.settings['cssClassNames']['tableCell'];
126+
}
127+
cols.push(col);
128+
}
129+
130+
rows = [];
131+
for (i = 0; i < data.length; i++) {
132+
row = [];
133+
for (j = 0; j < series.length; j++) {
134+
var datum = data[i][j];
135+
if(typeof settings.series[j] !== 'undefined' && typeof settings.series[j].format !== 'undefined'){
136+
datum = formatData(data[i][j], settings.series[j].type, settings.series[j].format);
137+
}
138+
row[ series[j].label ] = datum;
139+
}
140+
rows.push(row);
141+
}
142+
128143
// allow user to extend the settings.
129144
$('body').trigger('visualizer:chart:settings:extend', {id: id, chart: chart, settings: settings});
130145

@@ -137,6 +152,18 @@
137152
$('.loader').remove();
138153
}
139154

155+
function formatData(datum, type, format){
156+
switch(type){
157+
case 'number':
158+
break;
159+
case 'date':
160+
case 'datetime':
161+
case 'timeofday':
162+
break;
163+
}
164+
return datum;
165+
}
166+
140167
function render(v) {
141168
for (var id in (all_charts || {})) {
142169
renderChart(id, v);

0 commit comments

Comments
 (0)