From 782a2e40d5f3a8b56a32a275518948f4f10c36dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ram=C3=B3n=20Tom=C3=A1s?= Date: Mon, 27 Mar 2017 17:21:50 +0200 Subject: [PATCH] Fix issue no cardtpyeid submitted in SPA Fix issue multiple order creation. Now the create order button is disabled until the request is processed --- .../orders/orders-new/orders-new.component.html | 2 +- .../orders/orders-new/orders-new.component.ts | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Web/WebSPA/Client/modules/orders/orders-new/orders-new.component.html b/src/Web/WebSPA/Client/modules/orders/orders-new/orders-new.component.html index 6fc2274b8..8a5021243 100644 --- a/src/Web/WebSPA/Client/modules/orders/orders-new/orders-new.component.html +++ b/src/Web/WebSPA/Client/modules/orders/orders-new/orders-new.component.html @@ -105,7 +105,7 @@
- +
diff --git a/src/Web/WebSPA/Client/modules/orders/orders-new/orders-new.component.ts b/src/Web/WebSPA/Client/modules/orders/orders-new/orders-new.component.ts index aadcabc1c..321c72a9c 100644 --- a/src/Web/WebSPA/Client/modules/orders/orders-new/orders-new.component.ts +++ b/src/Web/WebSPA/Client/modules/orders/orders-new/orders-new.component.ts @@ -1,4 +1,5 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; +import { Observable } from 'rxjs/Observable'; import { OrdersService } from '../orders.service'; import { IOrder } from '../../shared/models/order.model'; import { BasketWrapperService } from '../../shared/services/basket.wrapper.service'; @@ -13,6 +14,7 @@ import { Router } from '@angular/router'; }) export class OrdersNewComponent implements OnInit { private newOrderForm: FormGroup; // new order form + private isOrderProcessing: Boolean; private order: IOrder; constructor(private service: OrdersService, fb: FormBuilder, private router: Router, private basketEvents: BasketWrapperService) { @@ -39,16 +41,24 @@ export class OrdersNewComponent implements OnInit { this.order.state = this.newOrderForm.controls['state'].value; this.order.country = this.newOrderForm.controls['country'].value; this.order.cardnumber = this.newOrderForm.controls['cardnumber'].value; + this.order.cardtypeid = 1; this.order.cardholdername = this.newOrderForm.controls['cardholdername'].value; this.order.cardexpiration = new Date(20 + this.newOrderForm.controls['expirationdate'].value.split('/')[1], this.newOrderForm.controls['expirationdate'].value.split('/')[0]); this.order.cardsecuritynumber = this.newOrderForm.controls['securitycode'].value; - this.service.postOrder(this.order).subscribe(res => { + this.service.postOrder(this.order) + .catch((errMessage) => { + this.isOrderProcessing = false; + return Observable.throw(errMessage); + }) + .subscribe(res => { // this will emit an observable. Basket service is subscribed to this observable, and will react deleting the basket for the current user. this.basketEvents.orderCreated(); - + this.router.navigate(['orders']); }); + + this.isOrderProcessing = true; } }