Skip to content
Snippets Groups Projects
Commit 3cd7bfa8 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#724 - allow in place editing of transaction name and saving

parent 0e96a561
Branches
Tags
No related merge requests found
...@@ -198,6 +198,43 @@ public class TransactionImportController extends BaseController ...@@ -198,6 +198,43 @@ public class TransactionImportController extends BaseController
final CsvTransaction csvTransaction = transactionOptional.get(); final CsvTransaction csvTransaction = transactionOptional.get();
csvTransaction.setStatus(CsvTransactionStatus.IMPORTED); csvTransaction.setStatus(CsvTransactionStatus.IMPORTED);
final Transaction newTransaction = createTransactionFromCsvTransaction(csvTransaction);
// TODO use csvTransaction.getDate() instead of debug date
transactionService.prepareModelNewOrEdit(model, false, LocalDate.now(), false, newTransaction, accountService.getAllActivatedAccountsAsc());
if(type.equals("transfer"))
{
return ReturnValues.NEW_TRANSACTION_TRANSFER;
}
return ReturnValues.NEW_TRANSACTION_NORMAL;
}
@PostMapping("/{index}/newTransactionInPlace")
public String newTransactionInPlace(WebRequest request,
@PathVariable("index") Integer index,
@ModelAttribute("NewTransactionInPlace") CsvTransaction newCsvTransaction)
{
final Optional<CsvTransaction> transactionOptional = getTransactionByIndex(request, index);
if(transactionOptional.isEmpty())
{
return ReturnValues.REDIRECT_IMPORT;
}
final CsvTransaction csvTransaction = transactionOptional.get();
csvTransaction.setStatus(CsvTransactionStatus.IMPORTED);
// update original CsvTransaction attributes with values from user (from newCsvTransaction)
csvTransaction.setName(newCsvTransaction.getName());
final Transaction newTransaction = createTransactionFromCsvTransaction(csvTransaction);
transactionService.getRepository().save(newTransaction);
return ReturnValues.REDIRECT_IMPORT;
}
private Transaction createTransactionFromCsvTransaction(CsvTransaction csvTransaction)
{
final Transaction newTransaction = new Transaction(); final Transaction newTransaction = new Transaction();
// TODO parse first // TODO parse first
// newTransaction.setDate(csvTransaction.getDate()); // newTransaction.setDate(csvTransaction.getDate());
...@@ -208,14 +245,7 @@ public class TransactionImportController extends BaseController ...@@ -208,14 +245,7 @@ public class TransactionImportController extends BaseController
newTransaction.setAccount(helpers.getCurrentAccountOrDefault()); newTransaction.setAccount(helpers.getCurrentAccountOrDefault());
newTransaction.setCategory(categoryService.findByType(CategoryType.NONE)); newTransaction.setCategory(categoryService.findByType(CategoryType.NONE));
// TODO use csvTransaction.getDate() instead of debug date return newTransaction;
transactionService.prepareModelNewOrEdit(model, false, LocalDate.now(), false, newTransaction, accountService.getAllActivatedAccountsAsc());
if(type.equals("transfer"))
{
return ReturnValues.NEW_TRANSACTION_TRANSFER;
}
return ReturnValues.NEW_TRANSACTION_NORMAL;
} }
private void removeAllAttributes(WebRequest request) private void removeAllAttributes(WebRequest request)
......
...@@ -5,7 +5,7 @@ import java.util.Objects; ...@@ -5,7 +5,7 @@ import java.util.Objects;
public final class CsvTransaction public final class CsvTransaction
{ {
private final String date; private final String date;
private final String name; private String name;
private final String amount; private final String amount;
private CsvTransactionStatus status; private CsvTransactionStatus status;
...@@ -27,6 +27,11 @@ public final class CsvTransaction ...@@ -27,6 +27,11 @@ public final class CsvTransaction
return name; return name;
} }
public void setName(String name)
{
this.name = name;
}
public String getAmount() public String getAmount()
{ {
return amount; return amount;
......
...@@ -206,11 +206,19 @@ ...@@ -206,11 +206,19 @@
<#macro renderCsvRow csvTransaction index> <#macro renderCsvRow csvTransaction index>
<tr> <tr>
<form name="NewTransactionInPlace" method="POST" action="<@s.url '/transactionImport/' + index + '/newTransactionInPlace'/>">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
<td><@statusBanner csvTransaction.getStatus()/></td> <td><@statusBanner csvTransaction.getStatus()/></td>
<td>${csvTransaction.getDate()}</td> <td>${csvTransaction.getDate()}</td>
<td>${csvTransaction.getName()}</td> <td>
<div class="input-field">
<input id="name-${index}" type="text" name="name" required value="${csvTransaction.getName()}">
<label class="input-label" for="name-${index}">${locale.getString("transaction.new.label.name")}</label>
</div>
</td>
<td>${csvTransaction.getAmount()}</td> <td>${csvTransaction.getAmount()}</td>
<td> <td>
<@header.buttonSubmit name='action' icon='save' localizationKey='' classes='text-white'/>
<div class="fixed-action-btn edit-transaction-button"> <div class="fixed-action-btn edit-transaction-button">
<a class="btn-floating btn-flat waves-effect waves-light no-padding text-default edit-transaction-button-link"> <a class="btn-floating btn-flat waves-effect waves-light no-padding text-default edit-transaction-button-link">
<i class="material-icons">edit</i> <i class="material-icons">edit</i>
...@@ -232,6 +240,7 @@ ...@@ -232,6 +240,7 @@
</div> </div>
<@header.buttonFlat url='/transactionImport/' + index + '/skip' icon='block' localizationKey='' classes="no-padding text-default button-request-transaction-import-skip"/> <@header.buttonFlat url='/transactionImport/' + index + '/skip' icon='block' localizationKey='' classes="no-padding text-default button-request-transaction-import-skip"/>
</td> </td>
</form>
</tr> </tr>
</#macro> </#macro>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment