From 1e64c7cc70398513e37db56475e269d51ea49041 Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Tue, 17 Jan 2017 14:57:13 -0700 Subject: [PATCH] adding index pattern option to series --- .../components/vis_editor/aggs/calculation.js | 4 +-- .../vis_editor/aggs/cumulative_sum.js | 4 +-- .../components/vis_editor/aggs/derivative.js | 4 +-- .../vis_editor/aggs/field_select.js | 12 +++++-- .../vis_editor/aggs/moving_average.js | 4 +-- .../components/vis_editor/aggs/percentile.js | 6 ++-- .../components/vis_editor/aggs/series_agg.js | 4 +-- .../components/vis_editor/aggs/std_agg.js | 7 ++-- .../vis_editor/aggs/std_deviation.js | 7 ++-- .../components/vis_editor/aggs/std_sibling.js | 4 +-- .../components/vis_editor/index_pattern.js | 35 +++++++++++++------ .../public/components/vis_editor/series.js | 6 ++-- .../vis_editor/series/gauge/series.js | 6 ++-- .../vis_editor/series/markdown/series.js | 6 ++-- .../vis_editor/series/metric/series.js | 6 ++-- .../vis_editor/series/timeseries/config.js | 21 ++++++++--- .../vis_editor/series/timeseries/series.js | 6 ++-- .../vis_editor/series/top_n/series.js | 7 ++-- .../components/vis_editor/series_editor.js | 2 +- .../public/components/vis_editor/split.js | 4 ++- .../components/vis_editor/vis_config/gauge.js | 8 ++--- .../vis_editor/vis_config/markdown.js | 6 ++-- .../vis_editor/vis_config/metric.js | 8 ++--- .../vis_editor/vis_config/timeseries.js | 8 ++--- .../components/vis_editor/vis_config/top_n.js | 8 ++--- .../metrics/public/lib/fetch_fields.js | 5 ++- .../metrics/public/vis/editor_controller.js | 12 +++++-- .../metrics/server/lib/bucket_transform.js | 2 +- 28 files changed, 137 insertions(+), 75 deletions(-) diff --git a/src/core_plugins/metrics/public/components/vis_editor/aggs/calculation.js b/src/core_plugins/metrics/public/components/vis_editor/aggs/calculation.js index 9a5c6140bafa94..bc2d1a18a624c6 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/aggs/calculation.js +++ b/src/core_plugins/metrics/public/components/vis_editor/aggs/calculation.js @@ -21,7 +21,7 @@ export default React.createClass({ }, render() { - const { model, panelType, siblings } = this.props; + const { model, panel, siblings } = this.props; const handleChange = createChangeHandler(this.props.onChange, model); const handleSelectChange = createSelectHandler(handleChange); const handleTextChange = createTextHandler(handleChange, this.refs); @@ -33,7 +33,7 @@ export default React.createClass({
Aggregation
diff --git a/src/core_plugins/metrics/public/components/vis_editor/aggs/cumulative_sum.js b/src/core_plugins/metrics/public/components/vis_editor/aggs/cumulative_sum.js index 35b171fe66c3a5..6760cd2cea4a41 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/aggs/cumulative_sum.js +++ b/src/core_plugins/metrics/public/components/vis_editor/aggs/cumulative_sum.js @@ -6,7 +6,7 @@ import createChangeHandler from '../lib/create_change_handler'; import createSelectHandler from '../../../lib/create_select_handler'; export default React.createClass({ render() { - const { model, panelType, siblings } = this.props; + const { model, panel, siblings } = this.props; const handleChange = createChangeHandler(this.props.onChange, model); const handleSelectChange = createSelectHandler(handleChange); return ( @@ -15,7 +15,7 @@ export default React.createClass({
Aggregation
diff --git a/src/core_plugins/metrics/public/components/vis_editor/aggs/derivative.js b/src/core_plugins/metrics/public/components/vis_editor/aggs/derivative.js index 87c1880878038d..53c30c1e3c398c 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/aggs/derivative.js +++ b/src/core_plugins/metrics/public/components/vis_editor/aggs/derivative.js @@ -9,7 +9,7 @@ import createTextHandler from '../../../lib/create_text_handler'; export default React.createClass({ render() { - const { model, siblings, panelType } = this.props; + const { model, siblings, panel } = this.props; const handleChange = createChangeHandler(this.props.onChange, model); const handleSelectChange = createSelectHandler(handleChange); @@ -21,7 +21,7 @@ export default React.createClass({
Aggregation
diff --git a/src/core_plugins/metrics/public/components/vis_editor/aggs/field_select.js b/src/core_plugins/metrics/public/components/vis_editor/aggs/field_select.js index 7767e38d4dba9e..0eb8c3f672bd7c 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/aggs/field_select.js +++ b/src/core_plugins/metrics/public/components/vis_editor/aggs/field_select.js @@ -7,15 +7,20 @@ import generateByTypeFilter from '../../../lib/generate_by_type_filter'; export default React.createClass({ getDefaultProps() { - return { restrict: 'none', style: {} }; + return { + indexPattern: '*', + disabled: false, + restrict: 'none', + style: {} + }; }, render() { - const { type, fields } = this.props; + const { type, fields, indexPattern } = this.props; if (type === 'count') { return (
); } - const options = fields + const options = (fields[indexPattern] || []) .filter(generateByTypeFilter(this.props.restrict)) .map(field => { return { label: field.name, value: field.name }; @@ -24,6 +29,7 @@ export default React.createClass({ return ( + ref={indexPatternName} + disabled={this.props.disabled} + onChange={handleTextChange(indexPatternName, '*')} + defaultValue={model[indexPatternName] || '*'}/>
Time Field
Interval (auto, 1m, 1d, 1w, 1y)
+ ref={intervalName} + disabled={this.props.disabled} + onChange={handleTextChange(intervalName, 'auto')} + defaultValue={model[intervalName] || 'auto'}/>
); } diff --git a/src/core_plugins/metrics/public/components/vis_editor/series.js b/src/core_plugins/metrics/public/components/vis_editor/series.js index 24db69fb1d52e4..88e34cb3de60b3 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/series.js +++ b/src/core_plugins/metrics/public/components/vis_editor/series.js @@ -47,8 +47,8 @@ export default sortable(React.createClass({ }, render() { - const { panelType } = this.props; - const Component = lookup[panelType]; + const { panel } = this.props; + const Component = lookup[panel.type]; if (Component) { const params = { switchTab: this.switchTab, @@ -59,6 +59,6 @@ export default sortable(React.createClass({ }; return (); } - return (
Missing Series component for panel type: {panelType}
); + return (
Missing Series component for panel type: {panel.type}
); } })); diff --git a/src/core_plugins/metrics/public/components/vis_editor/series/gauge/series.js b/src/core_plugins/metrics/public/components/vis_editor/series/gauge/series.js index b4c6e2ca0771ce..8564b99ac126f3 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/series/gauge/series.js +++ b/src/core_plugins/metrics/public/components/vis_editor/series/gauge/series.js @@ -18,12 +18,12 @@ export default React.createClass({ renderRow(row, index, items) { const { props } = this; - const { model, fields } = props; + const { panel, model, fields } = props; return ( diff --git a/src/core_plugins/metrics/public/components/vis_editor/series/markdown/series.js b/src/core_plugins/metrics/public/components/vis_editor/series/markdown/series.js index 421f65bf9d4254..5b645f164e46f2 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/series/markdown/series.js +++ b/src/core_plugins/metrics/public/components/vis_editor/series/markdown/series.js @@ -19,12 +19,12 @@ export default React.createClass({ renderRow(row, index, items) { const { props } = this; - const { model, fields } = props; + const { panel, model, fields } = props; return ( diff --git a/src/core_plugins/metrics/public/components/vis_editor/series/metric/series.js b/src/core_plugins/metrics/public/components/vis_editor/series/metric/series.js index 3ac94e90668a25..bb1ae3b89b8e0f 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/series/metric/series.js +++ b/src/core_plugins/metrics/public/components/vis_editor/series/metric/series.js @@ -18,12 +18,12 @@ export default React.createClass({ renderRow(row, index, items) { const { props } = this; - const { model, fields } = props; + const { panel, model, fields } = props; return ( diff --git a/src/core_plugins/metrics/public/components/vis_editor/series/timeseries/config.js b/src/core_plugins/metrics/public/components/vis_editor/series/timeseries/config.js index 1a3dae407f63a0..f41770091fd992 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/series/timeseries/config.js +++ b/src/core_plugins/metrics/public/components/vis_editor/series/timeseries/config.js @@ -4,6 +4,7 @@ import DataFormatPicker from 'plugins/metrics/components/vis_editor/data_format_ import createSelectHandler from 'plugins/metrics/lib/create_select_handler'; import YesNo from 'plugins/metrics/components/yes_no'; import createTextHandler from 'plugins/metrics/lib/create_text_handler'; +import IndexPattern from 'plugins/metrics/components/vis_editor/index_pattern'; export default React.createClass({ render() { @@ -135,7 +136,8 @@ export default React.createClass({ value={model.hide_in_legend} name="hide_in_legend" onChange={this.props.onChange}/> -
Axis Max
+ +
Separate Axis
- { model.seperate_axis ? ( -
-
- ) : (
) } +
+
Override Index Pattern
+ + +
); diff --git a/src/core_plugins/metrics/public/components/vis_editor/series/timeseries/series.js b/src/core_plugins/metrics/public/components/vis_editor/series/timeseries/series.js index d3ac25bc809c51..1f9c0f633d6df7 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/series/timeseries/series.js +++ b/src/core_plugins/metrics/public/components/vis_editor/series/timeseries/series.js @@ -18,12 +18,12 @@ export default React.createClass({ renderRow(row, index, items) { const { props } = this; - const { model, fields } = props; + const { model, panel, fields } = props; return ( diff --git a/src/core_plugins/metrics/public/components/vis_editor/series/top_n/series.js b/src/core_plugins/metrics/public/components/vis_editor/series/top_n/series.js index 5d167dee5d0ee1..c7efc4ca6f7989 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/series/top_n/series.js +++ b/src/core_plugins/metrics/public/components/vis_editor/series/top_n/series.js @@ -7,7 +7,6 @@ import AddDeleteButtons from 'plugins/metrics/components/add_delete_buttons'; import SeriesConfig from './config'; import Sortable from 'react-anything-sortable'; import Tooltip from 'plugins/metrics/components/tooltip'; -import FieldSelect from 'plugins/metrics/components/vis_editor/aggs/field_select'; import MetricSelect from 'plugins/metrics/components/vis_editor/aggs/metric_select'; import createSelectHandler from 'plugins/metrics/lib/create_select_handler'; import createTextHandler from 'plugins/metrics/lib/create_text_handler'; @@ -24,12 +23,12 @@ export default React.createClass({ renderRow(row, index, items) { const { props } = this; - const { model, fields } = props; + const { panel, model, fields } = props; return ( diff --git a/src/core_plugins/metrics/public/components/vis_editor/series_editor.js b/src/core_plugins/metrics/public/components/vis_editor/series_editor.js index b06f296df47609..266e61222a2a28 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/series_editor.js +++ b/src/core_plugins/metrics/public/components/vis_editor/series_editor.js @@ -47,7 +47,7 @@ export default React.createClass({ key={row.id} sortData={row.id} model={row} - panelType={model.type} + panel={model} onClone={() => this.handleClone(row)} onAdd={handleAdd.bind(null, props, newSeriesFn)} onDelete={handleDelete.bind(null, props, row)} diff --git a/src/core_plugins/metrics/public/components/vis_editor/split.js b/src/core_plugins/metrics/public/components/vis_editor/split.js index 9c24af8a21c0e1..b21b6ed3479119 100644 --- a/src/core_plugins/metrics/public/components/vis_editor/split.js +++ b/src/core_plugins/metrics/public/components/vis_editor/split.js @@ -24,12 +24,13 @@ export default React.createClass({ }, render() { - const { model } = this.props; + const { model, panel } = this.props; const modeOptions = [ { label: 'Everything', value: 'everything' }, { label: 'Filter', value: 'filter' }, { label: 'Terms', value: 'terms' } ]; + const indexPattern = model.override_index_pattern && model.series_index_pattern || panel.index_pattern; const modeSelect = (