diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java index 822645d31f00b11d4e469dd166f0c574cd1baa7e..c7cdfb79b007b87d00c2a05d41cd4bd7f0822c2a 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java @@ -1,24 +1,18 @@ package de.deadlocker8.budgetmaster.controller; -import de.deadlocker8.budgetmaster.entities.CategoryType; -import de.deadlocker8.budgetmaster.entities.Payment; import de.deadlocker8.budgetmaster.entities.Settings; -import de.deadlocker8.budgetmaster.repositories.PaymentRepository; import de.deadlocker8.budgetmaster.repositories.SettingsRepository; import de.deadlocker8.budgetmaster.services.HelpersService; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.CookieValue; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; -import java.util.List; @Controller diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java index da1b03012252beeb8acd505bd7aefb5ef86d3495..178217dee0fd23865187222fc0007c295843b3f4 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java @@ -8,6 +8,13 @@ import org.springframework.web.bind.annotation.RequestMapping; @Controller public class EmptyPageController extends BaseController { + @RequestMapping("/accounts") + public String accounts(Model model) + { + model.addAttribute("active", "accounts"); + return "emptyPage"; + } + @RequestMapping("/reports") public String reports(Model model) { diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/Account.java b/src/main/java/de/deadlocker8/budgetmaster/entities/Account.java index 6610067bea065bb7da29bded5acae4473b201edb..9a5cad67bd3e25831d19e7296f574ecd2b66a75d 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/entities/Account.java +++ b/src/main/java/de/deadlocker8/budgetmaster/entities/Account.java @@ -19,9 +19,12 @@ public class Account @OneToMany(mappedBy = "account", fetch = FetchType.LAZY) private List<Payment> referringPayments; + private boolean isSelected; + public Account(String name) { this.name = name; + this.isSelected = false; } public Account() @@ -58,6 +61,16 @@ public class Account this.referringPayments = referringPayments; } + public boolean isSelected() + { + return isSelected; + } + + public void setSelected(boolean selected) + { + isSelected = selected; + } + @Override public String toString() { @@ -65,6 +78,7 @@ public class Account "ID=" + ID + ", name='" + name + '\'' + ", referringPayments=" + referringPayments + + ", isSelected=" + isSelected + '}'; } } \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java b/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java index 01cba0e311cea15194fadda4e873238dfbdb55c1..a0402829424f9fdb2b4201425ba18568e865949d 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java +++ b/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java @@ -11,4 +11,6 @@ public interface AccountRepository extends JpaRepository<Account, Integer> List<Account> findAllByOrderByNameAsc(); Account findByName(String name); + + Account findByIsSelected(boolean isSelected); } \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java index 8af33d6859a35eb6112d7f207506976dcab3b4f5..ebf22fe0c1d19a5de4a9a32239bf03e3c026bd82 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java @@ -1,7 +1,9 @@ package de.deadlocker8.budgetmaster.services; +import de.deadlocker8.budgetmaster.entities.Account; import de.deadlocker8.budgetmaster.entities.Settings; import de.deadlocker8.budgetmaster.entities.Tag; +import de.deadlocker8.budgetmaster.repositories.AccountRepository; import de.deadlocker8.budgetmaster.repositories.SettingsRepository; import de.deadlocker8.budgetmaster.repositories.TagRepository; import de.deadlocker8.budgetmaster.utils.Colors; @@ -29,10 +31,13 @@ public class HelpersService @Autowired private TagRepository tagRepository; - + + @Autowired + private AccountRepository accountRepository; + public String getCurrencyString(int amount) { - return getCurrencyString(amount/100.0); + return getCurrencyString(amount / 100.0); } public String getCurrencyString(double amount) @@ -43,7 +48,7 @@ public class HelpersService format.setMinimumFractionDigits(2); return String.valueOf(format.format(amount)) + " " + settingsRepository.findOne(0).getCurrency(); } - + public String getURLEncodedString(String input) { try @@ -111,9 +116,10 @@ public class HelpersService } return years; } - + /** * Replaces line breaks and tabs with spaces + * * @param text * @return String */ @@ -152,4 +158,14 @@ public class HelpersService { return tagRepository.findAllByOrderByNameAsc(); } + + public List<Account> getAllAccounts() + { + return accountRepository.findAllByOrderByNameAsc(); + } + + public Account getCurrentAccount() + { + return accountRepository.findByIsSelected(true); + } } \ No newline at end of file diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties index 89eed348f199725774057fece31e261834590944..26afbed66347876b448a4310077d9b1b7881a809 100644 --- a/src/main/resources/languages/_de.properties +++ b/src/main/resources/languages/_de.properties @@ -42,6 +42,7 @@ title.database.export=Datenbank exportieren title.database.import=Datenbank importieren title.datepicker=Datum w�hlen title.tags=Das Tag-Eingabefeld +title.account=Konto # LOAD load.charts=Lade Diagramme... @@ -299,6 +300,7 @@ menu.reports=Berichte menu.settings=Einstellungen menu.about=�ber menu.logout=Logout +menu.accounts=Konten category.new.label.name=Name diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties index a5afdd46aa9afca1a0d3b646e706818554b9cae1..e49c5c03d14f1aba37963a9adafe15205cefdaee 100644 --- a/src/main/resources/languages/_en.properties +++ b/src/main/resources/languages/_en.properties @@ -42,6 +42,7 @@ title.database.export=Export Database title.database.import=Import Database title.datepicker=Choose date title.tags=The Tag-Inputfield +title.account=Account # LOAD load.charts=Loading Charts... @@ -299,6 +300,7 @@ menu.reports=Reports menu.settings=Settings menu.about=About menu.logout=Logout +menu.accounts=Accounts category.new.label.name=Name diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css index d17367662c3bbde3f5db5fb6de7f3b0f50981e86..fb6d43f2b494716ecb9b526d81a00e402f0f2f58 100644 --- a/src/main/resources/static/css/style.css +++ b/src/main/resources/static/css/style.css @@ -34,6 +34,10 @@ main { background-color: #5cb85c; } +.budgetmaster-dark-green { + background-color: #468C46; +} + .budgetmaster-red { background-color: #D82C29; } @@ -164,6 +168,10 @@ main { margin: 0 0 0 32px !important; } +.account-select-padding { + padding: 0 32px; +} + .no-padding { padding: 0; } diff --git a/src/main/resources/static/js/datePicker.js b/src/main/resources/static/js/datePicker.js index 78044a363273eead7568180e49449432e45b2998..ff6341411dfbbbfe79417f8f97d65ff7481f7d7e 100644 --- a/src/main/resources/static/js/datePicker.js +++ b/src/main/resources/static/js/datePicker.js @@ -1,6 +1,4 @@ $(document).ready(function () { - $('select').material_select(); - $("#buttonChooseDate").click(function () { var month = $("#selectMonth").val(); var year = $("#selectYear").val(); diff --git a/src/main/resources/static/js/main.js b/src/main/resources/static/js/main.js index 1b57dd9bb4c388463a5b79b77e1003d24f7bc412..e7293bc16a7072cbcfc64f5e1edbf80a1b9f4e50 100644 --- a/src/main/resources/static/js/main.js +++ b/src/main/resources/static/js/main.js @@ -4,6 +4,8 @@ $( document ).ready(function() { }); $('.modal').modal(); + + $('select').material_select(); }); function addClass(element, className) diff --git a/src/main/resources/static/js/payments.js b/src/main/resources/static/js/payments.js index 7f3ac386437009a695b511950c00bcb9c85797ed..78a7cea6c6bd4f8b87a14cafcd69ee482f5cc9ed 100644 --- a/src/main/resources/static/js/payments.js +++ b/src/main/resources/static/js/payments.js @@ -1,8 +1,6 @@ $( document ).ready(function() { $('#modalConfirmDelete').modal('open'); - $('select').material_select(); - if($(".datepicker").length) { $('.datepicker').pickadate({ diff --git a/src/main/resources/templates/emptyPage.ftl b/src/main/resources/templates/emptyPage.ftl index 8ef6c707a2155553a0dd160199ded480d2124aa4..76c4182ebcef6e6315413076c9cece8bb27a369c 100644 --- a/src/main/resources/templates/emptyPage.ftl +++ b/src/main/resources/templates/emptyPage.ftl @@ -13,5 +13,6 @@ <!-- Scripts--> <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script> + <script src="/js/main.js"></script> </body> </html> \ No newline at end of file diff --git a/src/main/resources/templates/navbar.ftl b/src/main/resources/templates/navbar.ftl index 8ad8893a7fb1737f003db9e323dd655000694896..9e825a69430846431529bdaf0086364d55231cdb 100644 --- a/src/main/resources/templates/navbar.ftl +++ b/src/main/resources/templates/navbar.ftl @@ -3,7 +3,10 @@ <ul id="slide-out" class="side-nav fixed"> <@itemLogo/> <@itemDivider/> + <@itemAccountSelect/> + <@itemDivider/> <@itemWithIcon "home", "/", locale.getString("menu.home"), "home", "budgetmaster-blue", activeID/> + <@itemWithIcon "accounts", "/accounts", locale.getString("menu.accounts"), "account_balance", "budgetmaster-dark-green", activeID/> <@itemWithIcon "payments", "/payments", locale.getString("menu.payments"), "list", "budgetmaster-baby-blue", activeID/> <@subListStart "chart" locale.getString("menu.charts"), "show_chart" "budgetmaster-purple", activeID/> <@itemPlain "chartCategories", "", locale.getString("menu.charts.chartCategories"), activeID/> @@ -35,6 +38,16 @@ <li><div class="divider no-margin"></div></li> </#macro> +<#macro itemAccountSelect> +<div class="input-field account-select-padding"> + <select id="selectAccount"> + <#list helpers.getAllAccounts() as account> + <option <#if account.isSelected()>selected</#if> value="${account.getName()}">${account.getName()}</option> + </#list> + </select> +</div> +</#macro> + <#macro itemPlain ID link text activeID> <li <#if activeID == ID>class="active"</#if>><a href="${link}" class="waves-effect"><span class="nav-margin">${text}</span></a></li> </#macro>