Skip to content

Commit ced8bd3

Browse files
committed
fix unique minichart selections for numbers
also fix bug where order of range bounds was ignored
1 parent c3c2e7a commit ced8bd3

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

src/minicharts/querybuilder.js

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,9 @@ module.exports = {
194194
var uiElements = this.queryAll('.selectable');
195195
_.each(uiElements, function(el) {
196196
var elData = el.innerText || d3.select(el).data()[0].value;
197+
if (this.model.getType() === 'Number') {
198+
elData = parseFloat(elData, 10);
199+
}
197200
if (_.contains(this.selectedValues, elData)) {
198201
el.classList.add('selected');
199202
el.classList.remove('unselected');
@@ -373,13 +376,21 @@ module.exports = {
373376
*/
374377
_getRangeBoundsHelper: function() {
375378
var getOrderedValueHelper = this._getOrderedValueHelper.bind(this);
376-
377-
var lower = _.min(this.selectedValues, function(el) {
378-
return getOrderedValueHelper(el);
379-
});
380-
var upper = _.max(this.selectedValues, function(el) {
381-
return getOrderedValueHelper(el);
382-
});
379+
var lower;
380+
var upper;
381+
if (this.model.getType() === 'Number') {
382+
// numbers are ordered
383+
lower = _.first(this.selectedValues);
384+
upper = _.last(this.selectedValues);
385+
} else {
386+
// dates and objectids are not ordered
387+
lower = _.min(this.selectedValues, function(el) {
388+
return getOrderedValueHelper(el);
389+
});
390+
upper = _.max(this.selectedValues, function(el) {
391+
return getOrderedValueHelper(el);
392+
});
393+
}
383394

384395
// find out if data is binned or not
385396
var uiElements = this.queryAll('.selectable');

src/minicharts/unique.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ module.exports = VizView.extend({
4040
event.preventDefault();
4141
}
4242
this.render();
43+
// re-apply selections after refresh
44+
this.parent.updateUI_distinct();
4345
},
4446
stopTimer: function() {
4547
clearInterval(this.timer);

0 commit comments

Comments
 (0)