причесываем лог

This commit is contained in:
2026-02-28 10:47:19 +03:00
parent 7e43830144
commit daa9f7be3a
5 changed files with 172 additions and 26 deletions

View File

@@ -240,8 +240,10 @@ export const api = {
getEnvironmentsList: () => fetchApi('/environments'),
getLlmStatus: () => fetchApi('/llm/status'),
getEnvironmentDatabases: (id) => fetchApi(`/environments/${id}/databases`),
// Dashboards
getStorageFileBlob: (path) =>
fetchApiBlob(`/storage/file?path=${encodeURIComponent(path)}`),
// Dashboards
getDashboards: (envId, options = {}) => {
const params = new URLSearchParams({ env_id: envId });
if (options.search) params.append('search', options.search);

View File

@@ -169,6 +169,23 @@
return byName?.id || rawEnvIdOrName;
}
function normalizeSupersetBaseUrl(rawUrl) {
const baseUrl = String(rawUrl || "").trim().replace(/\/+$/, "");
if (!baseUrl) return null;
if (baseUrl.endsWith("/api/v1")) {
return baseUrl.slice(0, -"/api/v1".length);
}
return baseUrl;
}
function resolveSupersetDashboardUrl(envId, dashboardId) {
if (!envId || !dashboardId) return null;
const env = environmentOptions.find((item) => item.id === envId);
const baseUrl = normalizeSupersetBaseUrl(env?.url);
if (!baseUrl) return null;
return `${baseUrl}/superset/dashboard/${encodeURIComponent(String(dashboardId))}/`;
}
async function loadActiveTaskDetails() {
const taskId = normalizeTaskId(activeTaskId);
if (!taskId) return;
@@ -295,7 +312,17 @@
);
return;
}
const href = `/dashboards/${encodeURIComponent(String(taskSummary.primaryDashboardId))}?env_id=${encodeURIComponent(String(taskSummary.targetEnvId))}`;
const href = resolveSupersetDashboardUrl(
taskSummary.targetEnvId,
taskSummary.primaryDashboardId,
);
if (!href) {
addToast(
$t.tasks?.summary_link_unavailable || "Deep link unavailable",
"error",
);
return;
}
window.open(href, "_blank", "noopener,noreferrer");
}