From c3de58a1707ac298017b9d6b776402d3a4b54481 Mon Sep 17 00:00:00 2001 From: Matthew Bargar Date: Fri, 25 Aug 2017 15:53:40 -0400 Subject: [PATCH] Fix blank index pattern selector in Discover ui-select-match's expression was expecting an IndexPattern object, but the indexPatternList passed to ui-select-choices contained SavedObject instances due to the [SavedObjectsClient refactor][1]. This wasn't a problem most of the time because switching index patterns caused the entire directive to get destroyed and re-created. However, when the directive didn't get re-created (for example, when clicking the already selected pattern) it would result in a blank select box. Fixes https://github.com/elastic/kibana/issues/13080 [1]: https://github.com/elastic/kibana/pull/12719 --- .../discover/components/field_chooser/field_chooser.html | 3 +-- .../public/discover/components/field_chooser/field_chooser.js | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/core_plugins/kibana/public/discover/components/field_chooser/field_chooser.html b/src/core_plugins/kibana/public/discover/components/field_chooser/field_chooser.html index 990e5748415ee..c979dbeaee682 100644 --- a/src/core_plugins/kibana/public/discover/components/field_chooser/field_chooser.html +++ b/src/core_plugins/kibana/public/discover/components/field_chooser/field_chooser.html @@ -4,10 +4,9 @@ class="index-pattern-selection" ng-model="selectedIndexPattern" on-select="setIndexPattern($item)" - ng-init="selectedIndexPattern = indexPattern" > - {{$select.selected.title}} + {{$select.selected.get('title')}}
diff --git a/src/core_plugins/kibana/public/discover/components/field_chooser/field_chooser.js b/src/core_plugins/kibana/public/discover/components/field_chooser/field_chooser.js index f7cf3ca89845d..f36af73c6f857 100644 --- a/src/core_plugins/kibana/public/discover/components/field_chooser/field_chooser.js +++ b/src/core_plugins/kibana/public/discover/components/field_chooser/field_chooser.js @@ -30,6 +30,9 @@ app.directive('discFieldChooser', function ($location, globalState, config, $rou }, template: fieldChooserTemplate, link: function ($scope) { + $scope.selectedIndexPattern = $scope.indexPatternList.find( + (pattern) => pattern.id === $scope.indexPattern.id + ); $scope.indexPatternList = _.sortBy($scope.indexPatternList, o => o.get('title')); $scope.setIndexPattern = function (pattern) { $scope.state.index = pattern.id;