From 5564ab8a62e95a1fcd5a89e366ac18ca4816fc88 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Thu, 9 Apr 2026 23:00:01 +0700 Subject: [PATCH] Refactor server dashboard pages with reusable UI blocks. Extract shared header, query-state, and JSON panel components, then apply them across server runtime/security/upstreams/update/config views for consistent Telemt panel UX. Made-with: Cursor --- .../lib/components/server-json-card.svelte | 40 ++++++++++++ .../lib/components/server-page-header.svelte | 39 ++++++++++++ .../lib/components/server-query-state.svelte | 62 +++++++++++++++++++ .../servers/[alias]/config/+page.svelte | 17 ++--- .../servers/[alias]/runtime/+page.svelte | 39 ++++-------- .../servers/[alias]/security/+page.svelte | 45 +++++--------- .../servers/[alias]/update/+page.svelte | 46 ++++++-------- .../servers/[alias]/upstreams/+page.svelte | 51 +++++++-------- 8 files changed, 217 insertions(+), 122 deletions(-) create mode 100644 web/src/lib/components/server-json-card.svelte create mode 100644 web/src/lib/components/server-page-header.svelte create mode 100644 web/src/lib/components/server-query-state.svelte diff --git a/web/src/lib/components/server-json-card.svelte b/web/src/lib/components/server-json-card.svelte new file mode 100644 index 0000000..2e44fa6 --- /dev/null +++ b/web/src/lib/components/server-json-card.svelte @@ -0,0 +1,40 @@ + + + + {#snippet icon()} + {#if iconSnippet} + {@render iconSnippet()} + {:else} + diff --git a/web/src/lib/components/server-page-header.svelte b/web/src/lib/components/server-page-header.svelte new file mode 100644 index 0000000..eeb3d4d --- /dev/null +++ b/web/src/lib/components/server-page-header.svelte @@ -0,0 +1,39 @@ + + +
+
+

{title}

+ {#if subtitle} +

{subtitle}

+ {/if} +
+
+ {@render actions?.()} + {#if showRefresh} + + {/if} +
+
diff --git a/web/src/lib/components/server-query-state.svelte b/web/src/lib/components/server-query-state.svelte new file mode 100644 index 0000000..4f6e29d --- /dev/null +++ b/web/src/lib/components/server-query-state.svelte @@ -0,0 +1,62 @@ + + +{#if err} + + Ошибка + {err} + +{/if} + +{#if loading} + + {#snippet icon()} + +{:else if !err && isEmpty} + + {#snippet icon()} + +{:else if !loading && !isEmpty} + {@render children?.()} +{/if} diff --git a/web/src/routes/servers/[alias]/config/+page.svelte b/web/src/routes/servers/[alias]/config/+page.svelte index b13f54b..87d4380 100644 --- a/web/src/routes/servers/[alias]/config/+page.svelte +++ b/web/src/routes/servers/[alias]/config/+page.svelte @@ -1,22 +1,25 @@ -
-

Configuration

-

- Конфигурация Telemt на ноде {alias} не доступна через API - — правьте config.toml на сервере. -

-
+ {#snippet icon()}