diff --git a/src/main/java/de/deadlocker8/budgetmaster/hints/HintController.java b/src/main/java/de/deadlocker8/budgetmaster/hints/HintController.java index 2f5f431600f02a7f8833600c61f21b70de42e7ed..b6f0863cff2d1e15ef8eaf7e014ddccefe1a85d8 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 386090179a8bc51d310dce1854dd506bd1fc5e3f..66ea76340e3f85aaef65b6923fe16f1afb744d98 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 773909e72b75b6d694a282705335f6c06c3bdf24..809066bbdb5276b5cc11cf0cbdbe0265ee4eb160 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 af053e8f42b974a9fd149ac029caecd3a41fc0c7..807b90116586fa800b48cf616ac475536f093916 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 6a54b6d58b228ec61d59d5f98ed3640dd6158bd4..b50c4d1b3db51f5d7c000f70af9afc7c13259943 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">