Files
2016-10-18 11:10:01 -04:00

88 lines
2.3 KiB
JavaScript

(function() {
"use strict";
window.app.directive('editInventory',
function() {
return {
scope: {
inventory: "="
},
templateUrl: '/inventory/template/inventoryEdit.tmpl.cshtml',
controller: controller,
controllerAs: 'vm'
}
});
controller.$inject = ['$scope', '$uibModal', 'inventorySvc', 'transactionSvc'];
function controller($scope, $uibModal, inventorySvc, transactionSvc) {
var vm = this;
vm.inventory = $scope.inventory;
vm.inventoryOriginal = angular.copy(vm.inventory);
vm.transactions = [];
function refreshTransactions() {
vm.loadingTransactions = true;
vm.transactions = [];
transactionSvc
.filterByInventoryId(vm.inventory.id)
.success(function (data) {
if (data.transactions.length === 0) {
$scope.$parent.$close();
} else {
angular.copy(data.transactions, vm.transactions);
}
})
.finally(function() {
vm.loadingTransactions = false;
vm.inventoryOriginal = angular.copy(vm.inventory);
});
}
refreshTransactions(); // initial call
vm.save = save;
vm.cancel = cancel;
vm.deleteTransaction = deleteTransaction;
vm.removeInventory = removeInventory;
vm.saving = false;
vm.errorMessages = [];
vm.confirmDeleteTransaction = false;
vm.loadingTransactions = false;
vm.isShredReady = function () { return inventorySvc.isShredReady(vm.inventory); };
vm.isInInventory = function() { return vm.inventory.quantity > 0; }
function deleteTransaction(transactionId) {
vm.confirmDeleteTransaction = false;
transactionSvc
.deleteTransaction(transactionId)
.success(refreshTransactions);
}
function removeInventory() {
$uibModal.open({
template: '<inventory-remove inventory="inventory" />',
scope: angular.extend($scope.$new(true), { inventory: vm.inventory })
}).closed.then(refreshTransactions);
}
function save() {
vm.saving = true;
inventorySvc.update($scope.inventory, vm.inventory)
.success(function () {
//Close the modal
$scope.$parent.$close();
})
.error(function(data) {
vm.errorMessages = angular.copy(data.errorMessages, vm.errorMessages);
})
.finally(function() {
vm.saving = false;
});
}
function cancel() {
angular.copy(vm.inventoryOriginal, $scope.inventory);
$scope.$parent.$dismiss();
}
}
})();