diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v4.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v4.java index 8d42ca9baaa9bf3947f5b864ef7d788620261e50..2f333ca432cfec42886acc4574bfd9210ea21b3f 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v4.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v4.java @@ -51,7 +51,6 @@ public class DatabaseParser_v4 extends DatabaseParser_v3 { final JsonObject transactionObject = currentTransaction.getAsJsonObject(); - int amount = transactionObject.get("amount").getAsInt(); String name = transactionObject.get("name").getAsString(); String description = transactionObject.get("description").getAsString(); diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index a5489c42beddb8531b7c9c4b380d4d157a160487..9583bdc4271a94290722b57cbf1394adb6e441f3 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java @@ -318,6 +318,7 @@ public class SettingsController extends BaseController final List<ImportResultItem> importResultItems = importService.importDatabase(database, accountMatchList, importTemplates, importCharts); model.addAttribute("importResultItems", importResultItems); + model.addAttribute("errorMessages", importService.getCollectedErrorMessages()); return "settings/importResult"; } diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties index bb74c87f8ad058212e19bbca3e0b8f0fc99cf3ee..1d190da3a0e7a9fc0d2cd9d56b9ac8e256930297 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -129,6 +129,7 @@ info.text.database.delete=Zur Bestätigung gib folgenden Code ein:\t{0} info.title.database.import.dialog=Datenbank importieren info.database.import=Folgende Daten werden importiert info.database.import.result=Import abgeschlossen +info.database.import.result.errors=Aufgetretene Fehler info.database.import.match.accounts=Konten zuordnen info.database.import.source=Buchungen aus info.database.import.destination=importieren in diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index b654fcc145c8ef45f1fe0d18b71e5bbc24b121a5..e98fdc8c7b0c4311cad0611616e6c50562886e44 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -129,6 +129,7 @@ info.text.database.delete=Please enter the following code for verification:\t{0} info.title.database.import.dialog=Import database info.database.import=The following data will be imported info.database.import.result=Import completed +info.database.import.result.errors=Errors during import info.database.import.match.accounts=Assign accounts info.database.import.source=Import transactions from info.database.import.destination=to diff --git a/src/main/resources/static/js/charts.js b/src/main/resources/static/js/charts.js index d2103d41e988fa4aad16f6a9808900cdda0bd888..a832f062a9dbf9dde54e4c13471aab55a3fec446 100644 --- a/src/main/resources/static/js/charts.js +++ b/src/main/resources/static/js/charts.js @@ -4,7 +4,6 @@ let chartPickerEndDate; $(document).ready(function() { - if($("#chart-script").length) { let editor = CodeMirror.fromTextArea(document.getElementById('chart-script'), { diff --git a/src/main/resources/static/js/import.js b/src/main/resources/static/js/import.js index 5fff9ce76dc0c45df2b8f60f283b18a909e660ec..9cdd9e3306f93ddc966f70049031c89cb8d99bb7 100644 --- a/src/main/resources/static/js/import.js +++ b/src/main/resources/static/js/import.js @@ -23,6 +23,8 @@ $(document).ready(function() let modalInstance = M.Modal.getInstance(modalElement); modalInstance.open(); }); + + $('.collapsible').collapsible(); }); function validateForm() diff --git a/src/main/resources/templates/settings/importResult.ftl b/src/main/resources/templates/settings/importResult.ftl index 3e6d1e1bc217d3550ef81c2177401a065d9594d9..586ac4c7618749fb7f34c384206706e3b3c9ff41 100644 --- a/src/main/resources/templates/settings/importResult.ftl +++ b/src/main/resources/templates/settings/importResult.ftl @@ -4,6 +4,7 @@ <@header.globals/> <@header.header "BudgetMaster - ${locale.getString('settings.database.import')}"/> <#import "/spring.ftl" as s> + <@header.style "collapsible"/> </head> <@header.body> <#import "../helpers/navbar.ftl" as navbar> @@ -26,7 +27,7 @@ <div class="container"> <div class="row"> <div class="col s10 offset-s1 m8 offset-m2 l6 offset-l3"> - <table> + <table class="bordered"> <#list importResultItems as item> <tr> <td><i class="material-icons left">${item.getEntityType().getIcon()}</i> @@ -40,6 +41,33 @@ </div> </div> + <#if errorMessages?has_content> + <div class="container"> + <div class="row"> + <div class="col s12"> + <ul class="collapsible"> + <li> + <div class="collapsible-header bold"> + <i class="fas fa-exclamation-triangle text-red"></i> + ${locale.getString("info.database.import.result.errors")} + </div> + <div class="collapsible-body"> + <table class="bordered"> + <#list errorMessages as error> + <tr> + <td><i class="fas fa-exclamation-triangle text-red"></i></td> + <td>${error}</td> + </tr> + </#list> + </table> + </div> + </li> + </ul> + </div> + </div> + </div> + </#if> + <div class="container"> <div class="row"> <div class="col s12 center-align"> diff --git a/src/main/resources/templates/settings/importStepOne.ftl b/src/main/resources/templates/settings/importStepOne.ftl index 6e33b7d882e844582cbe128f5cd771467eac979f..46c03061161c5202fce33f5ba8c3fcda8208d34e 100644 --- a/src/main/resources/templates/settings/importStepOne.ftl +++ b/src/main/resources/templates/settings/importStepOne.ftl @@ -28,8 +28,8 @@ <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> <div class="row"> - <div class="col s10 offset-s1 m8 offset-m2 l6 offset-l3"> - <table> + <div class="col s12 m10 offset-m1 l10 offset-l1 xl8 offset-xl2"> + <table class="bordered"> <#list database.getNumberOfEntitiesByType() as entityType, numberOfItems> <tr> <td>