AMBARI-18353. Ambari Dashboard UI does not load intermittently. (jaimin) Change-Id: I5ddb3d22b2ec2d156a97ef6df880f1f5cd778657
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ff0c5653 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ff0c5653 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ff0c5653 Branch: refs/heads/AMBARI-2.4.0.2 Commit: ff0c5653acf2462dfb52ce50c4aa964709e56075 Parents: 6774505 Author: Jaimin Jetly <[email protected]> Authored: Sat Sep 10 11:51:01 2016 -0700 Committer: Jaimin Jetly <[email protected]> Committed: Sat Sep 10 11:51:01 2016 -0700 ---------------------------------------------------------------------- ambari-web/app/mappers/service_mapper.js | 29 ++++++++++++++++++++++----- ambari-web/app/models/service.js | 2 +- 2 files changed, 25 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/ff0c5653/ambari-web/app/mappers/service_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/service_mapper.js b/ambari-web/app/mappers/service_mapper.js index 9c21789..9a330f9 100644 --- a/ambari-web/app/mappers/service_mapper.js +++ b/ambari-web/app/mappers/service_mapper.js @@ -61,12 +61,31 @@ App.serviceMapper = App.QuickDataMapper.create({ App.store.commit(); this.set('initialAppLoad', true); } - - for (var service in passiveStateMap) { - if (passiveStateMap.hasOwnProperty(service)) { - App.Service.find(service).set('passiveState', passiveStateMap[service]); + this.servicesLoading().done(function setMaintenanceState() { + for (var service in passiveStateMap) { + if (passiveStateMap.hasOwnProperty(service)) { + App.Service.find(service).set('passiveState', passiveStateMap[service]); + } } - } + }); + console.timeEnd("App.serviceMapper execution time"); + }, + + servicesLoading: function () { + var dfd = $.Deferred(); + var isAllServicesLoaded = App.store.findAll(App.Service).everyProperty('isLoaded', true); + if (isAllServicesLoaded) { + dfd.resolve(); + } else { + var interval = setInterval(function checkIfServicesLoaded() { + var isAllServicesLoaded = App.store.findAll(App.Service).everyProperty('isLoaded', true); + if (isAllServicesLoaded) { + dfd.resolve(); + clearInterval(interval); + } + }, 5); + } + return dfd.promise(); } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ff0c5653/ambari-web/app/models/service.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/service.js b/ambari-web/app/models/service.js index c648e93..e9dc327 100644 --- a/ambari-web/app/models/service.js +++ b/ambari-web/app/models/service.js @@ -23,7 +23,7 @@ require('utils/config'); App.Service = DS.Model.extend({ serviceName: DS.attr('string'), displayName: Em.computed.formatRole('serviceName', true), - passiveState: DS.attr('string'), + passiveState: DS.attr('string', {defaultValue: "OFF"}), workStatus: DS.attr('string'), rand: DS.attr('string'), toolTipContent: DS.attr('string'),
