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) // Единая точка входа для пингов (кеш общий с Easy Switch)
const { pingMap, requestPings } = usePing(); const { pingMap, requestPings } = usePing();
// Получить metadata сервера из inventory по имени (dns/hostName/ip) // Получить metadata сервера из inventory по имени (dns/hostName/ip или короткое имя типа "ihor")
const getInventoryMetaForServer = (serverName) => { const getInventoryMetaForServer = (serverName) => {
if (!serverName) return null; if (!serverName) return null;
return inventoryServers.find((srv) => const name = String(serverName).trim();
String(srv.dns || '').trim() === serverName || return inventoryServers.find((srv) => {
String(srv.hostName || '').trim() === serverName || const dns = String(srv.dns || '').trim();
String(srv.ip || '').trim() === serverName 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 // Получить routerId для MikroTik (id/dns/ip), как на странице Easy Switch
const getRouterIdForServer = (server) => { const getRouterIdForServer = (server) => {
if (!server) return null; 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; if (!meta) return null;
return meta.id || meta.dns || meta.ip || null; return meta.id || meta.dns || meta.ip || null;
}; };
@@ -808,8 +814,8 @@ function FilterManager() {
const selectedServerGateways = (() => { const selectedServerGateways = (() => {
if (!selectedServer) return []; if (!selectedServer) return [];
// Ищем соответствующий сервер в inventoryServers по имени // Ищем соответствующий сервер в inventory (по полному или короткому имени)
const matchedServer = getInventoryMetaForServer(selectedServer.name); const matchedServer = getInventoryMetaForServer(selectedServer.fullName || selectedServer.dns || selectedServer.name) || getInventoryMetaForServer(selectedServer.name);
const serverDns = matchedServer?.dns || matchedServer?.hostName || selectedServer.name || ''; const serverDns = matchedServer?.dns || matchedServer?.hostName || selectedServer.name || '';
const serverId = matchedServer?.id || matchedServer?.ip || selectedServer.id || selectedServer.name || ''; const serverId = matchedServer?.id || matchedServer?.ip || selectedServer.id || selectedServer.name || '';