54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
|
|
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'])
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|