diff --git a/src/main/resources/static/js/controllers.js b/src/main/resources/static/js/controllers.js index 100b028..ca5a5bf 100644 --- a/src/main/resources/static/js/controllers.js +++ b/src/main/resources/static/js/controllers.js @@ -219,15 +219,18 @@ transactionControllers.controller('TransactionListCtrl', [ '$http', '$scope', '$ }); }; - $scope.openDetails = function(transaction) { + $scope.openDetails = function(transactionId) { var modalInstance = $uibModal.open({ templateUrl: 'detailsTemplate.html', controller: 'DetailsModalCtrl', resolve: { - transaction: transaction, + transactionId: transactionId, categories: function () { return $scope.categories; - } + }, + accountUsers: function () { + return $scope.accountUsers; + } } }); @@ -243,22 +246,33 @@ transactionControllers.controller('TransactionListCtrl', [ '$http', '$scope', '$ } ]); -transactionControllers.controller('DetailsModalCtrl', [ '$scope', '$uibModalInstance', 'transaction', 'categories', function($scope, $uibModalInstance, transaction, categories) { +transactionControllers.controller('DetailsModalCtrl', [ '$scope', '$resource', '$uibModalInstance', 'Transaction', 'transactionId', 'categories', 'accountUsers', function($scope, $resource, $uibModalInstance, Transaction, transactionId, categories, accountUsers) { - transaction.date = new Date(transaction.date); + $scope.accountUsers = accountUsers; - $scope.transaction = transaction; - $scope.categories = categories; - - for (i = 0; i < $scope.categories.length; i++) { - if ($scope.categories[i].name == $scope.transaction.category.name) { - $scope.transaction.category = $scope.categories[i]; - break; - } - } + transaction = Transaction.get({ id: transactionId }); + transaction.$promise.then(function(data) { + transaction.date = new Date(transaction.date); + transaction.category = $resource(transaction._links.category.href).get(); + transaction.creditor = $resource(transaction._links.creditor.href).get(); + + transaction.category.$promise.then(function(data) { + $scope.transaction = transaction; + $scope.categories = categories; + + for (i = 0; i < $scope.categories.length; i++) { + if ($scope.categories[i].name == $scope.transaction.category.name) { + $scope.transaction.category = $scope.categories[i]; + break; + } + } + }); + + }); $scope.ok = function () { - console.log($scope.transaction); + $scope.transaction.category = $scope.transaction.category._links.self.href; + $scope.transaction.$update(function() {}); $uibModalInstance.close($scope.transaction); }; diff --git a/src/main/resources/static/js/services.js b/src/main/resources/static/js/services.js index dcb98ae..dc8faa0 100644 --- a/src/main/resources/static/js/services.js +++ b/src/main/resources/static/js/services.js @@ -1,32 +1,9 @@ var transactionServices = angular.module('transactionServices', [ 'ngResource' ]); transactionServices.factory('Transaction', [ '$resource', function($resource) { - return $resource('/transactions/:id', {}, { - /*query : { - method : 'GET', - params : { - phoneId : 'phones' - }, - isArray : true - }*/ + return $resource('/transactions/:id', { id: '@id' }, { + update : { + method : 'PUT' + } }); } ]); - -/* - // via Resource (might be moved into a service) - var Transaction = $resource('/transactions'); - - var newTransaction = new Transaction({ - "account" : $scope.account._links.self.href, - "amount" : amount, - "date" : $scope.transaction.date, - "description" : $scope.transaction.description, - "category" : $scope.transaction.category._links.self.href, - "creditor" : $scope.transaction.creditor - }); - - newTransaction.$save(function(transaction) { - $scope.refreshList(); - $scope.lastSubmission = newTransaction; - }); -*/ \ No newline at end of file diff --git a/src/main/resources/static/partials/transaction-list.html b/src/main/resources/static/partials/transaction-list.html index 68e3398..5084e80 100644 --- a/src/main/resources/static/partials/transaction-list.html +++ b/src/main/resources/static/partials/transaction-list.html @@ -89,7 +89,7 @@