Added the JavaScript setDeleteButtonShown method to the CurrencySubForm and LineItemSubForm forms, and hides the implementation of the delete buttons from outside. Changed the delete buttons to private.
This commit is contained in:
parent
faee1e61c6
commit
562801692a
@ -159,7 +159,7 @@ class JournalEntryForm {
|
|||||||
*/
|
*/
|
||||||
#resetDeleteCurrencyButtons() {
|
#resetDeleteCurrencyButtons() {
|
||||||
if (this.#currencies.length === 1) {
|
if (this.#currencies.length === 1) {
|
||||||
this.#currencies[0].deleteButton.classList.add("d-none");
|
this.#currencies[0].setDeleteButtonShown(false);
|
||||||
} else {
|
} else {
|
||||||
for (const currency of this.#currencies) {
|
for (const currency of this.#currencies) {
|
||||||
let isAnyLineItemMatched = false;
|
let isAnyLineItemMatched = false;
|
||||||
@ -169,11 +169,7 @@ class JournalEntryForm {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isAnyLineItemMatched) {
|
currency.setDeleteButtonShown(!isAnyLineItemMatched);
|
||||||
currency.deleteButton.classList.add("d-none");
|
|
||||||
} else {
|
|
||||||
currency.deleteButton.classList.remove("d-none");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -397,7 +393,7 @@ class CurrencySubForm {
|
|||||||
* The button to delete the currency
|
* The button to delete the currency
|
||||||
* @type {HTMLButtonElement}
|
* @type {HTMLButtonElement}
|
||||||
*/
|
*/
|
||||||
deleteButton;
|
#deleteButton;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The debit sub-form
|
* The debit sub-form
|
||||||
@ -427,13 +423,13 @@ class CurrencySubForm {
|
|||||||
this.#no = document.getElementById(prefix + "-no");
|
this.#no = document.getElementById(prefix + "-no");
|
||||||
this.#code = document.getElementById(prefix + "-code");
|
this.#code = document.getElementById(prefix + "-code");
|
||||||
this.#codeSelect = document.getElementById(prefix + "-code-select");
|
this.#codeSelect = document.getElementById(prefix + "-code-select");
|
||||||
this.deleteButton = document.getElementById(prefix + "-delete");
|
this.#deleteButton = document.getElementById(prefix + "-delete");
|
||||||
const debitElement = document.getElementById(prefix + "-debit");
|
const debitElement = document.getElementById(prefix + "-debit");
|
||||||
this.#debit = debitElement === null? null: new DebitCreditSubForm(this, debitElement, "debit");
|
this.#debit = debitElement === null? null: new DebitCreditSubForm(this, debitElement, "debit");
|
||||||
const creditElement = document.getElementById(prefix + "-credit");
|
const creditElement = document.getElementById(prefix + "-credit");
|
||||||
this.#credit = creditElement == null? null: new DebitCreditSubForm(this, creditElement, "credit");
|
this.#credit = creditElement == null? null: new DebitCreditSubForm(this, creditElement, "credit");
|
||||||
this.#codeSelect.onchange = () => this.#code.value = this.#codeSelect.value;
|
this.#codeSelect.onchange = () => this.#code.value = this.#codeSelect.value;
|
||||||
this.deleteButton.onclick = () => {
|
this.#deleteButton.onclick = () => {
|
||||||
this.#element.parentElement.removeChild(this.#element);
|
this.#element.parentElement.removeChild(this.#element);
|
||||||
this.form.deleteCurrency(this);
|
this.form.deleteCurrency(this);
|
||||||
};
|
};
|
||||||
@ -466,6 +462,19 @@ class CurrencySubForm {
|
|||||||
return this.#code.value;
|
return this.#code.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether the delete button is shown.
|
||||||
|
*
|
||||||
|
* @param isShown {boolean} true to show, or false otherwise
|
||||||
|
*/
|
||||||
|
setDeleteButtonShown(isShown) {
|
||||||
|
if (isShown) {
|
||||||
|
this.#deleteButton.classList.remove("d-none");
|
||||||
|
} else {
|
||||||
|
this.#deleteButton.classList.add("d-none");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns all the line items in the form.
|
* Returns all the line items in the form.
|
||||||
*
|
*
|
||||||
@ -665,14 +674,10 @@ class DebitCreditSubForm {
|
|||||||
*/
|
*/
|
||||||
#resetDeleteLineItemButtons() {
|
#resetDeleteLineItemButtons() {
|
||||||
if (this.lineItems.length === 1) {
|
if (this.lineItems.length === 1) {
|
||||||
this.lineItems[0].deleteButton.classList.add("d-none");
|
this.lineItems[0].setDeleteButtonShown(false);
|
||||||
} else {
|
} else {
|
||||||
for (const lineItem of this.lineItems) {
|
for (const lineItem of this.lineItems) {
|
||||||
if (lineItem.isMatched) {
|
lineItem.setDeleteButtonShown(!lineItem.isMatched);
|
||||||
lineItem.deleteButton.classList.add("d-none");
|
|
||||||
} else {
|
|
||||||
lineItem.deleteButton.classList.remove("d-none");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -859,7 +864,7 @@ class LineItemSubForm {
|
|||||||
* The button to delete line item
|
* The button to delete line item
|
||||||
* @type {HTMLButtonElement}
|
* @type {HTMLButtonElement}
|
||||||
*/
|
*/
|
||||||
deleteButton;
|
#deleteButton;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs the line item sub-form.
|
* Constructs the line item sub-form.
|
||||||
@ -886,9 +891,9 @@ class LineItemSubForm {
|
|||||||
this.#offsets = document.getElementById(prefix + "-offsets");
|
this.#offsets = document.getElementById(prefix + "-offsets");
|
||||||
this.#amount = document.getElementById(prefix + "-amount");
|
this.#amount = document.getElementById(prefix + "-amount");
|
||||||
this.#amountText = document.getElementById(prefix + "-amount-text");
|
this.#amountText = document.getElementById(prefix + "-amount-text");
|
||||||
this.deleteButton = document.getElementById(prefix + "-delete");
|
this.#deleteButton = document.getElementById(prefix + "-delete");
|
||||||
this.#control.onclick = () => this.debitCreditSubForm.currency.form.lineItemEditor.onEdit(this);
|
this.#control.onclick = () => this.debitCreditSubForm.currency.form.lineItemEditor.onEdit(this);
|
||||||
this.deleteButton.onclick = () => {
|
this.#deleteButton.onclick = () => {
|
||||||
this.#element.parentElement.removeChild(this.#element);
|
this.#element.parentElement.removeChild(this.#element);
|
||||||
this.debitCreditSubForm.deleteLineItem(this);
|
this.debitCreditSubForm.deleteLineItem(this);
|
||||||
};
|
};
|
||||||
@ -993,6 +998,19 @@ class LineItemSubForm {
|
|||||||
return this.#amount.dataset.min === ""? null: new Decimal(this.#amount.dataset.min);
|
return this.#amount.dataset.min === ""? null: new Decimal(this.#amount.dataset.min);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether the delete button is shown.
|
||||||
|
*
|
||||||
|
* @param isShown {boolean} true to show, or false otherwise
|
||||||
|
*/
|
||||||
|
setDeleteButtonShown(isShown) {
|
||||||
|
if (isShown) {
|
||||||
|
this.#deleteButton.classList.remove("d-none");
|
||||||
|
} else {
|
||||||
|
this.#deleteButton.classList.add("d-none");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validates the form.
|
* Validates the form.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user