import ngModule from '../module'; class Controller { constructor($http, $scope, $stateParams, vnApp, $translate, $element) { this.$http = $http; this.$scope = $scope; this.$stateParams = $stateParams; this.vnApp = vnApp; this.$translate = $translate; this.$element = $element; this.services = []; } $onInit() { this.getDefaultTaxClass(); } getDefaultTaxClass() { let config = {params: { filter: { where: { code: 'G' } } }}; let query = '/api/TaxClasses/findOne'; this.$http.get(query, config).then(res => { if (res.data) this.defaultTaxClass = res.data; }); } add() { this.$scope.model.insert({ taxClassFk: this.defaultTaxClass.id, quantity: 1, ticketFk: this.$stateParams.id }); } onNewServiceTypeOpen() { this.newServiceType.name = ''; this.nameInput = this.$element[0].querySelector('.edit input'); this.nameInput.focus(); } newServiceTypeDialog(elementIndex) { this.$scope.createServiceTypeDialog.show(); this.currentServiceIndex = elementIndex; } onNewServiceTypeResponse(response) { if (response == 'ACCEPT') { try { if (!this.newServiceType.name) throw new Error(`Name can't be empty`); this.$http.post(`/api/TicketServiceTypes`, this.newServiceType).then(response => { this.services[this.currentServiceIndex].description = response.data.name; }); } catch (err) { this.vnApp.showError(this.$translate.instant(err.message)); return err; } } } onSubmit() { this.$scope.watcher.check(); this.$scope.model.save().then(() => { this.$scope.watcher.notifySaved(); this.$scope.model.refresh(); }); } } Controller.$inject = ['$http', '$scope', '$stateParams', 'vnApp', '$translate', '$element']; ngModule.component('vnTicketService', { template: require('./index.html'), controller: Controller });