opt-cc/static/src/app/statistic/war-list/war-list.component.ts

84 lines
2.6 KiB
TypeScript

import {Component, OnInit} from "@angular/core";
import {ActivatedRoute, Router} from "@angular/router";
import {Campaign, War} from "../../models/model-interfaces";
import {WarService} from "../../services/war-service/war.service";
import {LoginService} from "../../services/login-service/login-service";
import {CampaignService} from "../../services/campaign-service/campaign.service";
@Component({
selector: 'war-list',
templateUrl: './war-list.component.html',
styleUrls: ['./war-list.component.css', '../../style/list-entry.css', '../../style/select-list.css']
})
export class WarListComponent implements OnInit {
selectedWarId: string | number;
campaigns: Campaign[] = [];
constructor(private warService: WarService,
private campaignService: CampaignService,
private loginService: LoginService,
private router: Router,
private route: ActivatedRoute) {
}
ngOnInit() {
this.campaignService.getAllCampaigns().subscribe((items) => {
this.campaignService.campaigns = items;
this.campaigns = items;
this.selectOverview(this.campaigns[0]._id);
});
}
selectNewCampaign() {
this.selectedWarId = null;
this.router.navigate([{outlets: {'right': ['new-campaign']}}], {relativeTo: this.route});
}
selectNewWar() {
this.selectedWarId = null;
this.router.navigate([{outlets: {'right': ['new']}}], {relativeTo: this.route});
}
selectWar(warId) {
if (this.selectedWarId != warId) {
this.selectedWarId = warId;
this.router.navigate([{outlets: {'right': ['war', warId]}}], {relativeTo: this.route});
}
}
selectOverview(overviewId) {
if (this.selectedWarId != overviewId) {
this.selectedWarId = overviewId;
this.router.navigate([{outlets: {'right': ['overview', overviewId]}}], {relativeTo: this.route});
}
}
deleteWar(war: War) {
if (confirm('Soll die Schlacht ' + war.title + ' wirklich gelöscht werden?')) {
this.warService.deleteWar(war._id)
.subscribe((res) => {
if (this.selectedWarId === war._id) {
this.selectOverview('all');
}
this.campaigns.splice(this.campaigns.indexOf(war), 1);
})
}
}
deleteCampaign(campaign) {
if (confirm('Soll die Kampagne ' + campaign.title + ' wirklich gelöscht werden?')) {
this.campaignService.deleteCampaign(campaign._id)
.subscribe((res) => {
console.log(res)
if (this.selectedWarId === campaign._id) {
this.selectOverview('all');
}
this.campaigns.splice(this.campaigns.indexOf(campaign), 1);
})
}
}
}