Skip to content

Commit

Permalink
Merge branch 'master' into fix/elastic#1962
Browse files Browse the repository at this point in the history
  • Loading branch information
stormpython committed Jan 13, 2015
2 parents 1030987 + 5a3943c commit 3c4b9e3
Show file tree
Hide file tree
Showing 181 changed files with 3,064 additions and 1,363 deletions.
6 changes: 4 additions & 2 deletions bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"bluebird": "~2.1.3",
"bootstrap": "~3.3.1",
"d3": "~3.4.8",
"elasticsearch": "elasticsearch/bower-elasticsearch-js#prerelease",
"elasticsearch": "~3.1.1",
"Faker": "~1.1.0",
"FileSaver": "*",
"font-awesome": "~4.2.0",
Expand All @@ -48,7 +48,9 @@
"require-css": "~0.1.2",
"requirejs": "~2.1.10",
"requirejs-text": "~2.0.10",
"lodash-deep": "spenceralger/lodash-deep#a2768a72d7"
"lodash-deep": "spenceralger/lodash-deep#compat",
"marked": "~0.3.2",
"numeral": "~1.5.3"
},
"devDependencies": {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ define(function (require) {
var point = {
x: unwrap(row[x.i], '_all'),
y: unwrap(row[y.i]),
aggConfigResult: row[y.i]
aggConfigResult: row[y.i],
yScale: yScale
};

if (series) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ define(function (require) {
var result = { $parent: datum.aggConfigResult };
while ((result = result.$parent) && result.aggConfig) {
var agg = result.aggConfig;
var value = result.value;
if (agg === datum.aggConfigResult.aggConfig && datum.yScale != null) value *= datum.yScale;

details.push({
value: agg.fieldFormatter()(result.value),
value: agg.fieldFormatter()(value),
label: agg.makeLabel()
});
}
Expand Down
3 changes: 2 additions & 1 deletion src/kibana/components/agg_response/tabify/_get_columns.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ define(function (require) {
var AggConfig = Private(require('components/vis/_agg_config'));

return function getColumns(vis, minimal) {
var aggs = vis.aggs.getSorted();
var aggs = vis.aggs.getResponseAggs();

if (minimal == null) minimal = !vis.isHierarchical();

if (!vis.aggs.bySchemaGroup.metrics) {
Expand Down
5 changes: 2 additions & 3 deletions src/kibana/components/agg_response/tabify/tabify.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,10 @@ define(function (require) {
*/
function collectBucket(write, bucket, key) {
var agg = write.aggStack.shift();
var aggResp = bucket[agg.id];

switch (agg.schema.group) {
case 'buckets':
var buckets = new Buckets(aggResp);
var buckets = new Buckets(bucket[agg.id]);
if (buckets.length) {
var splitting = write.canSplit && agg.schema.name === 'split';
if (splitting) {
Expand Down Expand Up @@ -62,7 +61,7 @@ define(function (require) {
}
break;
case 'metrics':
var value = (agg.type.name === 'count') ? bucketCount(bucket) : metricValue(aggResp);
var value = agg.getValue(bucket);
write.cell(agg, value, function () {
if (!write.aggStack.length) {
// row complete
Expand Down
54 changes: 13 additions & 41 deletions src/kibana/components/agg_types/_agg_params.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,21 @@ define(function (require) {
var _ = require('lodash');
var IndexedArray = require('utils/indexed_array/index');

var BaseAggParam = Private(require('components/agg_types/param_types/base'));
var FieldAggParam = Private(require('components/agg_types/param_types/field'));
var OptionedAggParam = Private(require('components/agg_types/param_types/optioned'));
var RegexAggParam = Private(require('components/agg_types/param_types/regex'));
var StringAggParam = Private(require('components/agg_types/param_types/string'));
var RawJSONAggParam = Private(require('components/agg_types/param_types/raw_json'));
var paramTypeMap = {
field: Private(require('components/agg_types/param_types/field')),
optioned: Private(require('components/agg_types/param_types/optioned')),
regex: Private(require('components/agg_types/param_types/regex')),
string: Private(require('components/agg_types/param_types/string')),
json: Private(require('components/agg_types/param_types/raw_json')),
_default: Private(require('components/agg_types/param_types/base'))
};

/**
* Wraps a list of {{#crossLink "AggParam"}}{{/crossLink}} objects; owned by an {{#crossLink "AggType"}}{{/crossLink}}
*
* used to create:
* - `OptionedAggParam` – When the config has an array of `options: []`
* - `FieldAggParam` – When the config has `name: "field"`
* - `*AggParam` – When the type matches something in the map above
* - `BaseAggParam` – All other params
*
* @class AggParams
Expand All @@ -26,42 +28,12 @@ define(function (require) {
*/
_(AggParams).inherits(IndexedArray);
function AggParams(params) {
if (_.isPlainObject(params)) {
// convert the names: details format into details[].name
params = _.map(params, function (param, name) {
param.name = name;
return param;
});
}

// always append the raw JSON param
params.push({
name: 'json',
type: 'json',
advanced: true
});

AggParams.Super.call(this, {
index: ['name'],
initialSet: params.map(function (param) {
if (param.name === 'field') {
return new FieldAggParam(param);
}
else if (param.type === 'optioned') {
return new OptionedAggParam(param);
}
else if (param.type === 'regex') {
return new RegexAggParam(param);
}
else if (param.type === 'string') {
return new StringAggParam(param);
}
else if (param.type === 'json') {
return new RawJSONAggParam(param);
}
else {
return new BaseAggParam(param);
}
initialSet: params.map(function (config) {
var type = config.name === 'field' ? config.name : config.type;
var Class = paramTypeMap[type] || paramTypeMap._default;
return new Class(config);
})
});
}
Expand Down
25 changes: 22 additions & 3 deletions src/kibana/components/agg_types/_agg_type.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,29 @@ define(function (require) {
* @property params
* @type {AggParams}
*/
var params = this.params = config.params || [];
if (!(params instanceof AggParams)) {
params = this.params = new AggParams(params);
this.params = config.params || [];
if (!(this.params instanceof AggParams)) {
// always append the raw JSON param
this.params.push({
name: 'json',
type: 'json',
advanced: true
});

this.params = new AggParams(this.params);
}

/**
* Designed for multi-value metric aggs, this method can return a
* set of AggConfigs that should replace this aggConfig in result sets
* that walk the AggConfig set.
*
* @method getResponseAggs
* @returns {array[AggConfig]|undefined} - an array of aggConfig objects
* that should replace this one,
* or undefined
*/
this.getResponseAggs = config.getResponseAggs || _.noop;
}

return AggType;
Expand Down
13 changes: 13 additions & 0 deletions src/kibana/components/agg_types/buckets/_bucket_agg_type.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
define(function (require) {
return function BucketAggTypeProvider(Private) {
var _ = require('lodash');
var AggType = Private(require('components/agg_types/_agg_type'));

_(BucketAggType).inherits(AggType);
function BucketAggType(config) {
BucketAggType.Super.call(this, config);
}

return BucketAggType;
};
});
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ define(function (require) {
* @return {null|number}
*/
function bucketCountBetween(aggConfigA, aggConfigB) {
var aggs = aggConfigA.vis.aggs.getSorted();
var aggs = aggConfigA.vis.aggs.getRequestAggs();

var aIndex = aggs.indexOf(aggConfigA);
var bIndex = aggs.indexOf(aggConfigB);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
define(function (require) {
var moment = require('moment');
var interval = require('utils/interval');
var buildRangeFilter = require('components/filter_manager/lib/range');

return function createDateHistogramFilterProvider(Private) {
var calculateInterval = Private(require('components/agg_types/param_types/_calculate_interval'));
return function (aggConfig, key) {
var result = calculateInterval(aggConfig);
var date = moment(key).add(result.interval, 'ms');
var filter = { meta: {}, range: {} };
filter.range[aggConfig.params.field.name] = {

return buildRangeFilter(aggConfig.params.field, {
gte: parseInt(key, 10),
lte: date.valueOf()
};
filter.meta.index = aggConfig.vis.indexPattern.id;
return filter;
}, aggConfig.vis.indexPattern);
};

};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
define(function (require) {
var buildQueryFilter = require('components/filter_manager/lib/query');
var _ = require('lodash');
return function CreateFilterFiltersProvider(Private) {
return function (aggConfig, key) {
Expand All @@ -7,12 +8,7 @@ define(function (require) {
var filter = dslFilters[key];

if (filter) {
return {
query: filter.query,
meta: {
index: aggConfig.vis.indexPattern.id
}
};
return buildQueryFilter(filter.query, aggConfig.vis.indexPattern.id);
}
};
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
define(function (require) {
var buildRangeFilter = require('components/filter_manager/lib/range');

return function createHistogramFitlerProvider(Private) {
return function (aggConfig, key) {
var value = parseInt(key, 10);
var filter = { meta: {}, range: {} };
filter.range[aggConfig.params.field.name] = {

return buildRangeFilter(aggConfig.params.field, {
gte: value,
lt: value + aggConfig.params.interval
};
filter.meta.index = aggConfig.vis.indexPattern.id;
return filter;
}, aggConfig.vis.indexPattern);
};
};
});
10 changes: 4 additions & 6 deletions src/kibana/components/agg_types/buckets/create_filter/range.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
define(function (require) {
return function createRangeFilterPrivider(Private) {
var buildRangeFilter = require('components/filter_manager/lib/range');
return function createRangeFilterProvider(Private) {
return function (aggConfig, key) {
var filter = { meta: {}, range: {} };
var splits = key.split(/\-/);
var gte = Number(splits[0]);
var lte = Number(splits[1]);
filter.range[aggConfig.params.field.name] = {
return buildRangeFilter(aggConfig.params.field, {
gte: gte,
lte: lte
};
filter.meta.index = aggConfig.vis.indexPattern.id;
return filter;
}, aggConfig.vis.indexPattern);
};
};
});
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
define(function (require) {
var buildPhraseFilter = require('components/filter_manager/lib/phrase');
return function createTermsFilterProvider(Private) {
return function (aggConfig, key) {
var filter = { meta: {}, query: { match: {} } };
filter.query.match[aggConfig.params.field.name] = {
query: key,
type: 'phrase'
};
filter.meta.index = aggConfig.vis.indexPattern.id;
return filter;
return buildPhraseFilter(aggConfig.params.field, key, aggConfig.vis.indexPattern);
};
};
});
4 changes: 2 additions & 2 deletions src/kibana/components/agg_types/buckets/date_histogram.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ define(function (require) {
var _ = require('lodash');
var moment = require('moment');
var interval = require('utils/interval');
var AggType = Private(require('components/agg_types/_agg_type'));
var BucketAggType = Private(require('components/agg_types/buckets/_bucket_agg_type'));
var calculateInterval = Private(require('components/agg_types/param_types/_calculate_interval'));

var createFilter = Private(require('components/agg_types/buckets/create_filter/date_histogram'));
Expand All @@ -15,7 +15,7 @@ define(function (require) {
return interval.calculate(bounds.min, bounds.max, targetBuckets);
};

return new AggType({
return new BucketAggType({
name: 'date_histogram',
title: 'Date Histogram',
ordered: {
Expand Down
4 changes: 2 additions & 2 deletions src/kibana/components/agg_types/buckets/filters.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
define(function (require) {
return function FiltersAggDefinition(Private, Notifier) {
var _ = require('lodash');
var AggType = Private(require('components/agg_types/_agg_type'));
var BucketAggType = Private(require('components/agg_types/buckets/_bucket_agg_type'));
var createFilter = Private(require('components/agg_types/buckets/create_filter/filters'));
var decorateQuery = Private(require('components/courier/data_source/_decorate_query'));
var notif = new Notifier({ location: 'Filters Agg' });

return new AggType({
return new BucketAggType({
name: 'filters',
title: 'Filters',
createFilter: createFilter,
Expand Down
4 changes: 2 additions & 2 deletions src/kibana/components/agg_types/buckets/geo_hash.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ define(function (require) {
return function GeoHashAggDefinition(Private, config) {
var _ = require('lodash');
var moment = require('moment');
var AggType = Private(require('components/agg_types/_agg_type'));
var BucketAggType = Private(require('components/agg_types/buckets/_bucket_agg_type'));
var defaultPrecision = 3;

function getPrecision(precision) {
Expand All @@ -21,7 +21,7 @@ define(function (require) {
return precision;
}

return new AggType({
return new BucketAggType({
name: 'geohash_grid',
title: 'Geohash',
ordered: {},
Expand Down
6 changes: 3 additions & 3 deletions src/kibana/components/agg_types/buckets/histogram.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ define(function (require) {
return function HistogramAggDefinition(Private) {
var _ = require('lodash');
var moment = require('moment');
var AggType = Private(require('components/agg_types/_agg_type'));
var BucketAggType = Private(require('components/agg_types/buckets/_bucket_agg_type'));
var createFilter = Private(require('components/agg_types/buckets/create_filter/histogram'));

return new AggType({
return new BucketAggType({
name: 'histogram',
title: 'Histogram',
ordered: {},
Expand Down Expand Up @@ -60,7 +60,7 @@ define(function (require) {
field
&& (field.type === 'number' || field.type === 'date')
) {
return true;
return aggConfig.params.min_doc_count;
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/kibana/components/agg_types/buckets/range.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ define(function (require) {
var _ = require('lodash');
var moment = require('moment');
var angular = require('angular');
var AggType = Private(require('components/agg_types/_agg_type'));
var BucketAggType = Private(require('components/agg_types/buckets/_bucket_agg_type'));
var createFilter = Private(require('components/agg_types/buckets/create_filter/range'));

return new AggType({
return new BucketAggType({
name: 'range',
title: 'Range',
createFilter: createFilter,
Expand Down
Loading

0 comments on commit 3c4b9e3

Please sign in to comment.