[visualize/editor] properly filter multi-value metric aggs from orderByAgg

This commit is contained in:
Spencer Alger 2015-02-18 11:51:52 -07:00
parent 1ed7b50d26
commit b6308b9c6d
4 changed files with 19 additions and 15 deletions

View file

@ -12,7 +12,7 @@ define(function (require) {
group: 'none', group: 'none',
name: 'orderAgg', name: 'orderAgg',
title: 'Order Agg', title: 'Order Agg',
aggFilter: '!percentiles' aggFilter: ['!percentiles', '!std_dev']
} }
])).all[0]; ])).all[0];

View file

@ -24,26 +24,30 @@ define(function (require) {
if (!_.isArray(filters)) filters = filters.split(','); if (!_.isArray(filters)) filters = filters.split(',');
if (_.contains(filters, '*')) return list; if (_.contains(filters, '*')) return list;
filters = filters.map(function (filter) { var options = filters.reduce(function (options, filter) {
var match = true; var type = 'include';
var value = filter; var value = filter;
if (filter.charAt(0) === '!') { if (filter.charAt(0) === '!') {
match = false; type = 'exclude';
value = filter.substr(1); value = filter.substr(1);
} }
return { if (!options[type]) options[type] = [];
match: match, options[type].push(value);
value: value return options;
}; }, {});
});
return list.filter(function (item) { return list.filter(function (item) {
for (var i = 0; i < filters.length; i++) { var value = item[prop];
var filter = filters[i];
if ((item[prop] === filter.value) === filter.match) return true; var excluded = options.exclude && _.contains(options.exclude, value);
} if (excluded) return false;
var included = !options.include || _.contains(options.include, value);
if (included) return true;
return false;
}); });
}; };
} }

View file

@ -28,7 +28,7 @@ define(function (require) {
name: 'metric', name: 'metric',
title: 'Y-Axis', title: 'Y-Axis',
min: 1, min: 1,
aggFilter: '!std_deviation', aggFilter: '!std_dev',
defaults: [ defaults: [
{ schema: 'metric', type: 'count' } { schema: 'metric', type: 'count' }
] ]

View file

@ -26,7 +26,7 @@ define(function (require) {
name: 'metric', name: 'metric',
title: 'Y-Axis', title: 'Y-Axis',
min: 1, min: 1,
aggFilter: '!std_deviation', aggFilter: '!std_dev',
defaults: [ defaults: [
{ schema: 'metric', type: 'count' } { schema: 'metric', type: 'count' }
] ]