diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/app.module.ts b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/app.module.ts index bdad19f82..997eacbfb 100644 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/app.module.ts +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/app.module.ts @@ -9,6 +9,7 @@ import { AppService } from './app.service'; import { AppComponent } from './app.component'; import { SharedModule } from './shared/shared.module'; import { CatalogModule } from './catalog/catalog.module'; +import { OrdersModule } from './orders/orders.module'; import { BasketModule } from './basket/basket.module'; @NgModule({ @@ -20,6 +21,7 @@ import { BasketModule } from './basket/basket.module'; // Only module that app module loads SharedModule.forRoot(), CatalogModule, + OrdersModule, BasketModule ], providers: [ diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.html b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.html index 6856c90b2..bbda19c23 100644 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.html +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.html @@ -1,57 +1,38 @@ -
+
-
+
- - - + - - - - - - - - - - - - - - - + + + + + diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.scss b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.scss index d748fa784..bb0ab0552 100644 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.scss +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.scss @@ -1,6 +1,8 @@ @import '../_variables.scss'; .esh-orders { + min-height: 80vh; + &-header { background-color: #00A69C; height: 63px; @@ -38,13 +40,16 @@ min-width: 992px; } - &-product-column { + &-order-column { max-width: 120px; - text-transform: uppercase; vertical-align: middle !important; } - &-product-image { + &-order-link { + color: #83d01b; + } + + &-order-image { max-width: 210px; } diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.ts b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.ts index ea1ec9fed..f52509875 100644 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.ts +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.component.ts @@ -1,91 +1,26 @@ import { Component, OnInit } from '@angular/core'; -import { OrdersService } from './orders.service'; -import { ICatalog } from '../shared/models/catalog.model'; -import { ICatalogItem } from '../shared/models/catalogItem.model'; -import { ICatalogType } from '../shared/models/catalogType.model'; -import { ICatalogBrand } from '../shared/models/catalogBrand.model'; -import { IPager } from '../shared/models/pager.model'; -import { BasketWrapperService} from '../shared/services/basket.wrapper.service'; +import { OrdersService } from './orders.service'; +import { IOrder } from '../shared/models/order.model'; @Component({ selector: 'esh-orders .orders', styleUrls: ['./orders.component.scss'], templateUrl: './orders.component.html' }) -export class CatalogComponent implements OnInit { - brands: ICatalogBrand[]; - types: ICatalogType[]; - catalog: ICatalog; - brandSelected: number; - typeSelected: number; - paginationInfo: IPager; +export class OrdersComponent implements OnInit { + orders: IOrder[]; - constructor(private service: OrdersService, private basketService: BasketWrapperService) { } + constructor(private service: OrdersService) { } ngOnInit() { - this.getBrands(); - this.getCatalog(10, 0); - this.getTypes(); + this.getOrders(); } - onFilterApplied(event: any) { - event.preventDefault(); - this.getCatalog(this.paginationInfo.itemsPage, this.paginationInfo.actualPage, this.brandSelected, this.typeSelected); - } - - onBrandFilterChanged(event: any, value: number) { - event.preventDefault(); - this.brandSelected = value; - } - - onTypeFilterChanged(event: any, value: number) { - event.preventDefault(); - this.typeSelected = value; - } - - onPageChanged(value: any) { - console.log('catalog pager event fired' + value); - event.preventDefault(); - this.paginationInfo.actualPage = value; - this.getCatalog(this.paginationInfo.itemsPage, value); - } - - addToCart(item: ICatalogItem) { - this.basketService.addItemToBasket(item); - } - - getCatalog(pageSize:number, pageIndex: number, brand?: number, type?: number) { - this.service.getCatalog(pageIndex, pageSize, brand, type).subscribe(catalog => { - this.catalog = catalog; - console.log('catalog items retrieved: ' + catalog.count); - - this.paginationInfo = { - actualPage : catalog.pageIndex, - itemsPage : catalog.pageSize, - totalItems : catalog.count, - totalPages: Math.ceil(catalog.count / catalog.pageSize), - items: catalog.pageSize - }; - - console.log(this.paginationInfo); - }); - } - - getTypes() { - this.service.getTypes().subscribe(types => { - this.types = types; - let alltypes = { id: null, type: 'All' }; - this.types.unshift(alltypes); - console.log('types retrieved: ' + types.length); - }); - } - getBrands() { - this.service.getBrands().subscribe(brands => { - this.brands = brands; - let allBrands = { id: null, brand: 'All' }; - this.brands.unshift(allBrands); - console.log('brands retrieved: ' + brands.length); + getOrders() { + this.service.getOrders().subscribe(orders => { + this.orders = orders; + console.log('orders items retrieved: ' + orders.length); }); } } diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.module.ts b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.module.ts index ef3bec4d7..51f1bb0d9 100644 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.module.ts +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.module.ts @@ -11,4 +11,4 @@ import { Pager } from '../shared/components/pager/pager'; declarations: [OrdersComponent], providers: [OrdersService] }) -export class CatalogModule { } +export class OrdersModule { } diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.service.ts b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.service.ts index ee57cdc86..da1903a11 100644 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.service.ts +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/orders/orders.service.ts @@ -2,9 +2,7 @@ import { Injectable } from '@angular/core'; import { Response } from '@angular/http'; import { DataService } from '../shared/services/data.service'; -import { ICatalog } from '../shared/models/catalog.model'; -import { ICatalogBrand } from '../shared/models/catalogBrand.model'; -import { ICatalogType } from '../shared/models/catalogType.model'; +import { IOrder } from '../shared/models/order.model'; import 'rxjs/Rx'; import { Observable } from 'rxjs/Observable'; @@ -14,35 +12,16 @@ import 'rxjs/add/operator/map'; @Injectable() export class OrdersService { - private catalogUrl: string = 'http://eshopcontainers:5101/api/v1/catalog/items'; - private brandUrl: string = 'http://eshopcontainers:5101/api/v1/catalog/catalogbrands'; - private typesUrl: string = 'http://eshopcontainers:5101/api/v1/catalog/catalogtypes'; + private ordersUrl: string = 'http://eshopcontainers:5102/api/v1/orders'; constructor(private service: DataService) { } - getCatalog(pageIndex: number, pageSize: number, brand: number, type: number): Observable { - var url = this.catalogUrl; - if (brand || type) { - url = this.catalogUrl + '/type/' + ((type) ? type.toString() : 'null') + '/brand/' + ((brand) ? brand.toString() : 'null'); - } - - url = url + '?pageIndex=' + pageIndex + '&pageSize=' + pageSize; + getOrders(): Observable { + var url = this.ordersUrl; return this.service.get(url).map((response: Response) => { return response.json(); }); } - - getBrands(): Observable { - return this.service.get(this.brandUrl).map((response: Response) => { - return response.json(); - }); - } - - getTypes(): Observable { - return this.service.get(this.typesUrl).map((response: Response) => { - return response.json(); - }); - }; -} \ No newline at end of file +} diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/shared/models/order.model.ts b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/shared/models/order.model.ts new file mode 100644 index 000000000..35be8bafb --- /dev/null +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/Client/modules/shared/models/order.model.ts @@ -0,0 +1,6 @@ +export interface IOrder { + ordernumber: number, + date: Date, + status: string, + total: number +}
- PRODUCT + + ORDER NUMBER - + DATE - BRAND + TOTAL - PRICE - - QUANTITY - - COST + STATUS
{{item.productName}}ROSLYN$ {{item.unitPrice}} - - $ {{item.unitPrice * item.quantity}}
-
-
TOTAL
- $ {{totalPrice}} -
+
{{order.ordernumber}}{{order.date | date:'short'}}$ {{order.total}}{{order.status}} + Detail