link to public dashboard in admin options, add return button do public dashboard

This commit is contained in:
Christoph Kluge
2025-12-16 13:54:17 +01:00
parent 60a69aa0a2
commit 102109388b
5 changed files with 45 additions and 6 deletions

View File

@@ -6,7 +6,8 @@
- `isSupport Bool!`: Is currently logged in user support authority - `isSupport Bool!`: Is currently logged in user support authority
- `isApi Bool!`: Is currently logged in user api authority - `isApi Bool!`: Is currently logged in user api authority
- `username String!`: Empty string if auth. is disabled, otherwise the username as string - `username String!`: Empty string if auth. is disabled, otherwise the username as string
- `ncontent String!`: The currently displayed message on the homescreen - `ncontent String!`: The currently displayed message on the homescreen
- `clusters [String]`: The available clusternames
--> -->
<script> <script>
@@ -22,6 +23,7 @@
isApi, isApi,
username, username,
ncontent, ncontent,
clusters
} = $props(); } = $props();
</script> </script>
@@ -30,7 +32,7 @@
<CardHeader> <CardHeader>
<CardTitle class="mb-1">Admin Options</CardTitle> <CardTitle class="mb-1">Admin Options</CardTitle>
</CardHeader> </CardHeader>
<AdminSettings {ncontent}/> <AdminSettings {ncontent} {clusters}/>
</Card> </Card>
{/if} {/if}

View File

@@ -30,6 +30,7 @@
Table, Table,
Progress, Progress,
Icon, Icon,
Button
} from "@sveltestrap/sveltestrap"; } from "@sveltestrap/sveltestrap";
import Roofline from "./generic/plots/Roofline.svelte"; import Roofline from "./generic/plots/Roofline.svelte";
import Pie, { colors } from "./generic/plots/Pie.svelte"; import Pie, { colors } from "./generic/plots/Pie.svelte";
@@ -353,6 +354,11 @@
}} }}
/> />
</Col> </Col>
<Col class="d-flex justify-content-end">
<Button outline class="mb-1" size="sm" color="light" href="/">
<Icon name="x"/>
</Button>
</Col>
</Row> </Row>
{#if $statusQuery.fetching || $statesTimed.fetching} {#if $statusQuery.fetching || $statesTimed.fetching}
<Row class="justify-content-center"> <Row class="justify-content-center">

View File

@@ -10,6 +10,7 @@ mount(Config, {
isApi: isApi, isApi: isApi,
username: username, username: username,
ncontent: ncontent, ncontent: ncontent,
clusters: hClusters.map((c) => c.name) // Defined in Header Template
}, },
context: new Map([ context: new Map([
['cc-config', clusterCockpitConfig], ['cc-config', clusterCockpitConfig],

View File

@@ -3,6 +3,7 @@
Properties: Properties:
- `ncontent String`: The homepage notice content - `ncontent String`: The homepage notice content
- `clusters [String]`: The available clusternames
--> -->
<script> <script>
@@ -17,7 +18,8 @@
/* Svelte 5 Props */ /* Svelte 5 Props */
let { let {
ncontent ncontent,
clusters
} = $props(); } = $props();
/* Const Init*/ /* Const Init*/
@@ -66,6 +68,6 @@
<Col> <Col>
<EditProject reloadUser={() => getUserList()} /> <EditProject reloadUser={() => getUserList()} />
</Col> </Col>
<Options config={ccconfig}/> <Options config={ccconfig} {clusters}/>
<NoticeEdit {ncontent}/> <NoticeEdit {ncontent}/>
</Row> </Row>

View File

@@ -1,14 +1,22 @@
<!-- <!--
@component Admin option select card @component Admin option select card
Properties:
- `clusters [String]`: The available clusternames
--> -->
<script> <script>
import { getContext, onMount } from "svelte"; import { getContext, onMount } from "svelte";
import { Col, Card, CardBody, CardTitle } from "@sveltestrap/sveltestrap"; import { Row, Col, Card, CardBody, CardTitle, Button, Icon } from "@sveltestrap/sveltestrap";
/* Svelte 5 Props */
let {
clusters,
} = $props();
/*Const Init */ /*Const Init */
const resampleConfig = getContext("resampling"); const resampleConfig = getContext("resampling");
/* State Init */ /* State Init */
let scrambled = $state(false); let scrambled = $state(false);
@@ -44,6 +52,26 @@
</Card> </Card>
</Col> </Col>
{#if clusters?.length > 0}
<Col>
<Card class="h-100">
<CardBody>
<CardTitle class="mb-3">Public Dashboard Links</CardTitle>
<Row>
{#each clusters as cluster}
<Col>
<Button color="info" class="mb-2 mb-xl-0" href={`/monitoring/dashboard/${cluster}`} target="_blank">
<Icon name="clipboard-pulse" class="mr-2"/>
{cluster.charAt(0).toUpperCase() + cluster.slice(1)} Public Dashboard
</Button>
</Col>
{/each}
</Row>
</CardBody>
</Card>
</Col>
{/if}
{#if resampleConfig} {#if resampleConfig}
<Col> <Col>
<Card class="h-100"> <Card class="h-100">