diff --git a/.node-version b/.node-version index f77856a6f1af..cc2fbe89b6c7 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -4.3.1 +4.3.2 diff --git a/package.json b/package.json index 222446e3b872..c4e6ba5202e2 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "angular-mocks": "1.4.7", "auto-release-sinon": "1.0.3", "babel-eslint": "4.1.8", - "chokidar": "1.0.5", + "chokidar": "1.4.3", "eslint": "1.10.3", "eslint-plugin-mocha": "1.1.0", "expect.js": "0.3.1", @@ -189,7 +189,7 @@ "supertest-as-promised": "2.0.2" }, "engines": { - "node": "4.3.1", - "npm": "2.14.21" + "node": "4.3.2", + "npm": "2.14.22" } } diff --git a/src/cli/cluster/cluster_manager.js b/src/cli/cluster/cluster_manager.js index a80423be3104..ca9227912404 100644 --- a/src/cli/cluster/cluster_manager.js +++ b/src/cli/cluster/cluster_manager.js @@ -1,8 +1,8 @@ import cluster from 'cluster'; -const { join } = require('path'); +const { join, resolve } = require('path'); const { format: formatUrl } = require('url'); import Hapi from 'hapi'; -const { debounce, compact, get, invoke, bindAll, once, sample } = require('lodash'); +const { debounce, compact, get, invoke, bindAll, once, sample, uniq } = require('lodash'); import Log from '../Log'; import Worker from './worker'; @@ -85,14 +85,19 @@ module.exports = class ClusterManager { const chokidar = require('chokidar'); const fromRoot = require('../../utils/fromRoot'); - this.watcher = chokidar.watch([ - 'src/plugins', - 'src/server', - 'src/ui', - 'src/utils', - 'config', - ...extraPaths - ], { + const watchPaths = uniq( + [ + fromRoot('src/plugins'), + fromRoot('src/server'), + fromRoot('src/ui'), + fromRoot('src/utils'), + fromRoot('config'), + ...extraPaths + ] + .map(path => resolve(path)) + ); + + this.watcher = chokidar.watch(watchPaths, { cwd: fromRoot('.'), ignored: /[\\\/](\..*|node_modules|bower_components|public|__tests__)[\\\/]/ }); diff --git a/src/plugins/elasticsearch/lib/__tests__/routes.js b/src/plugins/elasticsearch/lib/__tests__/routes.js index b5f94d8f3e82..c4bacca30d55 100644 --- a/src/plugins/elasticsearch/lib/__tests__/routes.js +++ b/src/plugins/elasticsearch/lib/__tests__/routes.js @@ -11,7 +11,7 @@ describe('plugins/elasticsearch', function () { let kbnServer; before(function () { - this.timeout(15000); // sometimes waiting for server takes longer than 10 + this.timeout(60000); // sometimes waiting for server takes longer than 10 kbnServer = kbnTestServer.createServer(); return kbnServer.ready() diff --git a/src/plugins/kibana/public/discover/controllers/discover.js b/src/plugins/kibana/public/discover/controllers/discover.js index a7b17b5afd22..c89b823fc8f8 100644 --- a/src/plugins/kibana/public/discover/controllers/discover.js +++ b/src/plugins/kibana/public/discover/controllers/discover.js @@ -126,7 +126,7 @@ app.controller('discover', function ($scope, config, courier, $route, $window, N return { query: $scope.searchSource.get('query') || '', sort: getSort.array(savedSearch.sort, $scope.indexPattern), - columns: savedSearch.columns || ['_source'], + columns: savedSearch.columns.length > 0 ? savedSearch.columns : config.get('defaultColumns'), index: $scope.indexPattern.id, interval: 'auto', filters: _.cloneDeep($scope.searchSource.getOwn('filter')) diff --git a/src/plugins/kibana/public/settings/sections/advanced/index.html b/src/plugins/kibana/public/settings/sections/advanced/index.html index a2894631dc86..13f85f7c8819 100644 --- a/src/plugins/kibana/public/settings/sections/advanced/index.html +++ b/src/plugins/kibana/public/settings/sections/advanced/index.html @@ -3,7 +3,7 @@

Caution: You can break stuff here

Be careful in here, these settings are for very advanced users only. - Tweaks you make here can break large portionsof Kibana. Some of these + Tweaks you make here can break large portions of Kibana. Some of these settings may be undocumented, unsupported or experimental. If a field has a default value, blanking the field will reset it to its default which may be unacceptable given other configuration directives. Deleting a diff --git a/src/plugins/kibana/server/lib/create_mappings_from_pattern_fields.js b/src/plugins/kibana/server/lib/create_mappings_from_pattern_fields.js index db8891fb98ec..d05e65099161 100644 --- a/src/plugins/kibana/server/lib/create_mappings_from_pattern_fields.js +++ b/src/plugins/kibana/server/lib/create_mappings_from_pattern_fields.js @@ -15,8 +15,6 @@ module.exports = function createMappingsFromPatternFields(fields) { mapping = { type: 'string', index: 'analyzed', - omit_norms: true, - fielddata: {format: 'disabled'}, fields: { raw: {type: 'string', index: 'not_analyzed', doc_values: true, ignore_above: 256} } diff --git a/src/plugins/kibana/server/routes/api/ingest/register_post.js b/src/plugins/kibana/server/routes/api/ingest/register_post.js index ec4a811c9da4..9ff7281db541 100644 --- a/src/plugins/kibana/server/routes/api/ingest/register_post.js +++ b/src/plugins/kibana/server/routes/api/ingest/register_post.js @@ -102,8 +102,6 @@ module.exports = function registerPost(server) { mapping: { type: 'string', index: 'analyzed', - omit_norms: true, - fielddata: {format: 'disabled'}, fields: { raw: {type: 'string', index: 'not_analyzed', doc_values: true, ignore_above: 256} } diff --git a/src/ui/public/config/defaults.js b/src/ui/public/config/defaults.js index c167e814bf3e..ef56c170dad7 100644 --- a/src/ui/public/config/defaults.js +++ b/src/ui/public/config/defaults.js @@ -50,6 +50,10 @@ export default function configDefaultsProvider() { value: null, description: 'The index to access if no index is set', }, + 'defaultColumns': { + value: ['_source'], + description: 'Columns displayed by default in the Discovery tab', + }, 'metaFields': { value: ['_source', '_id', '_type', '_index', '_score'], description: 'Fields that exist outside of _source to merge into our document when displaying it', diff --git a/src/ui/public/vislib/lib/dispatch.js b/src/ui/public/vislib/lib/dispatch.js index 1e3dc82711d0..dfc476054103 100644 --- a/src/ui/public/vislib/lib/dispatch.js +++ b/src/ui/public/vislib/lib/dispatch.js @@ -106,6 +106,9 @@ export default function DispatchClass(Private) { var isClickable = this.listenerCount('click') > 0; var addEvent = this.addEvent; var $el = this.handler.el; + if(!this.handler.highlight) { + this.handler.highlight = self.highlight; + } function hover(d, i) { // Add pointer if item is clickable @@ -113,7 +116,7 @@ export default function DispatchClass(Private) { self.addMousePointer.call(this, arguments); } - self.highlightLegend.call(this, $el); + self.handler.highlight.call(this, $el); self.emit('hover', self.eventResponse(d, i)); } @@ -129,9 +132,12 @@ export default function DispatchClass(Private) { var self = this; var addEvent = this.addEvent; var $el = this.handler.el; + if(!this.handler.unHighlight) { + this.handler.unHighlight = self.unHighlight; + } function mouseout() { - self.unHighlightLegend.call(this, $el); + self.handler.unHighlight.call(this, $el); } return addEvent('mouseout', mouseout); @@ -225,21 +231,24 @@ export default function DispatchClass(Private) { * Mouseover Behavior * * @param element {D3.Selection} - * @method highlightLegend + * @method highlight */ - Dispatch.prototype.highlightLegend = function (element) { + Dispatch.prototype.highlight = function (element) { var label = this.getAttribute('data-label'); if (!label) return; - $('[data-label]', element.parentNode).not(function (els, el) { return $(el).data('label') !== label;}).css('opacity', 0.5); + //Opacity 1 is needed to avoid the css application + $('[data-label]', element.parentNode).css('opacity', 1).not( + function (els, el) { return `${$(el).data('label')}` === label;} + ).css('opacity', 0.5); }; /** * Mouseout Behavior * * @param element {D3.Selection} - * @method unHighlightLegend + * @method unHighlight */ - Dispatch.prototype.unHighlightLegend = function (element) { + Dispatch.prototype.unHighlight = function (element) { $('[data-label]', element.parentNode).css('opacity', 1); }; diff --git a/src/ui/public/vislib/visualizations/area_chart.js b/src/ui/public/vislib/visualizations/area_chart.js index a132b52ad6b8..63afcdd28226 100644 --- a/src/ui/public/vislib/visualizations/area_chart.js +++ b/src/ui/public/vislib/visualizations/area_chart.js @@ -33,7 +33,25 @@ export default function AreaChartFactory(Private) { if (this.isOverlapping) { // Default opacity should return to 0.6 on mouseout - handler._attr.defaultOpacity = 0.6; + var defaultOpacity = 0.6; + handler._attr.defaultOpacity = defaultOpacity; + handler.highlight = function (element) { + var label = this.getAttribute('data-label'); + if (!label) return; + + var highlightOpacity = 0.8; + var highlightElements = $('[data-label]', element.parentNode).filter( + function (els, el) { return `${$(el).data('label')}` === label; + }); + $('[data-label]', element.parentNode).not(highlightElements).css('opacity', defaultOpacity / 2); // half of the default opacity + highlightElements.css('opacity', highlightOpacity); + }; + handler.unHighlight = function (element) { + $('[data-label]', element).css('opacity', defaultOpacity); + + //The legend should keep max opacity + $('[data-label]', $(element).siblings()).css('opacity', 1); + }; } this.checkIfEnoughData(); diff --git a/src/ui/public/visualize/visualize_legend.html b/src/ui/public/visualize/visualize_legend.html index 568541d530af..3f8e2b4a09b3 100644 --- a/src/ui/public/visualize/visualize_legend.html +++ b/src/ui/public/visualize/visualize_legend.html @@ -6,8 +6,8 @@
  • @@ -38,4 +38,4 @@
  • -
    \ No newline at end of file + diff --git a/src/ui/public/visualize/visualize_legend.js b/src/ui/public/visualize/visualize_legend.js index b1a32bdc5d81..1924e4e97cc0 100644 --- a/src/ui/public/visualize/visualize_legend.js +++ b/src/ui/public/visualize/visualize_legend.js @@ -29,12 +29,18 @@ uiModules.get('kibana') refresh(); }); - $scope.highlightSeries = function (label) { - $('[data-label]', $elem.siblings()).not(function (els, el) { return $(el).data('label') !== label;}).css('opacity', 0.5); + $scope.highlight = function (event) { + var el = event.currentTarget; + var handler = $scope.renderbot.vislibVis.handler; + if(!handler) return; + handler.highlight.call(el, handler.el); }; - $scope.unhighlightSeries = function () { - $('[data-label]', $elem.siblings()).css('opacity', 1); + $scope.unhighlight = function (event) { + var el = event.currentTarget; + var handler = $scope.renderbot.vislibVis.handler; + if(!handler) return; + handler.unHighlight.call(el, handler.el); }; $scope.setColor = function (label, color) { diff --git a/test/fixtures/scenarios/logstashFunctional/makelogsIndexDefinition.js b/test/fixtures/scenarios/logstashFunctional/makelogsIndexDefinition.js index 67ecf94ca301..95b416ea852f 100644 --- a/test/fixtures/scenarios/logstashFunctional/makelogsIndexDefinition.js +++ b/test/fixtures/scenarios/logstashFunctional/makelogsIndexDefinition.js @@ -21,7 +21,6 @@ module.exports = { 'mapping': { 'type': 'string', 'index': 'analyzed', - 'omit_norms': true, 'fields': { 'raw': { 'index': 'not_analyzed', diff --git a/test/fixtures/scenarios/makelogs/makelogsIndexDefinition.js b/test/fixtures/scenarios/makelogs/makelogsIndexDefinition.js index 67ecf94ca301..95b416ea852f 100644 --- a/test/fixtures/scenarios/makelogs/makelogsIndexDefinition.js +++ b/test/fixtures/scenarios/makelogs/makelogsIndexDefinition.js @@ -21,7 +21,6 @@ module.exports = { 'mapping': { 'type': 'string', 'index': 'analyzed', - 'omit_norms': true, 'fields': { 'raw': { 'index': 'not_analyzed',