// Copyright (c) 2016, hackbard. All rights reserved. Use of this source code // is governed by a BSD-style license that can be found in the LICENSE file. import 'dart:async'; import 'package:angular2/core.dart'; import 'package:angular2/router.dart'; import 'product.dart'; import 'product_service.dart'; import 'product_category.dart'; import 'product_category_service.dart'; import 'package:angular2_rbi/directives.dart'; @Component( selector: 'my-product-details', templateUrl: 'product_detail_component.html', styleUrls: const ['product_detail_component.css'], directives: const [MaterialTextfield,MaterialButton], providers: const [ProductService,ProductCategoryService] ) class ProductDetailComponent implements OnInit { final ProductService _prodSrv; final ProductCategoryService _prodcatSrv; final RouteParams _routeParams; List prodcats; Product prod; String prod_name; String prod_category; double prod_price; ProductDetailComponent(this._prodSrv,this._prodcatSrv, this._routeParams) { prod_name='Product'; prod_price=0; } Future ngOnInit() async { var id=_routeParams.get('id'); if(id!=null) { prod = await (_prodSrv.getById(id)); prodcats = await (_prodcatSrv.getAll()); } prod_name=prod.name; prod_price=prod.price; prod_category=prod.category; } Future updateProduct() async { bool doupdate=false; if(prod.name!=prod_name) { doupdate=true; } if(prod.price!=prod_price) { doupdate=true; } if(prod.category!=prod_category) { doupdate=true; } if(doupdate) { print('Debug: Updating product '+ prod.name+'/'+prod.price.toString()+'/'+ prod.category+' -> '+ prod_name+'/'+prod_price.toString()+'/'+ prod_category); await _prodSrv.updateProd( prod.id, prod_name, prod_price, prod_category ); prod.price=prod_price; prod.name=prod_name; prod.category=prod_category; } } Future deleteProduct(Product prod) async { print('Debug: Deleting product '+prod.name); await _prodSrv.deleteProduct(prod.id); } }