From 51f70c3b454d6e4f9c199641d49f864a26909929 Mon Sep 17 00:00:00 2001 From: Tilman Liero Date: Sun, 17 Apr 2016 13:56:37 +0200 Subject: [PATCH] user interface for withdrawals --- .../repository/UserRepository.java | 2 +- src/main/resources/static/js/controllers.js | 42 ++++++--- .../static/partials/transaction-list.html | 86 ++++++++++--------- 3 files changed, 79 insertions(+), 51 deletions(-) diff --git a/src/main/java/de/tilman/transactions/repository/UserRepository.java b/src/main/java/de/tilman/transactions/repository/UserRepository.java index b2658cb..0e1a3fb 100644 --- a/src/main/java/de/tilman/transactions/repository/UserRepository.java +++ b/src/main/java/de/tilman/transactions/repository/UserRepository.java @@ -14,7 +14,7 @@ public interface UserRepository extends PagingAndSortingRepository { @PreAuthorize("isFullyAuthenticated() && ((#username == principal.username) || hasRole('ROLE_ADMIN'))") @Query("SELECT u FROM User u WHERE u.username = :username") - User getByUsername(@Param("username") String username); + User findByUsername(@Param("username") String username); @PreAuthorize("hasRole('ROLE_ADMIN')") @Override diff --git a/src/main/resources/static/js/controllers.js b/src/main/resources/static/js/controllers.js index ab56d4b..51c58c9 100644 --- a/src/main/resources/static/js/controllers.js +++ b/src/main/resources/static/js/controllers.js @@ -34,28 +34,50 @@ transactionControllers.controller('TransactionListCtrl', [ '$scope', '$location' }); - console.log('$scope.account.links.users:'); - console.log($scope.account._links.users); - - // HIER GEHT'S WEITER - // URL des aktuell selektierten Account ermitteln, dann /accounts/id/users abrufen, Liste für Radiobuttons bereitstellen var accountUsers = $resource($scope.account._links.users.href).get(); accountUsers.$promise.then(function(data) { - console.log('accountUsers'); - console.log(accountUsers); - $scope.accountUsers = accountUsers._embedded.users; }); } + $scope.checkCategory = function() { + + var radioButtons = document.getElementsByName('expenseBy'); + var userLabels = document.getElementsByClassName('userLabel'); + + // if this is selected to be a withdrawal, preselect the current user and lock the radio buttons + if ($scope.transaction.category.id == -1) { + for (i = 0; i < userLabels.length; i++) { + if (userLabels[i].innerHTML.substr(-$scope.userinfo.name.length) === $scope.userinfo.name) { + userLabels[i].getElementsByTagName('INPUT')[0].checked = true; + } + } + for (i = 0; i < radioButtons.length; i++) { + radioButtons[i].disabled = true; + } + } + else { + for (i = 0; i < radioButtons.length; i++) { + radioButtons[i].disabled = false; + } + radioButtons[0].checked = true; + } + + } + $scope.initList = function() { console.log('initList()'); var userinfo = $resource('/user').get(); userinfo.$promise.then(function(data) { - $scope.username = userinfo.name; + $scope.userid = userinfo.name; - var accountInfo = $resource('/accounts/search/findByUserName', { username: userinfo.name }).get(); + userinfo = $resource('/users/search/findByUsername', { username: $scope.userid }).get(); + userinfo.$promise.then(function(data) { + $scope.userinfo = userinfo; + }); + + var accountInfo = $resource('/accounts/search/findByUserName', { username: $scope.userid }).get(); accountInfo.$promise.then(function(data) { $scope.accounts = accountInfo._embedded.accounts; $scope.account = $scope.accounts[0]; diff --git a/src/main/resources/static/partials/transaction-list.html b/src/main/resources/static/partials/transaction-list.html index ab69af6..254d5e8 100644 --- a/src/main/resources/static/partials/transaction-list.html +++ b/src/main/resources/static/partials/transaction-list.html @@ -1,51 +1,57 @@
-
-
-
- Betrag: -
- The value is not valid! -
- Kategorie: -
-
- Datum: -
-
- Notiz: -
-
- Auslage: - -
-
- -
-
- - + +
- - - - + + - - - - - + + + + + + + + + + + + + + + + + +
DatumKategorieBetragBeschreibungBetrag:
The value + is not valid!
{{transaction.date | date:'dd.MM.yyyy'}}{{transaction.category.name}}{{transaction.amount | number : 2}} €{{transaction.description}}
Kategorie:
Datum:
Notiz:
Auslage:
+ - + + + + + + + + + + + + + +
DatumKategorieBetragBeschreibung
{{transaction.date | date:'dd.MM.yyyy'}}{{transaction.category.name}}{{transaction.amount | number : 2}} €{{transaction.description}}
+ + -