diff --git a/src/components/field-analyzers/FieldGraphs.jsx b/src/components/field-analyzers/FieldGraphs.jsx index 3c0160abe..01b13d85e 100644 --- a/src/components/field-analyzers/FieldGraphs.jsx +++ b/src/components/field-analyzers/FieldGraphs.jsx @@ -34,6 +34,9 @@ const FieldGraphs = React.createClass({ } }; }, + componentWillUnmount() { + FieldGraphsStore.resetStore(); + }, addFieldGraph(field) { const streamId = this.props.searchInStream ? this.props.searchInStream.id : undefined; FieldGraphsStore.newFieldGraph(field, {interval: this.props.resolution, streamid: streamId}); diff --git a/src/legacy/analyzers/fieldcharts.js b/src/legacy/analyzers/fieldcharts.js index e088f82b4..3d71d7a58 100644 --- a/src/legacy/analyzers/fieldcharts.js +++ b/src/legacy/analyzers/fieldcharts.js @@ -34,7 +34,11 @@ export function generateId() { export const FieldChart = { fieldGraphs: {}, GRAPH_HEIGHT: 120, - PALETTE: new Rickshaw.Color.Palette({scheme: 'colorwheel'}), + palette: new Rickshaw.Color.Palette({scheme: 'colorwheel'}), + + reload() { + this.palette = new Rickshaw.Color.Palette({scheme: 'colorwheel'}); + }, _getDefaultOptions(opts) { var searchParams = {}; @@ -398,12 +402,9 @@ export const FieldChart = { var draggedChart = this.fieldGraphs[draggedId]; var targetElem = $('.field-graph-container[data-chart-id="' + targetId + '"]'); - var draggedElem = $('.field-graph-container[data-chart-id="' + draggedId + '"]'); - - var draggedOpts = JSON.parse(draggedElem.attr("data-lines")); for (var i = 0; i < draggedChart.series.length; i++) { - var lineColor = this.PALETTE.color(); + var lineColor = this.palette.color(); var series = draggedChart.series[i]; var query = series.gl2_query; diff --git a/src/stores/field-analyzers/FieldGraphsStore.ts b/src/stores/field-analyzers/FieldGraphsStore.ts index 00ccc0444..1bb22187d 100644 --- a/src/stores/field-analyzers/FieldGraphsStore.ts +++ b/src/stores/field-analyzers/FieldGraphsStore.ts @@ -62,12 +62,7 @@ class FieldGraphsStore { onFieldGraphsMerged: (targetGraphId: Object)=>void; constructor() { - this.renderedGraphs = Immutable.Set(); - this._fieldGraphs = Immutable.Map(Store.get("pinned-field-charts")); - this._stackedGraphs = Immutable.fromJS(Store.get("stacked-graphs") || {}, (key, value) => { - var isIndexed = Immutable.Iterable.isIndexed(value); - return isIndexed ? value.toSet() : value.toMap(); - }); + this.resetStore(); $(document).on('created.graylog.fieldgraph', (event, data) => { this.saveGraph(data.graphOptions['chartid'], data.graphOptions); @@ -92,6 +87,16 @@ class FieldGraphsStore { }); } + resetStore() { + this.renderedGraphs = Immutable.Set(); + this._fieldGraphs = Immutable.Map(Store.get("pinned-field-charts")); + this._stackedGraphs = Immutable.fromJS(Store.get("stacked-graphs") || {}, (key, value) => { + var isIndexed = Immutable.Iterable.isIndexed(value); + return isIndexed ? value.toSet() : value.toMap(); + }); + FieldChart.reload(); + } + get fieldGraphs(): Immutable.Map { return this._fieldGraphs; }