feat(datasets): add HelpTooltip ⓘ popups in mapping/docs modals
Использует существующий компонент /ui/HelpTooltip.svelte (ⓘ иконка со стилизованным попапом при наведении) — тот же паттерн, что на Maintenance и Settings страницах. Добавлен HelpTooltip рядом с лейблами: - Модалка маппинга: Тип источника, База данных, SQL-запрос, XLSX-файл - Модалка генерации docs: LLM-провайдер Native title сохранён как fallback на самих элементах форм.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
import { fromStore } from "svelte/store";
|
||||
import { t } from "$lib/i18n";
|
||||
import { api } from "$lib/api.js";
|
||||
import HelpTooltip from "$lib/ui/HelpTooltip.svelte";
|
||||
import { debounce } from "$lib/utils/debounce.js";
|
||||
import {
|
||||
environmentContextStore,
|
||||
@@ -351,6 +352,11 @@
|
||||
<div class="bg-white rounded-lg shadow-xl p-6 max-w-md w-full" style="max-height: 90vh; overflow-y: auto;" onclick={(e) => e.stopPropagation()}>
|
||||
<h3 class="text-lg font-semibold mb-4">{$t.datasets?.bulk_map_columns}</h3>
|
||||
<p class="text-sm text-gray-600 mb-3">{$t.datasets?.selected_count?.replace('{count}', String(selectedIds.size))}</p>
|
||||
|
||||
<span class="flex items-center gap-1.5 mb-1.5">
|
||||
<span class="text-sm font-medium text-gray-700">{$t.datasets?.source_type ?? 'Тип источника'}</span>
|
||||
<HelpTooltip text={$t.datasets?.source_type_tip || ""} />
|
||||
</span>
|
||||
<select
|
||||
class="w-full border rounded px-2 py-1.5 mb-3"
|
||||
title={$t.datasets?.source_type_tip}
|
||||
@@ -361,7 +367,10 @@
|
||||
<option value="xlsx">{$t.datasets?.source_xlsx}</option>
|
||||
</select>
|
||||
{#if mapSourceType === "sqllab"}
|
||||
<label class="text-sm font-medium mb-1 block" for="map-database-select">{$t.datasets?.source_database ?? 'База данных'}</label>
|
||||
<span class="flex items-center gap-1.5 mb-1.5">
|
||||
<label class="text-sm font-medium text-gray-700" for="map-database-select">{$t.datasets?.source_database ?? 'База данных'}</label>
|
||||
<HelpTooltip text={$t.datasets?.database_tip || ""} />
|
||||
</span>
|
||||
<select
|
||||
id="map-database-select"
|
||||
class="w-full border rounded px-2 py-1.5 mb-3"
|
||||
@@ -373,10 +382,13 @@
|
||||
<option value={db.id}>{db.database_name || db.name}</option>
|
||||
{/each}
|
||||
</select>
|
||||
<label class="text-sm font-medium mb-1 block" for="map-sql-query">
|
||||
{$t.datasets?.sql_query ?? 'SQL-запрос'}
|
||||
<span class="text-xs text-gray-400 font-normal ml-1">({$t.datasets?.sql_query_hint ?? 'оставьте пустым для information_schema'})</span>
|
||||
</label>
|
||||
<span class="flex items-center gap-1.5 mb-1.5">
|
||||
<label class="text-sm font-medium text-gray-700" for="map-sql-query">
|
||||
{$t.datasets?.sql_query ?? 'SQL-запрос'}
|
||||
<span class="text-xs text-gray-400 font-normal ml-1">({$t.datasets?.sql_query_hint ?? 'оставьте пустым для information_schema'})</span>
|
||||
</label>
|
||||
<HelpTooltip text={$t.datasets?.sql_query_tip || ""} />
|
||||
</span>
|
||||
<textarea
|
||||
id="map-sql-query"
|
||||
class="w-full border rounded px-2 py-1.5 mb-4 font-mono text-xs"
|
||||
@@ -386,7 +398,10 @@
|
||||
bind:value={mapSqlQuery}
|
||||
></textarea>
|
||||
{:else}
|
||||
<label class="text-sm font-medium mb-1 block" for="map-file-input">{$t.datasets?.xlsx_file ?? 'XLSX-файл'}</label>
|
||||
<span class="flex items-center gap-1.5 mb-1.5">
|
||||
<label class="text-sm font-medium text-gray-700" for="map-file-input">{$t.datasets?.xlsx_file ?? 'XLSX-файл'}</label>
|
||||
<HelpTooltip text={$t.datasets?.file_input_tip || ""} />
|
||||
</span>
|
||||
<input
|
||||
id="map-file-input"
|
||||
type="file"
|
||||
@@ -410,6 +425,10 @@
|
||||
<div class="bg-white rounded-lg shadow-xl p-6 max-w-md w-full" onclick={(e) => e.stopPropagation()}>
|
||||
<h3 class="text-lg font-semibold mb-4">{$t.datasets?.bulk_docs_generation}</h3>
|
||||
<p class="text-sm text-gray-600 mb-3">{$t.datasets?.selected_count?.replace('{count}', String(selectedIds.size))}</p>
|
||||
<span class="flex items-center gap-1.5 mb-1.5">
|
||||
<span class="text-sm font-medium text-gray-700">{$t.datasets?.select_llm_provider ?? 'LLM-провайдер'}</span>
|
||||
<HelpTooltip text={$t.datasets?.llm_provider_tip || ""} />
|
||||
</span>
|
||||
<select class="w-full border rounded px-2 py-1.5 mb-4" title={$t.datasets?.llm_provider_tip} bind:value={llmProvider}>
|
||||
<option value="">{$t.datasets?.select_llm_provider_option}</option>
|
||||
<option value="openai">OpenAI</option>
|
||||
|
||||
Reference in New Issue
Block a user