From dac2b582e0cb5831f07db5e78b48981ddec14b2a Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 11 Jul 2021 13:04:57 +0200 Subject: [PATCH] #626 - added button to settings page to reset all dismissed hints --- .../budgetmaster/hints/HintController.java | 14 ++++++++++++++ .../budgetmaster/hints/HintService.java | 9 +++++++++ src/main/resources/languages/hints_de.properties | 4 ++++ src/main/resources/languages/hints_en.properties | 4 ++++ src/main/resources/templates/settings/settings.ftl | 13 +++++++++++++ 5 files changed, 44 insertions(+) diff --git a/src/main/java/de/deadlocker8/budgetmaster/hints/HintController.java b/src/main/java/de/deadlocker8/budgetmaster/hints/HintController.java index 2f5f43160..b6f0863cf 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/hints/HintController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/hints/HintController.java @@ -2,12 +2,17 @@ package de.deadlocker8.budgetmaster.hints; import de.deadlocker8.budgetmaster.controller.BaseController; import de.deadlocker8.budgetmaster.utils.Mappings; +import de.deadlocker8.budgetmaster.utils.WebRequestUtils; +import de.deadlocker8.budgetmaster.utils.notification.Notification; +import de.deadlocker8.budgetmaster.utils.notification.NotificationType; +import de.thecodelabs.utils.util.Localization; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.context.request.WebRequest; @Controller @@ -28,4 +33,13 @@ public class HintController extends BaseController { hintService.dismiss(ID); } + + @RequestMapping("/resetAll") + public String resetAll(WebRequest request) + { + hintService.resetAll(); + + WebRequestUtils.putNotification(request, new Notification(Localization.getString("notification.hints.reset"), NotificationType.SUCCESS)); + return "redirect:/settings"; + } } \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java b/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java index 386090179..66ea76340 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java @@ -36,6 +36,15 @@ public class HintService implements Resettable hint.setDismissed(true); } + @Transactional + public void resetAll() + { + for(Hint hint : hintRepository.findAll()) + { + hint.setDismissed(false); + } + } + @Override public void deleteAll() { diff --git a/src/main/resources/languages/hints_de.properties b/src/main/resources/languages/hints_de.properties index 773909e72..809066bbd 100644 --- a/src/main/resources/languages/hints_de.properties +++ b/src/main/resources/languages/hints_de.properties @@ -1 +1,5 @@ +headline.hints=Tipps +button.hints.reset=Alle Tipps zurücksetzen +notification.hints.reset=Alle Tipps zurückgesetzt + hint.first.use.teaser=Neu im BudgetMaster? Sieh dir die Einführung an! diff --git a/src/main/resources/languages/hints_en.properties b/src/main/resources/languages/hints_en.properties index af053e8f4..807b90116 100644 --- a/src/main/resources/languages/hints_en.properties +++ b/src/main/resources/languages/hints_en.properties @@ -1 +1,5 @@ +headline.hints=Hints +button.hints.reset=Reset all hints +notification.hints.reset=All hints reset + hint.first.use.teaser=New to BudgetMaster? Check out the first use guide! \ No newline at end of file diff --git a/src/main/resources/templates/settings/settings.ftl b/src/main/resources/templates/settings/settings.ftl index 6a54b6d58..b50c4d1b3 100644 --- a/src/main/resources/templates/settings/settings.ftl +++ b/src/main/resources/templates/settings/settings.ftl @@ -225,6 +225,19 @@ </div> </div> + <hr> + <#-- hints --> + <div class="container"> + <div class="section center-align"> + <div class="headline">${locale.getString("headline.hints")}</div> + </div> + </div> + <div class="row"> + <div class="col s12 center-align"> + <@header.buttonLink url='/hints/resetAll' icon='restore' localizationKey='button.hints.reset'/> + </div> + </div> + <hr> <#-- database --> <div class="container"> -- GitLab