Skip to content

Commit

Permalink
Refactoring series a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
simianhacker committed Jan 18, 2017
1 parent 5d2bf42 commit f1ff198
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import _ from 'lodash';
import newMetricAggFn from 'plugins/metrics/components/vis_editor/lib/new_metric_agg_fn';
import { isBasicAgg } from 'plugins/metrics/components/vis_editor/lib/agg_lookup';
import {
handleAdd,
handleChange
} from 'plugins/metrics/lib/collection_actions';
export default (props, items) => doc => {
// If we only have one sibling and the user changes to a pipeline
// agg we are going to add the pipeline instead of changing the
// current item.
if (items.length === 1 && !isBasicAgg(doc)) {
handleAdd.call(null, props, () => {
const metric = newMetricAggFn();
metric.type = doc.type;
const incompatPipelines = ['calculation', 'series_agg'];
if (!_.contains(incompatPipelines, doc.type)) metric.field = doc.id;
return metric;
});
} else {
handleChange.call(null, props, doc);
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ import {
handleDelete,
handleChange
} from 'plugins/metrics/lib/collection_actions';
import seriesChangeHandler from 'plugins/metrics/components/vis_editor/lib/series_change_handler';

export default React.createClass({

renderRow(row, index, items) {
const { props } = this;
const { panel, model, fields } = props;
const changeHandler = seriesChangeHandler(props, items);
return (
<Agg
key={row.id}
Expand All @@ -28,7 +30,7 @@ export default React.createClass({
model={row}
onAdd={handleAdd.bind(null, props, newMetricAggFn)}
onDelete={handleDelete.bind(null, props, row)}
onChange={handleChange.bind(null, props)}
onChange={changeHandler}
disableDelete={items.length < 2}
fields={fields}/>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@ import {
handleDelete,
handleChange
} from 'plugins/metrics/lib/collection_actions';
import seriesChangeHandler from 'plugins/metrics/components/vis_editor/lib/series_change_handler';

export default React.createClass({

renderRow(row, index, items) {
const { props } = this;
const { panel, model, fields } = props;
const changeHandler = seriesChangeHandler(props, items);
return (
<Agg
key={row.id}
Expand All @@ -29,7 +31,7 @@ export default React.createClass({
model={row}
onAdd={handleAdd.bind(null, props, newMetricAggFn)}
onDelete={handleDelete.bind(null, props, row)}
onChange={handleChange.bind(null, props)}
onChange={changeHandler}
disableDelete={items.length < 2}
fields={fields}/>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ import {
handleDelete,
handleChange
} from 'plugins/metrics/lib/collection_actions';
import seriesChangeHandler from 'plugins/metrics/components/vis_editor/lib/series_change_handler';

export default React.createClass({

renderRow(row, index, items) {
const { props } = this;
const { panel, model, fields } = props;
const changeHandler = seriesChangeHandler(props, items);
return (
<Agg
key={row.id}
Expand All @@ -28,7 +30,7 @@ export default React.createClass({
model={row}
onAdd={handleAdd.bind(null, props, newMetricAggFn)}
onDelete={handleDelete.bind(null, props, row)}
onChange={handleChange.bind(null, props)}
onChange={changeHandler}
disableDelete={items.length < 2}
fields={fields}/>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import SeriesConfig from './config';
import Sortable from 'react-anything-sortable';
import Tooltip from 'plugins/metrics/components/tooltip';
import Split from 'plugins/metrics/components/vis_editor/split';
import { isBasicAgg } from 'plugins/metrics/components/vis_editor/lib/agg_lookup';
import seriesChangeHandler from 'plugins/metrics/components/vis_editor/lib/series_change_handler';
import {
handleAdd,
handleDelete,
Expand All @@ -20,22 +20,7 @@ export default React.createClass({
renderRow(row, index, items) {
const { props } = this;
const { model, panel, fields } = props;
const changeHandler = doc => {
// If we only have one sibling and the user changes to a pipeline
// agg we are going to add the pipeline instead of changing the
// current item.
if (items.length === 1 && !isBasicAgg(doc)) {
handleAdd.call(null, props, () => {
const metric = newMetricAggFn();
metric.type = doc.type;
const incompatPipelines = ['calculation', 'series_agg'];
if (!_.contains(incompatPipelines, doc.type)) metric.field = doc.id;
return metric;
});
} else {
handleChange.call(null, props, doc);
}
};
const changeHandler = seriesChangeHandler(props, items);
return (
<Agg
key={row.id}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import createSelectHandler from 'plugins/metrics/lib/create_select_handler';
import createTextHandler from 'plugins/metrics/lib/create_text_handler';
import createNumberHandler from 'plugins/metrics/lib/create_number_handler';
import Split from 'plugins/metrics/components/vis_editor/split';
import seriesChangeHandler from 'plugins/metrics/components/vis_editor/lib/series_change_handler';

import {
handleAdd,
Expand All @@ -24,6 +25,7 @@ export default React.createClass({
renderRow(row, index, items) {
const { props } = this;
const { panel, model, fields } = props;
const changeHandler = seriesChangeHandler(props, items);
return (
<Agg
key={row.id}
Expand All @@ -33,7 +35,7 @@ export default React.createClass({
model={row}
onAdd={handleAdd.bind(null, props, newMetricAggFn)}
onDelete={handleDelete.bind(null, props, row)}
onChange={handleChange.bind(null, props)}
onChange={changeHandler}
disableDelete={items.length < 2}
fields={fields}/>
);
Expand Down

0 comments on commit f1ff198

Please sign in to comment.