// vim: set tw=80 ts=2 sw=2 sts=2 : import { Location } from '@angular/common'; import { Component, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { Logger } from '@nsalaun/ng-logger'; import { ToastrService } from 'ngx-toastr'; import { Operation } from './operation'; import { OperationService } from './operation.service'; import { OperationFormComponent } from './operationForm.component'; @Component({ selector: 'operation-new', template: `
The operation date is required.
The operation label is required.
The operation value is required.
The operation category is required.
` }) export class OperationEditComponent { public operation = new Operation(); //dateMask = [/\d{4}/, '-', /0[1-9]|1[0-2]/, '-', /[0-2]\d|3[0-1]/]; dateMask = ['2', '0', /\d/, /\d/, '-', /[0-1]/, /\d/, '-', /[0-3]/, /\d/]; constructor( private location: Location, private router: Router, private activatedRoute: ActivatedRoute, private logger: Logger, private toastrService: ToastrService, private operationService: OperationService ) {} ngOnInit() { let operationId = this.activatedRoute.snapshot.paramMap.get('operationId'); if (operationId) { // Load Operation this.operationService.get( +operationId ).subscribe((operation: Operation) => { this.operation = operation; this.logger.info(operation); }); } else { let accountId = this.activatedRoute.snapshot.paramMap.get('accountId'); this.operation.account_id = +accountId; } } submit(): void { this.save(this.operation); } /* * Save an operation and return a promise. */ save(operation) { operation.confirmed = true; return this.operationService.create(operation).subscribe( (operation) => { this.toastrService.success('Operation #' + operation.id + ' saved.'); this.location.back(); }, (result) => { this.toastrService.error( 'Error while saving operation: ' + result.message ); } ); } cancel(): void { this.location.back(); } }