opt-cc/static/src/app/wars/war-submit.component.ts

73 lines
1.8 KiB
TypeScript

import {Component, ViewChild} from "@angular/core";
import {Player, War} from "../models/model-interfaces";
import {WarService} from "../services/war-service/war.service";
import {ActivatedRoute, Router} from "@angular/router";
import {NgForm} from "@angular/forms";
@Component({
selector: 'war-submit',
templateUrl: './war-submit.component.html',
styleUrls: ['./war-submit.component.css']
})
export class WarSubmitComponent {
war: War = {date: new Date().toISOString().slice(0, 10), players: []};
fileList: FileList;
showImageError = false;
showErrorLabel = false;
loading = false;
error;
@ViewChild(NgForm) form: NgForm;
constructor(private route: ActivatedRoute,
private router: Router,
private warService: WarService) {
}
fileChange(event) {
if (!event.target.files[0].name.endsWith('.rpt')
&& !event.target.files[0].name.endsWith('.log')
&& !event.target.files[0].name.endsWith('.txt')) {
this.showImageError = true;
this.fileList = undefined;
} else {
this.showImageError = false;
this.fileList = event.target.files;
}
}
saveWar() {
let file: File;
console.log(this.war.date)
if (this.fileList) {
file = this.fileList[0];
this.loading = true;
this.warService.submitWar(this.war, file)
.subscribe(war => {
this.router.navigate([war._id], {relativeTo: this.route});
},
error => {
this.error = error._body.error.message;
this.showErrorLabel = true;
this.loading = false;
});
} else {
return window.alert(`Logfile ist ein Pflichtfeld`);
}
}
cancel() {
this.router.navigate(['..'], {relativeTo: this.route});
return false;
}
}