Repository: ambari Updated Branches: refs/heads/branch-2.4 735f68d35 -> 12d7e9ec9
AMBARI-17042. Refine Role page UI display (alexantonenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/12d7e9ec Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/12d7e9ec Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/12d7e9ec Branch: refs/heads/branch-2.4 Commit: 12d7e9ec98ea06fa4b49b01e193e7953a15b3d9b Parents: 735f68d Author: Alex Antonenko <[email protected]> Authored: Sat Jun 4 12:15:13 2016 +0300 Committer: Alex Antonenko <[email protected]> Committed: Sat Jun 4 13:15:56 2016 +0300 ---------------------------------------------------------------------- .../ui/admin-web/app/scripts/i18n.config.js | 3 +- .../admin-web/app/scripts/services/Cluster.js | 2 ++ .../app/scripts/services/RoleDetailsModal.js | 32 ++++++++++++++------ .../resources/ui/admin-web/app/styles/main.css | 9 ++++++ .../app/views/modals/RoleDetailsModal.html | 17 ++++++++--- 5 files changed, 48 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js index 7474d5f..6fe46dc 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js +++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js @@ -352,7 +352,8 @@ angular.module('ambariAdminConsole') 'ambariAdmin': 'Ambari Administrator', 'viewUser': 'View User', 'none': 'None', - 'oneRolePerUser': 'Only 1 role allowed per user' + 'oneRolePerUser': 'Only 1 role allowed per user', + 'permissionLevel': '{{level}}-level Permissions' }, 'alerts': { http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js ---------------------------------------------------------------------- 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 c1cf221..33ed7ed 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 @@ -78,6 +78,8 @@ angular.module('ambariAdminConsole') "AMBARI.SET_SERVICE_USERS_GROUPS" ], + orderedLevels: ['SERVICE', 'HOST', 'CLUSTER', 'AMBARI'], + ineditableRoles : ['VIEW.USER', 'AMBARI.ADMINISTRATOR'], getAllClusters: function() { http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js index 7c03f4d..5a14b33 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js +++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RoleDetailsModal.js @@ -36,20 +36,34 @@ angular.module('ambariAdminConsole') $scope.title = ''; $scope.orderedRoles = ['AMBARI.ADMINISTRATOR'].concat(Cluster.orderedRoles).reverse(); $scope.orderedAuthorizations = Cluster.orderedAuthorizations; + $scope.orderedLevels = Cluster.orderedLevels; $scope.authHash = {}; - roles.map(function(r) { - r.authorizations.map(function(auth) { - $scope.authHash[auth.authorization_id] = auth.authorization_name; + $scope.getLevelName = function (key) { + return key.charAt(0) + key.slice(1).toLowerCase(); + }; + angular.forEach(roles, function (r) { + angular.forEach(r.authorizations, function (auth) { + var match = auth.authorization_id.match(/(\w+)\./), + levelKey = match && match[1], + isLevelDisplayed = $scope.orderedAuthorizations.some(function (item) { + return !item.indexOf(levelKey); + }); + if (isLevelDisplayed) { + if (!$scope.authHash[levelKey]) { + $scope.authHash[levelKey] = {}; + } + if (!$scope.authHash[levelKey][auth.authorization_id]) { + $scope.authHash[levelKey][auth.authorization_id] = auth.authorization_name; + } + if (!r.authHash) { + r.authHash = {}; + } + r.authHash[auth.authorization_id] = true; + } }); }); $scope.roles = roles.sort(function(a, b) { return $scope.orderedRoles.indexOf(a.permission_name) - $scope.orderedRoles.indexOf(b.permission_name); - }).map(function(r) { - r.authHash = {}; - r.authorizations.map(function(a) { - r.authHash[a.authorization_id] = true; - }); - return r; }); $scope.ok = function() { $modalInstance.dismiss(); http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css b/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css index 12f44bb..542177d 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css +++ b/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css @@ -1841,6 +1841,15 @@ thead.view-permission-header > tr > th { visibility: hidden; } +.role-details-modal .table-section-title { + font-weight: bold; +} + +.role-details-modal .table-section-title .table-cell { + width: 100%; +} + + .proxied-field-wrap { display:block; position:absolute; http://git-wip-us.apache.org/repos/asf/ambari/blob/12d7e9ec/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html index 776b33d..926bea9 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html +++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/RoleDetailsModal.html @@ -33,11 +33,18 @@ <div class="table-cell">{{roles[roles.length - 1].permission_label}}</div> </div> <div class="table-body"> - <div class="table-row-wrapper"> - <div class="table-row" ng-repeat="auth in orderedAuthorizations"> - <div class="table-cell">{{authHash[auth]}}</div> - <div class="table-cell text-center" ng-repeat="role in roles"> - <i class="glyphicon glyphicon-ok green-icon" ng-show="role.authHash[auth]"></i> + <div ng-repeat="level in orderedLevels"> + <div class="table-row-wrapper table-section-title"> + <div class="table-row"> + <div class="table-cell" colspan="{{roles.length + 1}}">{{'users.roles.permissionLevel' | translate: '{level: getLevelName(level)}'}}</div> + </div> + </div> + <div class="table-row-wrapper"> + <div class="table-row" ng-repeat="auth in orderedAuthorizations" ng-if="authHash[level][auth]"> + <div class="table-cell">{{authHash[level][auth]}}</div> + <div class="table-cell text-center" ng-repeat="role in roles"> + <i class="glyphicon glyphicon-ok green-icon" ng-show="role.authHash[auth]"></i> + </div> </div> </div> </div>
