1- < p > team-details works!</ p >
1+ < div class ="admin-nav-gap ">
2+ < div class ="container-fluid ">
3+ < ol class ="breadcrumb ">
4+ < li > < i class ="fa fa-users admin-dashboard "> </ i > < a [routerLink] ="['/admin/teams'] "> Teams</ a > </ li >
5+ < li class ="active "> {{team?.name}}</ li >
6+ </ ol >
7+ </ div >
8+ </ div >
9+
10+ < div class ="container-fluid bottom-gap-l ">
11+ < div class ="row ">
12+ < div class ="col-md-offset-1 col-md-10 " *ngIf ="team ">
13+
14+ < div class ="row ">
15+ < div class ="col-md-8 ">
16+ < h2 > Team: {{team.name}}</ h2 >
17+ </ div >
18+ < div class ="col-md-4 ">
19+ < h2 *ngIf ="hasUpdatePermission ">
20+ < button class ="btn btn-default pull-right " (click) ="editTeam(team) "> < i class ="fa fa-edit "> </ i >
21+ Edit</ button >
22+ < button class ="btn btn-default pull-right right-gap " (click) ="editAccess(team) "> < i
23+ class ="fa fa-shield "> </ i > Access</ button >
24+ </ h2 >
25+ </ div >
26+ </ div >
27+
28+ < hr >
29+
30+ < div class ="row top-gap-l ">
31+ < div class ="col-sm-6 col-xs-12 ">
32+
33+ < div class ="row top-gap-l ">
34+ < div class ="col-md-3 ">
35+ < span class ="muted "> Name: </ span >
36+ </ div >
37+ < div class ="col-md-9 ">
38+ < span > {{team.name}}</ span >
39+ </ div >
40+ </ div >
41+
42+ < div class ="row top-gap-s bottom-gap ">
43+ < div class ="col-md-3 ">
44+ < span class ="muted "> Description: </ span >
45+ </ div >
46+ < div class ="col-md-9 ">
47+ < span > {{team.description}}</ span >
48+ </ div >
49+ </ div >
50+ </ div >
51+
52+ < div class ="col-sm-6 " *ngIf ="hasDeletePermission ">
53+ < div class ="card ">
54+ < div class ="card-content ">
55+ < strong class ="text-danger "> Delete Team</ strong >
56+ < p class ="text-danger "> Deleting a team will remove all team information. This cannot be
57+ undone, and
58+ all team data will be unrecoverable. Users within the team will not be deleted.</ p >
59+ < button class ="btn btn-danger top-gap " (click) ="deleteTeam() "> < i class ="fa fa-trash-o "> </ i >
60+ Delete</ button >
61+ </ div >
62+ </ div >
63+ </ div >
64+
65+ </ div >
66+
67+ < hr >
68+
69+ < div class ="row ">
70+ < div class ="col-md-6 col-xs-12 ">
71+
72+ < div *ngIf ="hasUpdatePermission " class ="bottom-gap-l ">
73+ < div class ="row ">
74+ < div class ="col-md-12 ">
75+ < nav class ="navbar navbar-default admin-dashboard-navbar ">
76+ < div class ="container-fluid ">
77+ < div class ="navbar-header ">
78+ < a class ="navbar-brand "> Add Team Member < sup > < span
79+ class ="badge "> {{nonMembersPage.totalCount}}</ span > </ sup > </ a >
80+ </ div >
81+
82+ < form class ="navbar-form navbar-left ">
83+ < div class ="form-group ">
84+ < input type ="text " class ="form-control " placeholder ="Search "
85+ [(ngModel)] ="nonMemberSearchTerm "
86+ [ngModelOptions] ="{standalone: true, debounce: 500} "
87+ (ngModelChange) ="searchNonMember() ">
88+ </ div >
89+ </ form >
90+ </ div >
91+ </ nav >
92+ </ div >
93+ </ div >
94+
95+ < div class ="admin-table admin-teams-table ">
96+ < div class ="admin-teams-table-content ">
97+ < div class ="admin-teams-table-items ">
98+ < div class ="admin-teams-table-item " *ngFor ="let user of nonMembersPage.items ">
99+ < div class ="row pointer " (click) ="gotoUser(user) ">
100+ < div class ="admin-teams-user ">
101+ <!-- <user-avatar class="right-gap" [user]="user" [avatarWidth]="40"
102+ [avatarHeight]="40"></user-avatar> -->
103+ < div class ="admin-teams-user-detail ">
104+ < div class ="strong right-gap ">
105+ < span class ="right-gap "> {{user.displayName}}</ span >
106+ < span class ="muted "> ({{user.username}})</ span >
107+ </ div >
108+ < div class ="muted "> {{user.email}}</ div >
109+ </ div >
110+ < a class ="btn btn-xs btn-success " (click) ="addMember($event, user) "> Add
111+ Member</ a >
112+ </ div >
113+ </ div >
114+ </ div >
115+ </ div >
116+ < div class ="row ">
117+ < div class ="col-md-12 ">
118+ < ul class ="pager pull-right admin-teams-pager ">
119+ < li [ngClass] ="{'disabled': !hasPreviousNonMember()} ">
120+ < a href ="javascript:void(0); " (click) ="previousNonMemberPage() "> ←
121+ Previous</ a >
122+ </ li >
123+ < li [ngClass] ="{'disabled': !hasNextNonMember()} ">
124+ < a href ="javascript:void(0); "
125+ (click) ="nextNonMemberPage() "> Next→</ a >
126+ </ li >
127+ </ ul >
128+ </ div >
129+ </ div >
130+ </ div >
131+
132+ < div class ="admin-teams-table-status " *ngIf ="loadingNonMembers ">
133+ < div class ="admin-teams-table-status-text "> Loading</ div >
134+ < div >
135+ < i class ="fa fa-spinner fa-spin admin-teams-table-status-spinner "> </ i >
136+ </ div >
137+ </ div >
138+ </ div >
139+ </ div >
140+
141+ < div class ="row ">
142+ < div class ="col-md-12 ">
143+ < nav class ="navbar navbar-default admin-dashboard-navbar ">
144+ < div class ="container-fluid ">
145+ < div class ="navbar-header ">
146+ < a class ="navbar-brand "> Team Members < sup > < span
147+ class ="badge "> {{membersPage.totalCount}}</ span > </ sup > </ a >
148+ </ div >
149+
150+ < form class ="navbar-form navbar-left ">
151+ < div class ="form-group ">
152+ < input type ="text " class ="form-control " placeholder ="Search "
153+ [(ngModel)] ="memberSearchTerm "
154+ [ngModelOptions] ="{standalone: true, debounce: 500} "
155+ (ngModelChange) ="searchMembers() ">
156+ </ div >
157+ </ form >
158+ < div class ="navbar-form navbar-right right-gap-s " *ngIf ="hasUpdatePermission ">
159+ < button class ="btn btn-default navbar-right "
160+ (click) ="edit = !edit "> Edit</ button >
161+ </ div >
162+ </ div >
163+ </ nav >
164+ </ div >
165+ </ div >
166+ < div class ="admin-table admin-teams-table ">
167+ < div class ="admin-teams-table-content ">
168+ < div class ="admin-teams-table-items ">
169+ < div class ="admin-teams-table-item " *ngFor ="let user of membersPage.items ">
170+ < div class ="row pointer " (click) ="gotoUser(user) ">
171+ < div class ="admin-teams-user ">
172+ <!-- <user-avatar class="pull-left right-gap" [user]="user" [avatarWidth]="40"
173+ [avatarHeight]="40"></user-avatar> -->
174+ < div class ="admin-teams-user-detail ">
175+ < div class ="strong right-gap ">
176+ < span class ="right-gap "> {{user.displayName}}</ span >
177+ < span class ="muted "> ({{user.username}})</ span >
178+ </ div >
179+ < div class ="muted "> {{user.email}}</ div >
180+ </ div >
181+ < a class ="btn btn-xs btn-danger " *ngIf ="edit "
182+ (click) ="removeMember($event, user) "> Remove Member</ a >
183+ </ div >
184+ </ div >
185+ </ div >
186+ </ div >
187+ < div class ="row ">
188+ < div class ="col-md-12 ">
189+ < ul class ="pager pull-right admin-teams-pager ">
190+ < li [ngClass] ="{'disabled': !hasPreviousMember()} ">
191+ < a href ="javascript:void(0); " (click) ="previousMemberPage() "> ←
192+ Previous</ a >
193+ </ li >
194+ < li [ngClass] ="{'disabled': !hasNextMember()} ">
195+ < a href ="javascript:void(0); " (click) ="nextMemberPage() "> Next→</ a >
196+ </ li >
197+ </ ul >
198+ </ div >
199+ </ div >
200+ </ div >
201+
202+ < div class ="admin-teams-table-status " *ngIf ="loadingMembers ">
203+ < div class ="admin-teams-table-status-text "> Loading</ div >
204+ < div >
205+ < i class ="fa fa-spinner fa-spin admin-teams-table-status-spinner "> </ i >
206+ </ div >
207+ </ div >
208+ </ div >
209+ </ div >
210+
211+ < div class ="col-md-6 col-xs-12 ">
212+ < div class ="row ">
213+ < div class ="col-md-12 ">
214+ < nav class ="navbar navbar-default admin-dashboard-navbar ">
215+ < div class ="container-fluid ">
216+ < div class ="navbar-header ">
217+ < a class ="navbar-brand "> Add Team to an Event < sup > < span
218+ class ="badge "> {{filteredNonTeamEvents.length}}</ span > </ sup > </ a >
219+ </ div >
220+
221+ < form class ="navbar-form navbar-left ">
222+ < div class ="form-group ">
223+ < input type ="text " class ="form-control " placeholder ="Search "
224+ [(ngModel)] ="eventSearch " [ngModelOptions] ="{standalone: true} "
225+ (ngModelChange) ="onEventSearchChange() ">
226+ </ div >
227+ </ form >
228+ </ div >
229+ </ nav >
230+ </ div >
231+ </ div >
232+
233+ < div class ="admin-table admin-teams-table ">
234+ < div class ="admin-teams-table-content ">
235+ < div class ="admin-teams-table-items ">
236+ < div class ="admin-teams-table-item "
237+ *ngFor ="let event of getPagedEvents(filteredNonTeamEvents, nonTeamEventsPage) ">
238+ < div class ="row pointer " (click) ="gotoEvent(event) ">
239+ < div class ="admin-teams-user ">
240+ < i class ="fa fa-calendar admin-teams-table-item-icon "> </ i >
241+ < div class ="admin-teams-user-detail ">
242+ < div class ="strong right-gap ">
243+ < span class ="right-gap "> {{event.name}}</ span >
244+ </ div >
245+ < div class ="muted "> {{event.description}}</ div >
246+ </ div >
247+ < a class ="btn btn-xs btn-success "
248+ (click) ="addEventToTeam($event, event) "> Add Event</ a >
249+ </ div >
250+ </ div >
251+ </ div >
252+ </ div >
253+ < div class ="row ">
254+ < div class ="col-md-12 ">
255+ < ul class ="pager pull-right admin-teams-pager ">
256+ < li [ngClass] ="{'disabled': !canGoPreviousNonTeamEvents()} ">
257+ < a href ="javascript:void(0); "
258+ (click) ="canGoPreviousNonTeamEvents() && (nonTeamEventsPage = nonTeamEventsPage - 1) "> ←
259+ Previous</ a >
260+ </ li >
261+ < li [ngClass] ="{'disabled': !canGoNextNonTeamEvents()} ">
262+ < a href ="javascript:void(0); "
263+ (click) ="canGoNextNonTeamEvents() && (nonTeamEventsPage = nonTeamEventsPage + 1) "> Next→</ a >
264+ </ li >
265+ </ ul >
266+ </ div >
267+ </ div >
268+ </ div >
269+ </ div >
270+
271+ < div class ="row top-gap-l ">
272+ < div class ="col-md-12 ">
273+ < nav class ="navbar navbar-default admin-dashboard-navbar ">
274+ < div class ="container-fluid ">
275+ < div class ="navbar-header ">
276+ < a class ="navbar-brand "> Events for {{team.name}} < sup > < span
277+ class ="badge "> {{filteredEvents.length}}</ span > </ sup > </ a >
278+ </ div >
279+
280+ < form class ="navbar-form navbar-left ">
281+ < div class ="form-group ">
282+ < input type ="text " class ="form-control " placeholder ="Search "
283+ [(ngModel)] ="teamEventSearch " [ngModelOptions] ="{standalone: true} "
284+ (ngModelChange) ="onTeamEventSearchChange() ">
285+ </ div >
286+ </ form >
287+ < div class ="navbar-form navbar-right right-gap-s ">
288+ < button class ="btn btn-default navbar-right "
289+ (click) ="editEvent = !editEvent "> Edit</ button >
290+ </ div >
291+ </ div >
292+ </ nav >
293+ </ div >
294+ </ div >
295+
296+ < div class ="admin-table admin-teams-table ">
297+ < div class ="admin-teams-table-content ">
298+ < div class ="admin-teams-table-items ">
299+ < div class ="admin-teams-table-item "
300+ *ngFor ="let event of getPagedEvents(filteredEvents, teamEventsPage) ">
301+ < div class ="row pointer " (click) ="gotoEvent(event) ">
302+ < div class ="admin-teams-user ">
303+ < i class ="fa fa-calendar admin-teams-table-item-icon "> </ i >
304+ < div class ="admin-teams-user-detail ">
305+ < div class ="strong right-gap ">
306+ < span class ="right-gap "> {{event.name}}</ span >
307+ </ div >
308+ < div class ="muted "> {{event.description}}</ div >
309+ </ div >
310+ < a class ="btn btn-xs btn-danger " *ngIf ="editEvent "
311+ (click) ="removeEventFromTeam($event, event) "> Remove Event</ a >
312+ </ div >
313+ </ div >
314+ </ div >
315+ </ div >
316+ < div class ="row ">
317+ < div class ="col-md-12 ">
318+ < ul class ="pager pull-right admin-teams-pager ">
319+ < li [ngClass] ="{'disabled': !canGoPreviousTeamEvents()} ">
320+ < a href ="javascript:void(0); "
321+ (click) ="canGoPreviousTeamEvents() && (teamEventsPage = teamEventsPage - 1) "> ←
322+ Previous</ a >
323+ </ li >
324+ < li [ngClass] ="{'disabled': !canGoNextTeamEvents()} ">
325+ < a href ="javascript:void(0); "
326+ (click) ="canGoNextTeamEvents() && (teamEventsPage = teamEventsPage + 1) "> Next→</ a >
327+ </ li >
328+ </ ul >
329+ </ div >
330+ </ div >
331+ </ div >
332+ </ div >
333+ </ div >
334+ </ div >
335+ </ div >
336+ </ div >
337+ </ div >
0 commit comments