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 b9d5def  AMBARI-25265. upgrade AngularJS to v1.7.5 in ambari-admin ui
     new 28f5b7b  Merge pull request #2948 from hiveww/AMBARI-25265-branch-2.7
b9d5def is described below

commit b9d5def4da7acbb25bafd2f74b568134eb9fd8ca
Author: Alex Antonenko <aantone...@hortonworks.com>
AuthorDate: Thu Apr 25 17:24:16 2019 +0300

    AMBARI-25265. upgrade AngularJS to v1.7.5 in ambari-admin ui
---
 .../main/resources/ui/admin-web/app/scripts/app.js |   4 +-
 .../ambariViews/CreateViewInstanceCtrl.js          |   4 +-
 .../scripts/controllers/ambariViews/ViewUrlCtrl.js |   4 +-
 .../controllers/ambariViews/ViewUrlEditCtrl.js     |   4 +-
 .../controllers/ambariViews/ViewsEditCtrl.js       |  44 ++--
 .../controllers/clusters/ClusterInformationCtrl.js |   2 +-
 .../remoteClusters/RemoteClustersCreateCtrl.js     |   4 +-
 .../remoteClusters/RemoteClustersEditCtrl.js       |  14 +-
 .../remoteClusters/RemoteClustersListCtrl.js       |   7 +-
 .../stackVersions/StackVersionsCreateCtrl.js       |   2 +-
 .../stackVersions/StackVersionsEditCtrl.js         |   4 +-
 .../controllers/userManagement/GroupCreateCtrl.js  |   4 +-
 .../controllers/userManagement/GroupEditCtrl.js    |   4 +-
 .../admin-web/app/scripts/directives/linkToDir.js  |   2 +-
 .../ui/admin-web/app/scripts/services/Cluster.js   | 167 ++++++--------
 .../ui/admin-web/app/scripts/services/Group.js     |  42 ++--
 .../app/scripts/services/RemoteCluster.js          |  95 ++------
 .../ui/admin-web/app/scripts/services/Stack.js     | 253 ++++++++++-----------
 .../ui/admin-web/app/scripts/services/View.js      | 160 ++++++-------
 .../ui/admin-web/app/views/ambariViews/edit.html   |  10 +-
 .../admin-web/app/views/ambariViews/viewsList.html |   2 +-
 .../remoteClusters/editRemoteClusterPage.html      |   2 +-
 .../admin-web/app/views/remoteClusters/list.html   |   4 +-
 .../views/remoteClusters/remoteClusterPage.html    |   2 +-
 .../resources/ui/admin-web/app/views/sideNav.html  |   6 +-
 .../ui/admin-web/app/views/stackVersions/list.html |   4 +-
 .../app/views/stackVersions/stackVersionPage.html  |   2 +-
 .../app/views/userManagement/groupEdit.html        |   6 +-
 .../admin-web/app/views/userManagement/main.html   |   4 +-
 .../app/views/userManagement/userEdit.html         |   6 +-
 .../app/views/userManagement/usersList.html        |   2 +-
 .../src/main/resources/ui/admin-web/bower.json     |  13 +-
 32 files changed, 377 insertions(+), 506 deletions(-)

diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/app.js 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/app.js
index f68a1cf..94bf10e 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/app.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/app.js
@@ -113,7 +113,7 @@ angular.module('ambariAdminConsole', [
     ngModel.controller = ['$scope', '$element', '$attrs', '$injector', 
function(scope, element, attrs, $injector) {
       var $interpolate = $injector.get('$interpolate');
       attrs.$set('name', $interpolate(attrs.name || '')(scope));
-      $injector.invoke(controller, this, {
+      $injector.invoke(controller, Object.setPrototypeOf(this, 
controller.prototype), {
         '$scope': scope,
         '$element': element,
         '$attrs': attrs
@@ -127,7 +127,7 @@ angular.module('ambariAdminConsole', [
     form.controller = ['$scope', '$element', '$attrs', '$injector', 
function(scope, element, attrs, $injector) {
       var $interpolate = $injector.get('$interpolate');
       attrs.$set('name', $interpolate(attrs.name || attrs.ngForm || 
'')(scope));
-        $injector.invoke(controller, this, {
+        $injector.invoke(controller, Object.setPrototypeOf(this, 
controller.prototype), {
         '$scope': scope,
         '$element': element,
         '$attrs': attrs
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/CreateViewInstanceCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/CreateViewInstanceCtrl.js
index 1199313..167ef43 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/CreateViewInstanceCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/CreateViewInstanceCtrl.js
@@ -123,8 +123,8 @@ function($scope, View, RemoteCluster, Alert, Cluster, 
$routeParams, $location, U
             '/versions/' + 
$scope.form.instanceCreateForm.version.$viewValue.value +
             '/instances/' + instanceName + '/edit');
         })
-        .catch(function (data) {
-          var errorMessage = data.message;
+        .catch(function (resp) {
+          var errorMessage = resp.data.message;
 
           if (data.status >= 400) {
             try {
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewUrlCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewUrlCtrl.js
index 9a234cc..c664061 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewUrlCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewUrlCtrl.js
@@ -126,8 +126,8 @@ angular.module('ambariAdminConsole')
         $scope.stepOneNotCompleted = true;
         $scope.stepTwoNotCompleted = true;
         $location.path(targetUrl);
-      }).catch(function(data) {
-        Alert.error($t('views.alerts.cannotLoadViewUrls'), data.message);
+      }).catch(function(resp) {
+        Alert.error($t('views.alerts.cannotLoadViewUrls'), resp.data.message);
       });
 
     }
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewUrlEditCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewUrlEditCtrl.js
index 4e961f0..40c5d4b 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewUrlEditCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewUrlEditCtrl.js
@@ -62,8 +62,8 @@ angular.module('ambariAdminConsole')
               }));
               $scope.url_form.$setPristine();
               $location.path(targetUrl);
-          }).catch(function(data) {
-              Alert.error($t('views.alerts.cannotLoadViewUrls'), 
data.data.message);
+          }).catch(function(resp) {
+              Alert.error($t('views.alerts.cannotLoadViewUrls'), 
resp.data.message);
           });
 
       }
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js
index b852b39..5447eaa 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js
@@ -55,11 +55,9 @@ angular.module('ambariAdminConsole')
               initCtrlVariables(instance);
               break;
           }
-        })
-        .catch(function(data) {
+        }, function(data) {
           Alert.error($t('views.alerts.cannotLoadInstanceInfo'), 
data.data.message);
         });
-
     }
 
     function initCtrlVariables(instance) {
@@ -68,7 +66,6 @@ angular.module('ambariAdminConsole')
        if (!clusterId) $scope.data.clusterType = 'NONE';
        switch($scope.data.clusterType) {
           case 'LOCAL_AMBARI':
-            $scope.cluster = null;
             $scope.clusters.forEach(function(cluster){
               if(cluster.id == clusterId){
                 $scope.cluster = cluster;
@@ -153,8 +150,7 @@ angular.module('ambariAdminConsole')
           $scope.permissionsEdit = permissions;
           $scope.permissions = angular.copy(permissions);
           $scope.isPermissionsEmpty = angular.equals({}, $scope.permissions);
-        })
-        .catch(function(data) {
+        }, function(data) {
           Alert.error($t('views.alerts.cannotLoadPermissions'), 
data.data.message);
         });
     }
@@ -261,8 +257,8 @@ angular.module('ambariAdminConsole')
             data.ViewInstanceInfo.properties[element.name] = 
$scope.configuration[element.name];
           }
         });
-        return View.updateInstance($routeParams.viewId, $routeParams.version, 
$routeParams.instanceId, data)
-          .success(function() {
+        return View.updateInstance($routeParams.viewId, $routeParams.version, 
$routeParams.instanceId, data).then(
+          function() {
             if( callback ){
               callback();
             } else {
@@ -270,10 +266,10 @@ angular.module('ambariAdminConsole')
               $scope.editSettingsDisabled = true;
               $scope.settingsForm.$setPristine();
             }
-          })
-          .catch(function(data) {
+          }, function(data) {
             Alert.error($t('views.alerts.cannotSaveSettings'), 
data.data.message);
-          });
+          }
+        );
       }
     };
     $scope.cancelSettings = function() {
@@ -292,8 +288,8 @@ angular.module('ambariAdminConsole')
             'description': $scope.settings.description
           }
         };
-        return View.updateInstance($routeParams.viewId, $routeParams.version, 
$routeParams.instanceId, data)
-          .success(function() {
+        return View.updateInstance($routeParams.viewId, $routeParams.version, 
$routeParams.instanceId, data).then(
+          function() {
             $scope.$root.$emit('instancesUpdate');
             if( callback ){
               callback();
@@ -302,10 +298,10 @@ angular.module('ambariAdminConsole')
               $scope.editDetailsSettingsDisabled = true;
               $scope.settingsForm.$setPristine();
             }
-          })
-          .catch(function(data) {
+          },  function(data) {
             Alert.error($t('views.alerts.cannotSaveSettings'), 
data.data.message);
-          });
+          }
+        );
       }
     };
     $scope.cancelDetails = function() {
@@ -357,12 +353,11 @@ angular.module('ambariAdminConsole')
           }
 
         $scope.originalClusterType = $scope.data.clusterType;
-        return View.updateInstance($routeParams.viewId, $routeParams.version, 
$routeParams.instanceId, data)
-          .success(function() {
+        return View.updateInstance($routeParams.viewId, $routeParams.version, 
$routeParams.instanceId, data).then(
+          function() {
             $scope.editConfigurationDisabled = true;
             $scope.propertiesForm.$setPristine();
-          })
-          .catch(function(data) {
+          }, function(data) {
             var errorMessage = data.data.message;
 
             //TODO: maybe the BackEnd should sanitize the string beforehand?
@@ -383,7 +378,8 @@ angular.module('ambariAdminConsole')
               }
             }
             Alert.error($t('views.alerts.cannotSaveProperties'), errorMessage);
-          });
+          }
+        );
       }
     };
     $scope.cancelConfiguration = function() {
@@ -410,8 +406,7 @@ angular.module('ambariAdminConsole')
           instance_name: $routeParams.instanceId
         }
         )
-        .then(reloadViewPrivileges)
-        .catch(function(data) {
+        .then(reloadViewPrivileges, function(data) {
           reloadViewPrivileges();
           Alert.error($t('common.alerts.cannotSavePermissions'), 
data.data.message);
         });
@@ -451,8 +446,7 @@ angular.module('ambariAdminConsole')
         View.deleteInstance(instance.ViewInstanceInfo.view_name, 
instance.ViewInstanceInfo.version, instance.ViewInstanceInfo.instance_name)
           .then(function() {
             $location.path('/views');
-          })
-          .catch(function(data) {
+          }, function(data) {
             Alert.error($t('views.alerts.cannotDeleteInstance'), 
data.data.message);
           });
       });
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/clusters/ClusterInformationCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/clusters/ClusterInformationCtrl.js
index 0ce634e..62eca96 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/clusters/ClusterInformationCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/clusters/ClusterInformationCtrl.js
@@ -94,7 +94,7 @@ function($scope, $http, $location, Cluster, $routeParams, 
$translate, $rootScope
     var oldClusterName = $scope.cluster.Clusters.cluster_name,
         newClusterName = $scope.edit.clusterName;
 
-    Cluster.editName(oldClusterName, newClusterName).then(function(data) {
+    Cluster.editName(oldClusterName, newClusterName).then(function() {
       $scope.cluster.Clusters.cluster_name = newClusterName;
       $scope.edit.clusterName = newClusterName;
       $scope.toggleSaveButton();
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersCreateCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersCreateCtrl.js
index 0977d09..0315a9e 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersCreateCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersCreateCtrl.js
@@ -48,9 +48,9 @@ angular.module('ambariAdminConsole')
           $scope.form.$setPristine();
           $location.path('/remoteClusters/'+ $scope.cluster.cluster_name 
+'/edit')
         })
-        .catch(function(data) {
+        .catch(function(resp) {
           console.log(data);
-          Alert.error(data.message);
+          Alert.error(resp.data.message);
        });
 
     }
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersEditCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersEditCtrl.js
index 74cb0f9..14726c8 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersEditCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersEditCtrl.js
@@ -78,13 +78,13 @@ angular.module('ambariAdminConsole')
               }
             }
 
-            RemoteCluster.edit(payload, config).then(function(data) {
+            RemoteCluster.edit(payload, config).then(function() {
                 Alert.success($t('views.alerts.credentialsUpdated'));
                 $scope.form.passwordChangeForm = {};
               })
-              .catch(function(data) {
-                console.log(data);
-                Alert.error(data.message);
+              .catch(function(resp) {
+                console.log(resp);
+                Alert.error(resp.data.message);
               });
 
             modalInstance.dismiss('cancel');
@@ -149,9 +149,9 @@ angular.module('ambariAdminConsole')
           Alert.success($t('views.alerts.savedRemoteClusterInformation'));
           $scope.form.$setPristine();
         })
-        .catch(function(data) {
-          console.log(data);
-          Alert.error(data.message);
+        .catch(function(resp) {
+          console.log(resp);
+          Alert.error(resp.data.message);
         });
     }
   };
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersListCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersListCtrl.js
index 5944d20..2765f37 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersListCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersListCtrl.js
@@ -80,10 +80,9 @@ function ($scope, $routeParams, $translate, RemoteCluster, 
Settings, Pagination,
       $scope.tableInfo.total = $scope.remoteClusters.length;
       $scope.filterClusters();
       Filters.initFilterOptions($scope.filters, $scope.remoteClusters);
-    })
-      .catch(function (data) {
-        console.error($t('remoteClusters.alerts.fetchError'), data);
-      });
+    }).catch(function (data) {
+      console.error($t('remoteClusters.alerts.fetchError'), data);
+    });
   }
 
   loadRemoteClusters();
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 78f0880..350f5c1 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
@@ -352,7 +352,7 @@ angular.module('ambariAdminConsole')
             });
           }
         })
-        .catch(function (data) {
+        .catch(function (resp) {
           Alert.error($t('versions.alerts.readVersionInfoError'), 
data.message);
         });
       } else {
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 7b10a1e..5af832d 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
@@ -241,8 +241,8 @@ angular.module('ambariAdminConsole')
     ).then(function() {
         Stack.deleteRepo($scope.upgradeStack.stack_name, 
$scope.upgradeStack.stack_version, $scope.id).then( function () {
           $location.path('/stackVersions');
-        }).catch(function (data) {
-            Alert.error($t('versions.alerts.versionDeleteError'), 
data.message);
+        }).catch(function (resp) {
+            Alert.error($t('versions.alerts.versionDeleteError'), 
resp.data.message);
           });
       });
   };
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/userManagement/GroupCreateCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/userManagement/GroupCreateCtrl.js
index aca58ef..e902e15 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/userManagement/GroupCreateCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/userManagement/GroupCreateCtrl.js
@@ -66,8 +66,8 @@ function($scope, $rootScope, Group, $location, Alert, 
UnsavedDialog, $translate,
     }).map(function(item) {
       return item.trim();
     });
-    return group.saveMembers().catch(function(data) {
-      Alert.error($t('groups.alerts.cannotUpdateGroupMembers'), "<div 
class='break-word'>" + data.message + "</div>");
+    return group.saveMembers().catch(function(resp) {
+      Alert.error($t('groups.alerts.cannotUpdateGroupMembers'), "<div 
class='break-word'>" + resp.data.message + "</div>");
     });
   }
 
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/userManagement/GroupEditCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/userManagement/GroupEditCtrl.js
index f963992..ba9017e 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/userManagement/GroupEditCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/userManagement/GroupEditCtrl.js
@@ -63,8 +63,8 @@ function($scope, $rootScope, Group, $routeParams, Cluster, 
View, Alert, Confirma
       }
     );
     $scope.group.members = newMembers;
-    $scope.group.saveMembers().catch(function(data) {
-        Alert.error($t('groups.alerts.cannotUpdateGroupMembers'), "<div 
class='break-word'>" + data.message + "</div>");
+    $scope.group.saveMembers().catch(function(resp) {
+        Alert.error($t('groups.alerts.cannotUpdateGroupMembers'), "<div 
class='break-word'>" + resp.data.message + "</div>");
       }).finally(function() {
         loadGroup();
       });
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/directives/linkToDir.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/directives/linkToDir.js
index 72f8a8c..c93948d 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/directives/linkToDir.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/directives/linkToDir.js
@@ -28,7 +28,7 @@ angular.module('ambariAdminConsole')
       id: '@'
     },
 
-    template: '<a href="#{{href}}" ng-transclude></a>',
+    template: '<a ng-href="#!{{href}}" ng-transclude></a>',
     controller: ['$scope', 'ROUTES', function($scope, ROUTES) {
       var route = ROUTES;
       angular.forEach($scope.route.split('.'), function(routeObj) {
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
index 1a99a65..3d3a370 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
@@ -48,11 +48,10 @@ angular.module('ambariAdminConsole')
     getAllClusters: function() {
       var deferred = $q.defer();
       $http.get(Settings.baseUrl + '/clusters?fields=Clusters/cluster_id', 
{mock: 'cluster/clusters.json'})
-      .then(function(data, status, headers) {
-        deferred.resolve(data.data.items);
-      })
-      .catch(function(data) {
-        deferred.reject(data);
+      .then(function(resp) {
+        deferred.resolve(resp.data.items);
+      }, function(resp) {
+        deferred.reject(resp.data);
       });
 
       return deferred.promise;
@@ -61,11 +60,10 @@ angular.module('ambariAdminConsole')
       var deferred = $q.defer();
 
       $http.get(Settings.baseUrl + 
'/clusters?fields=Clusters/provisioning_state', {mock: 'cluster/init.json'})
-      .then(function(data, status, headers) {
-        deferred.resolve(data.data.items[0]);
-      })
-      .catch(function(data) {
-        deferred.reject(data);
+      .then(function(resp) {
+        deferred.resolve(resp.data.items[0]);
+      }, function(resp) {
+        deferred.reject(resp.data);
       });
 
       return deferred.promise;
@@ -74,11 +72,10 @@ angular.module('ambariAdminConsole')
       var deferred = $q.defer();
 
       $http.get(Settings.baseUrl + 
'/services/AMBARI/components/AMBARI_SERVER?fields=RootServiceComponents/component_version,RootServiceComponents/properties/server.os_family&minimal_response=true',
 {mock: '2.1'})
-      .then(function(data) {
-        deferred.resolve(data.data.RootServiceComponents.component_version);
-      })
-      .catch(function(data) {
-        deferred.reject(data);
+      .then(function(resp) {
+        deferred.resolve(resp.data.RootServiceComponents.component_version);
+      }, function(resp) {
+        deferred.reject(resp.data);
       });
 
       return deferred.promise;
@@ -87,11 +84,10 @@ angular.module('ambariAdminConsole')
       var deferred = $q.defer();
 
       $http.get(Settings.baseUrl + 
'/services/AMBARI/components/AMBARI_SERVER?fields=RootServiceComponents/properties/server.os_family&minimal_response=true',
 {mock: 'redhat6'})
-      .then(function(data) {
-        
deferred.resolve(data.data.RootServiceComponents.properties['server.os_family']);
-      })
-      .catch(function(data) {
-        deferred.reject(data);
+      .then(function(resp) {
+        
deferred.resolve(resp.data.RootServiceComponents.properties['server.os_family']);
+      }, function(resp) {
+        deferred.reject(resp.data);
       });
 
       return deferred.promise;
@@ -100,20 +96,18 @@ angular.module('ambariAdminConsole')
       var deferred = $q.defer();
       var url = 
'/services/AMBARI/components/AMBARI_SERVER?fields=RootServiceComponents/properties/user.inactivity.timeout.default';
       $http.get(Settings.baseUrl + url)
-      .then(function(data) {
-        var properties = data.data.RootServiceComponents.properties;
+      .then(function(resp) {
+        var properties = resp.data.RootServiceComponents.properties;
         var timeout = properties? 
properties['user.inactivity.timeout.default'] : 0;
         deferred.resolve(timeout);
-      })
-      .catch(function(data) {
-        deferred.reject(data);
+      }, function(resp) {
+        deferred.reject(resp.data);
       });
 
       return deferred.promise;
     },
     getPermissions: function() {
       var deferred = $q.defer();
-
       $http({
         method: 'GET',
         url: Settings.baseUrl + '/permissions',
@@ -122,13 +116,13 @@ angular.module('ambariAdminConsole')
           fields: 'PermissionInfo',
           'PermissionInfo/resource_name': 'CLUSTER'
         }
-      })
-      .success(function(data) {
-        deferred.resolve(data.items);
-      })
-      .catch(function(data) {
-        deferred.reject(data); });
-
+      }).then(
+        function(resp) {
+          deferred.resolve(resp.data.items);
+        }, function(resp) {
+          deferred.reject(resp.data);
+        }
+      );
       return deferred.promise;
     },
     getRoleOptions: function () {
@@ -164,14 +158,14 @@ angular.module('ambariAdminConsole')
           params: {
             fields: 'PermissionInfo/*,authorizations/AuthorizationInfo/*'
           }
-        })
-          .success(function (data) {
-            rolesWithAuthorizations = data.items;
-            deferred.resolve(data.items);
-          })
-          .catch(function (data) {
-            deferred.reject(data);
-          });
+        }).then(
+          function (resp) {
+            rolesWithAuthorizations = resp.data.items;
+            deferred.resolve(resp.data.items);
+          },function (resp) {
+            deferred.reject(resp.data);
+          }
+        );
       }
 
       return deferred.promise;
@@ -186,34 +180,27 @@ angular.module('ambariAdminConsole')
         params : {
           'fields': 'privileges/PrivilegeInfo'
         }
-      })
-      .success(function(data) {
-        deferred.resolve(data.privileges);
-      })
-      .catch(function(data) {
-        deferred.reject(data);
-      });
+      }).then(
+        function(resp) {
+          deferred.resolve(resp.data.privileges);
+        }, function(resp) {
+          deferred.reject(resp.data);
+        }
+      );
 
       return deferred.promise;
     },
     getPrivilegesForResource: function(params) {
-      var deferred = $q.defer();
       var isUser = (params.typeFilter.value == 'USER');
       var endpoint = isUser ? '/users' : '/groups';
       var nameURL = isUser ? '&Users/user_name.matches(' : 
'&Groups/group_name.matches(';
       var nameFilter = params.nameFilter ? (nameURL + params.nameFilter + ')') 
: '';
-      $http({
+      return $http({
         method : 'GET',
         url : Settings.baseUrl + endpoint + '?' + 
'fields=privileges/PrivilegeInfo/*' + nameFilter
-      })
-      .success(function(data) {
-        deferred.resolve(data);
-      })
-      .catch(function(data) {
-        deferred.reject(data);
+      }).then(function (resp) {
+        return resp.data;
       });
-
-      return deferred.promise;
     },
     createPrivileges: function(params, data) {
       return $http({
@@ -260,52 +247,46 @@ angular.module('ambariAdminConsole')
       });
     },
     getBlueprint: function(params){
-      var deferred = $q.defer();
       var clusterName = params.clusterName;
-      $http({
+      return $http({
         method: 'GET',
         url: Settings.baseUrl + '/clusters/' + clusterName + '?' + 
'format=blueprint'
-      })
-      .success(function(data) {
-        deferred.resolve(data);
-      })
-      .catch(function(data) {
-        deferred.reject(data);
+      }).then(function (resp) {
+        return resp.data;
       });
-      return deferred.promise;
     },
     getRepoVersionStatus: function (clusterName, repoId ) {
       var me = this;
       var deferred = $q.defer();
       var url = Settings.baseUrl + '/clusters/' + clusterName +
         '/stack_versions?fields=*&ClusterStackVersions/repository_version=' + 
repoId;
-      $http.get(url, {mock: 'cluster/repoVersionStatus.json'})
-      .success(function (data) {
-        data = data.items;
-        var response = {};
-        if (data.length > 0) {
-          var hostStatus = data[0].ClusterStackVersions.host_states;
-          var currentHosts = hostStatus['CURRENT'].length;
-          var installedHosts = hostStatus['INSTALLED'].length;
-          var totalHosts = 0;
-          // collect hosts on all status
-          angular.forEach(hostStatus, function(status) {
-            totalHosts += status.length;
-          });
-          response.status = data[0].ClusterStackVersions.state;
-          response.currentHosts = currentHosts;
-          response.installedHosts = installedHosts;
-          response.totalHosts = totalHosts;
-          response.stackVersionId = data[0].ClusterStackVersions.id;
-        } else {
-          response.status = '';
+      $http.get(url, {mock: 'cluster/repoVersionStatus.json'}).then(
+        function (resp) {
+          var data = resp.data.items;
+          var response = {};
+          if (data.length > 0) {
+            var hostStatus = data[0].ClusterStackVersions.host_states;
+            var currentHosts = hostStatus['CURRENT'].length;
+            var installedHosts = hostStatus['INSTALLED'].length;
+            var totalHosts = 0;
+            // collect hosts on all status
+            angular.forEach(hostStatus, function(status) {
+              totalHosts += status.length;
+            });
+            response.status = data[0].ClusterStackVersions.state;
+            response.currentHosts = currentHosts;
+            response.installedHosts = installedHosts;
+            response.totalHosts = totalHosts;
+            response.stackVersionId = data[0].ClusterStackVersions.id;
+          } else {
+            response.status = '';
+          }
+          me.repoStatusCache[repoId] = response.status;
+          deferred.resolve(response);
+        }, function (resp) {
+          deferred.reject(resp.data);
         }
-        me.repoStatusCache[repoId] = response.status;
-        deferred.resolve(response);
-      })
-      .catch(function (data) {
-        deferred.reject(data);
-      });
+      );
       return deferred.promise;
     }
   };
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Group.js 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Group.js
index dc6d351..429190b 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Group.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Group.js
@@ -54,21 +54,11 @@ angular.module('ambariAdminConsole')
   };
 
   Group.prototype.destroy = function() {
-    var deferred = $q.defer();
-    $http.delete(Settings.baseUrl + '/groups/' +this.group_name)
-    .success(function() {
-      deferred.resolve();
-    })
-    .error(function(data) {
-      deferred.reject(data);
-    });
-
-    return deferred.promise;
+    return $http.delete(Settings.baseUrl + '/groups/' +this.group_name);
   };
 
   Group.prototype.saveMembers = function() {
     var self = this;
-    var deferred = $q.defer();
 
     var members = [];
     angular.forEach(this.members, function(member) {
@@ -78,18 +68,11 @@ angular.module('ambariAdminConsole')
       });
     });
 
-    $http({
+    return $http({
       method: 'PUT',
       url: Settings.baseUrl + '/groups/' + this.group_name + '/members',
       data: members
-    })
-    .success(function(data) {
-      deferred.resolve(data);
-    })
-    .error(function(data) {
-      deferred.reject(data);
     });
-    return deferred.promise;
   };
 
   Group.removeMemberFromGroup = function(groupName, memberName) {
@@ -103,14 +86,13 @@ angular.module('ambariAdminConsole')
   Group.all = function() {
     var deferred = $q.defer();
 
-    $http.get(Settings.baseUrl + '/groups?fields=*')
-    .success(function(data) {
-      deferred.resolve(data.items);
-    })
-    .error(function(data) {
-      deferred.reject(data);
-    });
-
+    $http.get(Settings.baseUrl + '/groups?fields=*').then(
+      function(resp) {
+        deferred.resolve(resp.data.items);
+      }, function(resp) {
+        deferred.reject(resp.data);
+      }
+    );
     return deferred.promise;
   };
 
@@ -125,6 +107,8 @@ angular.module('ambariAdminConsole')
       params:{
         'fields': '*'
       }
+    }).then(function (resp) {
+      return resp.data;
     });
   };
 
@@ -134,8 +118,8 @@ angular.module('ambariAdminConsole')
       method: 'GET',
       url: Settings.baseUrl + '/groups/' + group_name +
       '?fields=Groups,privileges/PrivilegeInfo/*,members/MemberInfo'
-    }).success(function (data) {
-      deferred.resolve(Group.makeGroup(data));
+    }).then(function (resp) {
+      deferred.resolve(Group.makeGroup(resp.data));
     });
 
     return deferred.promise;
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RemoteCluster.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RemoteCluster.js
index 86407fd..0593ac2 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RemoteCluster.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RemoteCluster.js
@@ -24,102 +24,49 @@ angular.module('ambariAdminConsole')
     }
 
     RemoteCluster.edit = function(payload, config){
-      var deferred = $q.defer();
-
-      $http.put(Settings.baseUrl + '/remoteclusters/' + 
payload.ClusterInfo.name , payload, config)
-        .success(function (data) {
-          deferred.resolve(data)
-        })
-        .error(function (data) {
-          deferred.reject(data);
-        });
-      return deferred.promise;
+      return $http.put(Settings.baseUrl + '/remoteclusters/' + 
payload.ClusterInfo.name , payload, config);
     }
 
 
     RemoteCluster.getDetails = function(clusterName) {
-      var deferred = $q.defer();
-
-      $http.get( Settings.baseUrl  + '/remoteclusters/' + clusterName)
-        .success(function(response) {
-          deferred.resolve(response);
-        })
-        .error(function(data) {
-          deferred.reject(data);
-        });
-
-      return deferred.promise;
-
+      return $http.get( Settings.baseUrl  + '/remoteclusters/' + 
clusterName).then(function (resp) {
+        return resp.data;
+      });
     };
 
     RemoteCluster.deregister = function(clusterName){
-      var deferred = $q.defer();
-
-      $http.delete( Settings.baseUrl  + '/remoteclusters/' + clusterName)
-        .success(function(response) {
-          deferred.resolve(response);
-        })
-        .error(function(data) {
-          deferred.reject(data);
-        });
-
-      return deferred.promise;
-
+      return $http.delete( Settings.baseUrl  + '/remoteclusters/' + 
clusterName);
     };
 
     RemoteCluster.register = function(payload, config){
-      var deferred = $q.defer();
-
-      $http.post(Settings.baseUrl + '/remoteclusters/' + 
payload.ClusterInfo.name , payload, config)
-        .success(function (data) {
-          deferred.resolve(data)
-        })
-        .error(function (data) {
-          deferred.reject(data);
-        });
-        return deferred.promise;
+      return $http.post(Settings.baseUrl + '/remoteclusters/' + 
payload.ClusterInfo.name , payload, config);
     }
 
     RemoteCluster.all = function() {
-      var deferred = $q.defer();
-
-      $http.get(Settings.baseUrl + "/remoteclusters")
-        .success(function(response) {
-          deferred.resolve(response);
-        })
-        .error(function(data) {
-          deferred.reject(data);
-        });
-      return deferred.promise;
+      return $http.get(Settings.baseUrl + "/remoteclusters").then(function 
(resp) {
+        return resp.data;
+      });
     };
 
     RemoteCluster.affectedViews = function(clustername) {
-      var deferred = $q.defer();
-
-      $http.get(Settings.baseUrl + '/views?'
-          + 
'fields=versions%2Finstances/ViewInstanceInfo/cluster_handle,versions%2Finstances/ViewInstanceInfo/cluster_type&versions%2FViewVersionInfo%2Fsystem=false&versions%2Finstances/ViewInstanceInfo/cluster_type=REMOTE_AMBARI&versions%2Finstances/ViewInstanceInfo/cluster_handle='
 + clustername
-
-        )
-        .success(function(response) {
-          deferred.resolve(response);
-        })
-        .error(function(data) {
-          deferred.reject(data);
-        });
-      return deferred.promise;
+      return $http.get(Settings.baseUrl + '/views?'
+        + 
'fields=versions%2Finstances/ViewInstanceInfo/cluster_handle,versions%2Finstances/ViewInstanceInfo/cluster_type&versions%2FViewVersionInfo%2Fsystem=false&versions%2Finstances/ViewInstanceInfo/cluster_type=REMOTE_AMBARI&versions%2Finstances/ViewInstanceInfo/cluster_handle='
 + clustername
+      ).then(function (resp) {
+        return resp.data;
+      });
     };
 
     RemoteCluster.listAll = function() {
       var deferred = $q.defer();
 
       /* TODO :: Add params like RemoteCluster.matches and &from , &page_size 
*/
-      $http.get(Settings.baseUrl + 
"/remoteclusters?fields=ClusterInfo/services,ClusterInfo/cluster_id")
-        .success(function(response) {
-          deferred.resolve(response.items);
-        })
-        .error(function(data) {
-          deferred.reject(data);
-        });
+      $http.get(Settings.baseUrl + 
"/remoteclusters?fields=ClusterInfo/services,ClusterInfo/cluster_id").then(
+        function(resp) {
+          deferred.resolve(resp.data.items);
+        }, function(resp) {
+          deferred.reject(resp.data);
+        }
+      );
       return deferred.promise;
     };
 
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js
index 238d82c..714d0b9 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js
@@ -60,30 +60,31 @@ angular.module('ambariAdminConsole')
       var url = Settings.baseUrl + '/stacks?fields=versions/*';
       var deferred = $q.defer();
       var sortFunction = this.sortByIdAsVersion;
-      $http.get(url, {mock: 'stack/allStackVersions.json'})
-      .success(function (data) {
-        var allStackVersions = [];
-        angular.forEach(data.items, function (stack) {
-          angular.forEach(stack.versions, function (version) {
-            var stack_name = version.Versions.stack_name;
-            var stack_version = version.Versions.stack_version;
-            var upgrade_packs = version.Versions.upgrade_packs;
-            var active = version.Versions.active;
-            allStackVersions.push({
-              id: stack_name + '-' + stack_version,
-              stack_name: stack_name,
-              stack_version: stack_version,
-              displayName: stack_name + '-' + stack_version,
-              upgrade_packs: upgrade_packs,
-              active: active
+      $http.get(url, {mock: 'stack/allStackVersions.json'}).then(
+        function (resp) {
+          var data = resp.data;
+          var allStackVersions = [];
+          angular.forEach(data.items, function (stack) {
+            angular.forEach(stack.versions, function (version) {
+              var stack_name = version.Versions.stack_name;
+              var stack_version = version.Versions.stack_version;
+              var upgrade_packs = version.Versions.upgrade_packs;
+              var active = version.Versions.active;
+              allStackVersions.push({
+                id: stack_name + '-' + stack_version,
+                stack_name: stack_name,
+                stack_version: stack_version,
+                displayName: stack_name + '-' + stack_version,
+                upgrade_packs: upgrade_packs,
+                active: active
+              });
             });
           });
-        });
-        deferred.resolve(allStackVersions.sort(sortFunction));
-      })
-      .error(function (data) {
-        deferred.reject(data);
-      });
+          deferred.resolve(allStackVersions.sort(sortFunction));
+        }, function (resp) {
+          deferred.reject(resp.data);
+        }
+      );
       return deferred.promise;
     },
 
@@ -91,12 +92,12 @@ angular.module('ambariAdminConsole')
       var deferred = $q.defer();
 
       $http.get(Settings.baseUrl + 
'/services/AMBARI/components/AMBARI_SERVER?fields=RootServiceComponents/properties/gpl.license.accepted&minimal_response=true',
 {mock: 'true'})
-        .then(function(data) {
-          deferred.resolve(data.data.RootServiceComponents.properties && 
data.data.RootServiceComponents.properties['gpl.license.accepted']);
-        })
-        .catch(function(data) {
-          deferred.reject(data);
-        });
+        .then(function(resp) {
+          deferred.resolve(resp.data.RootServiceComponents.properties && 
resp.data.RootServiceComponents.properties['gpl.license.accepted']);
+        }, function(resp) {
+          deferred.reject(resp.data);
+        }
+      );
 
       return deferred.promise;
     },
@@ -107,8 +108,9 @@ angular.module('ambariAdminConsole')
         
'VersionDefinition/stack_repo_update_link_exists,operating_systems/repositories/Repositories/*,'
 +
         
'VersionDefinition/stack_services,VersionDefinition/repository_version&VersionDefinition/show_available=true';
       var deferred = $q.defer();
-      $http.get(Settings.baseUrl + url, {mock: 'version/versions.json'})
-        .success(function (data) {
+      $http.get(Settings.baseUrl + url, {mock: 'version/versions.json'}).then(
+        function (resp) {
+          var data = resp.data;
           var versions = [];
           angular.forEach(data.items, function(version) {
             var versionObj = {
@@ -154,10 +156,10 @@ angular.module('ambariAdminConsole')
             versions.push(versionObj);
           });
           deferred.resolve(versions)
-        })
-        .error(function (data) {
-          deferred.reject(data);
-        });
+        }, function (resp) {
+          deferred.reject(resp.data);
+        }
+      );
       return deferred.promise;
     },
 
@@ -193,31 +195,32 @@ angular.module('ambariAdminConsole')
     allRepos: function () {
       var url = 
'/stacks?fields=versions/repository_versions/RepositoryVersions';
       var deferred = $q.defer();
-      $http.get(Settings.baseUrl + url, {mock: 'version/versions.json'})
-      .success(function (data) {
-        var repos = [];
-        angular.forEach(data.items, function(stack) {
-          angular.forEach(stack.versions, function (version) {
-            var repoVersions = version.repository_versions;
-            if (repoVersions.length > 0) {
-              repos = repos.concat(repoVersions);
-            }
+      $http.get(Settings.baseUrl + url, {mock: 'version/versions.json'}).then(
+        function (resp) {
+          var data = resp.data;
+          var repos = [];
+          angular.forEach(data.items, function(stack) {
+            angular.forEach(stack.versions, function (version) {
+              var repoVersions = version.repository_versions;
+              if (repoVersions.length > 0) {
+                repos = repos.concat(repoVersions);
+              }
+            });
           });
-        });
-        repos = repos.map(function (stack) {
-          stack.RepositoryVersions.isPatch = stack.RepositoryVersions.type === 
'PATCH';
-          stack.RepositoryVersions.isMaint = stack.RepositoryVersions.type === 
'MAINT';
-          return stack.RepositoryVersions;
-        });
-        // prepare response data with client side pagination
-        var response = {};
-        response.items = repos;
-        response.itemTotal = repos.length;
-        deferred.resolve(response);
-      })
-      .error(function (data) {
-        deferred.reject(data);
-      });
+          repos = repos.map(function (stack) {
+            stack.RepositoryVersions.isPatch = stack.RepositoryVersions.type 
=== 'PATCH';
+            stack.RepositoryVersions.isMaint = stack.RepositoryVersions.type 
=== 'MAINT';
+            return stack.RepositoryVersions;
+          });
+          // prepare response data with client side pagination
+          var response = {};
+          response.items = repos;
+          response.itemTotal = repos.length;
+          deferred.resolve(response);
+        }, function (resp) {
+          deferred.reject(resp.data);
+        }
+      );
       return deferred.promise;
     },
 
@@ -268,41 +271,41 @@ angular.module('ambariAdminConsole')
           '&repository_versions/RepositoryVersions/repository_version=' + 
repoVersion;
       }
       var deferred = $q.defer();
-      $http.get(url, {mock: 'version/version.json'})
-      .success(function (data) {
-        data = data.items[0];
-        var response = {
-          id : data.repository_versions[0].RepositoryVersions.id,
-          stackVersion : data.Versions.stack_version,
-          stackName: data.Versions.stack_name,
-          type: data.repository_versions[0].RepositoryVersions.release? 
data.repository_versions[0].RepositoryVersions.release.type: null,
-          stackNameVersion: data.Versions.stack_name + '-' + 
data.Versions.stack_version, /// HDP-2.3
-          actualVersion: 
data.repository_versions[0].RepositoryVersions.repository_version, /// 
2.3.4.0-3846
-          version: data.repository_versions[0].RepositoryVersions.release ? 
data.repository_versions[0].RepositoryVersions.release.version: null, /// 
2.3.4.0
-          releaseNotes: data.repository_versions[0].RepositoryVersions.release 
? data.repository_versions[0].RepositoryVersions.release.release_notes: null,
-          displayName: 
data.repository_versions[0].RepositoryVersions.display_name, //HDP-2.3.4.0
-          repoVersionFullName : data.Versions.stack_name + '-' + 
data.repository_versions[0].RepositoryVersions.repository_version,
-          ambari_managed_repositories: 
data.repository_versions[0].operating_systems[0].OperatingSystems.ambari_managed_repositories
 !== false,
-          osList: data.repository_versions[0].operating_systems,
-          updateObj: data.repository_versions[0]
-        };
-        var services = [];
-        
angular.forEach(data.repository_versions[0].RepositoryVersions.stack_services, 
function (service) {
-          var servicesToExclude = ['GANGLIA', 'KERBEROS', 'MAPREDUCE2'];
-          if (servicesToExclude.indexOf(service.name) === -1) {
-            services.push({
-              name: service.name,
-              version: service.versions[0],
-              displayName: service.display_name
-            });
-          }
-        });
-        response.services = services.sort(function(a, b){return 
a.name.localeCompare(b.name)});
-        deferred.resolve(response);
-      })
-      .error(function (data) {
-        deferred.reject(data);
-      });
+      $http.get(url, {mock: 'version/version.json'}).then(
+        function (resp) {
+          var data = resp.data.items[0];
+          var response = {
+            id : data.repository_versions[0].RepositoryVersions.id,
+            stackVersion : data.Versions.stack_version,
+            stackName: data.Versions.stack_name,
+            type: data.repository_versions[0].RepositoryVersions.release? 
data.repository_versions[0].RepositoryVersions.release.type: null,
+            stackNameVersion: data.Versions.stack_name + '-' + 
data.Versions.stack_version, /// HDP-2.3
+            actualVersion: 
data.repository_versions[0].RepositoryVersions.repository_version, /// 
2.3.4.0-3846
+            version: data.repository_versions[0].RepositoryVersions.release ? 
data.repository_versions[0].RepositoryVersions.release.version: null, /// 
2.3.4.0
+            releaseNotes: 
data.repository_versions[0].RepositoryVersions.release ? 
data.repository_versions[0].RepositoryVersions.release.release_notes: null,
+            displayName: 
data.repository_versions[0].RepositoryVersions.display_name, //HDP-2.3.4.0
+            repoVersionFullName : data.Versions.stack_name + '-' + 
data.repository_versions[0].RepositoryVersions.repository_version,
+            ambari_managed_repositories: 
data.repository_versions[0].operating_systems[0].OperatingSystems.ambari_managed_repositories
 !== false,
+            osList: data.repository_versions[0].operating_systems,
+            updateObj: data.repository_versions[0]
+          };
+          var services = [];
+          
angular.forEach(data.repository_versions[0].RepositoryVersions.stack_services, 
function (service) {
+            var servicesToExclude = ['GANGLIA', 'KERBEROS', 'MAPREDUCE2'];
+            if (servicesToExclude.indexOf(service.name) === -1) {
+              services.push({
+                name: service.name,
+                version: service.versions[0],
+                displayName: service.display_name
+              });
+            }
+          });
+          response.services = services.sort(function(a, b){return 
a.name.localeCompare(b.name)});
+          deferred.resolve(response);
+        }, function (resp) {
+          deferred.reject(resp.data);
+        }
+      );
       return deferred.promise;
     },
 
@@ -311,55 +314,33 @@ angular.module('ambariAdminConsole')
         url = Settings.baseUrl + '/version_definitions?skip_url_check=true' + 
(isDryRun ? '&dry_run=true' : ''),
         configs = isXMLdata? { headers: {'Content-Type': 'text/xml'}} : null;
 
-      $http.post(url, data, configs)
-        .success(function (response) {
-          if (response.resources.length && 
response.resources[0].VersionDefinition) {
-            deferred.resolve(response);
+      $http.post(url, data, configs).then(
+        function (response) {
+          if (response.data.resources.length && 
response.data.resources[0].VersionDefinition) {
+            deferred.resolve(response.data);
           }
-        })
-        .error(function (data) {
-          deferred.reject(data);
-        });
+        }, function (resp) {
+          deferred.reject(resp.data);
+        }
+      );
       return deferred.promise;
     },
 
     updateRepo: function (stackName, stackVersion, id, payload) {
       var url = Settings.baseUrl + '/stacks/' + stackName + '/versions/' + 
stackVersion + '/repository_versions/' + id;
-      var deferred = $q.defer();
-      $http.put(url, payload)
-      .success(function (data) {
-        deferred.resolve(data)
-      })
-      .error(function (data) {
-        deferred.reject(data);
-      });
-      return deferred.promise;
+      return $http.put(url, payload);
     },
 
     deleteRepo: function (stackName, stackVersion, id) {
       var url = Settings.baseUrl + '/stacks/' + stackName + '/versions/' + 
stackVersion + '/repository_versions/' + id;
-      var deferred = $q.defer();
-      $http.delete(url)
-      .success(function (data) {
-        deferred.resolve(data)
-      })
-      .error(function (data) {
-        deferred.reject(data);
-      });
-      return deferred.promise;
+      return $http.delete(url);
     },
 
     getSupportedOSList: function (stackName, stackVersion) {
       var url = Settings.baseUrl + '/stacks/' + stackName + '/versions/' + 
stackVersion + '?fields=operating_systems/repositories/Repositories';
-      var deferred = $q.defer();
-      $http.get(url, {mock: 'stack/operatingSystems.json'})
-      .success(function (data) {
-        deferred.resolve(data);
-      })
-      .error(function (data) {
-        deferred.reject(data);
+      return $http.get(url, {mock: 
'stack/operatingSystems.json'}).then(function (resp) {
+        return resp.data;
       });
-      return deferred.promise;
     },
 
     validateBaseUrls: function(skip, osList, stack) {
@@ -385,16 +366,14 @@ angular.module('ambariAdminConsole')
                 {
                   repo: repo
                 }
-              )
-                .success(function () {
-                  totalCalls--;
-                  if (totalCalls === 0) deferred.resolve(invalidUrls);
-                })
-                .error(function (response, status, callback, params) {
-                  invalidUrls.push(params.repo);
-                  totalCalls--;
-                  if (totalCalls === 0) deferred.resolve(invalidUrls);
-                });
+              ).then(function () {
+                totalCalls--;
+                if (totalCalls === 0) deferred.resolve(invalidUrls);
+              }, function (response, status, callback, params) {
+                invalidUrls.push(params.repo);
+                totalCalls--;
+                if (totalCalls === 0) deferred.resolve(invalidUrls);
+              });
             });
           }
         });
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/View.js 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/View.js
index db3dab9..c669079 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/View.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/View.js
@@ -41,14 +41,13 @@ angular.module('ambariAdminConsole')
       params:{
         'fields': fields.join(',')
       }
-    })
-    .success(function(data) {
-      deferred.resolve(new ViewInstance(data));
-    })
-    .error(function(data) {
-      deferred.reject(data);
-    });
-
+    }).then(
+      function(resp) {
+        deferred.resolve(new ViewInstance(resp.data));
+      }, function(resp) {
+        deferred.reject(resp.data);
+      }
+    );
     return deferred.promise;
   };
 
@@ -69,14 +68,13 @@ angular.module('ambariAdminConsole')
       dataType: "json",
       url: Settings.baseUrl + '/view/urls/'+payload.ViewUrlInfo.url_name,
       data:payload
-    })
-        .success(function(data) {
-          deferred.resolve(new URLStatus(data));
-        })
-        .error(function(data) {
-          deferred.reject(data);
-        });
-
+    }).then(
+      function(data) {
+        deferred.resolve(new URLStatus(data));
+      }, function(data) {
+        deferred.reject(data);
+      }
+    );
     return deferred.promise;
   };
 
@@ -87,13 +85,11 @@ angular.module('ambariAdminConsole')
       method: 'DELETE',
       dataType: "json",
       url: Settings.baseUrl + '/view/urls/'+ urlName,
-    })
-        .success(function(data) {
-          deferred.resolve(new URLStatus(data));
-        })
-        .error(function(data) {
-          deferred.reject(data);
-        });
+    }).then(function(data) {
+      deferred.resolve(new URLStatus(data));
+    }, function(data) {
+      deferred.reject(data);
+    });
 
     return deferred.promise;
   };
@@ -107,13 +103,13 @@ angular.module('ambariAdminConsole')
       dataType: "json",
       url: Settings.baseUrl + '/view/urls/'+payload.ViewUrlInfo.url_name,
       data:payload
-    })
-        .success(function(data) {
-          deferred.resolve(new URLStatus(data));
-        })
-        .error(function(data) {
-          deferred.reject(data);
-        });
+    }).then(
+      function(data) {
+        deferred.resolve(new URLStatus(data));
+      }, function(data) {
+        deferred.reject(data);
+      }
+    );
 
     return deferred.promise;
   };
@@ -128,13 +124,13 @@ angular.module('ambariAdminConsole')
       dataType: "json",
       url: Settings.baseUrl + '/view/urls/'+urlName,
 
-    })
-        .success(function(data) {
-          deferred.resolve(new ViewUrl(data));
-        })
-        .error(function(data) {
-          deferred.reject(data);
-        });
+    }).then(
+      function(resp) {
+        deferred.resolve(new ViewUrl(resp.data));
+      }, function(resp) {
+        deferred.reject(resp.data);
+      }
+    );
 
     return deferred.promise;
   };
@@ -222,11 +218,10 @@ angular.module('ambariAdminConsole')
       params: {
         'fields': fields.join(',')
       }
-    }).success(function(data) {
-      deferred.resolve(data.permissions);
-    })
-    .catch(function(data) {
-      deferred.reject(data);
+    }).then(function(resp) {
+      deferred.resolve(resp.data.permissions);
+    }, function(resp) {
+      deferred.reject(resp.data);
     });
 
     return deferred.promise;
@@ -241,13 +236,13 @@ angular.module('ambariAdminConsole')
       params: {
         fields: 'privileges/PrivilegeInfo'
       }
-    })
-    .success(function(data) {
-      deferred.resolve(data.privileges);
-    })
-    .catch(function(data) {
-      deferred.reject(data);
-    });
+    }).then(
+      function(resp) {
+        deferred.resolve(resp.data.privileges);
+      }, function(resp) {
+        deferred.reject(resp.data);
+      }
+    );
 
     return deferred.promise;
   };
@@ -260,22 +255,24 @@ angular.module('ambariAdminConsole')
     $http({
       method: 'GET',
       url: Settings.baseUrl + '/views/'+viewName + 
'?versions/ViewVersionInfo/status=DEPLOYED'
-    }).success(function(data) {
-      var versions = [];
-      angular.forEach(data.versions, function(version) {
-        versions.push(version.ViewVersionInfo.version);
-      });
+    }).then(
+      function(resp) {
+        var versions = [];
+        angular.forEach(resp.data.versions, function(version) {
+          versions.push(version.ViewVersionInfo.version);
+        });
+
+        deferred.resolve(versions);
+      }, function(resp) {
+        deferred.reject(resp.data);
+      }
+    );
 
-      deferred.resolve(versions);
-    }).catch(function(data) {
-      deferred.reject(data);
-    });
     return deferred.promise;
   };
 
   View.createInstance = function(instanceInfo) {
-    var deferred = $q.defer(),
-      properties = {},
+    var properties = {},
       settings = {},
       data = {
         instance_name: instanceInfo.instance_name,
@@ -303,22 +300,14 @@ angular.module('ambariAdminConsole')
       angular.extend(data.properties, properties);
     }
 
-    $http({
+    return $http({
       method: 'POST',
       url: Settings.baseUrl + '/views/' + instanceInfo.view_name
       +'/versions/'+instanceInfo.version + 
'/instances/'+instanceInfo.instance_name,
       data:{
         'ViewInstanceInfo' : data
       }
-    })
-    .success(function(data) {
-      deferred.resolve(data);
-    })
-    .error(function(data) {
-      deferred.reject(data);
     });
-
-    return deferred.promise;
   };
 
   View.createPrivileges = function(params, data) {
@@ -368,10 +357,10 @@ angular.module('ambariAdminConsole')
       params:{
         'fields': 'ViewVersionInfo/status'
       }
-    }).then(function(data) {
-      deferred.resolve(data.data.ViewVersionInfo.status);
-    }).catch(function(err) {
-      deferred.reject(err);
+    }).then(function(resp) {
+      deferred.resolve(resp.data.data.ViewVersionInfo.status);
+    }, function(resp) {
+      deferred.reject(resp.data);
     });
 
     return deferred;
@@ -388,9 +377,9 @@ angular.module('ambariAdminConsole')
         'versions/ViewVersionInfo/system': false,
         'versions/instances/ViewInstanceInfo/visible': true
       }
-    }).then(function(data) {
+    }).then(function(resp) {
       var instances = [];
-      data.data.items.forEach(function(view) {
+      resp.data.items.forEach(function(view) {
         if (Array.isArray(view.versions)) {
           view.versions.forEach(function(version) {
             version.instances.forEach(function(instance) {
@@ -420,16 +409,17 @@ angular.module('ambariAdminConsole')
         'fields': fields.join(','),
         'versions/ViewVersionInfo/system' : false
       }
-    }).success(function(data) {
-      var views = [];
-      angular.forEach(data.items, function(item) {
-        views.push(new View(item));
-      });
-      deferred.resolve(views);
-    })
-    .error(function(data) {
-      deferred.reject(data);
-    });
+    }).then(
+      function(resp) {
+        var views = [];
+        angular.forEach(resp.data.items, function(item) {
+          views.push(new View(item));
+        });
+        deferred.resolve(views);
+      }, function(resp) {
+        deferred.reject(resp.data);
+      }
+    );
 
     return deferred.promise;
   };
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html
index 738560a..a0b6291 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html
@@ -17,7 +17,7 @@
 -->
 <div class="clearfix">
   <ol class="breadcrumb pull-left">
-    <li><a href="#/views">{{'common.views' | translate}}</a></li>
+    <li><a href="#!/views">{{'common.views' | translate}}</a></li>
     <li class="active">{{instance.ViewInstanceInfo.label}}
       <a class="gotoinstance" ng-show="instance.ViewInstanceInfo.visible"
          href="{{fromSiteRoot('/#/main/views/' + viewUrl)}}" target="_blank">
@@ -94,10 +94,10 @@
           </div>
             <div ng-if="!settings.shortUrl">
               <p ng-hide="!editDetailsSettingsDisabled" 
class="form-control-static">
-                <a 
href="#/urls/link/{{instance.ViewInstanceInfo.view_name}}/{{instance.ViewInstanceInfo.version}}/{{instance.ViewInstanceInfo.instance_name}}">{{'urls.createNewUrl'
 | translate}}</a>
+                <a 
href="#!/urls/link/{{instance.ViewInstanceInfo.view_name}}/{{instance.ViewInstanceInfo.version}}/{{instance.ViewInstanceInfo.instance_name}}">{{'urls.createNewUrl'
 | translate}}</a>
               </p>
               <p class="form-control-static" 
ng-hide="editDetailsSettingsDisabled">
-                <a 
href="#/urls/link/{{instance.ViewInstanceInfo.view_name}}/{{instance.ViewInstanceInfo.version}}/{{instance.ViewInstanceInfo.instance_name}}">{{'urls.createNewUrl'
 | translate}}</a>
+                <a 
href="#!/urls/link/{{instance.ViewInstanceInfo.view_name}}/{{instance.ViewInstanceInfo.version}}/{{instance.ViewInstanceInfo.instance_name}}">{{'urls.createNewUrl'
 | translate}}</a>
               </p>
             </div>
           </div>
@@ -180,7 +180,7 @@
         <label for="" class="control-label col-sm-3 ng-binding not-required" 
>{{'views.clusterName' | translate}}</label>
         <div>
           <div class="col-sm-9">
-            <select ng-model="cluster" ng-disabled="(data.clusterType != 
'LOCAL_AMBARI') || editConfigurationDisabled" ng-change="onClusterChange()" 
class="clusters-name-dropdown form-control"  ng-options="o as o.name for o in 
clusters"></select>
+            <select ng-model="cluster" ng-disabled="(data.clusterType != 
'LOCAL_AMBARI') || editConfigurationDisabled" class="clusters-name-dropdown 
form-control"  ng-options="o as o.name for o in clusters"></select>
           </div>
         </div>
       </div>
@@ -195,7 +195,7 @@
           <label for="" class="control-label col-sm-3 ng-binding not-required" 
>{{'views.clusterName' | translate}}</label>
           <div>
             <div class="col-sm-9">
-              <select ng-model="data.remoteCluster" 
ng-disabled="(data.clusterType != 'REMOTE_AMBARI') || 
editConfigurationDisabled" ng-change="onClusterChange()" 
class="clusters-name-dropdown form-control"  ng-options="o as o.name for o in 
remoteClusters"></select>
+              <select ng-model="data.remoteCluster" 
ng-disabled="(data.clusterType != 'REMOTE_AMBARI') || 
editConfigurationDisabled" class="clusters-name-dropdown form-control"  
ng-options="o as o.name for o in remoteClusters"></select>
             </div>
           </div>
         </div>
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/viewsList.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/viewsList.html
index ba5803a..3d24225 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/viewsList.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/viewsList.html
@@ -88,7 +88,7 @@
                 </span>
 
                 <span ng-switch-when="DEPLOYED">
-                    <a  
href="#/views/{{instance.view_name}}/versions/{{instance.version}}/instances/{{instance.instance_name}}/edit">
+                    <a  
href="#!/views/{{instance.view_name}}/versions/{{instance.version}}/instances/{{instance.instance_name}}/edit">
                         <i class="fa fa-pencil"></i>
                     </a>
                     <a href ng-click="cloneInstance(instance);">
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/editRemoteClusterPage.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/editRemoteClusterPage.html
index e5d3055..846cbcb 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/editRemoteClusterPage.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/editRemoteClusterPage.html
@@ -17,7 +17,7 @@
 -->
 <div class="clearfix">
   <ol class="breadcrumb pull-left">
-    <li><a href="#/remoteClusters">{{'common.remoteClusters' | 
translate}}</a></li>
+    <li><a href="#!/remoteClusters">{{'common.remoteClusters' | 
translate}}</a></li>
     <li class="active">{{cluster.cluster_name}}</li>
   </ol>
   <div class="pull-right top-margin-4">
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/list.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/list.html
index 5f8a0be..41d7dfc 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/list.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/list.html
@@ -19,7 +19,7 @@
 <div class="users-pane">
   <div class="clearfix">
     <div class="pull-right">
-      <a href="#/remoteClusters/create" class="btn btn-default">
+      <a href="#!/remoteClusters/create" class="btn btn-default">
         {{'views.registerRemoteCluster' | translate}}
       </a>
     </div>
@@ -50,7 +50,7 @@
     </thead>
     <tbody>
     <tr ng-repeat="remoteCluster in remoteClusters  | filter : { isShowed: 
true }">
-      <td class="col-sm-3"><a 
href="#/remoteClusters/{{remoteCluster.ClusterInfo.name}}/edit">{{ 
remoteCluster.clusterName }}</a></td>
+      <td class="col-sm-3"><a 
href="#!/remoteClusters/{{remoteCluster.ClusterInfo.name}}/edit">{{ 
remoteCluster.clusterName }}</a></td>
       <td class="col-sm-9">
         <span ng-repeat="service in remoteCluster.ClusterInfo.services" 
ng-if="remoteCluster.ClusterInfo.services.length > 0">{{ service }}{{$last ? '' 
: ','}} </span>
         <span ng-if="remoteCluster.ClusterInfo.services.length == 0">--</span>
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/remoteClusterPage.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/remoteClusterPage.html
index 397149a..a780b8f 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/remoteClusterPage.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/remoteClusterPage.html
@@ -16,7 +16,7 @@
 * limitations under the License.
 -->
 <ol class="breadcrumb">
-  <li><a href="#/remoteClusters">{{'common.remoteClusters' | 
translate}}</a></li>
+  <li><a href="#!/remoteClusters">{{'common.remoteClusters' | 
translate}}</a></li>
   <li class="active">{{'common.register' | translate}}</li>
 </ol>
 <hr>
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/sideNav.html 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/sideNav.html
index 7522051..3c22ca5 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/sideNav.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/sideNav.html
@@ -47,15 +47,15 @@
         </a>
         <ul class="sub-menu nav nav-pills nav-stacked">
           <li class="submenu-li" ng-class="{active: 
isActive('clusters.clusterInformation')}">
-            <a href="#/clusterInformation" class="clusterInformation">
+            <a href="#!/clusterInformation" class="clusterInformation">
               {{'common.clusterInformation' | translate}}
             </a>
           </li>
           <li class="submenu-li"  ng-class="{active: 
isActive('stackVersions.list')}" ng-show="cluster && totalRepos > 0">
-            <a href="#/stackVersions">{{'common.versions' | translate}}</a>
+            <a href="#!/stackVersions">{{'common.versions' | translate}}</a>
           </li>
           <li class="submenu-li" ng-class="{active: 
isActive('remoteClusters.list')}">
-            <a href="#/remoteClusters">{{'common.remoteClusters' | 
translate}}</a>
+            <a href="#!/remoteClusters">{{'common.remoteClusters' | 
translate}}</a>
           </li>
         </ul>
       </li>
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
index 058eed4..8f4d956 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
@@ -19,7 +19,7 @@
 <div id="stack-versions">
   <div class="clearfix">
     <div class="pull-right">
-      <a href="#/stackVersions/create" class="btn btn-default">
+      <a href="#!/stackVersions/create" class="btn btn-default">
         {{'versions.register.title' | translate}}
       </a>
     </div>
@@ -63,7 +63,7 @@
         <span>{{repo.stack_name}}-{{repo.stack_version}}</span>
       </td>
       <td class="col-medium">
-        <a 
href="#/stackVersions/{{repo.stack_name}}/{{repo.repository_version}}/edit">
+        <a 
href="#!/stackVersions/{{repo.stack_name}}/{{repo.repository_version}}/edit">
           {{repo.display_name}}
         </a>
       </td>
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/stackVersionPage.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/stackVersionPage.html
index 6819024..933c49d 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/stackVersionPage.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/stackVersionPage.html
@@ -18,7 +18,7 @@
 
 <div class="clearfix">
   <ol class="breadcrumb pull-left">
-    <li><a href="#/stackVersions">{{'common.versions' | translate}}</a></li>
+    <li><a href="#!/stackVersions">{{'common.versions' | translate}}</a></li>
     <li class="active" ng-if="editController">
       {{displayName}}&nbsp;
       <span class="sub-text">({{repoVersionFullName}})</span>
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/groupEdit.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/groupEdit.html
index 833afea..844c382 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/groupEdit.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/groupEdit.html
@@ -19,7 +19,7 @@
 <div id="group-edit">
   <div class="clearfix">
     <ol class="breadcrumb pull-left">
-      <li><a href="#/userManagement?tab=groups">{{'common.groups' | 
translate}}</a></li>
+      <li><a href="#!/userManagement?tab=groups">{{'common.groups' | 
translate}}</a></li>
       <li class="active">{{group.group_name}}</li>
     </ol>
   </div>
@@ -66,7 +66,7 @@
           <tr ng-repeat="(name, privilege) in privileges.clusters">
             <td>
               <span class="glyphicon glyphicon-cloud"></span>
-              <a href="#/clusters/{{name}}/manageAccess">{{name}}</a>
+              <a href="#!/clusters/{{name}}/manageAccess">{{name}}</a>
             </td>
             <td>
               <span tooltip="{{item}}" ng-repeat="item in privilege">{{item | 
translate}}{{$last ? '' : ', '}}</span>
@@ -86,7 +86,7 @@
           <tr ng-repeat="(name, privilege) in privileges.views">
             <td>
               <span class="glyphicon glyphicon-th"></span>
-              <a 
href="#/views/{{privilege.view_name}}/versions/{{privilege.version}}/instances/{{name}}/edit">{{name}}</a>
+              <a 
href="#!/views/{{privilege.view_name}}/versions/{{privilege.version}}/instances/{{name}}/edit">{{name}}</a>
             </td>
             <td>
               <span tooltip="{{item}}" ng-repeat="item in 
privilege.privileges">{{item | translate}}{{$last ? '' : ', '}}</span>
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/main.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/main.html
index 8520fc2..9ada2a4 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/main.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/main.html
@@ -19,10 +19,10 @@
 <div id="user-management">
   <ul class="nav nav-tabs">
     <li ng-class="{active: activeTab === 'USERS'}">
-      <a href="#/userManagement?tab=users" >{{'common.users' | translate}}</a>
+      <a href="#!/userManagement?tab=users" >{{'common.users' | translate}}</a>
     </li>
     <li ng-class="{active: activeTab === 'GROUPS'}">
-      <a href="#/userManagement?tab=groups" >{{'common.groups' | 
translate}}</a>
+      <a href="#!/userManagement?tab=groups" >{{'common.groups' | 
translate}}</a>
     </li>
   </ul>
   <div>
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/userEdit.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/userEdit.html
index e82eaeb..26dfdac 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/userEdit.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/userEdit.html
@@ -19,7 +19,7 @@
 <div ng-show="user" id="user-edit">
   <div class="clearfix">
     <ol class="breadcrumb pull-left">
-      <li><a href="#/userManagement?tab=users">{{'common.users' | 
translate}}</a></li>
+      <li><a href="#!/userManagement?tab=users">{{'common.users' | 
translate}}</a></li>
       <li class="active">{{user.user_name}}</li>
     </ol>
   </div>
@@ -96,7 +96,7 @@
             <tr ng-repeat="(name, privilege) in privilegesView.clusters">
               <td>
                 <span class="glyphicon glyphicon-cloud"></span> 
-                <a href="#/clusters/{{name}}/manageAccess">{{name}}</a>
+                <a href="#!/clusters/{{name}}/manageAccess">{{name}}</a>
               </td>
               <td>
                 <span 
tooltip="{{privilege.permission_label}}">{{privilege.permission_label}}</span>
@@ -116,7 +116,7 @@
             <tr ng-repeat="(name, privilege) in privilegesView.views">
               <td>
                 <span class="glyphicon glyphicon-th"></span>
-                <a 
href="#/views/{{privilege.view_name}}/versions/{{privilege.version}}/instances/{{name}}/edit">{{name}}</a>
+                <a 
href="#!/views/{{privilege.view_name}}/versions/{{privilege.version}}/instances/{{name}}/edit">{{name}}</a>
               </td>
               <td>
                 <span tooltip="{{item}}" ng-repeat="item in 
privilege.privileges track by $index">{{item | translate}}{{$last ? '' : ', 
'}}</span>
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/usersList.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/usersList.html
index 8b93eb5..f6cbc81 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/usersList.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/userManagement/usersList.html
@@ -74,7 +74,7 @@
         <td><span>{{user.Users.userTypeName}}</span></td>
         <td><span>{{user.Users.groups.length ? user.Users.groups.join(' ') : 
'-'}}</span></td>
         <td class="entity-actions">
-          <a href="#/users/{{user.Users.encodedName}}/edit">
+          <a href="#!/users/{{user.Users.encodedName}}/edit">
             <i class="fa fa-pencil"></i>
           </a>
           <a href ng-click="deleteUser(user.Users)" 
ng-disabled="!user.Users.isDeletable">
diff --git a/ambari-admin/src/main/resources/ui/admin-web/bower.json 
b/ambari-admin/src/main/resources/ui/admin-web/bower.json
index 5bbada9..7420309 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/bower.json
+++ b/ambari-admin/src/main/resources/ui/admin-web/bower.json
@@ -3,24 +3,21 @@
   "private": true,
   "dependencies": {
     "bootstrap": "3.3.7",
-    "angular": "1.5.11",
-    "angular-route": "1.5.11",
+    "angular": "*",
+    "angular-route": "*",
     "angular-bootstrap": "0.11.0",
     "underscore": "1.7.0",
     "restangular": "1.4.0",
     "angular-bootstrap-toggle-switch": "0.5.1",
-    "angular-animate": "1.5.11",
-    "angular-translate": "2.2.0",
+    "angular-animate": "*",
+    "angular-translate": "*",
     "font-awesome": "4.2.0"
   },
   "devDependencies": {
-    "angular-mocks": "1.5.11",
+    "angular-mocks": "*",
     "commonjs": "0.2.0",
     "chai": "1.8.0",
     "mocha": "1.14.0",
     "sinon": "1.10.3"
-  },
-  "resolutions": {
-    "angular": "1.5.11"
   }
 }

Reply via email to