176 build - убран поиск в ненужном месте

This commit is contained in:
2026-09-29 18:05:26 +03:00
parent ec4e22a1a7
commit 143a404c18
3 changed files with 15 additions and 14 deletions

13
README_BUILD176_RU.md Normal file
View File

@@ -0,0 +1,13 @@
# Build 176 — убрать лишний поиск в Mapping
Версия: 2026.09.29.13. Установить поверх build 175.
Убрана строка «Обычные значения: название, счёт, игрок, ключ…» под блоком SQL-таблицы, отмеченная на скриншоте. Удалены её обработчик и фильтрация. Обычные значения доступны в группах ниже. Поиск строк самой SQL-таблицы сохранён.
В архиве два изменённых файла приложения и эта инструкция:
- app.py — номер сборки для обновления кеша браузера;
- hockey_data/static/admin-directories.js — изменение Mapping.
Остановите приложение, распакуйте файлы в корень проекта с заменой и сохранением вложенных каталогов. Запустите приложение и обновите страницу через Ctrl+F5.
Настройки, база данных и .env в архив не включены. Изменения build 175 сохранены. Проверены синтаксис JavaScript и существующая браузерная проверка Mapping/RU/EN.

2
app.py
View File

@@ -35,7 +35,7 @@ from khl_site.khl_data_center import APP as khl_site_app, configure_storage, syn
from hockey_data.khl_career import KhlCareerService from hockey_data.khl_career import KhlCareerService
BASE_DIR = Path(__file__).resolve().parent BASE_DIR = Path(__file__).resolve().parent
BUILD_VERSION = "2026.09.29.12" BUILD_VERSION = "2026.09.29.13"
# compatibility: BUILD_VERSION = "2026.09.24.2" # compatibility: BUILD_VERSION = "2026.09.24.2"
# compatibility: BUILD_VERSION = "2026.09.23.8" # compatibility: BUILD_VERSION = "2026.09.23.8"
# compatibility: BUILD_VERSION = "2026.09.23.7" # compatibility: BUILD_VERSION = "2026.09.23.7"

View File

@@ -26,7 +26,6 @@
mappingSelectedInputKey: "", mappingSelectedInputKey: "",
mappingTargetField: "", mappingTargetField: "",
mappingSelectedSourceKey: "", mappingSelectedSourceKey: "",
mappingDataSearch: "",
mappingInputSearch: "", mappingInputSearch: "",
mappingFieldFilter: "text", mappingFieldFilter: "text",
mappingHideLinked: false, mappingHideLinked: false,
@@ -2433,7 +2432,6 @@
const catalog = mappingDataCatalog(); const catalog = mappingDataCatalog();
const targetField = (currentInput?.fields || []).find((field) => String(field.name || "") === state.mappingTargetField) || null; const targetField = (currentInput?.fields || []).find((field) => String(field.name || "") === state.mappingTargetField) || null;
const targetKind = targetField ? mappingFieldKind(targetField) : ""; const targetKind = targetField ? mappingFieldKind(targetField) : "";
const query = String(state.mappingDataSearch || "").trim().toLowerCase();
const multiRowCodes = new Set((catalog.tables || []).filter((table) => Number(table.row_count || table.rows?.length || 0) > 1).map((table) => String(table.code || ""))); const multiRowCodes = new Set((catalog.tables || []).filter((table) => Number(table.row_count || table.rows?.length || 0) > 1).map((table) => String(table.code || "")));
const categories = []; const categories = [];
for (const item of catalog.items) { for (const item of catalog.items) {
@@ -2444,15 +2442,13 @@
// Multi-row SQL sources are configured through the table/cell picker below. // Multi-row SQL sources are configured through the table/cell picker below.
if (multiRowCodes.has(String(item.source_code || ""))) continue; if (multiRowCodes.has(String(item.source_code || ""))) continue;
if (!mappingCompatible(item, targetKind)) continue; if (!mappingCompatible(item, targetKind)) continue;
const haystack = `${item.label} ${item.category} ${item.key} ${mappingDisplayValue(item.value, item.kind)}`.toLowerCase();
if (query && !haystack.includes(query)) continue;
let category = categories.find((row) => row.name === item.category); let category = categories.find((row) => row.name === item.category);
if (!category) { category = { name: item.category, items: [] }; categories.push(category); } if (!category) { category = { name: item.category, items: [] }; categories.push(category); }
category.items.push(item); category.items.push(item);
} }
const selectedSource = state.mappingSelectedSourceKey; const selectedSource = state.mappingSelectedSourceKey;
const groups = categories.map((category) => ` const groups = categories.map((category) => `
<details class="hockey-map-data-group" data-map-data-group="${escapeHtml(category.name)}" ${query || state.mappingOpenDataGroups[category.name] ? "open" : ""}> <details class="hockey-map-data-group" data-map-data-group="${escapeHtml(category.name)}" ${state.mappingOpenDataGroups[category.name] ? "open" : ""}>
<summary><span>${escapeHtml(category.name)}</span><b>${category.items.length}</b></summary> <summary><span>${escapeHtml(category.name)}</span><b>${category.items.length}</b></summary>
<div>${category.items.map((item) => ` <div>${category.items.map((item) => `
<button type="button" class="hockey-map-data-item ${selectedSource === item.key ? "is-selected" : ""}" data-map-source="${escapeHtml(item.key)}"> <button type="button" class="hockey-map-data-item ${selectedSource === item.key ? "is-selected" : ""}" data-map-source="${escapeHtml(item.key)}">
@@ -2574,7 +2570,6 @@
${targetHint} ${targetHint}
${quickTableMarkup} ${quickTableMarkup}
${tableMarkup} ${tableMarkup}
<label class="hockey-map-data-search"><span>⌕</span><input data-map-data-search value="${escapeHtml(state.mappingDataSearch)}" placeholder="Обычные значения: название, счёт, игрок, ключ…"></label>
<div class="hockey-map-data-scroll">${groups || `<div class="hockey-directory-empty">Подходящих одиночных данных не найдено.</div>`}</div> <div class="hockey-map-data-scroll">${groups || `<div class="hockey-directory-empty">Подходящих одиночных данных не найдено.</div>`}</div>
</section>`; </section>`;
} }
@@ -3586,13 +3581,6 @@
if (input) { input.focus(); input.setSelectionRange(value.length, value.length); } if (input) { input.focus(); input.setSelectionRange(value.length, value.length); }
}); });
modal.querySelector("[data-map-test-device]")?.addEventListener("change", (event) => { state.mappingTestDeviceId = event.currentTarget.value; }); modal.querySelector("[data-map-test-device]")?.addEventListener("change", (event) => { state.mappingTestDeviceId = event.currentTarget.value; });
modal.querySelector("[data-map-data-search]")?.addEventListener("input", (event) => {
state.mappingDataSearch = event.currentTarget.value;
const value = state.mappingDataSearch;
renderMapping();
const input = ensureModal().querySelector("[data-map-data-search]");
if (input) { input.focus(); input.setSelectionRange(value.length, value.length); }
});
modal.querySelector("[data-map-live-refresh]")?.addEventListener("click", async () => { await loadMappingCatalog(); renderMapping(); }); modal.querySelector("[data-map-live-refresh]")?.addEventListener("click", async () => { await loadMappingCatalog(); renderMapping(); });
const chooseTarget = (fieldName) => { const chooseTarget = (fieldName) => {