浏览代码

AMBARI-9397 Rolling Upgrade popup: "current task" section at the top should not disappear. (atkach)

Andrii Tkach 10 年之前
父节点
当前提交
e3fccc2da9

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

@@ -1373,6 +1373,7 @@ Em.I18n.translations = {
   'admin.stackUpgrade.dialog.closePause': "Upgrade is paused. \n If you dismiss this window, you can resume Upgrade later.",
   'admin.stackUpgrade.dialog.details.open': "show details",
   'admin.stackUpgrade.dialog.details.hide': "hide details",
+  'admin.stackUpgrade.dialog.notActive': "Waiting to execute the next task...",
   'services.service.start':'Start',
   'services.service.stop':'Stop',
   'services.service.metrics':'Metrics',

+ 7 - 0
ambari-web/app/templates/main/admin/stack_upgrade/stack_upgrade_wizard.hbs

@@ -116,6 +116,13 @@
             </div>
           {{/if}}
         {{/if}}
+        {{#if view.noActiveItem}}
+          <div class="box details-box">
+            <div>
+              {{t admin.stackUpgrade.dialog.notActive}}
+            </div>
+          </div>
+        {{/if}}
       </div>
       {{#each group in view.upgradeGroups}}
         {{#if group.isVisible}}

+ 8 - 0
ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js

@@ -109,6 +109,14 @@ App.upgradeWizardView = Em.View.extend({
     }, this);
   }.property('activeGroup.upgradeItems.@each.status'),
 
+  /**
+   * upgrade doesn't have any failed or manual or running item
+   * @type {boolean}
+   */
+  noActiveItem: function () {
+    return (Em.isNone(this.get('failedItem')) && Em.isNone(this.get('runningItem')) && Em.isNone(this.get('manualItem')));
+  }.property('failedItem', 'runningItem', 'manualItem'),
+
   /**
    * details of currently active task
    * @type {object|undefined}

+ 43 - 0
ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js

@@ -212,6 +212,49 @@ describe('App.upgradeWizardView', function () {
     });
   });
 
+  describe("#noActiveItem", function () {
+    var testCases = [
+      {
+        data: {
+          failedItem: null,
+          runningItem: null,
+          manualItem: null
+        },
+        result: true
+      },
+      {
+        data: {
+          failedItem: {},
+          runningItem: null,
+          manualItem: null
+        },
+        result: false
+      },
+      {
+        data: {
+          failedItem: null,
+          runningItem: {},
+          manualItem: null
+        },
+        result: false
+      },
+      {
+        data: {
+          failedItem: null,
+          runningItem: null,
+          manualItem: {}
+        },
+        result: false
+      }
+    ].forEach(function (test) {
+        it("failedItem = " + test.data.failedItem + ";runningItem = " + test.data.runningItem + ";manualItem = " + test.data.manualItem, function () {
+          view.reopen(test.data);
+          view.propertyDidChange('noActiveItem');
+          expect(view.get('noActiveItem')).to.equal(test.result);
+        });
+      });
+  });
+
   describe("#isHoldingState", function () {
     var testCases = [
       {