From 9c088d0955ae25fb08003ba83547eb7e0e367b5c Mon Sep 17 00:00:00 2001 From: Alex Khomenko Date: Fri, 31 Jan 2025 00:02:16 +0200 Subject: [PATCH] POC/Provisioning: Update repository sync status (#99816) --- .../app/features/provisioning/ConfigForm.tsx | 16 +++++----------- .../provisioning/RepositoryListPage.tsx | 18 +++++++++++++----- .../provisioning/RepositoryStatusPage.tsx | 2 +- .../app/features/provisioning/StatusBadge.tsx | 11 +++++++++-- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/public/app/features/provisioning/ConfigForm.tsx b/public/app/features/provisioning/ConfigForm.tsx index 4df7e402761..1dbfe3b379d 100644 --- a/public/app/features/provisioning/ConfigForm.tsx +++ b/public/app/features/provisioning/ConfigForm.tsx @@ -43,8 +43,8 @@ function getDefaultValues(repository?: RepositorySpec): RepositoryFormData { branch: '', branchWorkflow: true, sync: { - enabled: false, // we should explicitly enabled! - target: 'instance', // 'instance' | 'mirror'; + enabled: false, + target: 'instance', }, editing: { create: true, @@ -203,19 +203,13 @@ export function ConfigForm({ data }: ConfigFormProps) { )} - + { - return ( - - ); + return ; }} /> diff --git a/public/app/features/provisioning/RepositoryListPage.tsx b/public/app/features/provisioning/RepositoryListPage.tsx index 2fb424bbdf7..00779a28749 100644 --- a/public/app/features/provisioning/RepositoryListPage.tsx +++ b/public/app/features/provisioning/RepositoryListPage.tsx @@ -10,6 +10,7 @@ import { LinkButton, Stack, TextLink, + Text, } from '@grafana/ui'; import { Page } from 'app/core/components/Page/Page'; @@ -66,9 +67,7 @@ function RepositoryListPageContent({ items }: { items?: Repository[] }) { const name = item.metadata?.name ?? ''; let icon: IconName = 'database'; // based on type - let meta: ReactNode[] = [ - // TODO... add counts? and sync info - ]; + let meta: ReactNode[] = []; switch (item.spec?.type) { case 'github': icon = 'github'; @@ -95,7 +94,11 @@ function RepositoryListPageContent({ items }: { items?: Repository[] }) { break; case 'local': - meta.push({item.spec.local?.path}); + meta.push( + + {item.spec.local?.path ?? ''} + + ); break; } @@ -106,7 +109,12 @@ function RepositoryListPageContent({ items }: { items?: Repository[] }) { - {item.spec?.title} + {item.spec?.title}{' '} + diff --git a/public/app/features/provisioning/RepositoryStatusPage.tsx b/public/app/features/provisioning/RepositoryStatusPage.tsx index 00d20c99dfb..4652dd851ef 100644 --- a/public/app/features/provisioning/RepositoryStatusPage.tsx +++ b/public/app/features/provisioning/RepositoryStatusPage.tsx @@ -385,7 +385,7 @@ export function RepositoryHealth({ repo }: { repo: Repository }) { )} Sync Status - +
  • Job ID: {status?.sync.job ?? 'N/A'} diff --git a/public/app/features/provisioning/StatusBadge.tsx b/public/app/features/provisioning/StatusBadge.tsx index 1cbd6705c3c..fad1088e8bd 100644 --- a/public/app/features/provisioning/StatusBadge.tsx +++ b/public/app/features/provisioning/StatusBadge.tsx @@ -6,10 +6,11 @@ import { PROVISIONING_URL } from './constants'; interface StatusBadgeProps { state?: string; name: string; + enabled: boolean; } -export function StatusBadge({ state, name }: StatusBadgeProps) { - if (state == null) { +export function StatusBadge({ enabled, state, name }: StatusBadgeProps) { + if (state === null || state === undefined) { return null; } @@ -45,6 +46,12 @@ export function StatusBadge({ state, name }: StatusBadgeProps) { default: break; } + + if (!enabled) { + color = 'red'; + text = 'Sync disabled'; + icon = 'info-circle'; + } return (