75 lines
2.7 KiB
JavaScript
75 lines
2.7 KiB
JavaScript
document.addEventListener('DOMContentLoaded', () => {
|
|
const compteForm = document.getElementById('comptejfg-form');
|
|
const compteIdInput = document.querySelector('input[name="comptejfg_id"]');
|
|
const dateInput = document.getElementById('comptejfg-date_operation');
|
|
const debitInput = document.getElementById('comptejfg-debit');
|
|
const creditInput = document.getElementById('comptejfg-credit');
|
|
const libelleInput = document.getElementById('comptejfg-libelle');
|
|
const feedbackMessage = document.getElementById('comptejfg-form-feedback');
|
|
const createButton = document.querySelector('.create-button');
|
|
const updateButton = document.querySelector('.update-button');
|
|
const cancelEditButton = document.querySelector('.cancel-edit-button');
|
|
const panel = document.querySelector('.comptegf-panel');
|
|
const editButtons = document.querySelectorAll('.edit-comptejfg-button');
|
|
|
|
const setFeedback = (message) => {
|
|
if (!feedbackMessage) {
|
|
return;
|
|
}
|
|
feedbackMessage.textContent = message;
|
|
feedbackMessage.style.display = message ? 'block' : 'none';
|
|
};
|
|
|
|
const resetFormMode = () => {
|
|
if (!compteForm) {
|
|
return;
|
|
}
|
|
|
|
compteForm.reset();
|
|
compteIdInput.value = '';
|
|
createButton.removeAttribute('disabled');
|
|
createButton.hidden = false;
|
|
updateButton.hidden = true;
|
|
cancelEditButton.hidden = true;
|
|
dateInput.removeAttribute('readonly');
|
|
setFeedback('');
|
|
panel.classList.remove('edit-mode');
|
|
};
|
|
|
|
const setEditMode = (row) => {
|
|
const id = row.dataset.id || '';
|
|
const dateOperation = row.dataset.date_operation || '';
|
|
const debit = row.dataset.debit || '0.00';
|
|
const credit = row.dataset.credit || '0.00';
|
|
const libelle = row.dataset.libelle || '';
|
|
|
|
compteIdInput.value = id;
|
|
dateInput.value = dateOperation;
|
|
debitInput.value = debit;
|
|
creditInput.value = credit;
|
|
libelleInput.value = libelle;
|
|
|
|
createButton.setAttribute('disabled', 'disabled');
|
|
createButton.hidden = true;
|
|
updateButton.hidden = false;
|
|
cancelEditButton.hidden = false;
|
|
dateInput.setAttribute('readonly', 'readonly');
|
|
panel.classList.add('edit-mode');
|
|
setFeedback('Mode édition activé. Modifiez puis enregistrez.');
|
|
};
|
|
|
|
editButtons.forEach((button) => {
|
|
button.addEventListener('click', () => {
|
|
const row = button.closest('tr');
|
|
if (!row) {
|
|
return;
|
|
}
|
|
setEditMode(row);
|
|
libelleInput.focus();
|
|
});
|
|
});
|
|
|
|
cancelEditButton.addEventListener('click', resetFormMode);
|
|
resetFormMode();
|
|
});
|