feat(FilterManager): enhance server metadata retrieval to support short names for improved matching
Publish Fast Tabler Docker image / build-and-push-fast (push) Failing after 3m24s

This commit is contained in:
2026-02-12 12:09:58 +07:00
parent c792645a55
commit 219ca7450c
+15 -9
View File
@@ -786,20 +786,26 @@ function FilterManager() {
// Единая точка входа для пингов (кеш общий с Easy Switch)
const { pingMap, requestPings } = usePing();
// Получить metadata сервера из inventory по имени (dns/hostName/ip)
// Получить metadata сервера из inventory по имени (dns/hostName/ip или короткое имя типа "ihor")
const getInventoryMetaForServer = (serverName) => {
if (!serverName) return null;
return inventoryServers.find((srv) =>
String(srv.dns || '').trim() === serverName ||
String(srv.hostName || '').trim() === serverName ||
String(srv.ip || '').trim() === serverName
);
const name = String(serverName).trim();
return inventoryServers.find((srv) => {
const dns = String(srv.dns || '').trim();
const hostName = String(srv.hostName || '').trim();
const ip = String(srv.ip || '').trim();
if (dns === name || hostName === name || ip === name) return true;
// На странице Фильтров selectedServer.name — короткое имя (первая часть dns), например "ihor"
if (dns && dns.split('.')[0] === name) return true;
return false;
});
};
// Получить routerId для MikroTik (id/dns/ip), как на странице Easy Switch
const getRouterIdForServer = (server) => {
if (!server) return null;
const meta = getInventoryMetaForServer(server.name);
// Сначала ищем по полному имени (fullName/dns), затем по короткому (name)
const meta = getInventoryMetaForServer(server.fullName || server.dns || server.name) || getInventoryMetaForServer(server.name);
if (!meta) return null;
return meta.id || meta.dns || meta.ip || null;
};
@@ -808,8 +814,8 @@ function FilterManager() {
const selectedServerGateways = (() => {
if (!selectedServer) return [];
// Ищем соответствующий сервер в inventoryServers по имени
const matchedServer = getInventoryMetaForServer(selectedServer.name);
// Ищем соответствующий сервер в inventory (по полному или короткому имени)
const matchedServer = getInventoryMetaForServer(selectedServer.fullName || selectedServer.dns || selectedServer.name) || getInventoryMetaForServer(selectedServer.name);
const serverDns = matchedServer?.dns || matchedServer?.hostName || selectedServer.name || '';
const serverId = matchedServer?.id || matchedServer?.ip || selectedServer.id || selectedServer.name || '';