|
@@ -1724,7 +1724,7 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
</ul>
|
|
</ul>
|
|
|
|
|
|
|
|
<div style="overflow-y: auto; max-height: 220px" data-bind="visible: chartType() != '' && ((chartType() == ko.HUE_CHARTS.TYPES.BARCHART && !chartXPivot()) || chartType() == ko.HUE_CHARTS.TYPES.LINECHART || chartType() == ko.HUE_CHARTS.TYPES.TIMELINECHART)">
|
|
<div style="overflow-y: auto; max-height: 220px" data-bind="visible: chartType() != '' && ((chartType() == ko.HUE_CHARTS.TYPES.BARCHART && !chartXPivot()) || chartType() == ko.HUE_CHARTS.TYPES.LINECHART || chartType() == ko.HUE_CHARTS.TYPES.TIMELINECHART)">
|
|
|
- <ul class="unstyled" data-bind="foreach: result.cleanedNumericMeta">
|
|
|
|
|
|
|
+ <ul class="unstyled" data-bind="foreach: result.cleanedNumericMeta" style="margin-bottom: 0">
|
|
|
<li><label class="checkbox"><input type="checkbox" data-bind="checkedValue: name, checked: $parent.chartYMulti" /> <span data-bind="text: $data.name"></span></label></li>
|
|
<li><label class="checkbox"><input type="checkbox" data-bind="checkedValue: name, checked: $parent.chartYMulti" /> <span data-bind="text: $data.name"></span></label></li>
|
|
|
</ul>
|
|
</ul>
|
|
|
</div>
|
|
</div>
|
|
@@ -1740,6 +1740,13 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
<select data-bind="options: result.cleanedMeta, value: chartXPivot, optionsText: 'name', optionsValue: 'name', optionsCaption: '${_ko('Choose a column to pivot...')}', select2: { width: '100%', placeholder: '${ _ko("Choose a column to pivot...") }', update: chartXPivot, dropdownAutoWidth: true}" class="input-medium"></select>
|
|
<select data-bind="options: result.cleanedMeta, value: chartXPivot, optionsText: 'name', optionsValue: 'name', optionsCaption: '${_ko('Choose a column to pivot...')}', select2: { width: '100%', placeholder: '${ _ko("Choose a column to pivot...") }', update: chartXPivot, dropdownAutoWidth: true}" class="input-medium"></select>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
+ <ul class="nav nav-list" style="border: none; background-color: #FFF">
|
|
|
|
|
+ <li class="nav-header">${_('limit')}</li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <select data-bind="options: chartLimits, value: chartLimit, optionsCaption: '${_ko('Limit the number of results to...')}', select2: { width: '100%', placeholder: '${ _ko("Limit the number of results to...") }', update: chartLimit, dropdownAutoWidth: true}" class="input-medium"></select>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
<!-- ko if: chartType() != '' && chartType() == ko.HUE_CHARTS.TYPES.MAP -->
|
|
<!-- ko if: chartType() != '' && chartType() == ko.HUE_CHARTS.TYPES.MAP -->
|
|
|
<ul class="nav nav-list" style="border: none; background-color: #FFF">
|
|
<ul class="nav nav-list" style="border: none; background-color: #FFF">
|
|
|
<li class="nav-header">${_('type')}</li>
|
|
<li class="nav-header">${_('type')}</li>
|
|
@@ -1909,37 +1916,37 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
|
|
|
|
|
<div data-bind="visible: hasDataForChart">
|
|
<div data-bind="visible: hasDataForChart">
|
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.PIECHART -->
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.PIECHART -->
|
|
|
- <div data-bind="attr:{'id': 'pieChart_'+id()}, pieChart: {data: {counts: result.data, sorting: chartSorting(), snippet: $data}, fqs: ko.observableArray([]),
|
|
|
|
|
|
|
+ <div data-bind="attr:{'id': 'pieChart_'+id()}, pieChart: {data: {counts: result.data, sorting: chartSorting(), snippet: $data, limit: chartLimit()}, fqs: ko.observableArray([]),
|
|
|
transformer: pieChartDataTransformer, maxWidth: 350, parentSelector: '.chart-container' }, visible: chartType() == ko.HUE_CHARTS.TYPES.PIECHART" class="chart"></div>
|
|
transformer: pieChartDataTransformer, maxWidth: 350, parentSelector: '.chart-container' }, visible: chartType() == ko.HUE_CHARTS.TYPES.PIECHART" class="chart"></div>
|
|
|
<!-- /ko -->
|
|
<!-- /ko -->
|
|
|
|
|
|
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.BARCHART -->
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.BARCHART -->
|
|
|
- <div data-bind="attr:{'id': 'barChart_'+id()}, barChart: {skipWindowResize: true, datum: {counts: result.data, sorting: chartSorting(), snippet: $data}, fqs: ko.observableArray([]), hideSelection: true,
|
|
|
|
|
|
|
+ <div data-bind="attr:{'id': 'barChart_'+id()}, barChart: {skipWindowResize: true, datum: {counts: result.data, sorting: chartSorting(), snippet: $data, limit: chartLimit()}, fqs: ko.observableArray([]), hideSelection: true,
|
|
|
transformer: multiSerieDataTransformer, stacked: false, showLegend: true, isPivot: typeof chartXPivot() !== 'undefined'}, stacked: true, showLegend: true, visible: chartType() == ko.HUE_CHARTS.TYPES.BARCHART" class="chart"></div>
|
|
transformer: multiSerieDataTransformer, stacked: false, showLegend: true, isPivot: typeof chartXPivot() !== 'undefined'}, stacked: true, showLegend: true, visible: chartType() == ko.HUE_CHARTS.TYPES.BARCHART" class="chart"></div>
|
|
|
<!-- /ko -->
|
|
<!-- /ko -->
|
|
|
|
|
|
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.LINECHART -->
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.LINECHART -->
|
|
|
- <div data-bind="attr:{'id': 'lineChart_'+id()}, lineChart: {datum: {counts: result.data, sorting: chartSorting(), snippet: $data},
|
|
|
|
|
|
|
+ <div data-bind="attr:{'id': 'lineChart_'+id()}, lineChart: {datum: {counts: result.data, sorting: chartSorting(), snippet: $data, limit: chartLimit()},
|
|
|
transformer: multiSerieDataTransformer, showControls: false, enableSelection: false }, visible: chartType() == ko.HUE_CHARTS.TYPES.LINECHART" class="chart"></div>
|
|
transformer: multiSerieDataTransformer, showControls: false, enableSelection: false }, visible: chartType() == ko.HUE_CHARTS.TYPES.LINECHART" class="chart"></div>
|
|
|
<!-- /ko -->
|
|
<!-- /ko -->
|
|
|
|
|
|
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.TIMELINECHART -->
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.TIMELINECHART -->
|
|
|
- <div data-bind="attr:{'id': 'timelineChart_'+id()}, timelineChart: {type: chartTimelineType, skipWindowResize: true, datum: {counts: result.data, sorting: chartSorting(), snippet: $data}, fqs: ko.observableArray([]), hideSelection: true,
|
|
|
|
|
|
|
+ <div data-bind="attr:{'id': 'timelineChart_'+id()}, timelineChart: {type: chartTimelineType, skipWindowResize: true, datum: {counts: result.data, sorting: chartSorting(), snippet: $data, limit: chartLimit()}, fqs: ko.observableArray([]), hideSelection: true,
|
|
|
transformer: timelineChartDataTransformer, stacked: false, showLegend: true}, hideSelection: true, visible: chartType() == ko.HUE_CHARTS.TYPES.TIMELINECHART" class="chart"></div>
|
|
transformer: timelineChartDataTransformer, stacked: false, showLegend: true}, hideSelection: true, visible: chartType() == ko.HUE_CHARTS.TYPES.TIMELINECHART" class="chart"></div>
|
|
|
<!-- /ko -->
|
|
<!-- /ko -->
|
|
|
|
|
|
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.MAP -->
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.MAP -->
|
|
|
- <div data-bind="attr:{'id': 'leafletMapChart_'+id()}, leafletMapChart: {datum: {counts: result.data, sorting: chartSorting(), snippet: $data},
|
|
|
|
|
|
|
+ <div data-bind="attr:{'id': 'leafletMapChart_'+id()}, leafletMapChart: {datum: {counts: result.data, sorting: chartSorting(), snippet: $data, limit: chartLimit()},
|
|
|
transformer: leafletMapChartDataTransformer, showControls: false, height: 380, visible: chartType() == ko.HUE_CHARTS.TYPES.MAP, forceRedraw: true}" class="chart"></div>
|
|
transformer: leafletMapChartDataTransformer, showControls: false, height: 380, visible: chartType() == ko.HUE_CHARTS.TYPES.MAP, forceRedraw: true}" class="chart"></div>
|
|
|
<!-- /ko -->
|
|
<!-- /ko -->
|
|
|
|
|
|
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.GRADIENTMAP -->
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.GRADIENTMAP -->
|
|
|
- <div data-bind="attr:{'id': 'gradientMapChart_'+id()}, mapChart: {data: {counts: result.data, sorting: chartSorting(), snippet: $data, scope: chartScope()},
|
|
|
|
|
|
|
+ <div data-bind="attr:{'id': 'gradientMapChart_'+id()}, mapChart: {data: {counts: result.data, sorting: chartSorting(), snippet: $data, scope: chartScope(), limit: chartLimit()},
|
|
|
transformer: mapChartDataTransformer, isScale: true, showControls: false, height: 380, maxWidth: 750, parentSelector: '.chart-container', visible: chartType() == ko.HUE_CHARTS.TYPES.GRADIENTMAP}" class="chart"></div>
|
|
transformer: mapChartDataTransformer, isScale: true, showControls: false, height: 380, maxWidth: 750, parentSelector: '.chart-container', visible: chartType() == ko.HUE_CHARTS.TYPES.GRADIENTMAP}" class="chart"></div>
|
|
|
<!-- /ko -->
|
|
<!-- /ko -->
|
|
|
|
|
|
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.SCATTERCHART -->
|
|
<!-- ko if: chartType() == ko.HUE_CHARTS.TYPES.SCATTERCHART -->
|
|
|
- <div data-bind="attr:{'id': 'scatterChart_'+id()}, scatterChart: {datum: {counts: result.data, snippet: $data},
|
|
|
|
|
|
|
+ <div data-bind="attr:{'id': 'scatterChart_'+id()}, scatterChart: {datum: {counts: result.data, snippet: $data, limit: chartLimit()},
|
|
|
transformer: scatterChartDataTransformer, maxWidth: 350, y: chartYSingle(), x: chartX(), size: chartScatterSize(), group: chartScatterGroup() }, visible: chartType() == ko.HUE_CHARTS.TYPES.SCATTERCHART" class="chart"></div>
|
|
transformer: scatterChartDataTransformer, maxWidth: 350, y: chartYSingle(), x: chartX(), size: chartScatterSize(), group: chartScatterGroup() }, visible: chartType() == ko.HUE_CHARTS.TYPES.SCATTERCHART" class="chart"></div>
|
|
|
<!-- /ko -->
|
|
<!-- /ko -->
|
|
|
</div>
|
|
</div>
|
|
@@ -2783,6 +2790,10 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ if (rawDatum.snippet.chartLimit()) {
|
|
|
|
|
+ _data = _data.slice(1, rawDatum.snippet.chartLimit() + 1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return _data;
|
|
return _data;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2811,6 +2822,10 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ if (rawDatum.snippet.chartLimit()) {
|
|
|
|
|
+ _data = _data.slice(1, rawDatum.snippet.chartLimit() + 1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return _data;
|
|
return _data;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2868,6 +2883,11 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ if (rawDatum.snippet.chartLimit()) {
|
|
|
|
|
+ _data = _data.slice(1, rawDatum.snippet.chartLimit() + 1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return _data;
|
|
return _data;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2914,6 +2934,9 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
return b.y - a.y
|
|
return b.y - a.y
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
+ if (rawDatum.snippet.chartLimit()) {
|
|
|
|
|
+ _data = _data.slice(1, rawDatum.snippet.chartLimit() + 1);
|
|
|
|
|
+ }
|
|
|
_datum.push({
|
|
_datum.push({
|
|
|
key: col,
|
|
key: col,
|
|
|
values: _data
|
|
values: _data
|
|
@@ -2981,6 +3004,9 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
return b.y - a.y
|
|
return b.y - a.y
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
+ if (rawDatum.snippet.chartLimit()) {
|
|
|
|
|
+ _data = _data.slice(1, rawDatum.snippet.chartLimit() + 1);
|
|
|
|
|
+ }
|
|
|
_datum.push({
|
|
_datum.push({
|
|
|
key: hueUtils.html2text(val),
|
|
key: hueUtils.html2text(val),
|
|
|
values: _data
|
|
values: _data
|
|
@@ -3047,6 +3073,9 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
return b.y - a.y
|
|
return b.y - a.y
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
+ if (rawDatum.snippet.chartLimit()) {
|
|
|
|
|
+ _data = _data.slice(1, rawDatum.snippet.chartLimit() + 1);
|
|
|
|
|
+ }
|
|
|
_datum.push({
|
|
_datum.push({
|
|
|
key: col,
|
|
key: col,
|
|
|
values: _data
|
|
values: _data
|
|
@@ -3099,6 +3128,9 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+ if (rawDatum.snippet.chartLimit()) {
|
|
|
|
|
+ _data = _data.slice(1, rawDatum.snippet.chartLimit() + 1);
|
|
|
|
|
+ }
|
|
|
_datum.push({
|
|
_datum.push({
|
|
|
key: col,
|
|
key: col,
|
|
|
values: _data
|
|
values: _data
|