From b50847c828ed888210595103026dd27a3f49b955 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 16 Feb 2019 16:36:03 +0100 Subject: [PATCH] #293 - added reset button --- .../controller/FilterController.java | 43 +++++++++++-------- .../filter/FilterConfiguration.java | 2 + src/main/resources/languages/_de.properties | 2 +- src/main/resources/languages/_en.properties | 2 +- .../resources/templates/filter/filter.ftl | 12 ++---- .../templates/filter/filterMacros.ftl | 36 ++++++++++++++++ 6 files changed, 68 insertions(+), 29 deletions(-) create mode 100644 src/main/resources/templates/filter/filterMacros.ftl diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java index 0a30210fe..b2e010a95 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java @@ -33,26 +33,10 @@ public class FilterController extends BaseController private HelpersService helpers; @RequestMapping("/filter") - public String filter(Model model, @CookieValue(value = "currentDate", required = false) String cookieDate) + public String filter(Model model) { - DateTime date = helpers.getDateTimeFromCookie(cookieDate); - - model.addAttribute("currentDate", date); - - List<Category> categories = categoryService.getRepository().findAllByOrderByNameAsc(); - List<FilterCategory> filterCategories = new ArrayList<>(); - for(Category category : categories) - { - filterCategories.add(new FilterCategory(category.getID(), category.getName(), false)); - } - - FilterConfiguration filterConfiguration = new FilterConfiguration(); - filterConfiguration.setIncludeIncome(true); - filterConfiguration.setIncludeExpenditure(true); - filterConfiguration.setIncludeNotRepeating(true); - filterConfiguration.setIncludeRepeating(true); - filterConfiguration.setFilterCategories(filterCategories); - + FilterConfiguration filterConfiguration = FilterConfiguration.DEFAULT; + filterConfiguration.setFilterCategories(getFilterCategories()); model.addAttribute("filterConfiguration", filterConfiguration); return "filter/filter"; } @@ -63,4 +47,25 @@ public class FilterController extends BaseController System.out.println(filterConfiguration); return "redirect:/filter"; } + + @RequestMapping("/filter/reset") + public String reset(Model model) + { + FilterConfiguration filterConfiguration = FilterConfiguration.DEFAULT; + filterConfiguration.setFilterCategories(getFilterCategories()); + model.addAttribute("filterConfiguration", filterConfiguration); + return "filter/filter"; + } + + private List<FilterCategory> getFilterCategories() + { + List<Category> categories = categoryService.getRepository().findAllByOrderByNameAsc(); + List<FilterCategory> filterCategories = new ArrayList<>(); + for(Category category : categories) + { + filterCategories.add(new FilterCategory(category.getID(), category.getName(), false)); + } + + return filterCategories; + } } \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/filter/FilterConfiguration.java b/src/main/java/de/deadlocker8/budgetmaster/filter/FilterConfiguration.java index 78544858d..8b72c1465 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/filter/FilterConfiguration.java +++ b/src/main/java/de/deadlocker8/budgetmaster/filter/FilterConfiguration.java @@ -10,6 +10,8 @@ public class FilterConfiguration private boolean includeRepeating; private List<FilterCategory> filterCategories; + public static final FilterConfiguration DEFAULT = new FilterConfiguration(true, true, true, true, null); + public FilterConfiguration() { } diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties index 38f105e08..12570d3b5 100644 --- a/src/main/resources/languages/_de.properties +++ b/src/main/resources/languages/_de.properties @@ -241,6 +241,7 @@ report.budget.rest=Restbudget: # filter filter.active=Filter aktiv filter.apply=Filter anwenden +filter.reset=Zur�cksetzen filter.type=Art filter.type.income=Einnahme filter.type.expenditure=Ausgabe @@ -254,7 +255,6 @@ filter.name=Name filter.tags=Tags filter.tags.button.all=Alle filter.tags.button.none=Keine -filter.button.reset=Zur�cksetzen # home menu home.menu.accounts=Konten erlauben es mehrere Buchungen zu gruppieren. Du kannst so viele Konten erstellen, wie du m�chtest. Zum Erstellen, Aktualisieren oder L�schen von Accounts klicke hier. diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties index 82d19573d..fecec8e63 100644 --- a/src/main/resources/languages/_en.properties +++ b/src/main/resources/languages/_en.properties @@ -240,6 +240,7 @@ report.budget.rest=Remaining Budget: # filter filter.active=Filter active filer.apply=Apply Filter +filter.reset=Reset filter.type=Type filter.type.income=Income filter.type.expenditure=Expenditure @@ -253,7 +254,6 @@ filter.name=Name filter.tags=Tags filter.tags.button.all=All filter.tags.button.none=None -filter.button.reset=Reset # home menu home.menu.accounts=Accounts allow you to group multiple transactions. You can create as many accounts as you want. Create, update and delete them by clicking here. diff --git a/src/main/resources/templates/filter/filter.ftl b/src/main/resources/templates/filter/filter.ftl index 0f0e19f78..7e719d6c9 100644 --- a/src/main/resources/templates/filter/filter.ftl +++ b/src/main/resources/templates/filter/filter.ftl @@ -9,6 +9,9 @@ <#import "../helpers/navbar.ftl" as navbar> <@navbar.navbar ""/> + <#import "filterMacros.ftl" as filterMacros> + + <main> <div class="card main-card background-color"> <div class="container"> @@ -93,14 +96,7 @@ </div> </div> - <#-- button save --> - <div class="row valign-wrapper"> - <div class="col s12 center-align"> - <button class="btn waves-effect waves-light budgetmaster-blue" type="submit" name="buttonSave"> - <i class="fas fa-filter left"></i>${locale.getString("filter.apply")} - </button> - </div> - </div> + <@filterMacros.buttons/> </form> </div> </div> diff --git a/src/main/resources/templates/filter/filterMacros.ftl b/src/main/resources/templates/filter/filterMacros.ftl new file mode 100644 index 000000000..ad2378042 --- /dev/null +++ b/src/main/resources/templates/filter/filterMacros.ftl @@ -0,0 +1,36 @@ +<#import "/spring.ftl" as s> + +<#macro buttons> + <div class="row hide-on-small-only valign-wrapper"> + <div class="col s6 right-align"> + <@buttonReset/> + </div> + + <div class="col s6 left-align"> + <@buttonApply/> + </div> + </div> + + <div class="hide-on-med-and-up valign-wrapper"> + <div class="row center-align"> + <div class="col s12"> + <@buttonReset/> + </div> + </div> + <div class="row center-align"> + <div class="col s12"> + <@buttonApply/> + </div> + </div> + </div> +</#macro> + +<#macro buttonReset> + <a href="<@s.url '/filter/reset'/>" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">settings_backup_restore</i>${locale.getString("filter.reset")}</a> +</#macro> + +<#macro buttonApply> + <button class="btn waves-effect waves-light budgetmaster-blue" type="submit" name="buttonSave"> + <i class="fas fa-filter left"></i>${locale.getString("filter.apply")} + </button> +</#macro> -- GitLab