diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java index a86521866788ed98b1e71dd2f34d5cfb4c589612..e4d62d73230c71ca65c21b2562b6f847948f500b 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java @@ -4,11 +4,13 @@ import de.deadlocker8.budgetmaster.accounts.AccountService; import de.deadlocker8.budgetmaster.categories.CategoryService; import de.deadlocker8.budgetmaster.categories.CategoryType; import de.deadlocker8.budgetmaster.controller.BaseController; -import de.deadlocker8.budgetmaster.services.DateFormatStyle; import de.deadlocker8.budgetmaster.services.HelpersService; import de.deadlocker8.budgetmaster.settings.SettingsService; import de.deadlocker8.budgetmaster.transactions.csvimport.*; 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.stereotype.Controller; @@ -53,7 +55,6 @@ public class TransactionImportController extends BaseController public static final String CSV_ROWS = "csvRows"; public static final String CSV_TRANSACTIONS = "csvTransactions"; public static final String ERROR_UPLOAD = "errorUpload"; - public static final String ERROR_UPLOAD_FILE = "errorUploadFile"; public static final String ERRORS_COLUMN_SETTINGS = "errorsColumnSettings"; } @@ -98,7 +99,9 @@ public class TransactionImportController extends BaseController { if(csvImport.file().isEmpty()) { - return ReturnValues.REDIRECT_CANCEL; + removeAllAttributes(request); + WebRequestUtils.putNotification(request, new Notification(Localization.getString("transactions.import.error.upload.empty"), NotificationType.ERROR)); + return ReturnValues.REDIRECT_IMPORT; } if(!csvImport.isValidSeparator()) @@ -132,8 +135,7 @@ public class TransactionImportController extends BaseController { LOGGER.error("CSV upload failed", e); - // TODO: show in html - request.setAttribute(RequestAttributeNames.ERROR_UPLOAD_FILE, e.getMessage(), RequestAttributes.SCOPE_SESSION); + WebRequestUtils.putNotification(request, new Notification(Localization.getString("transactions.import.error.upload", e.getMessage()), NotificationType.ERROR)); } return ReturnValues.REDIRECT_IMPORT; } @@ -294,7 +296,6 @@ public class TransactionImportController extends BaseController request.removeAttribute(RequestAttributeNames.CSV_ROWS, RequestAttributes.SCOPE_SESSION); request.removeAttribute(RequestAttributeNames.CSV_TRANSACTIONS, RequestAttributes.SCOPE_SESSION); request.removeAttribute(RequestAttributeNames.ERROR_UPLOAD, RequestAttributes.SCOPE_SESSION); - request.removeAttribute(RequestAttributeNames.ERROR_UPLOAD_FILE, RequestAttributes.SCOPE_SESSION); request.removeAttribute(RequestAttributeNames.ERRORS_COLUMN_SETTINGS, RequestAttributes.SCOPE_SESSION); } diff --git a/BudgetMasterServer/src/main/resources/languages/base_de.properties b/BudgetMasterServer/src/main/resources/languages/base_de.properties index e95742ea57c553ec5da9a32654ed2c8478a3c33e..64d996e67e42d6316c99e362e0b49bf816f72455 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_de.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_de.properties @@ -170,7 +170,6 @@ info.text.update=Es ist ein Update für BudgetMaster verfügbar<br><br>Installie info.title.backup.reminder=Zeit für ein Backup info.text.backup.reminder=Schon mal über ein Backup nachgedacht?<br>Du solltest deine BudgetMaster Datenbank regelmäßig sichern.<br>Dies geht besonders einfach in den Einstellungen.<br>Du kannst auch ein automatisches Backup konfigurieren.<br><br>(Du wilst diese Erinnerung nicht jeden Monat sehen? Dann deaktiviere die Backuperinnerung in den Einstellungen.) info.button.backup.reminder=Zu den Einstellungen -notification.settings.saved=Einstellungen gespeichert notification.settings.security.saved=Passwort gespeichert notification.settings.security.warning=Passwort entspricht bereits gespeicherten Passwort notification.settings.security.error=Fehler beim Speichern des Passworts @@ -381,6 +380,8 @@ transactions.import.status.pending=ausstehend transactions.import.status.imported=importiert transactions.import.status.skipped=übersprungen transactions.import.actions=Aktionen +transactions.import.error.upload=Fehler beim Hochladen: {0} +transactions.import.error.upload.empty=Ungültige leere Datei transactions.import.error.column=Zugeordnete Spalten in Zeile {0} (Zählung beginnt relativ zu Anzahl übersprungener Zeilen) nicht gefunden: {1} transactions.import.error.parse.amount=Fehler beim Parsen des Betrags in Zeile {0} (Zählung beginnt relativ zu Anzahl übersprungener Zeilen) transactions.import.error.parse.date=Fehler beim Parsen des Datums in Zeile {0} (Zählung beginnt relativ zu Anzahl übersprungener Zeilen)<br>Wert "{1}" kann nicht mit Pattern "{2}" geparst werden. diff --git a/BudgetMasterServer/src/main/resources/languages/base_en.properties b/BudgetMasterServer/src/main/resources/languages/base_en.properties index d1a005c6ae0c54b573b52012ff6fe1d9ac6ae845..56d9d38d2e2d2ebdf6c80a556aeb6b2266d47ceb 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_en.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_en.properties @@ -170,7 +170,6 @@ info.text.update=An update for BudgetMaster is available<br><br>Installed: v{0}< info.title.backup.reminder=Time for a backup info.text.backup.reminder=Have you ever thought about a backup?<br>You should back up your BudgetMaster database regularly.<br>This can be done on the settings page.<br>You can also enable an automatic backup.<br><br>(You don''t want to see this reminder every month? Disable the backup reminder in the settings.) info.button.backup.reminder=To the settings -notification.settings.saved=Settings saved notification.settings.security.saved=Password saved notification.settings.security.warning=Password equals already saved password notification.settings.security.error=Error saving password @@ -380,6 +379,8 @@ transactions.import.status.pending=pending transactions.import.status.imported=imported transactions.import.status.skipped=skipped transactions.import.actions=Actions +transactions.import.error.upload=Upload error: {0} +transactions.import.error.upload.empty=Invalid empty file transactions.import.error.column=Associated columns not found in row {0} (counting starts relative to the number of skipped rows): {1} transactions.import.error.parse.amount=Error parsing the amount in line {0} (counting starts relative to number of skipped lines) transactions.import.error.parse.date=Error parsing the date in line {0} (counting starts relative to number of skipped lines)<br>Value "{1}" could not be parsed with pattern "{2}".