diff --git a/static/src/app/services/logs/campaign.service.ts b/static/src/app/services/logs/campaign.service.ts index 0b5ae55..6d4e806 100644 --- a/static/src/app/services/logs/campaign.service.ts +++ b/static/src/app/services/logs/campaign.service.ts @@ -14,18 +14,27 @@ export class CampaignService { getAllCampaigns() { return this.http.get(this.config.apiWarPath) - .map(res => res.json()); + .map(res => res.json()); } submitCampaign(campaign: Campaign) { - return this.http.post(this.config.apiCampaignPath, campaign) - .map(res => res.json()); + if (campaign._id) { + return this.http.patch(this.config.apiCampaignPath + '/' + campaign._id, campaign); + } else { + return this.http.post(this.config.apiCampaignPath, campaign) + .map(res => res.json()); + } + } deleteCampaign(id: string) { return this.http.delete(this.config.apiCampaignPath + '/' + id) - .map(res => res.json()); + .map(res => res.json()); } + getCampaign(id: string) { + return this.http.get(this.config.apiCampaignPath + '/' + id) + .map(res => res.json()); + } } diff --git a/static/src/app/statistic/campaign-submit/campaign-submit.component.html b/static/src/app/statistic/campaign-submit/campaign-submit.component.html index 771736b..4bd7b3d 100644 --- a/static/src/app/statistic/campaign-submit/campaign-submit.component.html +++ b/static/src/app/statistic/campaign-submit/campaign-submit.component.html @@ -1,5 +1,6 @@
-

Kampagne hinzufügen

+

Kampagne editieren

+

Neue Kampagne hinzufügen

diff --git a/static/src/app/statistic/campaign-submit/campaign-submit.component.ts b/static/src/app/statistic/campaign-submit/campaign-submit.component.ts index 34a9561..588a905 100644 --- a/static/src/app/statistic/campaign-submit/campaign-submit.component.ts +++ b/static/src/app/statistic/campaign-submit/campaign-submit.component.ts @@ -1,6 +1,7 @@ import {Component, ViewChild} from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; import {NgForm} from '@angular/forms'; +import {Subscription} from 'rxjs/Subscription'; import {Campaign} from '../../models/model-interfaces'; import {CampaignService} from '../../services/logs/campaign.service'; @@ -18,11 +19,21 @@ export class CampaignSubmitComponent { error; + subscription: Subscription; + @ViewChild(NgForm) form: NgForm; constructor(private route: ActivatedRoute, private router: Router, private campaignService: CampaignService) { + + this.subscription = this.route.params + .map(params => params['id']) + .filter(id => id !== undefined) + .flatMap(id => this.campaignService.getCampaign(id)) + .subscribe(campaign => { + this.campaign = campaign; + }); } saveCampaign() { diff --git a/static/src/app/statistic/stats.routing.ts b/static/src/app/statistic/stats.routing.ts index 6e39806..8e1823c 100644 --- a/static/src/app/statistic/stats.routing.ts +++ b/static/src/app/statistic/stats.routing.ts @@ -33,7 +33,12 @@ export const statsRoutes: Routes = [{ outlet: 'right' }, { - path: 'new-campaign', + path: 'campaign', + component: CampaignSubmitComponent, + outlet: 'right' + }, + { + path: 'campaign/:id', component: CampaignSubmitComponent, outlet: 'right' }, diff --git a/static/src/app/statistic/war-list/war-list.component.ts b/static/src/app/statistic/war-list/war-list.component.ts index cfd40f2..fb4ebba 100644 --- a/static/src/app/statistic/war-list/war-list.component.ts +++ b/static/src/app/statistic/war-list/war-list.component.ts @@ -46,7 +46,7 @@ export class WarListComponent implements OnInit { selectNewCampaign() { this.selectedWarId = null; - this.router.navigate([{outlets: {'right': ['new-campaign']}}], {relativeTo: this.route}); + this.router.navigate([{outlets: {'right': ['campaign']}}], {relativeTo: this.route}); } selectNewWar() { @@ -100,6 +100,6 @@ export class WarListComponent implements OnInit { } editCampaign(selectCampaign) { - this.router.navigate([{outlets: {'right': ['overview', selectCampaign._id]}}], {relativeTo: this.route}); + this.router.navigate([{outlets: {'right': ['campaign', selectCampaign._id]}}], {relativeTo: this.route}); } }