From 4b74c43a0b733670b6a50d86c935dd3fcdce6de4 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Mon, 25 Jan 2016 10:41:49 -0800 Subject: [PATCH 01/29] removing split chart option for tile map visualization --- src/plugins/kbn_vislib_vis_types/public/tileMap.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/plugins/kbn_vislib_vis_types/public/tileMap.js b/src/plugins/kbn_vislib_vis_types/public/tileMap.js index 0b7860a5147c..c02d46e24808 100644 --- a/src/plugins/kbn_vislib_vis_types/public/tileMap.js +++ b/src/plugins/kbn_vislib_vis_types/public/tileMap.js @@ -111,13 +111,6 @@ define(function (require) { aggFilter: 'geohash_grid', min: 1, max: 1 - }, - { - group: 'buckets', - name: 'split', - title: 'Split Chart', - min: 0, - max: 1 } ]) }); From 0ee2bc7622d173a5241320efb7e4b6445efbfa16 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Mon, 25 Jan 2016 10:41:49 -0800 Subject: [PATCH 02/29] Closes #5728. Removing split chart option for tile map visualization. --- src/plugins/kbn_vislib_vis_types/public/tileMap.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/plugins/kbn_vislib_vis_types/public/tileMap.js b/src/plugins/kbn_vislib_vis_types/public/tileMap.js index 0b7860a5147c..c02d46e24808 100644 --- a/src/plugins/kbn_vislib_vis_types/public/tileMap.js +++ b/src/plugins/kbn_vislib_vis_types/public/tileMap.js @@ -111,13 +111,6 @@ define(function (require) { aggFilter: 'geohash_grid', min: 1, max: 1 - }, - { - group: 'buckets', - name: 'split', - title: 'Split Chart', - min: 0, - max: 1 } ]) }); From 8e1bec8bd8d3048c17a2c8aaa522ffec261d8572 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Fri, 29 Jan 2016 10:07:41 -0800 Subject: [PATCH 03/29] removing splits from geo_json converter in tests --- src/ui/public/agg_response/geo_json/__tests__/geo_json.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ui/public/agg_response/geo_json/__tests__/geo_json.js b/src/ui/public/agg_response/geo_json/__tests__/geo_json.js index f4ad5d637e61..1dfe8917c461 100644 --- a/src/ui/public/agg_response/geo_json/__tests__/geo_json.js +++ b/src/ui/public/agg_response/geo_json/__tests__/geo_json.js @@ -23,7 +23,6 @@ describe('GeoJson Agg Response Converter', function () { type: 'tile_map', aggs: [ { schema: 'metric', type: 'avg', params: { field: 'bytes' } }, - { schema: 'split', type: 'terms', params: { field: '@tags' } }, { schema: 'segment', type: 'geohash_grid', params: { field: 'geo.coordinates', precision: 3 } } ], params: { @@ -34,7 +33,6 @@ describe('GeoJson Agg Response Converter', function () { aggs = { metric: vis.aggs[0], - split: vis.aggs[1], geo: vis.aggs[2] }; })); From 8072b043d7355c3d92760c57fe221461d73e6525 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 2 Mar 2016 10:58:51 -0800 Subject: [PATCH 04/29] troubleshooting test failures --- src/fixtures/agg_resp/geohash_grid.js | 22 ++++++++++--------- .../geo_json/__tests__/geo_json.js | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/fixtures/agg_resp/geohash_grid.js b/src/fixtures/agg_resp/geohash_grid.js index b62d56d21ae5..6f14f13921d7 100644 --- a/src/fixtures/agg_resp/geohash_grid.js +++ b/src/fixtures/agg_resp/geohash_grid.js @@ -47,16 +47,18 @@ export default function GeoHashGridAggResponseFixture() { }; }); - return { - key: 'tag ' + (i + 1), - doc_count: docCount, - 3: { - buckets: buckets - }, - 1: { - value: 1000 + i - } - }; + return tags; + + //return { + // key: 'tag ' + (i + 1), + //doc_count: docCount, + // 3: { + // buckets: buckets + // }, + // 1: { + // value: 1000 + i + // } + //}; }); return { diff --git a/src/ui/public/agg_response/geo_json/__tests__/geo_json.js b/src/ui/public/agg_response/geo_json/__tests__/geo_json.js index 0b2f794e72fa..c5f3beca2eda 100644 --- a/src/ui/public/agg_response/geo_json/__tests__/geo_json.js +++ b/src/ui/public/agg_response/geo_json/__tests__/geo_json.js @@ -38,7 +38,7 @@ describe('GeoJson Agg Response Converter', function () { aggs = { metric: vis.aggs[0], - geo: vis.aggs[2] + geo: vis.aggs[1] }; })); From 392063ca4c766c0ebc41fa4021e3873080ce7415 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 2 Mar 2016 11:09:17 -0800 Subject: [PATCH 05/29] fixing minor bug --- src/fixtures/agg_resp/geohash_grid.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fixtures/agg_resp/geohash_grid.js b/src/fixtures/agg_resp/geohash_grid.js index 6f14f13921d7..f571c6007d73 100644 --- a/src/fixtures/agg_resp/geohash_grid.js +++ b/src/fixtures/agg_resp/geohash_grid.js @@ -47,7 +47,7 @@ export default function GeoHashGridAggResponseFixture() { }; }); - return tags; + return buckets; //return { // key: 'tag ' + (i + 1), From 4d167b4090d3c2e4444cdcc071874cb49199f411 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 2 Mar 2016 12:47:08 -0800 Subject: [PATCH 06/29] fixing failing tests --- src/fixtures/agg_resp/geohash_grid.js | 49 ++++++------------- .../geo_json/__tests__/geo_json.js | 2 +- 2 files changed, 16 insertions(+), 35 deletions(-) diff --git a/src/fixtures/agg_resp/geohash_grid.js b/src/fixtures/agg_resp/geohash_grid.js index f571c6007d73..641e87e6bc09 100644 --- a/src/fixtures/agg_resp/geohash_grid.js +++ b/src/fixtures/agg_resp/geohash_grid.js @@ -8,7 +8,6 @@ export default function GeoHashGridAggResponseFixture() { // type: 'tile_map', // aggs:[ // { schema: 'metric', type: 'avg', params: { field: 'bytes' } }, - // { schema: 'split', type: 'terms', params: { field: '@tags', size: 10 } }, // { schema: 'segment', type: 'geohash_grid', params: { field: 'geo.coordinates', precision: 3 } } // ], // params: { @@ -25,40 +24,22 @@ export default function GeoHashGridAggResponseFixture() { var totalDocCount = 0; - var tags = _.times(_.random(4, 20), function (i) { - // random number of tags - var docCount = 0; - var buckets = _.times(_.random(40, 200), function () { - return _.sample(geoHashCharts, 3).join(''); - }) - .sort() - .map(function (geoHash) { - var count = _.random(1, 5000); + var buckets = _.times(_.random(40, 200), function () { + return _.sample(geoHashCharts, 3).join(''); + }) + .sort() + .map(function (geoHash, i) { + var count = _.random(1, 5000); - totalDocCount += count; - docCount += count; + totalDocCount += count; - return { - key: geoHash, - doc_count: count, - 1: { - value: 2048 + i - } - }; - }); - - return buckets; - - //return { - // key: 'tag ' + (i + 1), - //doc_count: docCount, - // 3: { - // buckets: buckets - // }, - // 1: { - // value: 1000 + i - // } - //}; + return { + key: geoHash, + doc_count: count, + 1: { + value: 2048 + i + } + }; }); return { @@ -76,7 +57,7 @@ export default function GeoHashGridAggResponseFixture() { }, aggregations: { 2: { - buckets: tags + buckets: buckets } } }; diff --git a/src/ui/public/agg_response/geo_json/__tests__/geo_json.js b/src/ui/public/agg_response/geo_json/__tests__/geo_json.js index c5f3beca2eda..9dc870a397dd 100644 --- a/src/ui/public/agg_response/geo_json/__tests__/geo_json.js +++ b/src/ui/public/agg_response/geo_json/__tests__/geo_json.js @@ -45,7 +45,7 @@ describe('GeoJson Agg Response Converter', function () { [ { asAggConfigResults: true }, { asAggConfigResults: false } ].forEach(function (tableOpts) { function makeTable() { - return _.sample(_.sample(tabify(vis, esResponse, tableOpts).tables).tables); + return _.sample(tabify(vis, esResponse, tableOpts).tables); } function makeSingleChart(table) { From 223bef96c3b031df6fa41cc9b926c64cacb76872 Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 10 Mar 2016 14:42:02 -0700 Subject: [PATCH 07/29] [binder] share binder code with ui and server This breaks the ui/Binder class into two, a base class that is shared beteween server and ui/Binder, then a subclass which is now exposed as ui/Binder. This subclass adds the jQuery and d3 specific binding methods, as well as the ability to autp-destroy using a $scope --- src/ui/public/Binder/Binder.js | 73 ++++++++++++++-------------------- src/utils/binder.js | 21 ++++++++++ 2 files changed, 50 insertions(+), 44 deletions(-) create mode 100644 src/utils/binder.js diff --git a/src/ui/public/Binder/Binder.js b/src/ui/public/Binder/Binder.js index cd802d478e45..cd1622ab31f5 100644 --- a/src/ui/public/Binder/Binder.js +++ b/src/ui/public/Binder/Binder.js @@ -1,49 +1,34 @@ import d3 from 'd3'; -import { callEach } from 'lodash'; -import { bindKey } from 'lodash'; -import { rest } from 'lodash'; import $ from 'jquery'; -function Binder($scope) { - this.disposal = []; - if ($scope) { - $scope.$on('$destroy', bindKey(this, 'destroy')); +import Binder from '../../../utils/binder'; + +export default class UiBinder extends Binder { + constructor($scope) { + super(); + + // support auto-binding to $scope objects + if ($scope) { + $scope.$on('$destroy', () => this.destroy()); + } + } + + jqOn(el, ...args) { + var $el = $(el); + $el.on(...args); + this.disposal.push(() => $el.off(...args)); + } + + fakeD3Bind(el, event, handler) { + this.jqOn(el, event, (e) => { + // mimick https://github.com/mbostock/d3/blob/3abb00113662463e5c19eb87cd33f6d0ddc23bc0/src/selection/on.js#L87-L94 + var o = d3.event; // Events can be reentrant (e.g., focus). + d3.event = e; + try { + handler.apply(this, [this.__data__]); + } finally { + d3.event = o; + } + }); } } - -Binder.prototype._bind = function (on, off, emitter, args) { - on.apply(emitter, args); - this.disposal.push(function () { - off.apply(emitter, args); - }); -}; - -Binder.prototype.on = function (emitter/*, ...args */) { - this._bind(emitter.on, emitter.off || emitter.removeListener, emitter, rest(arguments)); -}; - -Binder.prototype.jqOn = function (el/*, ...args */) { - var $el = $(el); - this._bind($el.on, $el.off, $el, rest(arguments)); -}; - -Binder.prototype.fakeD3Bind = function (el, event, handler) { - this.jqOn(el, event, function (e) { - // mimick https://github.com/mbostock/d3/blob/3abb00113662463e5c19eb87cd33f6d0ddc23bc0/src/selection/on.js#L87-L94 - var o = d3.event; // Events can be reentrant (e.g., focus). - d3.event = e; - try { - handler.apply(this, [this.__data__]); - } finally { - d3.event = o; - } - }); -}; - -Binder.prototype.destroy = function () { - var destroyers = this.disposal; - this.disposal = []; - callEach(destroyers); -}; - -module.exports = Binder; diff --git a/src/utils/binder.js b/src/utils/binder.js new file mode 100644 index 000000000000..e1a1fb7034c1 --- /dev/null +++ b/src/utils/binder.js @@ -0,0 +1,21 @@ +import { bindKey, rest } from 'lodash'; + +export default class Binder { + constructor() { + this.disposal = []; + } + + on(emitter, event, handler) { + const on = emitter.on || emitter.addListener; + const off = emitter.off || emitter.removeListener; + + on.call(emitter, event, handler); + this.disposal.push(() => off.call(emitter, event, handler)); + } + + destroy() { + var destroyers = this.disposal; + this.disposal = []; + destroyers.forEach(fn => fn()); + } +} From 9dd6b685fa7201aa50f320daba253f41957a9c18 Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 10 Mar 2016 15:09:38 -0700 Subject: [PATCH 08/29] [es6] var => const --- src/ui/public/Binder/Binder.js | 4 ++-- src/utils/binder.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ui/public/Binder/Binder.js b/src/ui/public/Binder/Binder.js index cd1622ab31f5..90f27515959f 100644 --- a/src/ui/public/Binder/Binder.js +++ b/src/ui/public/Binder/Binder.js @@ -14,7 +14,7 @@ export default class UiBinder extends Binder { } jqOn(el, ...args) { - var $el = $(el); + const $el = $(el); $el.on(...args); this.disposal.push(() => $el.off(...args)); } @@ -22,7 +22,7 @@ export default class UiBinder extends Binder { fakeD3Bind(el, event, handler) { this.jqOn(el, event, (e) => { // mimick https://github.com/mbostock/d3/blob/3abb00113662463e5c19eb87cd33f6d0ddc23bc0/src/selection/on.js#L87-L94 - var o = d3.event; // Events can be reentrant (e.g., focus). + const o = d3.event; // Events can be reentrant (e.g., focus). d3.event = e; try { handler.apply(this, [this.__data__]); diff --git a/src/utils/binder.js b/src/utils/binder.js index e1a1fb7034c1..219d15f88910 100644 --- a/src/utils/binder.js +++ b/src/utils/binder.js @@ -14,7 +14,7 @@ export default class Binder { } destroy() { - var destroyers = this.disposal; + const destroyers = this.disposal; this.disposal = []; destroyers.forEach(fn => fn()); } From 5d79f971688f6345698b1d5fc852eb3da6e9496d Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 10 Mar 2016 15:09:56 -0700 Subject: [PATCH 09/29] [binder] drop unused dependency --- src/utils/binder.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/utils/binder.js b/src/utils/binder.js index 219d15f88910..807adc7baadd 100644 --- a/src/utils/binder.js +++ b/src/utils/binder.js @@ -1,5 +1,3 @@ -import { bindKey, rest } from 'lodash'; - export default class Binder { constructor() { this.disposal = []; From 2750e74abbc71b3873d9dc66dbfd00ee01d51c9b Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 10 Mar 2016 15:10:15 -0700 Subject: [PATCH 10/29] [binder] maintain BWC by proxying all args to emitter --- src/utils/binder.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/binder.js b/src/utils/binder.js index 807adc7baadd..92d132bf17b9 100644 --- a/src/utils/binder.js +++ b/src/utils/binder.js @@ -3,12 +3,12 @@ export default class Binder { this.disposal = []; } - on(emitter, event, handler) { + on(emitter, ...args) { const on = emitter.on || emitter.addListener; const off = emitter.off || emitter.removeListener; - on.call(emitter, event, handler); - this.disposal.push(() => off.call(emitter, event, handler)); + on.apply(emitter, args); + this.disposal.push(() => off.apply(emitter, args)); } destroy() { From 3ea364ff05ed4216aab70ef7115baf355fe6fe86 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Thu, 17 Mar 2016 17:47:52 -0700 Subject: [PATCH 11/29] change main navbar back, drop the -options --- src/plugins/kibana/public/dashboard/index.html | 2 +- src/plugins/kibana/public/discover/index.html | 2 +- src/plugins/kibana/public/visualize/editor/editor.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/kibana/public/dashboard/index.html b/src/plugins/kibana/public/dashboard/index.html index 042f90b7aba6..e4d8c5523e37 100644 --- a/src/plugins/kibana/public/dashboard/index.html +++ b/src/plugins/kibana/public/dashboard/index.html @@ -1,5 +1,5 @@
- +
diff --git a/src/plugins/kibana/public/discover/index.html b/src/plugins/kibana/public/discover/index.html index bf39d0e25d9d..19fd39794417 100644 --- a/src/plugins/kibana/public/discover/index.html +++ b/src/plugins/kibana/public/discover/index.html @@ -1,5 +1,5 @@
- +
diff --git a/src/plugins/kibana/public/visualize/editor/editor.html b/src/plugins/kibana/public/visualize/editor/editor.html index 141d7c06d66c..154102f7495a 100644 --- a/src/plugins/kibana/public/visualize/editor/editor.html +++ b/src/plugins/kibana/public/visualize/editor/editor.html @@ -1,5 +1,5 @@
- +
From 84065742fbece3873a1c576d5bd8f895ae284308 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Thu, 17 Mar 2016 18:00:47 -0700 Subject: [PATCH 12/29] move the chrom nav controls out of the main button group it was messing up button injection, and looks like it didn't need to be there anyway --- src/plugins/kibana/public/dashboard/index.html | 2 +- src/plugins/kibana/public/discover/index.html | 2 +- src/plugins/kibana/public/visualize/editor/editor.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/kibana/public/dashboard/index.html b/src/plugins/kibana/public/dashboard/index.html index e4d8c5523e37..7c52c846db10 100644 --- a/src/plugins/kibana/public/dashboard/index.html +++ b/src/plugins/kibana/public/dashboard/index.html @@ -51,8 +51,8 @@ ng-click="configTemplate.toggle('options');"> Options -
+
diff --git a/src/plugins/kibana/public/discover/index.html b/src/plugins/kibana/public/discover/index.html index 19fd39794417..3032ab00f370 100644 --- a/src/plugins/kibana/public/discover/index.html +++ b/src/plugins/kibana/public/discover/index.html @@ -39,8 +39,8 @@ ng-click="configTemplate.toggle('share');"> Share -
+
Refresh -
+
Date: Fri, 18 Mar 2016 14:33:24 -0700 Subject: [PATCH 13/29] [filterBar] do not warn if the click is being simulated --- src/ui/public/filter_bar/filter_bar_click_handler.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ui/public/filter_bar/filter_bar_click_handler.js b/src/ui/public/filter_bar/filter_bar_click_handler.js index 8f2c7eb004a1..ea56af6510a2 100644 --- a/src/ui/public/filter_bar/filter_bar_click_handler.js +++ b/src/ui/public/filter_bar/filter_bar_click_handler.js @@ -39,7 +39,9 @@ export default function (Notifier) { try { return result.createFilter(); } catch (e) { - notify.warning(e.message); + if (!simulate) { + notify.warning(e.message); + } } }) .filter(Boolean) From 65dc7679f4769f550471a39e9c84d056709c819e Mon Sep 17 00:00:00 2001 From: spalger Date: Fri, 18 Mar 2016 15:09:37 -0700 Subject: [PATCH 14/29] [filterBar] added tests to verify 0e306d4 --- src/fixtures/logstash_fields.js | 2 +- .../__tests__/filter_bar_click_handler.js | 61 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/ui/public/filter_bar/__tests__/filter_bar_click_handler.js diff --git a/src/fixtures/logstash_fields.js b/src/fixtures/logstash_fields.js index 92b57c27b965..c23cfafbbcaf 100644 --- a/src/fixtures/logstash_fields.js +++ b/src/fixtures/logstash_fields.js @@ -16,7 +16,7 @@ function stubbedLogstashFields() { { name: 'extension', type: 'string', indexed: true, analyzed: true, sortable: true, filterable: true }, { name: 'machine.os', type: 'string', indexed: true, analyzed: true, sortable: true, filterable: true }, { name: 'geo.src', type: 'string', indexed: true, analyzed: true, sortable: true, filterable: true }, - { name: '_type', type: 'string', indexed: true, analyzed: true, sortable: true, filterable: true }, + { name: '_type', type: 'string', indexed: false, analyzed: true, sortable: true, filterable: true }, { name: '_id', type: 'string', indexed: false, analyzed: false, sortable: false, filterable: true}, { name: '_source', type: 'string', indexed: false, analyzed: false, sortable: false, filterable: false}, { name: 'custom_user_field', type: 'conflict', indexed: false, analyzed: false, sortable: false, filterable: true }, diff --git a/src/ui/public/filter_bar/__tests__/filter_bar_click_handler.js b/src/ui/public/filter_bar/__tests__/filter_bar_click_handler.js new file mode 100644 index 000000000000..23b80580c516 --- /dev/null +++ b/src/ui/public/filter_bar/__tests__/filter_bar_click_handler.js @@ -0,0 +1,61 @@ +import ngMock from 'ng_mock'; +import expect from 'expect.js'; + +import MockState from 'fixtures/mock_state'; +import notify from 'ui/notify'; +import AggConfigResult from 'ui/vis/agg_config_result'; + +import VisProvider from 'ui/vis'; +import StubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern'; +import FilterBarClickHandlerProvider from 'ui/filter_bar/filter_bar_click_handler'; + +describe('filterBarClickHandler', function () { + let setup = null; + + beforeEach(ngMock.module('kibana')); + beforeEach(ngMock.inject(function (Private) { + setup = function () { + const Vis = Private(VisProvider); + const createClickHandler = Private(FilterBarClickHandlerProvider); + const indexPattern = Private(StubbedLogstashIndexPatternProvider); + + const vis = new Vis(indexPattern, { + type: 'histogram', + aggs: [ + { type: 'count', schema: 'metric' }, + { + type: 'terms', + schema: 'segment', + params: { field: '_type' } + } + ] + }); + const aggConfigResult = new AggConfigResult(vis.aggs[1], void 0, 'apache', 'apache'); + + const $state = new MockState({ filters: [] }); + const clickHandler = createClickHandler($state); + + return { clickHandler, $state, aggConfigResult }; + }; + })); + + afterEach(function () { + notify._notifs.splice(0); + }); + + context('on non-filterable fields', function () { + it('warns about trying to filter on a non-filterable field', function () { + const { clickHandler, aggConfigResult } = setup(); + expect(notify._notifs).to.have.length(0); + clickHandler({ point: { aggConfigResult }}); + expect(notify._notifs).to.have.length(1); + }); + + it('does not warn if the event is click is being simulated', function () { + const { clickHandler, aggConfigResult } = setup(); + expect(notify._notifs).to.have.length(0); + clickHandler({ point: { aggConfigResult }}, true); + expect(notify._notifs).to.have.length(0); + }); + }); +}); From a28ced39a5406ff9aba1a2dbcc815da0f75cf341 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Mon, 21 Mar 2016 13:36:00 -0700 Subject: [PATCH 15/29] change timepicker selector --- test/support/pages/discover_page.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/support/pages/discover_page.js b/test/support/pages/discover_page.js index b5638a18882b..62604fe27178 100644 --- a/test/support/pages/discover_page.js +++ b/test/support/pages/discover_page.js @@ -28,7 +28,7 @@ define(function (require) { getTimespanText: function getTimespanText() { return thisTime - .findByCssSelector('.kibana-nav-actions .navbar-timepicker-time-desc pretty-duration') + .findByCssSelector('.kibana-nav-options .navbar-timepicker-time-desc pretty-duration') .getVisibleText(); }, From d392af818c549e19bf4ed90d1df192fae3f27678 Mon Sep 17 00:00:00 2001 From: ume Date: Wed, 23 Mar 2016 15:47:44 +0900 Subject: [PATCH 16/29] Add min attribute --- src/ui/public/timepicker/timepicker.html | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ui/public/timepicker/timepicker.html b/src/ui/public/timepicker/timepicker.html index f1af4b4fbe6f..62d7ae367fd8 100644 --- a/src/ui/public/timepicker/timepicker.html +++ b/src/ui/public/timepicker/timepicker.html @@ -69,6 +69,7 @@ ng-model="relative.count" ng-change="formatRelative()" greater-than="-1" + min="0" type="number" class="form-control">
From e95e57797159e863207db4763ef03f2309b6e4e0 Mon Sep 17 00:00:00 2001 From: Colin Goodheart-Smithe Date: Thu, 24 Mar 2016 16:21:11 +0000 Subject: [PATCH 17/29] Don't use extended_bounds for time filter in date_histogram vis The date histogram vis currently uses extended_bounds on the date_histogram if a time filter is applied which means that these requests can't be cached since the cache key for the request cache for Elasticsearch is based on the request body. The `extended_bounds` here has no effect on the response of the date histogram aggregation because it also sets minDocCount to 0 so will not return any empty buckets. This change removes the extended bounds parameter for the time filter so these requests can be cached by Elasticsearch. --- src/ui/public/agg_types/buckets/date_histogram.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/ui/public/agg_types/buckets/date_histogram.js b/src/ui/public/agg_types/buckets/date_histogram.js index 485ce7e664d0..d25b4c5786fe 100644 --- a/src/ui/public/agg_types/buckets/date_histogram.js +++ b/src/ui/public/agg_types/buckets/date_histogram.js @@ -150,14 +150,6 @@ export default function DateHistogramAggType(timefilter, config, Private) { return; } - - var bounds = timefilter.getActiveBounds(); - if (bounds) { - output.params.extended_bounds = { - min: moment(bounds.min).valueOf(), - max: moment(bounds.max).valueOf() - }; - } } } ] From 5c492e7ec8814e1a6def7c1b8b7899e6315954d4 Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 24 Mar 2016 10:56:43 -0700 Subject: [PATCH 18/29] [discover/tests] update rigid test data --- .../public/discover/controllers/discover.js | 3 +-- test/functional/apps/discover/_discover.js | 18 +++++++----------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/plugins/kibana/public/discover/controllers/discover.js b/src/plugins/kibana/public/discover/controllers/discover.js index 9790b05e60f3..e8c3c4ad1233 100644 --- a/src/plugins/kibana/public/discover/controllers/discover.js +++ b/src/plugins/kibana/public/discover/controllers/discover.js @@ -481,8 +481,7 @@ app.controller('discover', function ($scope, config, courier, $route, $window, N schema: 'segment', params: { field: $scope.opts.timefield, - interval: $state.interval, - min_doc_count: 0 + interval: $state.interval } } ]; diff --git a/test/functional/apps/discover/_discover.js b/test/functional/apps/discover/_discover.js index 86271155f8cc..9cec39dc31ca 100644 --- a/test/functional/apps/discover/_discover.js +++ b/test/functional/apps/discover/_discover.js @@ -108,12 +108,11 @@ define(function (require) { }); bdd.it('should show the correct bar chart', function () { - var expectedBarChartData = [ '0', '0', '0', '0', '0', '0', '3.237', + var expectedBarChartData = [ '3.237', '17.674', '64.75', '125.737', '119.962', '65.712', '16.449', '2.712', '3.675', '17.674', '59.762', '119.087', '123.812', '61.862', '15.487', '2.362', '2.800', '15.312', '61.862', '123.2', - '118.562', '63.524', '17.587', '2.537', '0', '0', '0', '0', '0', - '0', '0' + '118.562', '63.524', '17.587', '2.537' ]; return common.sleep(4000) .then(function () { @@ -142,8 +141,7 @@ define(function (require) { bdd.it('should show correct data for chart interval Hourly', function () { var chartInterval = 'Hourly'; - var expectedBarChartData = [ '0', '0', '0', '0', '0', '0', '0', '0', - '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.527', '2.290', + var expectedBarChartData = [ '1.527', '2.290', '5.599', '7.890', '13.236', '30.290', '46.072', '55.490', '86.8', '112', '122.181', '131.6', '132.872', '113.527', '102.581', '81.709', '65.672', '43.781', '24.181', '14', '9.672', '6.109', @@ -154,8 +152,7 @@ define(function (require) { '2.036', '1.781', '4.327', '8.654', '9.418', '26.472', '38.945', '61.345', '79.672', '102.836', '125.236', '130.327', '128.036', '120.4', '96.472', '74.581', '70.509', '39.709', '25.199', '13.490', - '12.472', '4.072', '2.290', '1.018', '0', '0', '0', '0', '0', '0', - '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' + '12.472', '4.072', '2.290', '1.018' ]; return discoverPage.setChartInterval(chartInterval) .then(function () { @@ -170,7 +167,7 @@ define(function (require) { bdd.it('should show correct data for chart interval Daily', function () { var chartInterval = 'Daily'; var expectedBarChartData = [ - '0', '133.196', '129.192', '129.724', '0' + '133.196', '129.192', '129.724' ]; return discoverPage.setChartInterval(chartInterval) .then(function () { @@ -223,12 +220,11 @@ define(function (require) { bdd.it('should show correct data for chart interval Auto', function () { var chartInterval = 'Auto'; - var expectedBarChartData = [ '0', '0', '0', '0', '0', '0', '3.237', + var expectedBarChartData = [ '3.237', '17.674', '64.75', '125.737', '119.962', '65.712', '16.449', '2.712', '3.675', '17.674', '59.762', '119.087', '123.812', '61.862', '15.487', '2.362', '2.800', '15.312', '61.862', '123.2', - '118.562', '63.524', '17.587', '2.537', '0', '0', '0', '0', '0', - '0', '0' + '118.562', '63.524', '17.587', '2.537' ]; return discoverPage.setChartInterval(chartInterval) .then(function () { From 8a4992640bf1e8f74316dbbad0d5875182b91bbf Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 24 Mar 2016 14:35:00 -0700 Subject: [PATCH 19/29] [courier/segmentedRequest] mark the request "started" synchronously --- src/ui/public/courier/fetch/request/segmented.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ui/public/courier/fetch/request/segmented.js b/src/ui/public/courier/fetch/request/segmented.js index 71ae5e2fa8b8..7ea9c1893a97 100644 --- a/src/ui/public/courier/fetch/request/segmented.js +++ b/src/ui/public/courier/fetch/request/segmented.js @@ -42,6 +42,8 @@ export default function SegmentedReqProvider(es, Private, Promise, timefilter, c *********/ start() { + super.start(); + this._complete = []; this._active = null; this._segments = []; @@ -61,12 +63,12 @@ export default function SegmentedReqProvider(es, Private, Promise, timefilter, c // parameters via the handle if (_.isFunction(this._initFn)) this._initFn(this._handle); return this._createQueue().then((queue) => { + if (this.stopped) return; + this._all = queue.slice(0); // Send the initial fetch status this._reportStatus(); - - return super.start(); }); } From c12f18df2733f36819d482ad1c8b7152a5450584 Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 24 Mar 2016 14:35:46 -0700 Subject: [PATCH 20/29] [courier/fetch] detect aborted requests more agressively --- src/ui/public/courier/fetch/fetch_these.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ui/public/courier/fetch/fetch_these.js b/src/ui/public/courier/fetch/fetch_these.js index 78affdf29ac5..27b0c3cc1e36 100644 --- a/src/ui/public/courier/fetch/fetch_these.js +++ b/src/ui/public/courier/fetch/fetch_these.js @@ -29,22 +29,26 @@ export default function FetchTheseProvider(Private, Promise) { } function fetchWithStrategy(strategy, requests) { + function replaceAbortedRequests() { + requests = requests.map(r => r.aborted ? ABORTED : r); + } - requests = requests.map(function (req) { - return req.aborted ? ABORTED : req; - }); - + replaceAbortedRequests(); return startRequests(requests) .then(function () { + replaceAbortedRequests(); return callClient(strategy, requests); }) .then(function (responses) { + replaceAbortedRequests(); return callResponseHandlers(requests, responses); }) .then(function (responses) { + replaceAbortedRequests(); return continueIncomplete(strategy, requests, responses, fetchWithStrategy); }) .then(function (responses) { + replaceAbortedRequests(); return responses.map(function (resp) { switch (resp) { case ABORTED: From 8fef03b816e016a1637a2557c1a1cb6e0cab7bc2 Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 24 Mar 2016 14:36:18 -0700 Subject: [PATCH 21/29] [courier/callClient] if there are no executable requests, do nothing --- src/ui/public/courier/fetch/call_client.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/public/courier/fetch/call_client.js b/src/ui/public/courier/fetch/call_client.js index 2157e4420d95..5f3aa747aef5 100644 --- a/src/ui/public/courier/fetch/call_client.js +++ b/src/ui/public/courier/fetch/call_client.js @@ -20,6 +20,8 @@ export default function CourierFetchCallClient(Private, Promise, es, esShardTime const executable = statuses.filter(isRequest); let execCount = executable.length; + if (!execCount) return Promise.resolve([]); + // resolved by respond() let esPromise; const defer = Promise.defer(); From 985f9970f3b73863b20d55369ac0e902e27384fd Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 24 Mar 2016 15:25:31 -0700 Subject: [PATCH 22/29] [courier/tests] updated test --- src/ui/public/courier/fetch/request/__tests__/segmented.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/ui/public/courier/fetch/request/__tests__/segmented.js b/src/ui/public/courier/fetch/request/__tests__/segmented.js index 4ccb32e0c38b..a30f3da68747 100644 --- a/src/ui/public/courier/fetch/request/__tests__/segmented.js +++ b/src/ui/public/courier/fetch/request/__tests__/segmented.js @@ -32,9 +32,7 @@ describe('ui/courier/fetch/request/segmented', () => { expect(returned.then).to.be.Function; }); - it('does not call super.start() until promise is resolved', () => { - expect(searchReqStart.called).to.be(false); - $rootScope.$apply(); + it('calls super.start() synchronously', () => { expect(searchReqStart.called).to.be(true); }); }); From 1de3962aedbf1c69c17a7faeb69a22efe0f35a9d Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 24 Mar 2016 16:00:56 -0700 Subject: [PATCH 23/29] [style] slightly increase header line-height On the index pattern page we use overflow:hidden; to use css elipses on the title of index patterns. This works great, but because of the line-height of 1.1 low hanging letters get cut off (the bottom of the g in logstash for instance). Increasing the line-height slightly has no real effect on layout because the letters naturally overflow the current line-height, but in scenarios with overflow: hidden it prevents the letters from getting cutoff. --- src/ui/public/styles/variables/bootstrap-mods.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/public/styles/variables/bootstrap-mods.less b/src/ui/public/styles/variables/bootstrap-mods.less index f341e7825ca3..cf89cce9fda7 100644 --- a/src/ui/public/styles/variables/bootstrap-mods.less +++ b/src/ui/public/styles/variables/bootstrap-mods.less @@ -46,7 +46,7 @@ //** By default, this inherits from the ``. @headings-font-family: @font-family-base; @headings-font-weight: 400; -@headings-line-height: 1.1; +@headings-line-height: 1.3; //** By default, this inherits from the ``. @headings-color: inherit; From 7314ef6c6045bed7f7449b8abfea1d51cb73b423 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Fri, 25 Mar 2016 15:48:14 -0700 Subject: [PATCH 24/29] replacing split chart ability --- src/fixtures/agg_resp/geohash_grid.js | 39 +++++++++++++------ .../kbn_vislib_vis_types/public/tile_map.js | 8 ++++ .../geo_json/__tests__/geo_json.js | 6 ++- 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/fixtures/agg_resp/geohash_grid.js b/src/fixtures/agg_resp/geohash_grid.js index 641e87e6bc09..b62d56d21ae5 100644 --- a/src/fixtures/agg_resp/geohash_grid.js +++ b/src/fixtures/agg_resp/geohash_grid.js @@ -8,6 +8,7 @@ export default function GeoHashGridAggResponseFixture() { // type: 'tile_map', // aggs:[ // { schema: 'metric', type: 'avg', params: { field: 'bytes' } }, + // { schema: 'split', type: 'terms', params: { field: '@tags', size: 10 } }, // { schema: 'segment', type: 'geohash_grid', params: { field: 'geo.coordinates', precision: 3 } } // ], // params: { @@ -24,20 +25,36 @@ export default function GeoHashGridAggResponseFixture() { var totalDocCount = 0; - var buckets = _.times(_.random(40, 200), function () { - return _.sample(geoHashCharts, 3).join(''); - }) - .sort() - .map(function (geoHash, i) { - var count = _.random(1, 5000); + var tags = _.times(_.random(4, 20), function (i) { + // random number of tags + var docCount = 0; + var buckets = _.times(_.random(40, 200), function () { + return _.sample(geoHashCharts, 3).join(''); + }) + .sort() + .map(function (geoHash) { + var count = _.random(1, 5000); - totalDocCount += count; + totalDocCount += count; + docCount += count; + + return { + key: geoHash, + doc_count: count, + 1: { + value: 2048 + i + } + }; + }); return { - key: geoHash, - doc_count: count, + key: 'tag ' + (i + 1), + doc_count: docCount, + 3: { + buckets: buckets + }, 1: { - value: 2048 + i + value: 1000 + i } }; }); @@ -57,7 +74,7 @@ export default function GeoHashGridAggResponseFixture() { }, aggregations: { 2: { - buckets: buckets + buckets: tags } } }; diff --git a/src/plugins/kbn_vislib_vis_types/public/tile_map.js b/src/plugins/kbn_vislib_vis_types/public/tile_map.js index 7b673a52a3ea..824177545ff7 100644 --- a/src/plugins/kbn_vislib_vis_types/public/tile_map.js +++ b/src/plugins/kbn_vislib_vis_types/public/tile_map.js @@ -116,6 +116,14 @@ export default function TileMapVisType(Private, getAppState, courier, config) { aggFilter: 'geohash_grid', min: 1, max: 1 + }, + { + group: 'buckets', + name: 'split', + title: 'Split Chart', + deprecate: true, + min: 0, + max: 1 } ]) }); diff --git a/src/ui/public/agg_response/geo_json/__tests__/geo_json.js b/src/ui/public/agg_response/geo_json/__tests__/geo_json.js index 64d8ffa55d48..78fc73fdd6c2 100644 --- a/src/ui/public/agg_response/geo_json/__tests__/geo_json.js +++ b/src/ui/public/agg_response/geo_json/__tests__/geo_json.js @@ -28,6 +28,7 @@ describe('GeoJson Agg Response Converter', function () { type: 'tile_map', aggs: [ { schema: 'metric', type: 'avg', params: { field: 'bytes' } }, + { schema: 'split', type: 'terms', params: { field: '@tags' } }, { schema: 'segment', type: 'geohash_grid', params: { field: 'geo.coordinates', precision: 3 } } ], params: { @@ -38,14 +39,15 @@ describe('GeoJson Agg Response Converter', function () { aggs = { metric: vis.aggs[0], - geo: vis.aggs[1] + split: vis.aggs[1], + geo: vis.aggs[2] }; })); [ { asAggConfigResults: true }, { asAggConfigResults: false } ].forEach(function (tableOpts) { function makeTable() { - return _.sample(tabify(vis, esResponse, tableOpts).tables); + return _.sample(_.sample(tabify(vis, esResponse, tableOpts).tables).tables); } function makeSingleChart(table) { From 07817ba71ec75fe3510f364398388f3c2a77f1ad Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Fri, 25 Mar 2016 17:52:45 -0700 Subject: [PATCH 25/29] adding ability to hide agg schema when deprecated --- src/plugins/kibana/public/visualize/editor/agg_add.html | 3 ++- src/plugins/kibana/public/visualize/editor/agg_group.js | 5 ++++- src/ui/public/vis/schemas.js | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/plugins/kibana/public/visualize/editor/agg_add.html b/src/plugins/kibana/public/visualize/editor/agg_add.html index d1de5c7f1ee7..ba7135f6daa8 100644 --- a/src/plugins/kibana/public/visualize/editor/agg_add.html +++ b/src/plugins/kibana/public/visualize/editor/agg_add.html @@ -2,6 +2,7 @@
  • @@ -21,7 +22,7 @@
    Add {{ groupName }}
    -
    +
    Add sub-{{ groupName }}
    diff --git a/src/plugins/kibana/public/visualize/editor/agg_group.js b/src/plugins/kibana/public/visualize/editor/agg_group.js index 52efea728f25..d0223fa90ef0 100644 --- a/src/plugins/kibana/public/visualize/editor/agg_group.js +++ b/src/plugins/kibana/public/visualize/editor/agg_group.js @@ -25,7 +25,10 @@ uiModules const stats = $scope.stats = { min: 0, max: 0, - count: $scope.group ? $scope.group.length : 0 + count: $scope.group ? $scope.group.length : 0, + numDeprecated: $scope.schemas.raw.filter(function (o) { + return o.deprecate; + }).length }; if (!$scope.schemas) return; diff --git a/src/ui/public/vis/schemas.js b/src/ui/public/vis/schemas.js index 37fed2929194..3eeea29d6be7 100644 --- a/src/ui/public/vis/schemas.js +++ b/src/ui/public/vis/schemas.js @@ -30,7 +30,8 @@ export default function VisTypeSchemasFactory(Private) { title: schema.name, aggFilter: '*', editor: false, - params: [] + params: [], + deprecate: false }); // convert the params into a params registry From a7a9b0bb008b94048c5677d1038bb80001b24147 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 28 Mar 2016 11:44:37 -0700 Subject: [PATCH 26/29] [npm] upgrade grunt-esvm --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index edf5a1930b1f..9227ccf9378f 100644 --- a/package.json +++ b/package.json @@ -157,7 +157,7 @@ "grunt-cli": "0.1.13", "grunt-contrib-clean": "0.6.0", "grunt-contrib-copy": "0.8.1", - "grunt-esvm": "3.0.4", + "grunt-esvm": "3.1.1", "grunt-karma": "0.12.0", "grunt-run": "0.5.0", "grunt-s3": "0.2.0-alpha.3", From 1b2dd7da2f73e6bccf43ea5324eb4e2e701d1f62 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 28 Mar 2016 12:21:52 -0700 Subject: [PATCH 27/29] [esvm] 127.0.0.1 is the default anyway, avoid min_master_nodes warning --- tasks/config/esvm.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/tasks/config/esvm.js b/tasks/config/esvm.js index 478df34b2429..91ebfb7b40b0 100644 --- a/tasks/config/esvm.js +++ b/tasks/config/esvm.js @@ -9,9 +9,6 @@ module.exports = function (grunt) { branch: 'master', fresh: !grunt.option('esvm-no-fresh'), config: { - network: { - host: '127.0.0.1' - }, http: { port: 9200 } From 02bef3078363375e256682557be5e105bdca3e0a Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Mon, 28 Mar 2016 14:46:09 -0700 Subject: [PATCH 28/29] reworking the pr based on new design spec. see pr comments --- src/plugins/kibana/public/visualize/editor/agg_add.html | 4 ++-- src/plugins/kibana/public/visualize/editor/agg_group.js | 6 ++---- .../kibana/public/visualize/editor/agg_params.html | 8 +++++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/plugins/kibana/public/visualize/editor/agg_add.html b/src/plugins/kibana/public/visualize/editor/agg_add.html index ba7135f6daa8..0ce5acbfb9fa 100644 --- a/src/plugins/kibana/public/visualize/editor/agg_add.html +++ b/src/plugins/kibana/public/visualize/editor/agg_add.html @@ -19,10 +19,10 @@ class="vis-editor-agg-wide-btn">
    -
    +
    Add {{ groupName }}
    -
    +
    Add sub-{{ groupName }}
    diff --git a/src/plugins/kibana/public/visualize/editor/agg_group.js b/src/plugins/kibana/public/visualize/editor/agg_group.js index d0223fa90ef0..1718d80c1b58 100644 --- a/src/plugins/kibana/public/visualize/editor/agg_group.js +++ b/src/plugins/kibana/public/visualize/editor/agg_group.js @@ -25,10 +25,7 @@ uiModules const stats = $scope.stats = { min: 0, max: 0, - count: $scope.group ? $scope.group.length : 0, - numDeprecated: $scope.schemas.raw.filter(function (o) { - return o.deprecate; - }).length + count: $scope.group ? $scope.group.length : 0 }; if (!$scope.schemas) return; @@ -36,6 +33,7 @@ uiModules $scope.schemas.forEach(function (schema) { stats.min += schema.min; stats.max += schema.max; + stats.deprecate = schema.deprecate; }); $scope.availableSchema = $scope.schemas.filter(function (schema) { diff --git a/src/plugins/kibana/public/visualize/editor/agg_params.html b/src/plugins/kibana/public/visualize/editor/agg_params.html index e4473e73a8b2..6a3c8c7cf387 100644 --- a/src/plugins/kibana/public/visualize/editor/agg_params.html +++ b/src/plugins/kibana/public/visualize/editor/agg_params.html @@ -10,4 +10,10 @@ style="display: none;">
    - \ No newline at end of file +
    +

    + "{{ agg.schema.title }}" has been deprecated. +

    +
    + + From b9e685f398a458dc0c2e9d6db7b560123add99a8 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Mon, 28 Mar 2016 17:00:30 -0700 Subject: [PATCH 29/29] adding option to specify custome deprecate message --- src/plugins/kbn_vislib_vis_types/public/tile_map.js | 1 + src/plugins/kibana/public/visualize/editor/agg_params.html | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/kbn_vislib_vis_types/public/tile_map.js b/src/plugins/kbn_vislib_vis_types/public/tile_map.js index 824177545ff7..acc7e4591848 100644 --- a/src/plugins/kbn_vislib_vis_types/public/tile_map.js +++ b/src/plugins/kbn_vislib_vis_types/public/tile_map.js @@ -122,6 +122,7 @@ export default function TileMapVisType(Private, getAppState, courier, config) { name: 'split', title: 'Split Chart', deprecate: true, + deprecateMessage: 'The Split Chart feature for Tile Maps has been deprecated.', min: 0, max: 1 } diff --git a/src/plugins/kibana/public/visualize/editor/agg_params.html b/src/plugins/kibana/public/visualize/editor/agg_params.html index 6a3c8c7cf387..5f822ada4f0e 100644 --- a/src/plugins/kibana/public/visualize/editor/agg_params.html +++ b/src/plugins/kibana/public/visualize/editor/agg_params.html @@ -11,7 +11,10 @@
    -

    +

    + {{ agg.schema.deprecateMessage }} +

    +

    "{{ agg.schema.title }}" has been deprecated.