Bladeren bron

AMBARI-11061. Select stacks page : Next button is disabled forever (onechiporenko)

Oleg Nechiporenko 10 jaren geleden
bovenliggende
commit
a1b19ea27f

+ 10 - 6
ambari-web/app/controllers/installer.js

@@ -515,9 +515,11 @@ App.InstallerController = App.WizardController.extend({
       selectedStack.get('operatingSystems').forEach(function (os) {
         if (os.get('isSelected')) {
           os.get('repositories').forEach(function (repo) {
-            repo.set('errorTitle', '');
-            repo.set('errorContent', '');
-            repo.set('validation', App.Repository.validation['INPROGRESS']);
+            repo.setProperties({
+              errorTitle: '',
+              errorContent: '',
+              validation: App.Repository.validation['INPROGRESS']
+            });
             this.set('content.isCheckInProgress', true);
             App.ajax.send({
               name: 'wizard.advanced_repositories.valid_url',
@@ -575,9 +577,11 @@ App.InstallerController = App.WizardController.extend({
       var os = selectedStack.get('operatingSystems').findProperty('id', params.osId);
       var repo = os.get('repositories').findProperty('repoId', params.repoId);
       if (repo) {
-        repo.set('validation', App.Repository.validation['INVALID']);
-        repo.set('errorTitle', request.status + ":" + request.statusText);
-        repo.set('errorContent', $.parseJSON(request.responseText) ? $.parseJSON(request.responseText).message : "");
+        repo.setProperties({
+          validation: App.Repository.validation['INVALID'],
+          errorTitle: request.status + ":" + request.statusText,
+          errorContent: $.parseJSON(request.responseText) ? $.parseJSON(request.responseText).message : ""
+        });
       }
     }
     this.set('content.isCheckInProgress', false);

+ 2 - 2
ambari-web/app/mappers/stack_mapper.js

@@ -85,8 +85,8 @@ App.stackMapper = App.QuickDataMapper.create({
 
         var repositoriesArray = [];
         ops.repositories.forEach(function(repo) {
-          repo.Repositories.id = repo.Repositories.os_type + "-" + repo.Repositories.repo_id;
-          repo.Repositories.os_id = repo.Repositories.stack_name + "-" + repo.Repositories.stack_version + "-" + repo.Repositories.os_type;
+          repo.Repositories.id = [repo.Repositories.stack_name, repo.Repositories.stack_version, repo.Repositories.os_type, repo.Repositories.repo_id].join('-');
+          repo.Repositories.os_id = [repo.Repositories.stack_name, repo.Repositories.stack_version, repo.Repositories.os_type].join('-');
           resultRepo.push(this.parseIt(repo.Repositories, this.get('configRepository')));
           repositoriesArray.pushObject(repo.Repositories);
         }, this);

+ 18 - 16
ambari-web/app/views/wizard/step1_view.js

@@ -49,10 +49,7 @@ App.WizardStep1View = Em.View.extend({
 
   operatingSystems: function () {
     var selectedStack = this.get('controller.selectedStack');
-    var result = [];
-    if (!!selectedStack)
-      result = selectedStack.get('operatingSystems');
-    return result;
+    return Em.isNone(selectedStack) ? [] : selectedStack.get('operatingSystems');
   }.property('controller.selectedStack'),
 
   /**
@@ -65,10 +62,7 @@ App.WizardStep1View = Em.View.extend({
    */
   allRepositories: function () {
     var selectedStack = this.get('controller.selectedStack');
-    var result = [];
-    if (!!selectedStack)
-      result = selectedStack.get('repositories');
-    return result;
+    return Em.isNone(selectedStack) ? [] : selectedStack.get('repositories');
   }.property('controller.selectedStack'),
 
   /**
@@ -186,8 +180,10 @@ App.WizardStep1View = Em.View.extend({
       operatingSystems.forEach(function (os) {
         if (!os.get('isSelected')) {
           os.get('repositories').forEach(function (repository) {
-            repository.set('baseUrl', repository.get('latestBaseUrl'));
-            repository.set('validation', App.Repository.validation['PENDING']);
+            repository.setProperties({
+              baseUrl: repository.get('latestBaseUrl'),
+              validation: App.Repository.validation['PENDING']
+            });
           });
         } else {
           os.get('repositories').forEach(function (repository) {
@@ -206,8 +202,10 @@ App.WizardStep1View = Em.View.extend({
    * @param {object} event
    */
   undoGroupLocalRepository: function (event) {
-    event.context.set('baseUrl', event.context.get('latestBaseUrl'));
-    event.context.set('validation', App.Repository.validation['PENDING']);
+    event.context.setProperties({
+      baseUrl: event.context.get('latestBaseUrl'),
+      validation: App.Repository.validation['PENDING']
+    });
   },
 
   /**
@@ -219,8 +217,10 @@ App.WizardStep1View = Em.View.extend({
     if (!event.context.get('isSelected')) {
       return;
     }
-    event.context.set('baseUrl', '');
-    event.context.set('validation', App.Repository.validation['PENDING']);
+    event.context.setProperties({
+      baseUrl: '',
+      validation: App.Repository.validation['PENDING']
+    });
   },
 
   /**
@@ -232,8 +232,10 @@ App.WizardStep1View = Em.View.extend({
     var repositories = this.get('allRepositories');
     repositories.forEach(function (repository) {
       if (repository.get('lastBaseUrl') != repository.get('baseUrl')) {
-        repository.set('lastBaseUrl', repository.get('baseUrl'));
-        repository.set('validation', App.Repository.validation['PENDING']);
+        repository.setProperties({
+          lastBaseUrl: repository.get('baseUrl'),
+          validation: App.Repository.validation['PENDING']
+        });
       }
     }, this);
   }.observes('allRepositories.@each.baseUrl')

+ 1 - 0
ambari-web/test/mappers/stack_mapper_test.js

@@ -284,6 +284,7 @@ describe('App.stackMapper', function () {
     it ('should map Repository data', function() {
       App.stackMapper.map(test_data);
       expect(App.Repository.find().get('length')).to.equal(8);
+      expect(App.Repository.find().mapProperty('id')).to.eql(["HDP-2.1-redhat5-HDP-2.1", "HDP-2.1-redhat5-HDP-UTILS-1.1.0.17", "HDP-2.1-redhat6-HDP-2.1", "HDP-2.1-redhat6-HDP-UTILS-1.1.0.17", "HDP-1.3-redhat5-HDP-1.3", "HDP-1.3-redhat5-HDP-UTILS-1.1.0.16", "HDP-1.3-redhat6-HDP-1.3", "HDP-1.3-redhat6-HDP-UTILS-1.1.0.16"]);
     });
   });
 });