import ngModule from '../module'; import './product'; import './style.scss'; class Controller { constructor($http, $state, $scope) { this.$http = $http; this.$state = $state; this.$ = $scope; this.itemSelected = null; } exprBuilder(param, value) { switch (param) { case 'search': return /^\d+$/.test(value) ? {id: value} : {name: {like: `%${value}%`}}; case 'name': case 'description': return {[param]: {like: `%${value}%`}}; case 'id': case 'typeFk': return {[param]: value}; } } paramBuilder(param, value) { switch (param) { case 'tags': return {[param]: value}; } } cloneItem(item) { this.itemSelected = item; this.$.clone.show(); } onCloneAccept(response) { if (!(response == 'ACCEPT' && this.itemSelected)) return; this.$http.post(`/item/api/Items/${this.itemSelected.id}/clone`).then(res => { if (res && res.data && res.data.id) this.$state.go('item.card.tags', {id: res.data.id}); }); this.itemSelected = null; } showItemPreview(item) { this.itemSelected = item; this.$.preview.show(); } } Controller.$inject = ['$http', '$state', '$scope']; ngModule.component('vnItemIndex', { template: require('./index.html'), controller: Controller });