consumerportal
Version:
mydna Custimised for you
60 lines (50 loc) • 1.81 kB
text/typescript
/// <reference path="../../includes.ts" />
module app {
import IUser = services.IUser;
import CartItem = services.CartItem;
class MarketplaceController {
static $inject = [
'$scope',
'authenSrvc',
'userService',
'cartService'
];
public selected: any;
public loaded: boolean = false;
public user: IUser;
public items: CartItem[];
public cartItems: string[];
constructor(
$scope: angular.IScope,
authenSrvc: authenSrvc.IAuthenService,
userService: services.IUserService,
private cartService: services.ICartService
) {
userService.user().then((user: IUser) => {
this.user = user;
});
$scope.$on('cartUpdated', (ev: any, cartItems: CartItem[]) => {
(this.items || []).forEach((item: CartItem) => {
if (item.state !== 'owned') {
item.state = cartItems.map((ci: CartItem) => { return ci.key }).indexOf(item.key) > -1 ? 'cart' : null;
}
});
});
cartService.getReports().then((items: CartItem[]) => {
this.items = items;
})
}
toggle(item: CartItem) {
if (!item.state) {
this.cartService.addItem(item);
} else if (item.state === 'owned') {
console.log('open report');
} else if (item.state === 'cart') {
this.cartService.removeItem(item);
}
}
}
angular
.module('app')
.controller('marketplaceCtrl', MarketplaceController);
}