From 328a4a1a9cbfd235646aa5273c38ff36380ff9e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D0=B8=D0=B9=20=D0=A7=D0=B5=D1=80=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE?= Date: Tue, 15 Sep 2026 16:30:46 +0300 Subject: [PATCH] =?UTF-8?q?BUILD140=20=E2=80=94=20=D0=B2=D1=81=D0=B5=20SQL?= =?UTF-8?q?-=D0=BA=D0=BE=D0=BB=D0=BE=D0=BD=D0=BA=D0=B8=20=D0=B2=20=D1=80?= =?UTF-8?q?=D1=83=D1=87=D0=BD=D0=BE=D0=BC=20Mapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 2 +- hockey_data/static/admin-directories.css | 6 ++++++ hockey_data/static/admin-directories.js | 24 +++++++++++++++++++++--- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/app.py b/app.py index e02c1e9..2877a80 100644 --- a/app.py +++ b/app.py @@ -29,7 +29,7 @@ from ui_builder import install_ui_builder from khl_site.khl_data_center import APP as khl_site_app BASE_DIR = Path(__file__).resolve().parent -BUILD_VERSION = "2026.09.15.7" +BUILD_VERSION = "2026.09.15.8" # compatibility: BUILD_VERSION = "2026.08.26.1" # compatibility: BUILD_VERSION = "2026.08.25.1" # compatibility: BUILD_VERSION = "2026.08.24.15" diff --git a/hockey_data/static/admin-directories.css b/hockey_data/static/admin-directories.css index e7fa299..360845e 100644 --- a/hockey_data/static/admin-directories.css +++ b/hockey_data/static/admin-directories.css @@ -2406,3 +2406,9 @@ body.hockey-admin-settings-open { overflow: hidden; } .hockey-map-rule-colour-branch{display:grid;gap:6px;min-width:0;padding:7px;border:1px solid #263b50;border-radius:8px;background:#0b151f} .hockey-map-rule-colour-branch label{min-width:0} .hockey-map-rule-colour-branch select,.hockey-map-rule-colour-branch input{min-width:0} + +/* BUILD140: manual SQL picker shows every physical result column. */ +.hockey-map-table-grid{overflow-x:auto!important;overflow-y:auto!important;scrollbar-gutter:stable both-edges} +.hockey-map-table-grid table{width:max-content!important;min-width:100%} +.hockey-map-table-grid thead th{min-width:118px;white-space:nowrap} +.hockey-map-table-picker>summary>b{max-width:none;white-space:nowrap} diff --git a/hockey_data/static/admin-directories.js b/hockey_data/static/admin-directories.js index 04a38a4..9009952 100644 --- a/hockey_data/static/admin-directories.js +++ b/hockey_data/static/admin-directories.js @@ -1718,6 +1718,23 @@ return mappingDataCatalog().items.find((item) => item.key === key) || null; } + // BUILD140: manual Mapping must expose every physical SQL result column. + // The catalog also contains virtual AUTO language columns (foo from foo_RUS/foo_ENG); + // keep those as optional extras, but never hide the original SQL columns. + function mappingManualTableColumns(table) { + const raw = Array.isArray(table?.raw_columns) ? table.raw_columns : []; + const visible = Array.isArray(table?.columns) ? table.columns : []; + const result = []; + const seen = new Set(); + for (const column of [...raw, ...visible]) { + const key = String(column?.key || ""); + if (!key || seen.has(key)) continue; + seen.add(key); + result.push(column); + } + return result; + } + function mappingCurrentInput(profile) { const inputs = mappingInventoryInputs(profile); if (!inputs.length) return null; @@ -2311,7 +2328,8 @@ const selectedTableRows = selectedTable?.rows || []; let selectedTableRow = selectedTableRows.find((row) => Number(row.index || 0) === Number(state.mappingSelectedTableRow || 0)) || selectedTableRows[0] || null; if (selectedTableRow) state.mappingSelectedTableRow = Number(selectedTableRow.index || 1); - const quickCompatibleColumns = (selectedTable?.columns || []).filter((column) => { + const manualColumns = mappingManualTableColumns(selectedTable); + const quickCompatibleColumns = manualColumns.filter((column) => { if (!selectedTableRow) return false; const key = `${selectedTable.code}.row.${selectedTableRow.index}.${column.key}`; const source = mappingSourceByKey(key); @@ -2351,7 +2369,7 @@ return `${row.index || ""} ${row.label || ""} ${values}`.toLowerCase().includes(rowSearch); }); const visibleRows = filteredRows.slice(0, 120); - const columns = selectedTable?.columns || []; + const columns = manualColumns; const tableGridHeight = Math.min(430, Math.max(230, visibleRows.length * 44 + 42)); const cells = visibleRows.map((row) => ` @@ -2365,7 +2383,7 @@ `).join(""); tableMarkup = `
-
ТАБЛИЦА SQLВыберите конкретную строку и столбец
${Number(selectedTable?.row_count || 0)} строк
+
ТАБЛИЦА SQLВыберите конкретную строку и столбец
${Number(selectedTable?.row_count || 0)} строк · ${columns.length} колонок