50 lines
1.3 KiB
TypeScript
Raw Normal View History

2018-05-10 16:39:05 +02:00
import { Component, OnInit } from '@angular/core';
2018-05-11 10:46:27 +02:00
import { Title } from "@angular/platform-browser";
import { ActivatedRoute, Router } from "@angular/router";
import { Awardee } from "../shared/awardee";
import { AwardeeService } from "../shared/awardee.service";
2018-05-10 16:39:05 +02:00
@Component({
selector: 'app-awardee-editor',
templateUrl: './awardee-editor.component.html',
styleUrls: ['./awardee-editor.component.css']
})
export class AwardeeEditorComponent implements OnInit {
public years: Array<number> = [];
public awardee: Awardee;
2018-05-11 10:46:27 +02:00
constructor(
private titleService: Title,
private route: ActivatedRoute,
private router: Router,
private awardeeService: AwardeeService,
2018-05-11 10:46:27 +02:00
) {}
2018-05-10 16:39:05 +02:00
ngOnInit() {
2018-05-11 10:46:27 +02:00
this.titleService.setTitle('Edit awardee');
this.route.data.subscribe((data: {
years: Array<number>,
awardee: Awardee,
}) => {
this.years = data.years ? data.years : [];
this.awardee = data.awardee ? data.awardee : new Awardee();
});
2018-05-11 10:46:27 +02:00
}
public saveAwardee() {
if (this.canSave) {
this.awardeeService.persist(this.awardee).subscribe(() => this.router.navigate(['/awardees']));
}
2018-05-10 16:39:05 +02:00
}
get canSave(): boolean {
return [
this.awardee.name,
this.awardee.text,
this.awardee.imageLabel].every(textField => textField.length > 0)
&& this.awardee.year !== null;
}
2018-05-10 16:39:05 +02:00
}