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 c5dc437c4ced88732bd9f5ee0d2d671d0d811e94..38839cdbdd93e5cb325fa330e7be0c040237a673 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java @@ -9,17 +9,13 @@ 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.GetMapping; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.WebRequest; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; -import java.util.Random; @Controller @RequestMapping(Mappings.TRANSACTION_IMPORT) @@ -159,6 +155,20 @@ public class TransactionImportController extends BaseController return ReturnValues.REDIRECT_IMPORT; } + @GetMapping("/{index}/skip") + public String skip(WebRequest request, @PathVariable("index") Integer index) + { + final Object attribute = request.getAttribute(RequestAttributeNames.CSV_TRANSACTIONS, RequestAttributes.SCOPE_SESSION); + if(attribute == null) + { + return ReturnValues.REDIRECT_CANCEL; + } + + final List<CsvTransaction> csvTransactions = (List<CsvTransaction>) attribute; + csvTransactions.get(index).setStatus(CsvTransactionStatus.SKIPPED); + return ReturnValues.REDIRECT_IMPORT; + } + private void removeAllAttributes(WebRequest request) { request.removeAttribute(RequestAttributeNames.CSV_IMPORT, RequestAttributes.SCOPE_SESSION); diff --git a/BudgetMasterServer/src/main/resources/languages/base_de.properties b/BudgetMasterServer/src/main/resources/languages/base_de.properties index 899eafbe54e981447071e46b117ab44ba28d295f..1d8969f497205d713b5df451a51b2f65435ecde8 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_de.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_de.properties @@ -379,6 +379,7 @@ transactions.import.status=Status transactions.import.status.pending=ausstehend transactions.import.status.imported=importiert transactions.import.status.skipped=übersprungen +transactions.import.actions=Aktionen repeating.button.add=Wiederholung hinzufügen repeating.button.remove=Wiederholung entfernen diff --git a/BudgetMasterServer/src/main/resources/languages/base_en.properties b/BudgetMasterServer/src/main/resources/languages/base_en.properties index dcc9acccbde2ed00c3a46461c4a17b21ca1ea160..5df53283dd35cd3b83b6b855725f75c32850c7ba 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_en.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_en.properties @@ -378,6 +378,7 @@ transactions.import.status=Status transactions.import.status.pending=pending transactions.import.status.imported=imported transactions.import.status.skipped=skipped +transactions.import.actions=Actions repeating.button.add=Add repetition repeating.button.remove=Remove repetition diff --git a/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl b/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl index bae4fa80b4431eee8eda7c5f694325d5e851919d..e8a9f56dc190c63e0d489a678078a308e461b377 100644 --- a/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl +++ b/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl @@ -192,6 +192,7 @@ <td class="bold">${locale.getString("transaction.new.label.date")}</td> <td class="bold">${locale.getString("transaction.new.label.name")}</td> <td class="bold">${locale.getString("transaction.new.label.amount")}</td> + <td class="bold">${locale.getString("transactions.import.actions")}</td> </tr> <#list csvTransactions as csvTransaction> @@ -200,6 +201,9 @@ <td>${csvTransaction.getDate()}</td> <td>${csvTransaction.getName()}</td> <td>${csvTransaction.getAmount()}</td> + <td> + <@header.buttonFlat url='/transactionImport/' + csvTransaction?index + '/skip' icon='block' localizationKey='' classes="no-padding text-default button-request-transaction-import-skip"/> + </td> </tr> </#list> </table>