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'; import {Message} from '../../../i18n/de.messages'; import {SnackBarService} from '../../../services/user-interface/snack-bar/snack-bar.service'; @Component({ selector: 'campaign-submit', templateUrl: './campaign-submit.component.html', styleUrls: ['./campaign-submit.component.css', '../../../style/entry-form.css', '../../../style/overview.css'] }) export class CampaignSubmitComponent { campaign: Campaign = {}; subscription: Subscription; @ViewChild(NgForm) form: NgForm; constructor(private route: ActivatedRoute, private router: Router, private campaignService: CampaignService, private snackBarService: SnackBarService) { 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() { this.campaignService.submitCampaign(this.campaign) .subscribe(campaign => { let redirectSuccessUrl = '../overview/'; if (this.campaign._id) { redirectSuccessUrl = '../' + redirectSuccessUrl; } this.snackBarService.showSuccess(Message.SUCCESS_SAVE); this.router.navigate([redirectSuccessUrl + campaign._id], {relativeTo: this.route}); }, error => this.snackBarService.showError(error._body.error.message, 30000)); } cancel() { this.router.navigate(['..'], {relativeTo: this.route}); return false; } }