diff --git a/src/core_plugins/kibana/public/management/sections/indices/_create.js b/src/core_plugins/kibana/public/management/sections/indices/_create.js index cb98e8682457..c0c00806f2bc 100644 --- a/src/core_plugins/kibana/public/management/sections/indices/_create.js +++ b/src/core_plugins/kibana/public/management/sections/indices/_create.js @@ -43,7 +43,14 @@ uiModules.get('apps/management') }; $scope.refreshFieldList = function () { - fetchFieldList().then(updateFieldList); + const timeField = index.timeField; + fetchFieldList().then(function (results) { + if (timeField) { + updateFieldListAndSetTimeField(results, timeField.name); + } else { + updateFieldList(results); + } + }); }; $scope.createIndexPattern = function () { @@ -247,6 +254,22 @@ uiModules.get('apps/management') }, notify.fatal); } + function updateFieldListAndSetTimeField(results, timeFieldName) { + updateFieldList(results); + + if (!results.dateFields.length) { + return; + } + + const matchingTimeField = results.dateFields.find(field => field.name === timeFieldName); + const defaultTimeField = results.dateFields[0]; + + //assign the field from the results-list + //angular recreates a new timefield instance, each time the list is refreshed. + //This ensures the selected field matches one of the instances in the list. + index.timeField = matchingTimeField ? matchingTimeField : defaultTimeField; + } + function updateFieldList(results) { index.fetchFieldsError = results.fetchFieldsError; index.dateFields = results.dateFields;