From c2551fea697d611f8848be098157d2efcb14f3ae Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Mon, 1 Mar 2021 20:38:28 +0100 Subject: [PATCH] #583 - show feedback after deleting an account --- .../budgetmaster/accounts/AccountController.java | 13 +++++++++++-- src/main/resources/languages/base_de.properties | 1 + src/main/resources/languages/base_en.properties | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java index c36185022..e1ec54b73 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java @@ -4,12 +4,17 @@ import de.deadlocker8.budgetmaster.controller.BaseController; import de.deadlocker8.budgetmaster.settings.SettingsService; import de.deadlocker8.budgetmaster.utils.Mappings; import de.deadlocker8.budgetmaster.utils.ResourceNotFoundException; +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.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.WebRequest; import javax.servlet.http.HttpServletRequest; import java.util.Optional; @@ -97,17 +102,21 @@ public class AccountController extends BaseController } @GetMapping("/{ID}/delete") - public String deleteAccountAndReferringTransactions(Model model, @PathVariable("ID") Integer ID) + public String deleteAccountAndReferringTransactions(WebRequest request, Model model, @PathVariable("ID") Integer ID) { // at least one account is required (to delete a sole account another one has to be created first) + final Account accountToDelete = accountService.getRepository().getOne(ID); if(accountService.getRepository().findAllByType(AccountType.CUSTOM).size() > 1) { accountService.deleteAccount(ID); + + WebRequestUtils.putNotification(request, new Notification(Localization.getString("notification.account.delete.success", accountToDelete.getName()), NotificationType.SUCCESS)); + return "redirect:/accounts"; } model.addAttribute("accounts", accountService.getAllAccountsAsc()); - model.addAttribute("currentAccount", accountService.getRepository().getOne(ID)); + model.addAttribute("currentAccount", accountToDelete); model.addAttribute("accountNotDeletable", true); model.addAttribute("settings", settingsService.getSettings()); return "accounts/accounts"; diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties index 6006eed2a..09e9ad708 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -105,6 +105,7 @@ notification.category.delete.not.deletable=Die Kategorie mit der ID "{0}" ist ni info.title.account.delete=Konto löschen info.text.account.delete=Möchtest du das Konto "{0}" wirklich unwiderruflich löschen?<br>Hinweis: Diesem Konto sind {1} Buchungen zugeordnet. Beim Löschen des Kontos werden diese ebenfalls gelöscht! info.button.account.delete=Konto und Buchungen löschen +notification.account.delete.success=Das Konto "{0}" wurde erfolgreich gelöscht. info.title.transaction.delete=Buchung löschen info.text.transaction.delete=Möchtest du die Buchung "{0}" wirklich unwiderruflich löschen? diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index f4b555bd8..f1c559a2d 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -105,6 +105,7 @@ notification.category.delete.not.deletable=The category with id "{0}" is undelet info.title.account.delete=Delete Account info.text.account.delete=Do you really want to delete the account "{0}"? This can''t be undone.<br>Note: There are {1} transactions associated with this account. Deleting this account will delete all releated transactions too! info.button.account.delete=Delete Account and Transactions +notification.account.delete.success=Successfully deleted account "{0}". info.title.transaction.delete=Delete Entry info.text.transaction.delete=Do you really want to delete the entry "{0}"? This can''t be undone. -- GitLab