You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by wu...@apache.org on 2022/11/16 02:54:40 UTC

[ambari] branch trunk updated: AMBARI-25410: Add autocomplete for all repos url for login and password (#3503)

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

wuzhiguo pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new e87e2b6565 AMBARI-25410: Add autocomplete for all repos url for login and password (#3503)
e87e2b6565 is described below

commit e87e2b65652723457d0173f777ba86aeff57e5e0
Author: Zhiguo Wu <wu...@apache.org>
AuthorDate: Wed Nov 16 10:54:34 2022 +0800

    AMBARI-25410: Add autocomplete for all repos url for login and password (#3503)
---
 .../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 78f0880ed0..cd86d5d815 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
@@ -440,6 +440,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 7b10a1e60c..5452c60ce8 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 ba23c06454..eb107b9edd 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')
 
 });


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ambari.apache.org
For additional commands, e-mail: commits-help@ambari.apache.org