diff --git a/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryController.java b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryController.java index 8b55a8427637406b24dce45da537e2a0f7c49f1d..d824fbaed3abe90f0addbc4be0dd38e3f8668121 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryController.java @@ -20,12 +20,12 @@ import java.util.stream.Collectors; @Controller public class CategoryController extends BaseController { + private static final String WHITE = "#FFFFFF"; + private final CategoryService categoryService; private final HelpersService helpers; private final SettingsService settingsService; - private final String WHITE = "#FFFFFF"; - @Autowired public CategoryController(CategoryService categoryService, HelpersService helpers, SettingsService settingsService) { @@ -37,7 +37,7 @@ public class CategoryController extends BaseController @GetMapping("/categories") public String categories(Model model) { - model.addAttribute("categories", categoryService.getRepository().findAllByOrderByNameAsc()); + model.addAttribute("categories", categoryService.getAllCategories()); model.addAttribute("settings", settingsService.getSettings()); return "categories/categories"; } @@ -50,7 +50,7 @@ public class CategoryController extends BaseController return "redirect:/categories"; } - List<Category> allCategories = categoryService.getRepository().findAllByOrderByNameAsc(); + List<Category> allCategories = categoryService.getAllCategories(); List<Category> availableCategories = allCategories.stream().filter(category -> !category.getID().equals(ID)).collect(Collectors.toList()); model.addAttribute("categories", allCategories); diff --git a/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java index 38d17302fe78cf63b214c3389199ab2d08894b24..285a6743f39889f00d83c8f0ca714e8a537ffd16 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.categories; import de.deadlocker8.budgetmaster.services.Resetable; +import de.deadlocker8.budgetmaster.settings.SettingsService; import de.deadlocker8.budgetmaster.transactions.Transaction; import de.deadlocker8.budgetmaster.utils.Strings; import de.thecodelabs.utils.util.Localization; @@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Locale; import java.util.Optional; @Service @@ -85,4 +87,23 @@ public class CategoryService implements Resetable LOGGER.debug("Created default category REST"); } } + + public List<Category> getAllCategories() + { + localizeDefaultCategories(); + return categoryRepository.findAllByOrderByNameAsc(); + } + + public void localizeDefaultCategories() + { + LOGGER.debug("Updating localization for default categories"); + + final Category categoryNone = categoryRepository.findByType(CategoryType.NONE); + categoryNone.setName(Localization.getString(Strings.CATEGORY_NONE)); + categoryRepository.save(categoryNone); + + final Category categoryRest = categoryRepository.findByType(CategoryType.REST); + categoryRest.setName(Localization.getString(Strings.CATEGORY_REST)); + categoryRepository.save(categoryRest); + } } diff --git a/src/main/java/de/deadlocker8/budgetmaster/filter/FilterHelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/filter/FilterHelpersService.java index ac8f7be74f621dd65a405db477ee08478c59a313..3854ff383517b3d3ccde2bd33e3a1f5e748fa876 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/filter/FilterHelpersService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/filter/FilterHelpersService.java @@ -60,7 +60,7 @@ public class FilterHelpersService public List<FilterObject> getFilterCategories() { - List<Category> categories = categoryService.getRepository().findAllByOrderByNameAsc(); + List<Category> categories = categoryService.getAllCategories(); List<FilterObject> filterCategories = new ArrayList<>(); for(Category category : categories) { diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index f197d07618f6ed0e597b220271f24fec604b2551..b66606749bb8f06237fed2faafed42cd9543fb7b 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java @@ -147,6 +147,7 @@ public class SettingsController extends BaseController settingsService.updateSettings(settings); Localization.load(); + categoryService.localizeDefaultCategories(); return "redirect:/settings"; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java index db87445597d00b3cbac58b00b306b1f4bdb7c88a..a71eb3239811a55afff36846732a5c86d286383f 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java @@ -92,7 +92,7 @@ public class TemplateService implements Resetable public void prepareModelNewOrEdit(Model model, boolean isEdit, TransactionBase item, boolean isPayment, List<Account> accounts) { model.addAttribute("isEdit", isEdit); - model.addAttribute("categories", categoryService.getRepository().findAllByOrderByNameAsc()); + model.addAttribute("categories", categoryService.getAllCategories()); model.addAttribute("accounts", accounts); model.addAttribute("template", item); model.addAttribute("settings", settingsService.getSettings()); diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java index f412875b9ccf8a80136a328d3f273ce6eb3c2e8e..2b97947522f656a71d0f72664d3ff2b5645b7ebb 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java @@ -5,6 +5,7 @@ import com.google.gson.GsonBuilder; import de.deadlocker8.budgetmaster.accounts.Account; import de.deadlocker8.budgetmaster.accounts.AccountType; import de.deadlocker8.budgetmaster.categories.CategoryRepository; +import de.deadlocker8.budgetmaster.categories.CategoryService; import de.deadlocker8.budgetmaster.categories.CategoryType; import de.deadlocker8.budgetmaster.filter.FilterConfiguration; import de.deadlocker8.budgetmaster.repeating.RepeatingOptionRepository; @@ -42,16 +43,16 @@ public class TransactionService implements Resetable private TransactionRepository transactionRepository; private RepeatingOptionRepository repeatingOptionRepository; - private CategoryRepository categoryRepository; + private CategoryService categoryService; private TagService tagService; private SettingsService settingsService; @Autowired - public TransactionService(TransactionRepository transactionRepository, RepeatingOptionRepository repeatingOptionRepository, CategoryRepository categoryRepository, TagService tagService, SettingsService settingsService) + public TransactionService(TransactionRepository transactionRepository, RepeatingOptionRepository repeatingOptionRepository, CategoryService categoryService, TagService tagService, SettingsService settingsService) { this.transactionRepository = transactionRepository; this.repeatingOptionRepository = repeatingOptionRepository; - this.categoryRepository = categoryRepository; + this.categoryService = categoryService; this.tagService = tagService; this.settingsService = settingsService; } @@ -82,7 +83,7 @@ public class TransactionService implements Resetable List<Transaction> transactions = getTransactionsForMonthAndYearWithoutRest(account, month, year, filterConfiguration); Transaction transactionRest = new Transaction(); - transactionRest.setCategory(categoryRepository.findByType(CategoryType.REST)); + transactionRest.setCategory(categoryService.getRepository().findByType(CategoryType.REST)); transactionRest.setName(Localization.getString(Strings.CATEGORY_REST)); transactionRest.setDate(DateTime.now().withYear(year).withMonthOfYear(month).withDayOfMonth(1)); transactionRest.setAmount(getRest(account, startDate)); @@ -282,7 +283,7 @@ public class TransactionService implements Resetable { model.addAttribute("isEdit", isEdit); model.addAttribute("currentDate", date); - model.addAttribute("categories", categoryRepository.findAllByOrderByNameAsc()); + model.addAttribute("categories", categoryService.getAllCategories()); model.addAttribute("accounts", accounts); model.addAttribute("transaction", item); model.addAttribute("settings", settingsService.getSettings());