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

#338 - allow selection of "no account"

parent 063118f3
No related branches found
No related tags found
No related merge requests found
...@@ -122,7 +122,7 @@ public class TemplateController extends BaseController ...@@ -122,7 +122,7 @@ public class TemplateController extends BaseController
} }
final Template template = templateOptional.get(); final Template template = templateOptional.get();
templateService.prepareTemplateForNewTransaction(template); templateService.prepareTemplateForNewTransaction(template, true);
boolean isPayment = true; boolean isPayment = true;
if(template.getAmount() != null) if(template.getAmount() != null)
...@@ -144,7 +144,7 @@ public class TemplateController extends BaseController ...@@ -144,7 +144,7 @@ public class TemplateController extends BaseController
public String newTemplate(Model model) public String newTemplate(Model model)
{ {
final Template emptyTemplate = new Template(); final Template emptyTemplate = new Template();
templateService.prepareTemplateForNewTransaction(emptyTemplate); templateService.prepareTemplateForNewTransaction(emptyTemplate, false);
templateService.prepareModelNewOrEdit(model, false, emptyTemplate, true, accountService.getAllAccountsAsc()); templateService.prepareModelNewOrEdit(model, false, emptyTemplate, true, accountService.getAllAccountsAsc());
return "templates/newTemplate"; return "templates/newTemplate";
} }
...@@ -152,7 +152,8 @@ public class TemplateController extends BaseController ...@@ -152,7 +152,8 @@ public class TemplateController extends BaseController
@PostMapping(value = "/templates/newTemplate") @PostMapping(value = "/templates/newTemplate")
public String post(Model model, public String post(Model model,
@ModelAttribute("NewTemplate") Template template, BindingResult bindingResult, @ModelAttribute("NewTemplate") Template template, BindingResult bindingResult,
@RequestParam(value = "isPayment", required = false) boolean isPayment) @RequestParam(value = "isPayment", required = false) boolean isPayment,
@RequestParam(value = "includeAccount", required = false) boolean includeAccount)
{ {
TemplateValidator templateValidator = new TemplateValidator(templateService.getExistingTemplateNames()); TemplateValidator templateValidator = new TemplateValidator(templateService.getExistingTemplateNames());
...@@ -168,6 +169,11 @@ public class TemplateController extends BaseController ...@@ -168,6 +169,11 @@ public class TemplateController extends BaseController
return "templates/newTemplate"; return "templates/newTemplate";
} }
if(!includeAccount)
{
template.setAccount(null);
}
templateService.getRepository().save(template); templateService.getRepository().save(template);
return "redirect:/templates"; return "redirect:/templates";
} }
......
...@@ -75,14 +75,14 @@ public class TemplateService implements Resetable ...@@ -75,14 +75,14 @@ public class TemplateService implements Resetable
getRepository().save(template); getRepository().save(template);
} }
public void prepareTemplateForNewTransaction(Template template) public void prepareTemplateForNewTransaction(Template template, boolean prepareAccount)
{ {
if(template.getCategory() == null) if(template.getCategory() == null)
{ {
template.setCategory(categoryService.getRepository().findByType(CategoryType.NONE)); template.setCategory(categoryService.getRepository().findByType(CategoryType.NONE));
} }
if(template.getAmount() == null) if(prepareAccount && template.getAccount() == null)
{ {
final Account selectedAccount = accountService.getRepository().findByIsSelected(true); final Account selectedAccount = accountService.getRepository().findByIsSelected(true);
template.setAccount(selectedAccount); template.setAccount(selectedAccount);
......
...@@ -34,7 +34,6 @@ $(document).ready(function() ...@@ -34,7 +34,6 @@ $(document).ready(function()
accordion: false accordion: false
}); });
let inputSearchTemplate = document.getElementById('searchTemplate'); let inputSearchTemplate = document.getElementById('searchTemplate');
if(inputSearchTemplate !== undefined) if(inputSearchTemplate !== undefined)
{ {
...@@ -49,6 +48,18 @@ $(document).ready(function() ...@@ -49,6 +48,18 @@ $(document).ready(function()
{ {
document.getElementById('template-name').focus(); document.getElementById('template-name').focus();
} }
if($("#include-account").length)
{
document.getElementById('include-account').addEventListener('change', (event) =>
{
let accountSelect = document.getElementById('transaction-account')
let accountSelectInstance = M.FormSelect.getInstance(accountSelect);
accountSelectInstance.destroy();
accountSelect.disabled = !event.target.checked;
M.FormSelect.init(document.querySelectorAll('#transaction-account'), {});
});
}
}); });
function createAndOpenModal(data) function createAndOpenModal(data)
......
...@@ -51,9 +51,11 @@ ...@@ -51,9 +51,11 @@
<#-- account --> <#-- account -->
<#if template.getAccount()??> <#if template.getAccount()??>
<@newTransactionMacros.account accounts template.getAccount() "transaction-account" "account" locale.getString("transaction.new.label.account")/> <@templateFunctions.templateIncludeAccountCheckbox "include-account" "includeAccount" locale.getString('template.checkbox.include.account') true/>
<@newTransactionMacros.account accounts template.getAccount() "transaction-account" "account" "" false/>
<#else> <#else>
<@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-account" "account" locale.getString("transaction.new.label.account")/> <@templateFunctions.templateIncludeAccountCheckbox "include-account" "includeAccount" locale.getString('template.checkbox.include.account') false/>
<@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-account" "account" "", true/>
</#if> </#if>
<br> <br>
......
...@@ -137,3 +137,14 @@ ...@@ -137,3 +137,14 @@
</div> </div>
</div> </div>
</#macro> </#macro>
<#macro templateIncludeAccountCheckbox id name label checked>
<div class="row">
<div class="input-field col s12 m12 l8 offset-l2">
<label>
<input id="${id}" name="${name}" type="checkbox" <#if checked>checked</#if>>
<span class="columnName-checkbox-label text-color">${label}</span>
</label>
</div>
</div>
</#macro>
\ No newline at end of file
...@@ -180,10 +180,10 @@ ...@@ -180,10 +180,10 @@
</script> </script>
</#macro> </#macro>
<#macro account accounts selectedAccount id name label> <#macro account accounts selectedAccount id name label disabled>
<div class="row"> <div class="row">
<div class="input-field col s12 m12 l8 offset-l2"> <div class="input-field col s12 m12 l8 offset-l2">
<select id="${id}" name="${name}" <@validation.validation "account"/>> <select id="${id}" name="${name}" <@validation.validation "account"/> <#if disabled>disabled</#if>>
<#list accounts as account> <#list accounts as account>
<#if (account.getType().name() != "CUSTOM")> <#if (account.getType().name() != "CUSTOM")>
<#continue> <#continue>
......
...@@ -51,9 +51,9 @@ ...@@ -51,9 +51,9 @@
<#-- account --> <#-- account -->
<#if transaction.getAccount()??> <#if transaction.getAccount()??>
<@newTransactionMacros.account accounts transaction.getAccount() "transaction-account" "account" locale.getString("transaction.new.label.account")/> <@newTransactionMacros.account accounts transaction.getAccount() "transaction-account" "account" locale.getString("transaction.new.label.account") false/>
<#else> <#else>
<@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-account" "account" locale.getString("transaction.new.label.account")/> <@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-account" "account" locale.getString("transaction.new.label.account") false/>
</#if> </#if>
<br> <br>
......
...@@ -51,9 +51,9 @@ ...@@ -51,9 +51,9 @@
<#-- account --> <#-- account -->
<#if transaction.getAccount()??> <#if transaction.getAccount()??>
<@newTransactionMacros.account accounts transaction.getAccount() "transaction-account" "account" locale.getString("transaction.new.label.account")/> <@newTransactionMacros.account accounts transaction.getAccount() "transaction-account" "account" locale.getString("transaction.new.label.account") false/>
<#else> <#else>
<@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-account" "account" locale.getString("transaction.new.label.account")/> <@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-account" "account" locale.getString("transaction.new.label.account") false/>
</#if> </#if>
<#-- repeating options --> <#-- repeating options -->
......
...@@ -49,16 +49,16 @@ ...@@ -49,16 +49,16 @@
<#-- account --> <#-- account -->
<#if transaction.getAccount()??> <#if transaction.getAccount()??>
<@newTransactionMacros.account accounts transaction.getAccount() "transaction-account" "account" locale.getString("transaction.new.label.account")/> <@newTransactionMacros.account accounts transaction.getAccount() "transaction-account" "account" locale.getString("transaction.new.label.account"), false/>
<#else> <#else>
<@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-account" "account" locale.getString("transaction.new.label.account")/> <@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-account" "account" locale.getString("transaction.new.label.account") false/>
</#if> </#if>
<#-- transfer account --> <#-- transfer account -->
<#if transaction.getTransferAccount()??> <#if transaction.getTransferAccount()??>
<@newTransactionMacros.account accounts transaction.getTransferAccount() "transaction-transfer-account" "transferAccount" locale.getString("transaction.new.label.transfer.account")/> <@newTransactionMacros.account accounts transaction.getTransferAccount() "transaction-transfer-account" "transferAccount" locale.getString("transaction.new.label.transfer.account") false/>
<#else> <#else>
<@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-transfer-account" "transferAccount" locale.getString("transaction.new.label.transfer.account")/> <@newTransactionMacros.account accounts helpers.getCurrentAccountOrDefault() "transaction-transfer-account" "transferAccount" locale.getString("transaction.new.label.transfer.account") false/>
</#if> </#if>
<br> <br>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment