import {Component, OnInit} from '@angular/core'; import {Campaign} from '../models/model-interfaces'; import {CampaignService} from '../services/logs/campaign.service'; import {ActivatedRoute, Router} from '@angular/router'; import {TranslateService} from '@ngx-translate/core'; import {SettingsService} from '../services/settings.service'; import {WarService} from '../services/logs/war.service'; @Component({ selector: 'cc-stats', templateUrl: './stats.component.html', styleUrls: ['./stats.component.css'] }) export class StatisticComponent implements OnInit { selectedCampaign: Campaign = {}; campaigns: Campaign[] = []; collapsed = false; constructor(private campaignService: CampaignService, private warService: WarService, private router: Router, private route: ActivatedRoute, private translate: TranslateService, private settingsService: SettingsService) { this.settingsService.getLanguage().subscribe((language) => this.translate.setDefaultLang(language)); } ngOnInit() { this.campaignService.getAllCampaigns() .filter(campaigns => campaigns.length !== 0) .subscribe((campaigns) => { this.campaigns = campaigns; this.resolveCampaignFromUrl(); }); } resolveCampaignFromUrl() { const url = this.router.url; const idFetchPattern = /right:.*\/(.*)\)$/; if (url.includes('right:overview') || url.includes('right:highscore')) { const id = idFetchPattern.exec(url)[1]; if (id === 'all') { this.switchCampaign({_id: id}); } const filteredCampaigns = this.campaigns.filter(c => c._id === id); if (filteredCampaigns.length === 1) { this.switchCampaign(filteredCampaigns[0]); } } else if (url.includes('right:war')) { const id = idFetchPattern.exec(url)[1]; console.log(id) this.campaignService.getCampaignByWarId(id).subscribe((campaign) => { this.switchCampaign(campaign); }); } else { this.switchCampaign(this.campaigns[0]); } } switchCampaign(campaign) { if (campaign._id !== 'all') { campaign.wars$ = this.warService.wars$; this.warService.getAllWars(campaign._id).subscribe((wars) => { this.selectedCampaign = campaign; }); } else { this.selectedCampaign = campaign; } if (campaign._id === 'all' || this.router.url.includes('/overview/all')) { setTimeout(_ => { window.dispatchEvent(new Event('resize')); }); } } toggleCollapse() { this.collapsed = !this.collapsed; setTimeout(_ => { window.dispatchEvent(new Event('resize')); }); } deleteCampaign(campaign) { this.translate.get('stats.campaign.manage.delete.confirm', {title: campaign.title}).subscribe((confirmQuestion: string) => { if (confirm(confirmQuestion)) { this.campaignService.deleteCampaign(campaign) .subscribe((res) => { }); } }); } editCampaign(selectCampaign) { this.router.navigate([{outlets: {'right': ['campaign', selectCampaign._id]}}], {relativeTo: this.route}); } }