Просмотр исходного кода

AMBARI-6513. Move Wizard: big delay after clicking on show host progress popup (alexantonenko)

Alex Antonenko 11 лет назад
Родитель
Сommit
8afdb0b236

+ 1 - 1
ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js

@@ -400,7 +400,7 @@ App.HighAvailabilityProgressPageController = App.HighAvailabilityWizardControlle
     var popupTitle = event.contexts[0].title;
     var requestIds = event.contexts[0].requestIds;
     var hostProgressPopupController = App.router.get('highAvailabilityProgressPopupController');
-    hostProgressPopupController.initPopup(popupTitle, requestIds, this);
+    hostProgressPopupController.initPopup(popupTitle, requestIds, this, true);
   },
 
   done: function () {

+ 23 - 1
ambari-web/app/controllers/main/admin/highAvailability/progress_popup_controller.js

@@ -56,13 +56,31 @@ App.HighAvailabilityProgressPopupController = Ember.Controller.extend({
    */
   hostsData: [],
 
+  /**
+   * During loading and calculations show popup with spinner
+   * @type {Object}
+   */
+  spinnerPopup: null,
+
   /**
    * Get info for <code>requestIds</code> and initialize <code>App.HostPopup</code>
    * @param popupTitle {String}
    * @param requestIds {Array}
    * @param progressController {App.HighAvailabilityProgressPageController}
+   * @param showSpinner {Boolean}
    */
-  initPopup: function (popupTitle, requestIds, progressController) {
+  initPopup: function (popupTitle, requestIds, progressController, showSpinner) {
+    if(showSpinner){
+      var loadingPopup = App.ModalPopup.show({
+        header: Em.I18n.t('jobs.loadingTasks'),
+        primary: false,
+        secondary: false,
+        bodyClass: Ember.View.extend({
+          template: Ember.Handlebars.compile('<div class="spinner"></div>')
+        })
+      });
+      this.set('spinnerPopup', loadingPopup);
+    }
     this.set('progressController', progressController);
     this.set('popupTitle', popupTitle);
     this.set('requestIds', requestIds);
@@ -102,6 +120,10 @@ App.HighAvailabilityProgressPopupController = Ember.Controller.extend({
         this.addObserver('progressController.logs.length', this, 'getDataFromProgressController');
       }
     }
+    if(this.get('spinnerPopup')){
+      this.get('spinnerPopup').hide();
+      this.set('spinnerPopup', null);
+    }
   },
 
   /**