From 9bc9a8a2dcf5acaee6d89c0db8a74837d50ca30f Mon Sep 17 00:00:00 2001 From: solocla Date: Thu, 29 Oct 2026 09:53:25 +0100 Subject: [PATCH] order parts --- public/userarea/partsTable.js | 41 +++++++++++++++-------------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/public/userarea/partsTable.js b/public/userarea/partsTable.js index 53a78a32..5a0e17eb 100644 --- a/public/userarea/partsTable.js +++ b/public/userarea/partsTable.js @@ -601,36 +601,29 @@ $(document).ready(function () { // =================== function getVisiblePartsRecordList() { - // Se i filtri sono attivi, usa la regola selezione/visibili di gridFilter. + // Ordine di riferimento = ordine ATTUALE della griglia. + // window.gridData รจ lo stesso array del renderer (aggiornato anche dal filtro). + const gridOrder = ( + Array.isArray(window.gridData) ? window.gridData : [] + ) + .map((row) => parseInt(row.iddatadb, 10)) + .filter(Boolean); + + // Filtri attivi: gridFilter decide QUALI record (selezionati o visibili), + // ma l'ORDINE resta quello della griglia. if (typeof window.getTargetGridIds === "function") { const target = window.getTargetGridIds(); if (target && target.size > 0) { - return [...target].map((v) => parseInt(v, 10)).filter(Boolean); + const inGrid = gridOrder.filter((id) => target.has(id)); + // Selezionati che stanno su altre pagine del filtro: in coda + const elsewhere = [...target] + .map((v) => parseInt(v, 10)) + .filter((id) => id && !gridOrder.includes(id)); + return inGrid.concat(elsewhere); } } - const listFromModal = $("#partsModal").data("visible-iddatadb-list"); - - if (Array.isArray(listFromModal) && listFromModal.length > 0) { - return listFromModal.map((v) => parseInt(v, 10)).filter(Boolean); - } - - if ( - Array.isArray(window.visibleIddatadbList) && - window.visibleIddatadbList.length > 0 - ) { - return window.visibleIddatadbList - .map((v) => parseInt(v, 10)) - .filter(Boolean); - } - - if (Array.isArray(window.gridData) && window.gridData.length > 0) { - return window.gridData - .map((row) => parseInt(row.iddatadb, 10)) - .filter(Boolean); - } - - return []; + return gridOrder; } function getGridRecordById(iddatadb) {