From ad4884890b99b5ae3c0317d14f4267a661170ad5 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Thu, 24 Jan 2019 10:01:15 +0000 Subject: [PATCH] [ML] Adding missed applyAsync calls (#28814) * [ML] Adding missed applyAsync calls * fixing data recognizer results panel * adding extra applySync calls to job saving in advanced job page * fix for forcast results display issue --- .../components/data_recognizer/data_recognizer.js | 3 +++ .../public/datavisualizer/datavisualizer_controller.js | 7 ++++++- .../public/jobs/new_job/advanced/new_job_controller.js | 10 ++++++++++ .../single_metric/create_job/create_job_controller.js | 1 + .../timeseries_chart/timeseries_chart_directive.js | 6 ++++-- 5 files changed, 24 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/ml/public/components/data_recognizer/data_recognizer.js b/x-pack/plugins/ml/public/components/data_recognizer/data_recognizer.js index cc13feaa4a9cc3..80f17042c75789 100644 --- a/x-pack/plugins/ml/public/components/data_recognizer/data_recognizer.js +++ b/x-pack/plugins/ml/public/components/data_recognizer/data_recognizer.js @@ -41,6 +41,9 @@ export class DataRecognizer extends Component { )); if (typeof this.results === 'object') { this.results.count = results.length; + if (typeof this.results.onChange === 'function') { + this.results.onChange(); + } } this.setState({ diff --git a/x-pack/plugins/ml/public/datavisualizer/datavisualizer_controller.js b/x-pack/plugins/ml/public/datavisualizer/datavisualizer_controller.js index 1b21027d9f3077..8403d6bf47b04a 100644 --- a/x-pack/plugins/ml/public/datavisualizer/datavisualizer_controller.js +++ b/x-pack/plugins/ml/public/datavisualizer/datavisualizer_controller.js @@ -95,7 +95,12 @@ module $scope.metricFieldFilter = ''; $scope.fieldFilterIcon = 0; $scope.fieldFilter = ''; - $scope.recognizerResults = { count: 0 }; + $scope.recognizerResults = { + count: 0, + onChange() { + $scope.$applyAsync(); + } + }; $scope.showSidebar = isFullLicense(); diff --git a/x-pack/plugins/ml/public/jobs/new_job/advanced/new_job_controller.js b/x-pack/plugins/ml/public/jobs/new_job/advanced/new_job_controller.js index 3aedb1b3f11f07..976137a429561f 100644 --- a/x-pack/plugins/ml/public/jobs/new_job/advanced/new_job_controller.js +++ b/x-pack/plugins/ml/public/jobs/new_job/advanced/new_job_controller.js @@ -595,6 +595,7 @@ module.controller('MlNewJob', ); // update status $scope.ui.saveStatus.job = 2; + $scope.$applyAsync(); // save successful, attempt to open the job mlJobService.openJob($scope.job.job_id) @@ -631,10 +632,14 @@ module.controller('MlNewJob', resp ); $scope.saveLock = false; + }) + .then(() => { + $scope.$applyAsync(); }); } else { // no datafeed, so save is complete $scope.saveLock = false; + $scope.$applyAsync(); } } @@ -650,6 +655,7 @@ module.controller('MlNewJob', values: { message: result.resp.message } }) ); + $scope.$applyAsync(); } }).catch((result) => { $scope.ui.saveStatus.job = -1; @@ -660,6 +666,7 @@ module.controller('MlNewJob', values: { message: result.resp.message } }) ); + $scope.$applyAsync(); }); } }) @@ -670,11 +677,13 @@ module.controller('MlNewJob', }) ); console.log('save(): job validation failed. Jobs list could not be loaded.'); + $scope.$applyAsync(); }); } else { msgs.error(jobValid.message); console.log('save(): job validation failed'); + $scope.$applyAsync(); } }; @@ -689,6 +698,7 @@ module.controller('MlNewJob', }) .then(() => { msgs.clear(); + $scope.$applyAsync(); $location.path('jobs'); }); }; diff --git a/x-pack/plugins/ml/public/jobs/new_job/simple/single_metric/create_job/create_job_controller.js b/x-pack/plugins/ml/public/jobs/new_job/simple/single_metric/create_job/create_job_controller.js index 9dc6c159dbc9de..f2b75b053d05ea 100644 --- a/x-pack/plugins/ml/public/jobs/new_job/simple/single_metric/create_job/create_job_controller.js +++ b/x-pack/plugins/ml/public/jobs/new_job/simple/single_metric/create_job/create_job_controller.js @@ -475,6 +475,7 @@ module msgs.error(i18n('xpack.ml.newJob.simple.singleMetric.saveDatafeedFailedErrorMessage', { defaultMessage: 'Save datafeed failed: ' }), resp); + $scope.$applyAsync(); }); } }; diff --git a/x-pack/plugins/ml/public/timeseriesexplorer/components/timeseries_chart/timeseries_chart_directive.js b/x-pack/plugins/ml/public/timeseriesexplorer/components/timeseries_chart/timeseries_chart_directive.js index 9286932bc879d3..5f3c8c1fec46bf 100644 --- a/x-pack/plugins/ml/public/timeseriesexplorer/components/timeseries_chart/timeseries_chart_directive.js +++ b/x-pack/plugins/ml/public/timeseriesexplorer/components/timeseries_chart/timeseries_chart_directive.js @@ -32,7 +32,7 @@ import { I18nProvider } from '@kbn/i18n/react'; import chrome from 'ui/chrome'; const mlAnnotationsEnabled = chrome.getInjected('mlAnnotationsEnabled', false); -module.directive('mlTimeseriesChart', function () { +module.directive('mlTimeseriesChart', function ($timeout) { function link(scope, element) { // Key dimensions for the viz and constituent charts. @@ -85,7 +85,9 @@ module.directive('mlTimeseriesChart', function () { renderReactComponent(); scope.$on('render', () => { - renderReactComponent(); + $timeout(() => { + renderReactComponent(); + }); }); function renderFocusChart() {