Config : sécurisation comptes par défaut

This commit is contained in:
Jean-Christophe Engel 2026-06-24 11:50:38 +02:00
parent 98f4fa5330
commit 4ecd144593
2 changed files with 54 additions and 25 deletions

View file

@ -46,6 +46,7 @@
{{/form}} {{/form}}
{{:admin_header title="Configuration" custom_css="./style.css" current="module_amortization"}} {{:admin_header title="Configuration" custom_css="./style.css" current="module_amortization"}}
{{:include file="_nav.html" current="config"}} {{:include file="_nav.html" current="config"}}
{{if $_GET.ok == 1}} {{if $_GET.ok == 1}}
<p class="block confirm">Configuration enregistrée.</p> <p class="block confirm">Configuration enregistrée.</p>
@ -154,13 +155,14 @@
}} }}
</td> </td>
<td class="actions"> <td class="actions">
{{:button {{if ! $code|in:$config_defaut.prefixes}}
label="Enlever" {{:button
title="Enlever une ligne" label="Enlever"
shape="minus" shape="minus"
min="1" min="1"
name="remove_line" name="remove_line"
}} }}
{{/if}}
</td> </td>
</tr> </tr>
{{/foreach}} {{/foreach}}
@ -187,6 +189,7 @@
</thead> </thead>
<tbody> <tbody>
{{:assign unfinished_lines=$config_defaut.unfinished|map:implode:"-"|implode:","}}
{{#foreach from=$unfinished_accounts key=code item=elem}} {{#foreach from=$unfinished_accounts key=code item=elem}}
<tr> <tr>
<td> <td>
@ -200,13 +203,15 @@
}} }}
</td> </td>
<td class="actions"> <td class="actions">
{{:button {{if $unfinished_lines|strpos:$code === false}}
label="Enlever" {{:button
title="Enlever une ligne" label="Enlever"
shape="minus" title="Enlever une ligne"
min="1" shape="minus"
name="remove_line" min="1"
}} name="remove_line"
}}
{{/if}}
</td> </td>
</tr> </tr>
{{/foreach}} {{/foreach}}

View file

@ -145,19 +145,21 @@ function setSelectorYear(button_names, f_years_selector)
// Associer au bouton « Enlever » de chaque ligne l'action de suppression de la ligne // Associer au bouton « Enlever » de chaque ligne l'action de suppression de la ligne
function initLine(row) { function initLine(row) {
var removeBtn = row.querySelector('button[name="remove_line"]'); let removeBtn = row.querySelector('button[name="remove_line"]');
removeBtn.onclick = () => { if (removeBtn != null) {
let count = removeBtn.closest("table").querySelectorAll('tbody tr').length; removeBtn.onclick = () => {
var min = removeBtn.getAttribute('min'); let count = removeBtn.closest("table").querySelectorAll('tbody tr').length;
var min = removeBtn.getAttribute('min');
if (count <= min) { if (count <= min) {
alert("Il n'est pas possible d'avoir moins de " + min + " ligne(s)."); alert("Il n'est pas possible d'avoir moins de " + min + " ligne(s).");
return false; return false;
} }
row.parentNode.removeChild(row); row.parentNode.removeChild(row);
return true; return true;
}; };
}
} }
// Associer au bouton « Ajouter » de chaque table l'action d'ajouter une ligne // Associer au bouton « Ajouter » de chaque table l'action d'ajouter une ligne
@ -185,6 +187,28 @@ function addLine(button, codes) {
let lib = newNode.querySelector('.input-list span.label'); let lib = newNode.querySelector('.input-list span.label');
lib.innerText = ''; lib.innerText = '';
// si besoin, ajouter le bouton de suppression
let action_cell = newNode.querySelector('td.actions');
let removeBtn = newNode.querySelector('button[name="remove_line"]');
if (removeBtn == null) {
const attributs = {
"title" : "Enlever une ligne",
"min": "1",
"name": "remove_line",
"data-icon": "",
"type": "button",
"class": "icn-btn",
"value": "1",
"aria-label": "Enlever une ligne"
};
let new_button = document.createElement("button");
new_button.appendChild(document.createTextNode("Enlever"));
for (let attr in attributs) {
new_button.setAttribute(attr, attributs[attr]);
}
action_cell.appendChild(new_button);
}
// ajouter la nouvelle ligne // ajouter la nouvelle ligne
line.parentNode.appendChild(newNode); line.parentNode.appendChild(newNode);
initLine(newNode); initLine(newNode);