Просмотр исходного кода

frontend part with mock-team-list

Patrick O'Carroll 7 лет назад
Родитель
Сommit
1bb5a57036
2 измененных файлов с 73 добавлено и 41 удалено
  1. 58 41
      public/app/features/org/partials/profile.html
  2. 15 0
      public/app/features/org/profile_ctrl.ts

+ 58 - 41
public/app/features/org/partials/profile.html

@@ -3,53 +3,70 @@
 <div class="page-container page-body">
   <h3 class="page-sub-heading">User Profile</h3>
 
-	<form name="ctrl.userForm" class="gf-form-group">
+  <form name="ctrl.userForm" class="gf-form-group">
 
-		<div class="gf-form max-width-30">
-			<span class="gf-form-label width-8">Name</span>
-			<input class="gf-form-input max-width-22" type="text" required ng-model="ctrl.user.name" >
-		</div>
-		<div class="gf-form max-width-30">
-			<span class="gf-form-label width-8">Email</span>
-			<input class="gf-form-input max-width-22" type="email" ng-readonly="ctrl.readonlyLoginFields" required ng-model="ctrl.user.email">
+    <div class="gf-form max-width-30">
+      <span class="gf-form-label width-8">Name</span>
+      <input class="gf-form-input max-width-22" type="text" required ng-model="ctrl.user.name">
+    </div>
+    <div class="gf-form max-width-30">
+      <span class="gf-form-label width-8">Email</span>
+      <input class="gf-form-input max-width-22" type="email" ng-readonly="ctrl.readonlyLoginFields" required ng-model="ctrl.user.email">
       <i ng-if="ctrl.readonlyLoginFields" class="fa fa-lock gf-form-icon--right-absolute" bs-tooltip="'Login Details Locked - managed in another system.'"></i>
     </div>
-		<div class="gf-form max-width-30">
-			<span class="gf-form-label width-8">Username</span>
+    <div class="gf-form max-width-30">
+      <span class="gf-form-label width-8">Username</span>
       <input class="gf-form-input max-width-22" type="text" ng-readonly="ctrl.readonlyLoginFields" required ng-model="ctrl.user.login">
       <i ng-if="ctrl.readonlyLoginFields" class="fa fa-lock gf-form-icon--right-absolute" bs-tooltip="'Login Details Locked - managed in another system.'"></i>
     </div>
-		<div class="gf-form-button-row">
-			<button type="submit" class="btn btn-success" ng-click="ctrl.update()">Save</button>
-		</div>
-	</form>
+    <div class="gf-form-button-row">
+      <button type="submit" class="btn btn-success" ng-click="ctrl.update()">Save</button>
+    </div>
+  </form>
 
-	<prefs-control mode="user"></prefs-control>
+  <prefs-control mode="user"></prefs-control>
 
-	<h3 class="page-heading" ng-show="ctrl.showOrgsList">Organizations</h3>
-  <div class="gf-form-group" ng-show="ctrl.showOrgsList">
-		<table class="filter-table form-inline">
-			<thead>
-				<tr>
-					<th>Name</th>
-					<th>Role</th>
-					<th></th>
-				</tr>
-			</thead>
-			<tbody>
-				<tr ng-repeat="org in ctrl.orgs">
-					<td>{{org.name}}</td>
-					<td>{{org.role}}</td>
-					<td class="text-right">
-						<span class="btn btn-primary btn-mini" ng-show="org.orgId === contextSrv.user.orgId">
-							Current
-						</span>
-						<a ng-click="ctrl.setUsingOrg(org)" class="btn btn-inverse btn-mini" ng-show="org.orgId !== contextSrv.user.orgId">
-							Select
-						</a>
-					</td>
-				</tr>
-			</tbody>
-		</table>
-	</div>
+  <h3 class="page-heading">Teams</h3>
+  <div class="gf-form-group" ng-show="ctrl.showTeamsList">
+    <table class="filter-table form-inline">
+      <thead>
+        <tr>
+          <th>Name</th>
+          <th>Email</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr ng-repeat="team in ctrl.user.teams">
+          <td>{{team.name}}</td>
+          <td>{{team.email}}</td>
+        </tr>
+      </tbody>
+    </table>
+  </div>
 
+  <h3 class="page-heading" ng-show="ctrl.showOrgsList">Organizations</h3>
+  <div class="gf-form-group" ng-show="ctrl.showOrgsList">
+    <table class="filter-table form-inline">
+      <thead>
+        <tr>
+          <th>Name</th>
+          <th>Role</th>
+          <th></th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr ng-repeat="org in ctrl.orgs">
+          <td>{{org.name}}</td>
+          <td>{{org.role}}</td>
+          <td class="text-right">
+            <span class="btn btn-primary btn-mini" ng-show="org.orgId === contextSrv.user.orgId">
+              Current
+            </span>
+            <a ng-click="ctrl.setUsingOrg(org)" class="btn btn-inverse btn-mini" ng-show="org.orgId !== contextSrv.user.orgId">
+              Select
+            </a>
+          </td>
+        </tr>
+      </tbody>
+    </table>
+  </div>

+ 15 - 0
public/app/features/org/profile_ctrl.ts

@@ -4,8 +4,10 @@ import { coreModule } from 'app/core/core';
 export class ProfileCtrl {
   user: any;
   old_theme: any;
+  teams: any = [];
   orgs: any = [];
   userForm: any;
+  showTeamsList = false;
   showOrgsList = false;
   readonlyLoginFields = config.disableLoginForm;
   navModel: any;
@@ -13,6 +15,7 @@ export class ProfileCtrl {
   /** @ngInject **/
   constructor(private backendSrv, private contextSrv, private $location, navModelSrv) {
     this.getUser();
+    this.getUserTeams();
     this.getUserOrgs();
     this.navModel = navModelSrv.getNav('profile', 'profile-settings', 0);
   }
@@ -24,6 +27,18 @@ export class ProfileCtrl {
     });
   }
 
+  getUserTeams() {
+    console.log(this.backendSrv.get('/api/teams'));
+    this.backendSrv.get('/api/user').then(teams => {
+      this.user.teams = [
+        { name: 'Backend', email: 'backend@grafana.com', members: 2 },
+        { name: 'Frontend', email: 'frontend@grafana.com', members: 2 },
+        { name: 'Ops', email: 'ops@grafana.com', members: 2 },
+      ];
+      this.showTeamsList = this.user.teams.length > 1;
+    });
+  }
+
   getUserOrgs() {
     this.backendSrv.get('/api/user/orgs').then(orgs => {
       this.orgs = orgs;