This is an automated email from the ASF dual-hosted git repository.

alexantonenko pushed a commit to branch branch-2.7
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/branch-2.7 by this push:
     new 55140c8  AMBARI-25410. Add autocomplete for all repos url for login 
and password
     new 3062942  Merge pull request #3119 from hiveww/AMBARI-25410-branch-2.7
55140c8 is described below

commit 55140c80f7734e91f6355d068ecc4bdfe3322cfc
Author: Alex Antonenko <aantone...@hortonworks.com>
AuthorDate: Sun Nov 3 17:29:23 2019 +0200

    AMBARI-25410. Add autocomplete for all repos url for login and password
---
 .../stackVersions/StackVersionsCreateCtrl.js       | 26 ++++++++++++++++++++
 .../stackVersions/StackVersionsEditCtrl.js         | 25 +++++++++++++++++++
 ambari-web/app/views/wizard/step1_view.js          | 28 ++++++++++++++++++++++
 3 files changed, 79 insertions(+)

diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsCreateCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsCreateCtrl.js
index 72b73ac..2a6c3f9 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsCreateCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsCreateCtrl.js
@@ -444,6 +444,32 @@ angular.module('ambariAdminConsole')
   $scope.onRepoUrlChange = function (repository) {
     $scope.clearError(repository);
     $scope.setInvalidUrlError(repository);
+    $scope.setUsernameAndPasswordsIfNeeded(repository);
+  };
+
+  $scope.setUsernameAndPasswordsIfNeeded = function(repo) {
+    try {
+      var urlObject = new URL(repo.Repositories.base_url);
+      var username = urlObject.username;
+      var password = urlObject.password;
+    } catch (e) {
+      return;
+    }
+    $scope.osList.forEach(function(os) {
+      if (os.repositories) {
+        os.repositories.forEach(function (repo) {
+          var currentUrl = repo.Repositories.base_url;
+          try {
+            var currentUrlObject = new URL(currentUrl);
+          } catch (e) {
+            return;
+          }
+          currentUrlObject.username = username;
+          currentUrlObject.password = password;
+          repo.Repositories.base_url = currentUrlObject.toString();
+        });
+      }
+    });
   };
 
   $scope.undoChange = function(repo) {
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsEditCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsEditCtrl.js
index 5af832d..e1f6b4f 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsEditCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsEditCtrl.js
@@ -322,6 +322,31 @@ angular.module('ambariAdminConsole')
     repo.Repositories.base_url = repo.Repositories.initial_base_url;
   };
 
+  $scope.onRepoUrlChange = function(repo) {
+    try {
+      var urlObject = new URL(repo.Repositories.base_url);
+      var username = urlObject.username;
+      var password = urlObject.password;
+    } catch (e) {
+      return;
+    }
+    $scope.osList.forEach(function(os) {
+      if (os.repositories) {
+        os.repositories.forEach(function (repo) {
+          var currentUrl = repo.Repositories.base_url;
+          try {
+            var currentUrlObject = new URL(currentUrl);
+          } catch (e) {
+            return;
+          }
+          currentUrlObject.username = username;
+          currentUrlObject.password = password;
+          repo.Repositories.base_url = currentUrlObject.toString();
+        });
+      }
+    });
+  };
+
   $scope.clearErrors = function() {
     if ($scope.osList) {
       $scope.osList.forEach(function(os) {
diff --git a/ambari-web/app/views/wizard/step1_view.js 
b/ambari-web/app/views/wizard/step1_view.js
index ba23c06..eb107b9 100644
--- a/ambari-web/app/views/wizard/step1_view.js
+++ b/ambari-web/app/views/wizard/step1_view.js
@@ -313,6 +313,9 @@ App.WizardStep1View = Em.View.extend({
     if (!repositories) {
       return;
     }
+    var changedRepo = repositories.find(function(repository) {
+      return repository.get('lastBaseUrl') && repository.get('lastBaseUrl') 
!== repository.get('baseUrl');
+    });
     repositories.forEach(function (repository) {
       if (repository.get('lastBaseUrl') !== repository.get('baseUrl')) {
         repository.setProperties({
@@ -321,6 +324,31 @@ App.WizardStep1View = Em.View.extend({
         });
       }
     }, this);
+    if (changedRepo) {
+      try {
+        var urlObject = new URL(changedRepo.get('baseUrl'));
+      } catch (e) {
+        return;
+      }
+      var username = urlObject.username;
+      var password = urlObject.password;
+      repositories.forEach(function (repository) {
+        var currentUrl = repository.get('baseUrl');
+        try {
+          var currentUrlObject = new URL(currentUrl);
+        } catch (e) {
+          return;
+        }
+        currentUrlObject.username = username;
+        currentUrlObject.password = password;
+        var newUrl = currentUrlObject.toString();
+        if (newUrl !== currentUrl) {
+          setTimeout(function () {
+            repository.set('baseUrl', newUrl);
+          }, 0);
+        }
+      }, this);
+    }
   }.observes('allRepositories.@each.baseUrl')
 
 });

Reply via email to