Skip to content

Commit c03bc99

Browse files
committed
adding order buckets by value option to point series charts
1 parent b6bcd55 commit c03bc99

6 files changed

Lines changed: 28 additions & 6 deletions

File tree

src/core_plugins/kbn_vislib_vis_types/public/controls/point_series_options.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,11 @@
4545
Scale Y-Axis to Data Bounds
4646
</label>
4747
</div>
48+
<div class="vis-option-item">
49+
<label>
50+
<input type="checkbox" ng-model="vis.params.sortBuckets">
51+
Sort buckets by value
52+
</label>
53+
</div>
4854
</div>
4955
</div>

src/ui/public/vislib/__tests__/components/zero_injection.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,22 @@ describe('Vislib Zero Injection Module Test Suite', function () {
408408
});
409409

410410
it('should return an array of values in the correct order', function () {
411+
expect(results[0]).to.be('1');
412+
expect(results[1]).to.be('2');
413+
expect(results[2]).to.be('3');
414+
expect(results[3]).to.be('4');
415+
expect(results[4]).to.be('5');
416+
expect(numberedResults[0]).to.be(1);
417+
expect(numberedResults[1]).to.be(2);
418+
expect(numberedResults[2]).to.be(3);
419+
expect(numberedResults[3]).to.be(4);
420+
expect(numberedResults[4]).to.be(5);
421+
});
422+
423+
it('should return an array of values in the correct order when orderBuckets is set', function () {
424+
let orderBuckets = true;
425+
results = orderXValues(multiSeriesData, orderBuckets);
426+
411427
expect(results[0]).to.be('3');
412428
expect(results[1]).to.be('1');
413429
expect(results[2]).to.be('4');

src/ui/public/vislib/components/zero_injection/inject_zeros.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ export default function ZeroInjectionUtilService(Private) {
2929
}
3030
}
3131

32-
return function (obj) {
32+
return function (obj, sortBuckets = false) {
3333
if (!_.isObject(obj) || !obj.rows && !obj.columns && !obj.series) {
3434
throw new TypeError('ZeroInjectionUtilService expects an object with a series, rows, or columns key');
3535
}
3636

37-
const keys = orderXValues(obj);
37+
const keys = orderXValues(obj, sortBuckets);
3838
const arr = getDataArray(obj);
3939

4040
arr.forEach(function (object) {

src/ui/public/vislib/components/zero_injection/ordered_x_keys.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default function OrderedXKeysUtilService(Private) {
1111
* else values sorted by index
1212
*/
1313

14-
return function (obj) {
14+
return function (obj, sortBuckets = false) {
1515
if (!_.isObject(obj)) {
1616
throw new Error('OrderedXKeysUtilService expects an object');
1717
}
@@ -27,7 +27,7 @@ export default function OrderedXKeysUtilService(Private) {
2727
if (d[1].isDate || d[1].isOrdered) {
2828
return +d[0];
2929
}
30-
return -d[1].sum;
30+
return sortBuckets ? -d[1].sum : d[1].index;
3131
})
3232
.map(function (d, i, list) {
3333
if (!d[1].isNumber) return d[0];

src/ui/public/vislib/lib/data.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@ export default function DataFactory(Private) {
601601
* @returns {Array} Array of x axis values
602602
*/
603603
xValues() {
604-
return orderKeys(this.data);
604+
return orderKeys(this.data, this._attr.sortBuckets);
605605
};
606606

607607
/**

src/ui/public/vislib/lib/handler/types/point_series.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export default function ColumnHandler(Private) {
1919

2020
function getData(vis, opts) {
2121
if (opts.zeroFill) {
22-
return new Data(injectZeros(vis.data), vis._attr, vis.uiState);
22+
return new Data(injectZeros(vis.data, vis._attr.sortBuckets), vis._attr, vis.uiState);
2323
} else {
2424
return new Data(vis.data, vis._attr, vis.uiState);
2525
}

0 commit comments

Comments
 (0)