From fcb103068e5a68369506564623348c6088bdb95e Mon Sep 17 00:00:00 2001 From: sparkyx Date: Mon, 14 Jun 2021 15:11:59 +0200 Subject: [PATCH] =?UTF-8?q?Bug=20#0002011:=20Encodage=20op=C3=A9ration=20?= =?UTF-8?q?=E2=80=93=20Verrouillage=20nombre=20de=20lignes=20si=20non=20vi?= =?UTF-8?q?des?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/js/acc_ledger.js | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/html/js/acc_ledger.js b/html/js/acc_ledger.js index 42d5f9ca5..de5077523 100644 --- a/html/js/acc_ledger.js +++ b/html/js/acc_ledger.js @@ -160,9 +160,12 @@ function update_row(ctl) { try { + var row_to_keep=3; /* Number of row to keep (head and foot)*/ + if ( ctl === 'quick_item' ) { row_to_keep=2;} /* for ODS , only 2 rows to keep */ var jrn = g('p_jrn').value; var dossier = g('gDossier').value; var qs = encodeURI('gDossier=' + dossier + '&op=minrow&j=' + jrn + '&ctl=' + ctl); + var current_row = parseFloat($('nb_item').value); var action = new Ajax.Request( "ajax_misc.php", { @@ -174,7 +177,7 @@ function update_row(ctl) try { var answer = request.responseText.evalJSON(true); var row = parseFloat(answer.row); - var current_row = parseFloat($('nb_item').value); + var table_to_update=$(ctl); if (current_row > row) { // Too many row, we always must keep 2 rows for the sum @@ -182,10 +185,35 @@ function update_row(ctl) var idx = $('nb_item').value; for (var i = 0; i < delta; i++) { var pos_row=table_to_update.rows.length; - table_to_update.deleteRow(pos_row-3); - idx--; + var cell0 = table_to_update.rows[pos_row-row_to_keep].cells[0]; + var cell0Element=cell0.childNodes; + var canDelete=true; + /** + * prevent truncating + */ + cell0Element.forEach(function (x) { + if (canDelete && x.nodeName=='INPUT' && x.type==="text" && x.value) + { + canDelete=false; + }} + ); + /* + * prevent truncating + * For ODS we also need to check the second column + * */ + if ( canDelete && ctl === 'quick_item') { + var cell1 = table_to_update.rows[pos_row-row_to_keep].cells[1]; + var cell1Element=cell1.childNodes; + cell1Element.forEach(function (x) { + if (canDelete && x.nodeName=='INPUT' && x.type==="text" && x.value) + { + canDelete=false; + }}); + } + if ( canDelete ) { table_to_update.deleteRow(pos_row-row_to_keep);idx--;} + } - $('nb_item').value = row; + $('nb_item').value = table_to_update.rows.length-row_to_keep; } if (current_row < row) { // We need to add rows @@ -203,7 +231,7 @@ function update_row(ctl) } } } catch (e) { - alert_box(e.message); + alert_box("update_row:01"+e.message); } } }