diff --git a/public/app.js b/public/app.js index f129963..50c0eb8 100644 --- a/public/app.js +++ b/public/app.js @@ -271,18 +271,23 @@ async function selectTable(schema, tableName) { }; }, - // Обработка выделения строк + // ✅ ИСПРАВЛЕНО: Обработка выделения строк rowSelectionChanged: function(data, rows) { - // Добавляем/удаляем строки из глобального хранилища - rows.forEach(row => { + // Синхронизируем selectedRowsData с текущим состоянием ВСЕХ выделенных строк + // data - это массив данных ВСЕХ выбранных строк + + // Сначала удаляем все строки с текущей страницы из selectedRowsData + const currentPageRows = this.getRows(); + currentPageRows.forEach(row => { const rowData = row.getData(); const key = getRowKey(rowData); - - if (row.isSelected()) { - selectedRowsData.set(key, rowData); - } else { - selectedRowsData.delete(key); - } + selectedRowsData.delete(key); + }); + + // Теперь добавляем все выделенные строки обратно + data.forEach(rowData => { + const key = getRowKey(rowData); + selectedRowsData.set(key, rowData); }); updateSelectionCounter(); @@ -341,14 +346,6 @@ async function selectTable(schema, tableName) { document.addEventListener('keydown', enterHandler); } -// ✅ ВЫДЕЛИТЬ ВСЕ НА ТЕКУЩЕЙ СТРАНИЦЕ -document.getElementById('btnSelectPage').addEventListener('click', () => { - if (!table) return; - - const rows = table.getRows(); - rows.forEach(row => row.select()); -}); - // ✅ ВЫДЕЛИТЬ ВСЕ (НА ВСЕХ СТРАНИЦАХ) document.getElementById('btnSelectAll').addEventListener('click', async () => { if (!currentSchema || !currentTable || !table) { diff --git a/public/index.html b/public/index.html index b158fc9..752d6c8 100644 --- a/public/index.html +++ b/public/index.html @@ -178,7 +178,6 @@
-