Explorar o código

AMBARI-8972 UI should react instantly on control buttons click. (atkach)

Andrii Tkach %!s(int64=10) %!d(string=hai) anos
pai
achega
16d0a86c1a

+ 4 - 2
ambari-web/app/views/main/admin/stack_upgrade/upgrade_group_view.js

@@ -101,7 +101,7 @@ App.upgradeGroupView = Em.View.extend({
    * @param status
    */
   setUpgradeItemStatus: function(item, status) {
-    App.ajax.send({
+    return App.ajax.send({
       name: 'admin.upgrade.upgradeItem.setState',
       sender: this,
       data: {
@@ -110,7 +110,9 @@ App.upgradeGroupView = Em.View.extend({
         groupId: item.get('group_id'),
         status: status
       }
-    });
+    }).done(function () {
+        item.set('status', status);
+      });
   },
 
   /**

+ 15 - 3
ambari-web/test/views/main/admin/stack_upgrade/upgrade_group_view_test.js

@@ -214,13 +214,24 @@ describe('App.upgradeGroupView', function () {
 
   describe("#setUpgradeItemStatus()", function () {
     before(function () {
-      sinon.stub(App.ajax, 'send', Em.K);
+      sinon.stub(App.ajax, 'send', function () {
+        return {
+          done: function (callback) {
+            callback();
+          }
+        }
+      });
     });
     after(function () {
       App.ajax.send.restore();
     });
     it("", function () {
-      view.setUpgradeItemStatus(Em.Object.create({request_id: 1, stage_id: 1, group_id: 1}), 'PENDING');
+      var item = Em.Object.create({
+        request_id: 1,
+        stage_id: 1,
+        group_id: 1
+      })
+      view.setUpgradeItemStatus(item, 'PENDING');
       expect(App.ajax.send.getCall(0).args[0]).to.eql({
         name: 'admin.upgrade.upgradeItem.setState',
         sender: view,
@@ -230,7 +241,8 @@ describe('App.upgradeGroupView', function () {
           groupId: 1,
           status: 'PENDING'
         }
-      })
+      });
+      expect(item.get('status')).to.equal('PENDING');
     });
   });