diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java index 0a30210fe9c767cd40a60d91003cc4032a227bb6..b2e010a95a97925e69c5d6df04262536d168ff35 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 78544858d0cf2c12b2a43c9ed319c2d1159938fc..8b72c1465d8b7ba9381f9b19e3993df198e4e198 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 38f105e087e038b6ff71f4219d2f9c1446409a8c..12570d3b5b0275c4027fc97b3f673d8b16f98a43 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 82d19573daf89352fe769a9a9e612c1d849f76e8..fecec8e63cad3311aff3a502da33c9972537845d 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 0f0e19f7826ad320324b69def09593594a264f16..7e719d6c9706c7ddcfc912c0a3d0a1c898c15923 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 0000000000000000000000000000000000000000..ad2378042a9c72cacf2ef4c0bdb9574bfff8042e --- /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>