Prechádzať zdrojové kódy

AMBARI-2029. Error when loading /main/services directly. (yusaku)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1476475 13f79535-47bb-0310-9956-ffa450edef68
Yusaku Sako 12 rokov pred
rodič
commit
b1eb5be76b

+ 2 - 0
CHANGES.txt

@@ -798,6 +798,8 @@ Trunk (unreleased changes):
  Farrellee via mahadev)
 
  BUG FIXES
+
+ AMBARI-2029. Error when loading /main/services directly. (yusaku)
  
  AMBARI-2039. Service check should be scheduled on a client that is on
  a host in HEALTHY state. (smohanty)

+ 17 - 0
ambari-web/app/controllers/main.js

@@ -54,6 +54,23 @@ App.MainController = Em.Controller.extend({
       console.log('Administrator logged in');
     }
   },
+
+  dataLoading: function () {
+    var self = this;
+    var dfd = $.Deferred();
+    if (App.router.get('clusterController.isLoaded')) {
+      dfd.resolve();
+    } else {
+      var interval = setInterval(function () {
+        if (self.get('isClusterDataLoaded')) {
+          dfd.resolve();
+          clearInterval(interval);
+        }
+      }, 50);
+    }
+    return dfd.promise();
+  },
+
   startPolling: function(){
     App.router.get('updateController').set('isWorking', true);
     App.router.get('backgroundOperationsController').set('isWorking', true);

+ 4 - 1
ambari-web/app/routes/main.js

@@ -785,13 +785,16 @@ module.exports = Em.Route.extend({
     index: Ember.Route.extend({
       route: '/',
       enter: function (router) {
-        Ember.run.next(function () {
+        Ember.run.next(function(){
+        var controller = router.get('mainController');
+        controller.dataLoading().done(function () {
           var service = router.get('mainServiceItemController.content');
           if (!service) {
             service = App.Service.find().objectAt(0); // getting the first service to display
           }
           router.transitionTo('service.summary', service);
         });
+      });
       }
     }),
     connectOutlets: function (router, context) {