Explorar o código

AMBARI-14406. Display A Dialog When Beginning An Upgrade.(xiwang)

Xi Wang %!s(int64=9) %!d(string=hai) anos
pai
achega
6ad6d441b8

+ 46 - 0
ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js

@@ -581,6 +581,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    * @param {object} version
    */
   upgrade: function (version) {
+    var self = this;
     this.set('requestInProgress', true);
     App.ajax.send({
       name: 'admin.upgrade.start',
@@ -593,6 +594,51 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
       }
     });
     this.setDBProperty('currentVersion', this.get('currentVersion'));
+
+    // Show a "preparing the upgrade..." dialog in case the api call returns too slow
+    if (App.router.get('currentState.name') != 'stackUpgrade') {
+      self.showPreparingUpgradeIndicator();
+    }
+  },
+
+  /**
+   * Should progress bar be displayed when preparing upgrade,
+   * should show after Upgrade Options window and before Upgrade Wizard
+   * @method showPreparingUpgradeIndicator
+   */
+  showPreparingUpgradeIndicator: function () {
+    return App.ModalPopup.show({
+      header: '',
+      showFooter: false,
+      showCloseButton: false,
+      bodyClass: Em.View.extend({
+        templateName: require('templates/wizard/step8/step8_log_popup'),
+        controllerBinding: 'App.router.mainAdminStackAndUpgradeController',
+
+        /**
+         * Css-property for progress-bar
+         * @type {string}
+         */
+        barWidth: 'width: 100%;',
+        progressBarClass: 'progress progress-striped active log_popup',
+
+        /**
+         * Popup-message
+         * @type {string}
+         */
+        message: Em.I18n.t('admin.stackUpgrade.dialog.prepareUpgrade.header'),
+
+        /**
+         * Hide popup when upgrade wizard is open
+         * @method autoHide
+         */
+        autoHide: function () {
+          if (!this.get('controller.requestInProgress')) {
+            this.get('parentView').hide();
+          }
+        }.observes('controller.requestInProgress')
+      })
+    });
   },
 
   /**

+ 1 - 0
ambari-web/app/controllers/wizard/step8_controller.js

@@ -1767,6 +1767,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz
          * @type {string}
          */
         barWidth: '',
+        progressBarClass: 'progress log_popup',
 
         /**
          * Popup-message

+ 1 - 0
ambari-web/app/messages.js

@@ -1573,6 +1573,7 @@ Em.I18n.translations = {
   'admin.stackUpgrade.dialog.details.open': "show details",
   'admin.stackUpgrade.dialog.details.hide': "hide details",
   'admin.stackUpgrade.dialog.notActive': "Waiting to execute the next task...",
+  'admin.stackUpgrade.dialog.prepareUpgrade.header': "Preparing the Upgrade...",
   'services.service.start':'Start',
   'services.service.stop':'Stop',
   'services.service.metrics':'Metrics',

+ 1 - 1
ambari-web/app/templates/wizard/step8/step8_log_popup.hbs

@@ -16,7 +16,7 @@
 * limitations under the License.
 }}
 <p>{{view.message}}</p>
-<div class="progress log_popup">
+<div {{bindAttr class="view.progressBarClass"}}>
     <div class="bar" {{bindAttr style="view.barWidth"}}>
     </div>
 </div>