i18 cleanup
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
|
||||
async function loadDashboardDetail() {
|
||||
if (!dashboardId || !envId) {
|
||||
error = "Missing dashboard ID or environment ID";
|
||||
error = $t.dashboard?.missing_context ;
|
||||
isLoading = false;
|
||||
return;
|
||||
}
|
||||
@@ -38,7 +38,7 @@
|
||||
try {
|
||||
dashboard = await api.getDashboardDetail(envId, dashboardId);
|
||||
} catch (err) {
|
||||
error = err.message || "Failed to load dashboard details";
|
||||
error = err.message || $t.dashboard?.load_detail_failed ;
|
||||
console.error("[DashboardDetail][Coherence:Failed]", err);
|
||||
} finally {
|
||||
isLoading = false;
|
||||
@@ -69,20 +69,20 @@
|
||||
on:click={goBack}
|
||||
>
|
||||
<Icon name="chevronLeft" size={16} />
|
||||
{$t.common?.back || "Back to Dashboards"}
|
||||
{$t.common?.back }
|
||||
</button>
|
||||
<h1 class="mt-2 text-2xl font-bold text-slate-900">
|
||||
{dashboard?.title || "Dashboard Overview"}
|
||||
{dashboard?.title || ($t.dashboard?.overview )}
|
||||
</h1>
|
||||
<p class="mt-1 text-sm text-slate-500">
|
||||
ID: {dashboardId}{#if dashboard?.slug} • {dashboard.slug}{/if}
|
||||
{$t.common?.id }: {dashboardId}{#if dashboard?.slug} • {dashboard.slug}{/if}
|
||||
</p>
|
||||
</div>
|
||||
<button
|
||||
class="inline-flex items-center justify-center rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-primary-hover"
|
||||
on:click={loadDashboardDetail}
|
||||
>
|
||||
{$t.common?.refresh || "Refresh"}
|
||||
{$t.common?.refresh }
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
<div class="flex items-center justify-between rounded-lg border border-red-300 bg-red-50 px-4 py-3 text-red-700">
|
||||
<span>{error}</span>
|
||||
<button class="rounded bg-red-600 px-3 py-1.5 text-white hover:bg-red-700" on:click={loadDashboardDetail}>
|
||||
{$t.common?.retry || "Retry"}
|
||||
{$t.common?.retry }
|
||||
</button>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -105,39 +105,39 @@
|
||||
{:else if dashboard}
|
||||
<div class="grid grid-cols-1 gap-4 md:grid-cols-3">
|
||||
<div class="rounded-xl border border-slate-200 bg-white p-4">
|
||||
<p class="text-xs font-semibold uppercase tracking-wide text-slate-500">Last modified</p>
|
||||
<p class="text-xs font-semibold uppercase tracking-wide text-slate-500">{$t.dashboard?.last_modified }</p>
|
||||
<p class="mt-2 text-lg font-semibold text-slate-900">{formatDate(dashboard.last_modified)}</p>
|
||||
</div>
|
||||
<div class="rounded-xl border border-slate-200 bg-white p-4">
|
||||
<p class="text-xs font-semibold uppercase tracking-wide text-slate-500">Charts</p>
|
||||
<p class="text-xs font-semibold uppercase tracking-wide text-slate-500">{$t.dashboard?.charts }</p>
|
||||
<p class="mt-2 text-lg font-semibold text-slate-900">{dashboard.chart_count || 0}</p>
|
||||
</div>
|
||||
<div class="rounded-xl border border-slate-200 bg-white p-4">
|
||||
<p class="text-xs font-semibold uppercase tracking-wide text-slate-500">Datasets</p>
|
||||
<p class="text-xs font-semibold uppercase tracking-wide text-slate-500">{$t.nav?.datasets }</p>
|
||||
<p class="mt-2 text-lg font-semibold text-slate-900">{dashboard.dataset_count || 0}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{#if dashboard.description}
|
||||
<div class="rounded-xl border border-slate-200 bg-white p-4">
|
||||
<h2 class="text-sm font-semibold uppercase tracking-wide text-slate-500">Overview</h2>
|
||||
<h2 class="text-sm font-semibold uppercase tracking-wide text-slate-500">{$t.dashboard?.overview }</h2>
|
||||
<p class="mt-2 text-sm text-slate-700">{dashboard.description}</p>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="rounded-xl border border-slate-200 bg-white overflow-hidden">
|
||||
<div class="border-b border-slate-200 px-4 py-3">
|
||||
<h2 class="text-lg font-semibold text-slate-900">Charts</h2>
|
||||
<h2 class="text-lg font-semibold text-slate-900">{$t.dashboard?.charts }</h2>
|
||||
</div>
|
||||
{#if dashboard.charts && dashboard.charts.length > 0}
|
||||
<div class="overflow-x-auto">
|
||||
<table class="min-w-full divide-y divide-slate-200 text-sm">
|
||||
<thead class="bg-slate-50">
|
||||
<tr>
|
||||
<th class="px-4 py-2 text-left font-semibold text-slate-600">Chart</th>
|
||||
<th class="px-4 py-2 text-left font-semibold text-slate-600">Dataset</th>
|
||||
<th class="px-4 py-2 text-left font-semibold text-slate-600">Overview</th>
|
||||
<th class="px-4 py-2 text-left font-semibold text-slate-600">Last modified</th>
|
||||
<th class="px-4 py-2 text-left font-semibold text-slate-600">{$t.settings?.type_chart }</th>
|
||||
<th class="px-4 py-2 text-left font-semibold text-slate-600">{$t.nav?.datasets }</th>
|
||||
<th class="px-4 py-2 text-left font-semibold text-slate-600">{$t.dashboard?.overview }</th>
|
||||
<th class="px-4 py-2 text-left font-semibold text-slate-600">{$t.dashboard?.last_modified }</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="divide-y divide-slate-100">
|
||||
@@ -152,9 +152,9 @@
|
||||
<button
|
||||
class="inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium text-blue-700 hover:bg-blue-50 hover:text-blue-800"
|
||||
on:click={() => openDataset(chart.dataset_id)}
|
||||
title={`Open dataset ${chart.dataset_id}`}
|
||||
title={`${$t.datasets?.table_name } ${chart.dataset_id}`}
|
||||
>
|
||||
Dataset {chart.dataset_id}
|
||||
{$t.nav?.datasets } {chart.dataset_id}
|
||||
<Icon name="chevronRight" size={12} className="text-blue-500" />
|
||||
</button>
|
||||
{:else}
|
||||
@@ -169,13 +169,13 @@
|
||||
</table>
|
||||
</div>
|
||||
{:else}
|
||||
<div class="px-4 py-8 text-sm text-slate-500">No charts found for this dashboard.</div>
|
||||
<div class="px-4 py-8 text-sm text-slate-500">{$t.dashboard?.no_charts }</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="rounded-xl border border-slate-200 bg-white overflow-hidden">
|
||||
<div class="border-b border-slate-200 px-4 py-3">
|
||||
<h2 class="text-lg font-semibold text-slate-900">Datasets</h2>
|
||||
<h2 class="text-lg font-semibold text-slate-900">{$t.nav?.datasets }</h2>
|
||||
</div>
|
||||
{#if dashboard.datasets && dashboard.datasets.length > 0}
|
||||
<div class="divide-y divide-slate-100">
|
||||
@@ -199,7 +199,7 @@
|
||||
{/each}
|
||||
</div>
|
||||
{:else}
|
||||
<div class="px-4 py-8 text-sm text-slate-500">No datasets found for this dashboard.</div>
|
||||
<div class="px-4 py-8 text-sm text-slate-500">{$t.dashboard?.no_datasets }</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user