Add edit campaign frontend

pull/34/head
Florian Hartwich 2018-04-28 10:44:52 +02:00
parent 6381c1ca86
commit 3754974bfb
5 changed files with 34 additions and 8 deletions

View File

@ -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());
}
}

View File

@ -1,5 +1,6 @@
<form #form="ngForm" class="overview">
<h3>Kampagne hinzufügen</h3>
<h3 *ngIf="campaign._id">Kampagne editieren</h3>
<h3 *ngIf="!campaign._id">Neue Kampagne hinzufügen</h3>
<div class="form-group">
<label for="title">Titel</label>

View File

@ -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() {

View File

@ -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'
},

View File

@ -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});
}
}