Skip to content

Commit 91ff66b

Browse files
committed
store
1 parent b5acf00 commit 91ff66b

File tree

3 files changed

+57
-62
lines changed

3 files changed

+57
-62
lines changed

web-app/admin/src/app/admin/admin-teams/admin-teams.module.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { NgModule } from '@angular/core';
22
import { CommonModule } from '@angular/common';
3-
import { RouterModule, Routes } from '@angular/router';
43
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
54
import { MatTableModule } from '@angular/material/table';
65
import { MatPaginatorModule } from '@angular/material/paginator';
@@ -16,13 +15,6 @@ import { TeamsService } from './teams-service';
1615
import { TeamDetailsComponent } from './team-details/team-details.component';
1716
import { CoreModule } from '../../core/core.module';
1817

19-
const routes: Routes = [
20-
{
21-
path: '',
22-
component: TeamDashboardComponent
23-
}
24-
];
25-
2618
@NgModule({
2719
declarations: [
2820
TeamDashboardComponent,
@@ -40,8 +32,7 @@ const routes: Routes = [
4032
MatDialogModule,
4133
MatFormFieldModule,
4234
MatInputModule,
43-
MatButtonModule,
44-
RouterModule.forChild(routes)
35+
MatButtonModule
4536
],
4637
providers: [
4738
TeamsService

web-app/admin/src/app/admin/admin-teams/team-details/team-details.component.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<div class="admin-nav-gap">
22
<div class="container-fluid">
33
<ol class="breadcrumb">
4-
<li><i class="fa fa-users admin-dashboard"></i><a [routerLink]="['/admin/teams']">Teams</a></li>
4+
<li><i class="fa fa-users admin-dashboard"></i><a href="javascript:void(0);" (click)="goToTeams()">Teams</a>
5+
</li>
56
<li class="active">{{team?.name}}</li>
67
</ol>
78
</div>

web-app/admin/src/app/admin/admin-teams/team-details/team-details.component.ts

Lines changed: 54 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Component, Inject, OnInit } from '@angular/core';
2-
// import { ActivatedRoute, Router } from '@angular/router';
2+
import { StateService } from '@uirouter/angular';
33
import { MatDialog } from '@angular/material/dialog';
4+
import { Team, Event, UserService } from '../../../upgrade/ajs-upgraded-providers';
45

56
interface Page<T> {
67
items: T[];
@@ -14,16 +15,16 @@ interface User {
1415
email: string;
1516
}
1617

17-
interface Team {
18+
interface TeamModel {
1819
id: string;
1920
name: string;
2021
description: string;
2122
userIds: string[];
2223
acl: any;
23-
$save: (params: any, callback: (team: Team) => void) => void;
24+
$save: (params: any, callback: (team: TeamModel) => void) => void;
2425
}
2526

26-
interface Event {
27+
interface EventModel {
2728
id: string;
2829
name: string;
2930
description: string;
@@ -36,7 +37,7 @@ interface Event {
3637
styleUrls: ['./team-details.component.scss']
3738
})
3839
export class TeamDetailsComponent implements OnInit {
39-
team: Team;
40+
team: TeamModel;
4041
hasUpdatePermission = false;
4142
hasDeletePermission = false;
4243

@@ -61,56 +62,54 @@ export class TeamDetailsComponent implements OnInit {
6162
};
6263
nonMemberSearchTerm: string;
6364

64-
teamEvents: Event[] = [];
65-
nonTeamEvents: Event[] = [];
65+
teamEvents: EventModel[] = [];
66+
nonTeamEvents: EventModel[] = [];
6667
teamEventsPage = 0;
6768
nonTeamEventsPage = 0;
6869
eventsPerPage = 5;
6970
eventSearch: string;
7071
teamEventSearch: string;
7172

72-
filteredEvents: Event[] = [];
73-
filteredNonTeamEvents: Event[] = [];
73+
filteredEvents: EventModel[] = [];
74+
filteredNonTeamEvents: EventModel[] = [];
7475

7576
constructor(
76-
// private route: ActivatedRoute,
77-
// private router: Router,
77+
private stateService: StateService,
7878
private dialog: MatDialog,
79-
@Inject('Team') private Team: any,
80-
@Inject('Event') private Event: any,
81-
@Inject('UserService') private UserService: any
79+
@Inject(Team) private Team: any,
80+
@Inject(Event) private Event: any,
81+
@Inject(UserService) private UserService: any
8282
) { }
8383

8484
ngOnInit(): void {
85-
// this.route.paramMap.subscribe(params => {
86-
// const teamId = params.get('teamId');
87-
// if (teamId) {
88-
// this.Team.get({ id: teamId, populate: false }, (team: Team) => {
89-
// this.team = team;
85+
// this.stateService.transitionTo('admin.teams');
86+
const teamId = this.stateService.params.teamId;
87+
if (teamId) {
88+
this.Team.get({ id: teamId, populate: false }, (team: TeamModel) => {
89+
this.team = team;
9090

91-
// const myAccess = this.team.acl[this.UserService.myself.id];
92-
// const aclPermissions = myAccess ? myAccess.permissions : [];
91+
const myAccess = this.team.acl[this.UserService.myself.id];
92+
const aclPermissions = myAccess ? myAccess.permissions : [];
9393

94-
// this.hasUpdatePermission = this.UserService.myself.role.permissions.includes('UPDATE_TEAM') || aclPermissions.includes('update');
95-
// this.hasDeletePermission = this.UserService.myself.role.permissions.includes('DELETE_TEAM') || aclPermissions.includes('delete');
96-
// });
94+
this.hasUpdatePermission = this.UserService.myself.role.permissions.includes('UPDATE_TEAM') || aclPermissions.includes('update');
95+
this.hasDeletePermission = this.UserService.myself.role.permissions.includes('DELETE_TEAM') || aclPermissions.includes('delete');
96+
});
9797

98-
// this.getMembersPage();
99-
// this.getNonMembersPage();
98+
this.getMembersPage();
99+
this.getNonMembersPage();
100100

101-
// this.Event.query((events: Event[]) => {
102-
// this.teamEvents = events.filter(event => {
103-
// return event.teams.some(team => team.id === this.team.id);
104-
// });
101+
this.Event.query((events: EventModel[]) => {
102+
this.teamEvents = events.filter(event => {
103+
return event.teams.some(team => team.id === this.team.id);
104+
});
105105

106-
// this.nonTeamEvents = events.filter(event => {
107-
// return !event.teams.some(team => team.id === this.team.id);
108-
// });
106+
this.nonTeamEvents = events.filter(event => {
107+
return !event.teams.some(team => team.id === this.team.id);
108+
});
109109

110-
// this.updateFilteredEvents();
111-
// });
112-
// }
113-
// });
110+
this.updateFilteredEvents();
111+
});
112+
}
114113
}
115114

116115
getMembersPage(): void {
@@ -195,8 +194,12 @@ export class TeamDetailsComponent implements OnInit {
195194
this.getNonMembersPage();
196195
}
197196

198-
editTeam(team: Team): void {
199-
// this.router.navigate(['/admin/teams', team.id, 'edit']);
197+
editTeam(team: TeamModel): void {
198+
this.stateService.go('admin.teams.edit', { teamId: team.id });
199+
}
200+
201+
goToTeams(): void {
202+
this.stateService.go('admin.teams');
200203
}
201204

202205
addMember($event: MouseEvent, nonMember: User): void {
@@ -212,37 +215,37 @@ export class TeamDetailsComponent implements OnInit {
212215
}
213216

214217
saveTeam(): void {
215-
this.team.$save(null, (team: Team) => {
218+
this.team.$save(null, (team: TeamModel) => {
216219
this.team = team;
217220
this.getMembersPage();
218221
this.getNonMembersPage();
219222
});
220223
}
221224

222-
editAccess(team: Team): void {
223-
// this.router.navigate(['/admin/teams', team.id, 'access']);
225+
editAccess(team: TeamModel): void {
226+
this.stateService.go('admin.teams.access', { teamId: team.id });
224227
}
225228

226-
gotoEvent(event: Event): void {
227-
// this.router.navigate(['/admin/events', event.id]);
229+
gotoEvent(event: EventModel): void {
230+
this.stateService.go('admin.events.detail', { eventId: event.id });
228231
}
229232

230233
gotoUser(user: User): void {
231-
// this.router.navigate(['/admin/users', user.id]);
234+
this.stateService.go('admin.users.detail', { userId: user.id });
232235
}
233236

234-
addEventToTeam($event: MouseEvent, event: Event): void {
237+
addEventToTeam($event: MouseEvent, event: EventModel): void {
235238
$event.stopPropagation();
236-
this.Event.addTeam({ id: event.id }, this.team, (updatedEvent: Event) => {
239+
this.Event.addTeam({ id: event.id }, this.team, (updatedEvent: EventModel) => {
237240
this.teamEvents.push(updatedEvent);
238241
this.nonTeamEvents = this.nonTeamEvents.filter(e => e.id !== updatedEvent.id);
239242
this.updateFilteredEvents();
240243
});
241244
}
242245

243-
removeEventFromTeam($event: MouseEvent, event: Event): void {
246+
removeEventFromTeam($event: MouseEvent, event: EventModel): void {
244247
$event.stopPropagation();
245-
this.Event.removeTeam({ id: event.id, teamId: this.team.id }, (updatedEvent: Event) => {
248+
this.Event.removeTeam({ id: event.id, teamId: this.team.id }, (updatedEvent: EventModel) => {
246249
this.teamEvents = this.teamEvents.filter(e => e.id !== updatedEvent.id);
247250
this.nonTeamEvents.push(updatedEvent);
248251
this.updateFilteredEvents();
@@ -256,7 +259,7 @@ export class TeamDetailsComponent implements OnInit {
256259
// });
257260
// dialogRef.afterClosed().subscribe(result => {
258261
// if (result) {
259-
// this.router.navigate(['/admin/teams']);
262+
// this.stateService.go('admin.teams');
260263
// }
261264
// });
262265
}
@@ -278,7 +281,7 @@ export class TeamDetailsComponent implements OnInit {
278281
this.updateFilteredEvents();
279282
}
280283

281-
getPagedEvents(events: Event[], page: number): Event[] {
284+
getPagedEvents(events: EventModel[], page: number): EventModel[] {
282285
const start = page * this.eventsPerPage;
283286
return events.slice(start, start + this.eventsPerPage);
284287
}

0 commit comments

Comments
 (0)