import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { Title } from '@angular/platform-browser'; import { TeamService } from '../../shared/service/team.service'; import { Team } from '../../shared/team'; import { Member } from '../../shared/member'; @Component({ selector: 'app-team-editor', templateUrl: './team-editor.component.html', styleUrls: ['./team-editor.component.css'] }) export class TeamEditorComponent implements OnInit { public team: Team = new Team(); public member: Member = new Member(); constructor(private teamService: TeamService, private titleService: Title, private route: ActivatedRoute, private router: Router) { } ngOnInit() { this.titleService.setTitle('Team editor : MTAStv'); this.route.data.subscribe((data: { team: Team }) => this.team = data.team); } get canAddMember(): boolean { try { return [this.member.name, this.member.signum].every(field => field.length !== 0); } catch (e) { return false; } } public addMember() { this.team.members = this.team.members.concat(Object.assign({}, this.member)); this.member = new Member(); } public removeMember(signum: String) { if (confirm(`Remove the member with signum ${signum}?`)) { this.team.members = this.team.members.filter(member => member.signum !== signum); } } public saveTeam() { this.teamService.update(this.team).subscribe( () => this.router.navigate(['/admin/teams/list']) ); } }