瀏覽代碼

AMBARI-6797. Admin View: UI cleanup. (yusaku)

Yusaku Sako 11 年之前
父節點
當前提交
5962d489a6
共有 20 個文件被更改,包括 162 次插入123 次删除
  1. 0 1
      .gitignore
  2. 2 0
      ambari-admin/src/main/resources/ui/admin-web/app/index.html
  3. 2 1
      ambari-admin/src/main/resources/ui/admin-web/app/scripts/app.js
  4. 16 2
      ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js
  5. 0 12
      ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsListCtrl.js
  6. 7 1
      ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/groups/GroupsEditCtrl.js
  7. 1 2
      ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/users/UsersShowCtrl.js
  8. 19 0
      ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Group.js
  9. 15 0
      ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css
  10. 13 11
      ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html
  11. 23 13
      ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html
  12. 10 11
      ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/list.html
  13. 5 5
      ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/manageAccess.html
  14. 1 2
      ambari-admin/src/main/resources/ui/admin-web/app/views/groups/create.html
  15. 15 9
      ambari-admin/src/main/resources/ui/admin-web/app/views/groups/edit.html
  16. 4 5
      ambari-admin/src/main/resources/ui/admin-web/app/views/groups/list.html
  17. 1 2
      ambari-admin/src/main/resources/ui/admin-web/app/views/users/create.html
  18. 5 5
      ambari-admin/src/main/resources/ui/admin-web/app/views/users/list.html
  19. 21 40
      ambari-admin/src/main/resources/ui/admin-web/app/views/users/show.html
  20. 2 1
      ambari-admin/src/main/resources/ui/admin-web/bower.json

+ 0 - 1
.gitignore

@@ -20,4 +20,3 @@ derby.log
 pass.txt
 ambari-agent/src/test/python/ambari_agent/dummy_files/current-stack
 velocity.log*
-*.pydevproject

+ 2 - 0
ambari-admin/src/main/resources/ui/admin-web/app/index.html

@@ -27,6 +27,7 @@
     <!-- build:css styles/vendor.css -->
     <!-- bower:css -->
     <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
+    <link rel="stylesheet" href="bower_components/angular-bootstrap-toggle-switch/style/bootstrap3/angular-toggle-switch-bootstrap-3.css" />
     <!-- endbower -->
     <!-- endbuild -->
 
@@ -88,6 +89,7 @@
     <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
     <script src="bower_components/lodash/dist/lodash.compat.js"></script>
     <script src="bower_components/restangular/dist/restangular.js"></script>
+    <script src="bower_components/angular-bootstrap-toggle-switch/angular-toggle-switch.js"></script>
     <!-- endbower -->
     <!-- endbuild -->
 

+ 2 - 1
ambari-admin/src/main/resources/ui/admin-web/app/scripts/app.js

@@ -21,7 +21,8 @@ angular.module('ambariAdminConsole', [
   'ngRoute',
   'ui.bootstrap',
   'restangular',
-  'angularAlert'
+  'angularAlert',
+  'toggle-switch'
 ])
 .constant('Settings',{
 	baseUrl: '/api/v1'

+ 16 - 2
ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js

@@ -18,8 +18,8 @@
 'use strict';
 
 angular.module('ambariAdminConsole')
-.controller('ViewsEditCtrl', ['$scope', '$routeParams' , 'View', 'uiAlert', 'PermissionLoader', 'PermissionSaver', function($scope, $routeParams, View, uiAlert, PermissionLoader, PermissionSaver) {
-
+.controller('ViewsEditCtrl', ['$scope', '$routeParams' , 'View', 'uiAlert', 'PermissionLoader', 'PermissionSaver', 'ConfirmationModal', '$location', function($scope, $routeParams, View, uiAlert, PermissionLoader, PermissionSaver, ConfirmationModal, $location) {
+  $scope.isConfigurationEmpty = true;
   function reloadViewInfo(){
     // Load instance data, after View permissions meta loaded
     View.getInstance($routeParams.viewId, $routeParams.version, $routeParams.instanceId)
@@ -31,6 +31,7 @@ angular.module('ambariAdminConsole')
       };
 
       $scope.configuration = angular.copy($scope.instance.ViewInstanceInfo.properties);
+      $scope.isConfigurationEmpty = angular.equals({}, $scope.configuration);
     })
     .catch(function(data) {
       uiAlert.danger(data.data.status, data.data.message);
@@ -47,6 +48,7 @@ angular.module('ambariAdminConsole')
       // Refresh data for rendering
       $scope.permissionsEdit = permissions;
       $scope.permissions = angular.copy(permissions);
+      $scope.isPermissionsEmpty = angular.equals({}, $scope.permissions);
     })
     .catch(function(data) {
       uiAlert.danger(data.data.status, data.data.message);
@@ -143,4 +145,16 @@ angular.module('ambariAdminConsole')
       uiAlert.danger(data.data.status, data.data.message);
     });
   };
+
+  $scope.deleteInstance = function(instance) {
+    ConfirmationModal.show('Delete View Instance', 'Are you sure you want to delete View Instance '+ instance.ViewInstanceInfo.label +'?').then(function() {
+      View.deleteInstance(instance.ViewInstanceInfo.view_name, instance.ViewInstanceInfo.version, instance.ViewInstanceInfo.instance_name)
+      .then(function() {
+        $location.path('/views');
+      })
+      .catch(function(data) {
+        uiAlert.danger(data.data.status, data.data.message);
+      });
+    });
+  };
 }]);

+ 0 - 12
ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsListCtrl.js

@@ -45,18 +45,6 @@ angular.module('ambariAdminConsole')
     modalInstance.result.then(loadViews);
   };
 
-  $scope.deleteInstance = function(instance) {
-    ConfirmationModal.show('Delete View Instance', 'Are you sure you want to delete View Instance '+ instance.ViewInstanceInfo.label +'?').then(function() {
-      View.deleteInstance(instance.ViewInstanceInfo.view_name, instance.ViewInstanceInfo.version, instance.ViewInstanceInfo.instance_name)
-      .then(function() {
-        loadViews();
-      })
-      .catch(function(data) {
-        uiAlert.danger(data.data.status, data.data.message);
-      });
-    });
-  };
-
   $scope.viewsFilter = '';
   $scope.filteredViews = [];
   $scope.getFilteredViews = function(views) {

+ 7 - 1
ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/groups/GroupsEditCtrl.js

@@ -31,7 +31,11 @@ angular.module('ambariAdminConsole')
     });
   }    
   
-  loadMembers();
+  $scope.group.isLDAP().then(function(isLDAP) {
+    $scope.group.ldap_group = isLDAP;
+    loadMembers();
+  });
+    
   
   $scope.removeMember = function(member) {
     $scope.group.removeMember(member).finally(function() {
@@ -59,6 +63,8 @@ angular.module('ambariAdminConsole')
     ConfirmationModal.show('Delete Group', 'Are you sure you want to delete group "'+ group.group_name +'"?').then(function() {
       group.destroy().then(function() {
         $location.path('/groups');
+      }).catch(function() {
+        
       });
     });
   };

+ 1 - 2
ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/users/UsersShowCtrl.js

@@ -69,8 +69,7 @@ angular.module('ambariAdminConsole')
   };
 
   $scope.toggleUserActive = function() {
-    $scope.user.active = !$scope.user.active;
-    User.setActive($scope.user.user_name, $scope.user.active);
+    User.setActive($scope.user.user_name, !$scope.user.active);
   };
 
   User.get($routeParams.id).then(function(data) {

+ 19 - 0
ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Group.js

@@ -28,6 +28,25 @@ angular.module('ambariAdminConsole')
     }
   }
 
+  Group.prototype.isLDAP = function() {
+    var deferred = $q.defer();
+    var self = this;
+    if( typeof this.ldap_group === 'boolean' ){
+      deferred.resolve(this.ldap_group)
+    } else {
+      $http({
+        method: 'GET',
+        url: Settings.baseUrl + '/groups/'+this.group_name
+      }).
+      success(function(data) {
+        self.ldap_group = data.Groups.ldap_group;
+        deferred.resolve(self.ldap_group);
+      });
+    }
+
+    return deferred.promise;
+  }
+
   Group.prototype.save = function() {
     return $http({
       method : 'POST',

+ 15 - 0
ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css

@@ -51,6 +51,18 @@
   font-weight: bold;
   font-size: 2em;
 }
+
+.breadcrumb{
+  background: none;
+  font-size: 24px;
+  margin: 0;
+  padding: 0;
+}
+
+.user-edit-panel .ats-switch span.switch-right{
+  background-color: #da4f49;
+  color: white;
+}
 /*
   Style topnav menu
 */
@@ -167,6 +179,9 @@ table.no-border tr td{
 .no-border{
   border: none !important;
 }
+.top-margin-4{
+  margin-top: 4px;
+}
 
 .groups-pane table ul{
   list-style-type: none;

+ 13 - 11
ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html

@@ -17,9 +17,8 @@
 -->
 <ol class="breadcrumb">
   <li><a href="#/views">Views</a></li>
-  <li class="active">Create instance</li>
+  <li class="active">Create {{view.ViewVersionInfo.view_name}} instance</li>
 </ol>
-<h2>Create View Instance</h2>
 <hr>
 <form class="form-horizontal create-view-form" role="form" name="form.isntanceCreateForm" novalidate>
   <div class="view-header">
@@ -105,19 +104,22 @@
 
   <div class="panel panel-default">
     <div class="panel-heading">
-      <h3 class="panel-title">Configuration</h3>
+      <h3 class="panel-title">Properties</h3>
     </div>
     <div class="panel-body">
-    <div class="form-group" ng-repeat="parameter in instance.properties"
-      ng-class="{'has-error' : (form.isntanceCreateForm[parameter.name].$error.required && form.isntanceCreateForm.submitted)}" >
-      <label for="" class="col-sm-3 control-label">{{parameter.description}}</label>
-      <div class="col-sm-9">
-        <input type="text" class="form-control"  name="{{parameter.name}}" ng-required="parameter.required" ng-model="parameter.value">
-        <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.isntanceCreateForm[parameter.name].$error.required && form.isntanceCreateForm.submitted'>
-          Field requried!
+      <div class="form-group" ng-repeat="parameter in instance.properties"
+        ng-class="{'has-error' : (form.isntanceCreateForm[parameter.name].$error.required && form.isntanceCreateForm.submitted)}" >
+        <label for="" class="col-sm-3 control-label">{{parameter.description}}</label>
+        <div class="col-sm-9">
+          <input type="text" class="form-control"  name="{{parameter.name}}" ng-required="parameter.required" ng-model="parameter.value">
+          <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.isntanceCreateForm[parameter.name].$error.required && form.isntanceCreateForm.submitted'>
+            Field requried!
+          </div>
         </div>
       </div>
-    </div>
+      <div ng-show="!instance.properties.length">
+        <div class="alert alert-info">There are no properties defined for this view.</div>
+      </div>
     </div>
   </div>
   

+ 23 - 13
ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html

@@ -15,13 +15,17 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<ol class="breadcrumb">
-  <li><a href="#/views">Views</a></li>
-  <li class="active">Edit {{instance.ViewInstanceInfo.label}}</li>
-</ol>
-<h2>Edit {{instance.ViewInstanceInfo.view_name}}: {{instance.ViewInstanceInfo.label}}</h2>
+<div class="clearfix">
+  <ol class="breadcrumb pull-left">
+    <li><a href="#/views">Views</a></li>
+    <li class="active">{{instance.ViewInstanceInfo.view_name}}: {{instance.ViewInstanceInfo.label}}</li>
+  </ol>
+  <div class="pull-right top-margin-4">
+    <button class="btn btn-danger" ng-click="deleteInstance(instance)">Delete Instance</button>
+  </div>
+</div>
 <hr>
-<div class="panel panel-default">
+<div class="panel panel-default" ng-cloak>
   <div class="panel-heading clearfix">
     <h3 class="panel-title pull-left">Settings</h3>
     <div class="pull-right">
@@ -62,12 +66,12 @@
 <div class="panel panel-default views-permissions-panel" style="">
   <div class="panel-heading clearfix">
     <h3 class="panel-title pull-left">Permissions</h3>
-    <div class="pull-right">
-      <a href ng-click="editPermissionDisabled = !editPermissionDisabled" ng-show="editPermissionDisabled"> <span class="glyphicon glyphicon-cog"></span> Edit</a>
+    <div class="pull-right" >
+      <a ng-hide="isPermissionsEmpty" href ng-click="editPermissionDisabled = !editPermissionDisabled" ng-show="editPermissionDisabled"> <span class="glyphicon glyphicon-cog"></span> Edit</a>
     </div>
   </div>
   <div class="panel-body">
-    <form class="form-horizontal">
+    <form class="form-horizontal" ng-show="!isPermissionsEmpty">
       <div class="form-group">
         <div class="col-sm-2"></div>
         <label class="col-sm-5 control-label text-left">Users</label>
@@ -98,6 +102,7 @@
           </div>
         </div>
       </div>
+      
       <div class="form-group" ng-hide="editPermissionDisabled">
         <div class="col-sm-offset-2 col-sm-10">
           <button class="btn btn-primary pull-right left-margin" ng-click="savePermissions()">Save</button>
@@ -105,19 +110,21 @@
         </div>
       </div>
     </form>
-      
+    <div ng-show="isPermissionsEmpty">
+      <div class="alert alert-info">There are no permissions defined for this view.</div>
+    </div>
   </div>
 </div>
 
 <div class="panel panel-default">
   <div class="panel-heading clearfix">
-    <h3 class="panel-title pull-left">Configuration</h3>
+    <h3 class="panel-title pull-left">Properties</h3>
     <div class="pull-right">
-      <a href ng-click="editConfigurationDisabled = !editConfigurationDisabled" ng-show="editConfigurationDisabled"> <span class="glyphicon glyphicon-cog"></span> Edit</a>
+      <a href ng-hide="isConfigurationEmpty" ng-click="editConfigurationDisabled = !editConfigurationDisabled" ng-show="editConfigurationDisabled"> <span class="glyphicon glyphicon-cog"></span> Edit</a>
     </div>
   </div>
   <div class="panel-body">
-    <form action="" class="form-horizontal">
+    <form action="" class="form-horizontal" ng-hide="isConfigurationEmpty">
       <fieldset ng-disabled="editConfigurationDisabled">
         <div class="form-group" ng-repeat="(propertyName, propertyValue) in configuration">
           <label for="" class="control-label col-sm-3">{{propertyName}}</label>
@@ -131,5 +138,8 @@
         </div>
       </fieldset>
     </form>
+    <div ng-show="isConfigurationEmpty">
+      <div class="alert alert-info">There are no configuration defined for this view.</div>
+    </div>
   </div>
 </div>

+ 10 - 11
ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/list.html

@@ -15,13 +15,13 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<ol class="breadcrumb">
-  <li class="active">Views</li>
-</ol>
+    
 <div class="views-list-pane">
   <div class="clearfix">
-    <h3 class="pull-left">Views</h3>
-    <div class="pull-right top-buffer col-sm-4">
+    <ol class="breadcrumb pull-left">
+      <li class="active">Views</li>
+    </ol>
+    <div class="pull-right col-sm-4">
       <div class="input-group">
         <input type="text" class="form-control" placeholder="Search" ng-model="viewsFilter" ng-change="getFilteredViews()">
         <span class="input-group-addon">
@@ -55,23 +55,22 @@
           <tr ng-repeat="instance in view.instances">
             <td class="col-sm-3"></td>
             <td class="col-sm-3">{{instance.ViewInstanceInfo.version}}</td>
-            <td class="col-sm-3">{{instance.ViewInstanceInfo.label}}</td>
             <td class="col-sm-3">
-              <a href="#/views/{{view.view_name}}/versions/{{instance.ViewInstanceInfo.version}}/instances/{{instance.ViewInstanceInfo.instance_name}}/edit" class="btn btn-default"><span class="glyphicon glyphicon-cog"></span> Edit</a>
-              <a href="" class="btn btn-default" ng-click="deleteInstance(instance)">
-                <span class="glyphicon glyphicon-trash"></span> Delete
-              </a>
+              <a href="#/views/{{view.view_name}}/versions/{{instance.ViewInstanceInfo.version}}/instances/{{instance.ViewInstanceInfo.instance_name}}/edit" class="">{{instance.ViewInstanceInfo.label}}</a>
+            </td>
+            <td class="col-sm-3">
             </td>
           </tr>
         </tbody>
         <tfoot>
           <tr>
-            <td class="col-sm-3"></td>
             <td class="col-sm-3"></td>
             <td class="col-sm-3"></td>
             <td class="col-sm-3">
               <a class="btn btn-default" href="#/views/{{view.view_name}}/versions/{{view.versionsList[view.versionsList.length-1].ViewVersionInfo.version}}/new"><span class="glyphicon glyphicon-plus" ></span> Create Instance</a>
             </td>
+            <td class="col-sm-3">
+            </td>
           </tr>
         </tfoot>
       </table>

+ 5 - 5
ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/manageAccess.html

@@ -15,13 +15,13 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<ol class="breadcrumb">
-  <li class="active">Cluster Permissions</li>
-</ol>
+    
 <div class="cluster-manage-access-pane">
   <div class="clearfix">
-    <h3 class="pull-left">{{clusterName}} Permissions</h3>
-    <div class="pull-right top-buffer">
+    <ol class="breadcrumb pull-left">
+      <li class="active">{{clusterName}} Permissions</li>
+    </ol>
+    <div class="pull-right top-margin-4">
       <a href class="btn btn-primary"  ng-click="toggleEditMode()"><span class="glyphicon glyphicon-pencil"></span> Edit</a>
     </div>
   </div>

+ 1 - 2
ambari-admin/src/main/resources/ui/admin-web/app/views/groups/create.html

@@ -17,9 +17,8 @@
 -->
 <ol class="breadcrumb">
   <li><a href="#/groups">Groups</a></li>
-  <li class="active">Create group</li>
+  <li class="active">Create local group</li>
 </ol>
-<h2>Create local group</h2>
 <hr>
 <form class="form-horizontal" role="form" novalidate name="form">
   <div class="form-group" ng-class="{'has-error' : form.user_name.$error.required && form.submitted}">

+ 15 - 9
ambari-admin/src/main/resources/ui/admin-web/app/views/groups/edit.html

@@ -15,13 +15,13 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<ol class="breadcrumb">
-  <li><a href="#/groups">Groups</a></li>
-  <li class="active">Edit {{group.group_name}}</li>
-</ol>
+  
 <div class="clearfix">
-  <h3 class="pull-left">Edit {{group.group_name}}</h3>
-  <div class="pull-right top-buffer">
+  <ol class="breadcrumb pull-left">
+    <li><a href="#/groups">Groups</a></li>
+    <li class="active">{{group.group_name}}</li>
+  </ol>
+  <div class="pull-right top-margin-4">
     <button class="btn btn-danger" ng-click="deleteGroup(group)">Delete Group</button>
   </div>
 </div>
@@ -34,7 +34,13 @@
     </div>
   </div>
   <div class="form-group">
-    <label for="" class="col-sm-2 control-label">Users</label>
+    <label for="" class="col-sm-2 control-label">Type</label>
+    <div class="col-sm-10">
+      <label for="" class="control-label">{{group.ldap_group ? 'LDAP' : 'Local'}}</label>
+    </div>
+  </div>
+  <div class="form-group">
+    <label for="" class="col-sm-2 control-label">{{group.ldap_group ? 'LDAP Members' : 'Local Members'}}</label>
     <div class="col-sm-10">
       <div ng-switch="editMode">
         <div class="well users" ng-switch-when="false">
@@ -42,7 +48,7 @@
             <link-to route='users.show' id="{{member}}">
               {{member}}
             </link-to>
-            <button type="button" class="close" ng-click="removeMember(member)"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+            <button ng-show="!group.ldap_group" type="button" class="close" ng-click="removeMember(member)"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
             {{$last ? '' : ', '}}
           </span>
         </div>
@@ -53,7 +59,7 @@
       </div>
         
 
-      <button class="btn btn-primary pull-right" ng-click="toggleEditMode()"><span class="glyphicon {{editMode ? 'glyphicon-save' : 'glyphicon-pencil'}}"></span> {{editMode ? 'Save': 'Edit'}}</button>
+      <button ng-show="!group.ldap_group" class="btn btn-primary pull-right" ng-click="toggleEditMode()"><span class="glyphicon {{editMode ? 'glyphicon-save' : 'glyphicon-pencil'}}"></span> {{editMode ? 'Save': 'Edit'}}</button>
     </div>
   </div>
 </form>

+ 4 - 5
ambari-admin/src/main/resources/ui/admin-web/app/views/groups/list.html

@@ -15,13 +15,12 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<ol class="breadcrumb">
-  <li class="active">Groups</li>
-</ol>
 <div class="groups-pane">
   <div class="clearfix">
-    <h3 class="pull-left">Groups management</h3>
-    <div class="pull-right top-buffer">
+    <ol class="breadcrumb pull-left">
+      <li class="active">Groups</li>
+    </ol>
+    <div class="pull-right top-margin-4">
       <link-to route="groups.create" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> Create Local Group</link-to>
     </div>
   </div>

+ 1 - 2
ambari-admin/src/main/resources/ui/admin-web/app/views/users/create.html

@@ -17,9 +17,8 @@
 -->
 <ol class="breadcrumb">
   <li><a href="#/users">Users</a></li>
-  <li class="active">Create user</li>
+  <li class="active">Create local user</li>
 </ol>
-<h2>Create local user</h2>
 <hr>
 <form class="form-horizontal" role="form" novalidate name="form">
   <div class="form-group" ng-class="{'has-error' : form.user_name.$error.required && form.submitted}">

+ 5 - 5
ambari-admin/src/main/resources/ui/admin-web/app/views/users/list.html

@@ -15,13 +15,13 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<ol class="breadcrumb">
-  <li class="active">Users</li>
-</ol>
+    
 <div class="users-pane">
   <div class="clearfix">
-    <h3 class="pull-left">Users management</h3>
-    <div class="pull-right top-buffer">
+    <ol class="breadcrumb pull-left">
+      <li class="active">Users</li>
+    </ol>
+    <div class="pull-right top-margin-4">
       <link-to route="users.create" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> Create Local User</link-to>
     </div>
   </div>

+ 21 - 40
ambari-admin/src/main/resources/ui/admin-web/app/views/users/show.html

@@ -15,14 +15,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<ol class="breadcrumb">
-  <li><a href="#/users">Users</a></li>
-  <li class="active">Edit {{user.user_name}}</li>
-</ol>
-<div ng-show="user.user_name">
+    
+<div ng-show="user.user_name" class="user-edit-panel">
   <div class="clearfix">
-    <h3 class="pull-left">{{user.user_name}}</h3>
-    <div class="pull-right top-buffer">
+    <ol class="breadcrumb pull-left">
+      <li><a href="#/users">Users</a></li>
+      <li class="active">{{user.user_name}}</li>
+    </ol>
+    <div class="pull-right top-margin-4">
       <button class="btn btn-danger" ng-click="deleteUser()">Delete User</button>
     </div>
   </div>
@@ -31,17 +31,13 @@
     <div class="form-group">
       <label for="" class="col-sm-2 control-label">Type</label>
       <div class="col-sm-10">
-        <label for="" class="control-label">Local</label>
+        <label for="" class="control-label">{{user.ldap_user ? 'LDAP' : 'Local'}}</label>
       </div>
     </div>
     <div class="form-group">
       <label for="" class="col-sm-2 control-label">Status</label>
       <div class="col-sm-10">
-        <div class="btn" ng-class="user.active ? 'btn-success' : 'btn-danger'">
-          <span ng-show="user.active">Active</span>
-          <span ng-show="!user.active">Inactive</span>
-        </div>
-        <a href ng-click="toggleUserActive()">Make User {{user.active ? 'Inactive' : 'Active'}}</a>
+        <toggle-switch on-change="toggleUserActive()" model="user.active" on-label="Active" off-label="Inactive" class="switch-primary" data-off-color="danger"></toggle-switch>
       </div>
     </div>
     <div class="form-group">
@@ -51,7 +47,7 @@
       </div>
     </div>
     <div class="form-group">
-      <label for="groups" class="col-sm-2 control-label">Groups</label>
+      <label for="groups" class="col-sm-2 control-label">{{user.ldap_user ? 'LDAP Group Membership' : 'Local Group Membership'}}</label>
       <div class="col-sm-10">
         <div class="row" ng-hide="isGroupEditing">
           <div class="col-sm-10">
@@ -60,7 +56,7 @@
             </div>
           </div>
           <div class="col-sm-2">
-            <a href ng-click="enableGroupEditing()"><span class="glyphicon glyphicon-cog"></span> Edit</a>
+            <a href ng-click="enableGroupEditing()" ng-hide="user.ldap_user"><span class="glyphicon glyphicon-cog"></span> Edit</a>
           </div>
         </div>
         <div class="row" ng-show="isGroupEditing">
@@ -74,34 +70,19 @@
         
     </div>
     <div class="form-group">
-      <label for="" class="col-sm-2 control-label">Clusters</label>
+      <label for="" class="col-sm-2 control-label">Privileges</label>
       <div class="col-sm-10">
-        <div class="control-label text-left">
-          <a href="#">My Cluster</a> OPERATOR
-        </div>
+        <table class="table">
+          <thead>
+            <tr>
+              <th>Resource</th>
+              <th>Permissions</th>
+            </tr>
+          </thead>
+          <tbody></tbody>
+        </table>
       </div>
     </div>
-    <div class="form-group">
-      <label for="" class="col-sm-2 control-label">Views</label>
-      <div class="col-sm-10 padding-top-7">
-        <div ng-repeat="view in user.views" class="row">
-          <div class="col-sm-4">
-            <a href="#">Some limk to some view</a>
-          </div>
-          <div class="col-sm-5">
-            USE, EDIT_SCRIPT
-          </div>
-        </div>
-        <div class="row">
-          <div class="col-sm-4">
-            <a href="#">Some limk to some view</a>
-          </div>
-          <div class="col-sm-5">
-            USE, EDIT_SCRIPT
-          </div>
-        </div>
-      </div>
-    </div>    
   </form>
 </div>
   

+ 2 - 1
ambari-admin/src/main/resources/ui/admin-web/bower.json

@@ -6,7 +6,8 @@
     "angular": "~1.2.18",
     "angular-route": "~1.2.18",
     "angular-bootstrap": "~0.11.0",
-    "restangular": "~1.4.0"
+    "restangular": "~1.4.0",
+    "angular-bootstrap-toggle-switch": "~0.5.1"
   },
   "devDependencies": {}
 }