Repository: ambari Updated Branches: refs/heads/trunk da826636c -> 283ec21ec
AMBARI-11478. Configs saving popup is displayed if user navigates away before configs are loaded (akovalenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/da02aeef Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/da02aeef Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/da02aeef Branch: refs/heads/trunk Commit: da02aeef78008ed82b67132c1e3c4843883acff7 Parents: da82663 Author: Aleksandr Kovalenko <[email protected]> Authored: Thu May 28 13:58:53 2015 +0300 Committer: Aleksandr Kovalenko <[email protected]> Committed: Thu May 28 13:58:53 2015 +0300 ---------------------------------------------------------------------- .../app/mixins/common/configs/configs_saver.js | 2 +- .../main/service/info/config_test.js | 31 +++++++++++++++----- 2 files changed, 24 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/da02aeef/ambari-web/app/mixins/common/configs/configs_saver.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/common/configs/configs_saver.js b/ambari-web/app/mixins/common/configs/configs_saver.js index 7b2af7a..4626c15 100644 --- a/ambari-web/app/mixins/common/configs/configs_saver.js +++ b/ambari-web/app/mixins/common/configs/configs_saver.js @@ -156,7 +156,7 @@ App.ConfigsSaverMixin = Em.Mixin.create({ * @method hasUnsavedChanges */ hasUnsavedChanges: function () { - return this.get('hash') != this.getHash(); + return !Em.isNone(this.get('hash')) && this.get('hash') != this.getHash(); }, /*********************************** 1. PRE SAVE CHECKS ************************************/ http://git-wip-us.apache.org/repos/asf/ambari/blob/da02aeef/ambari-web/test/controllers/main/service/info/config_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/service/info/config_test.js b/ambari-web/test/controllers/main/service/info/config_test.js index b895ed6..0fedc6d 100644 --- a/ambari-web/test/controllers/main/service/info/config_test.js +++ b/ambari-web/test/controllers/main/service/info/config_test.js @@ -148,6 +148,24 @@ describe("App.MainServiceInfoConfigsController", function () { }); describe("#hasUnsavedChanges", function () { + var cases = [ + { + hash: null, + hasUnsavedChanges: false, + title: 'configs not rendered' + }, + { + hash: 'hash1', + hasUnsavedChanges: true, + title: 'with unsaved' + }, + { + hash: 'hash', + hasUnsavedChanges: false, + title: 'without unsaved' + } + ]; + beforeEach(function () { sinon.stub(mainServiceInfoConfigsController, "getHash", function () { return "hash" @@ -157,14 +175,11 @@ describe("App.MainServiceInfoConfigsController", function () { mainServiceInfoConfigsController.getHash.restore(); }); - it("with unsaved", function () { - mainServiceInfoConfigsController.set("hash", "hash1"); - expect(mainServiceInfoConfigsController.hasUnsavedChanges()).to.equal(true); - }); - - it("without unsaved", function () { - mainServiceInfoConfigsController.set("hash", "hash"); - expect(mainServiceInfoConfigsController.hasUnsavedChanges()).to.equal(false); + cases.forEach(function (item) { + it(item.title, function () { + mainServiceInfoConfigsController.set('hash', item.hash); + expect(mainServiceInfoConfigsController.hasUnsavedChanges()).to.equal(item.hasUnsavedChanges); + }); }); });
