add runtime log views and standardize status dots
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
+21
-4
@@ -36,9 +36,11 @@ import { LauncherBuildPage } from './pages/launcher/LauncherBuildPage';
|
||||
import { LauncherSourcePage } from './pages/launcher/LauncherSourcePage';
|
||||
import { LauncherAppsPage as LauncherAppsApiPage } from './pages/launcher/LauncherAppsPage';
|
||||
import { LauncherComponentsPage } from './pages/launcher/LauncherComponentsPage';
|
||||
import { LauncherLogsPage } from './pages/launcher/LauncherLogsPage';
|
||||
import { LauncherVersionsPage as LauncherVersionsApiPage } from './pages/launcher/LauncherVersionsPage';
|
||||
import { CommonAppBuildPage } from './pages/common-apps/CommonAppBuildPage';
|
||||
import { CommonAppComponentsPage } from './pages/common-apps/CommonAppComponentsPage';
|
||||
import { CommonAppLogsPage } from './pages/common-apps/CommonAppLogsPage';
|
||||
import { CommonAppSourcePage } from './pages/common-apps/CommonAppSourcePage';
|
||||
import { LoadingModal, useMinimumLoading } from './pages/operations/operation-utils';
|
||||
import {
|
||||
@@ -60,10 +62,12 @@ type ViewKey =
|
||||
| 'commonSources'
|
||||
| 'commonBuilds'
|
||||
| 'commonComponents'
|
||||
| 'commonLogs'
|
||||
| 'launcherSources'
|
||||
| 'launcherBuilds'
|
||||
| 'launcherVersions'
|
||||
| 'launcherComponents'
|
||||
| 'launcherLogs'
|
||||
| 'launcherApps'
|
||||
| 'notices'
|
||||
| 'appManagement'
|
||||
@@ -130,10 +134,12 @@ const pathByView: Record<ViewKey, string> = {
|
||||
commonSources: '/common-apps/sources',
|
||||
commonBuilds: '/common-apps/builds',
|
||||
commonComponents: '/common-apps/components',
|
||||
commonLogs: '/common-apps/logs',
|
||||
launcherSources: '/launcher/sources',
|
||||
launcherBuilds: '/launcher/builds',
|
||||
launcherVersions: '/launcher/versions',
|
||||
launcherComponents: '/launcher/components',
|
||||
launcherLogs: '/launcher/logs',
|
||||
launcherApps: '/launcher/apps',
|
||||
notices: '/operations/notices',
|
||||
appManagement: '/applications/apps',
|
||||
@@ -916,7 +922,7 @@ function MetricCards({
|
||||
},
|
||||
{
|
||||
label: '진행 중 작업',
|
||||
value: loading ? '-' : `${activeWorkTotal}건`,
|
||||
value: loading ? '-' : `${activeWorkTotal}`,
|
||||
delta: `빌드 ${activeWork.builds} · 릴리즈 ${activeWork.releases} · 배포 ${activeWork.deployments}`,
|
||||
hint: '대기/실행 중 작업 기준',
|
||||
tone: activeWorkTotal > 0 ? 'amber' as const : 'green' as const
|
||||
@@ -1032,10 +1038,14 @@ function LauncherPanel({ versions, loading, onOpen }: { versions: ApiLauncherVer
|
||||
);
|
||||
}
|
||||
|
||||
function CommonAppsPanel({ pipelines, loading }: { pipelines: CommonAppPipeline[]; loading: boolean }) {
|
||||
function CommonAppsPanel({ pipelines, loading, onOpen }: { pipelines: CommonAppPipeline[]; loading: boolean; onOpen: () => void }) {
|
||||
return (
|
||||
<Card className="min-w-0 overflow-hidden">
|
||||
<CardHeader title="공통앱" description="공통앱의 최근 빌드 상태를 확인합니다." />
|
||||
<CardHeader
|
||||
title="공통앱"
|
||||
description="공통앱의 최근 빌드 상태를 확인합니다."
|
||||
action={<DashboardLinkButton onClick={onOpen} label="공통앱 빌드 관리로 이동" />}
|
||||
/>
|
||||
<div className="max-h-[420px] overflow-y-auto">
|
||||
{loading ? (
|
||||
<div className="space-y-3 p-5">
|
||||
@@ -1369,12 +1379,14 @@ function NoticePanel({ notices: dashboardNotices, loading, onOpen }: { notices:
|
||||
|
||||
function DashboardPage({
|
||||
onLauncherVersionsOpen,
|
||||
onCommonBuildsOpen,
|
||||
onAppManagementOpen,
|
||||
onRuntimeLogsOpen,
|
||||
onNoticesOpen,
|
||||
onUserSessionsOpen
|
||||
}: {
|
||||
onLauncherVersionsOpen: () => void;
|
||||
onCommonBuildsOpen: () => void;
|
||||
onAppManagementOpen: () => void;
|
||||
onRuntimeLogsOpen: () => void;
|
||||
onNoticesOpen: () => void;
|
||||
@@ -1477,7 +1489,7 @@ function DashboardPage({
|
||||
|
||||
<div className="mt-4 grid gap-4 xl:grid-cols-2">
|
||||
<LauncherPanel versions={launcherRows} loading={dashboardLoading} onOpen={onLauncherVersionsOpen} />
|
||||
<CommonAppsPanel pipelines={commonAppPipelines} loading={dashboardLoading} />
|
||||
<CommonAppsPanel pipelines={commonAppPipelines} loading={dashboardLoading} onOpen={onCommonBuildsOpen} />
|
||||
</div>
|
||||
|
||||
<div className="mt-4">
|
||||
@@ -1556,10 +1568,14 @@ function App() {
|
||||
return <CommonAppBuildPage />;
|
||||
case 'commonComponents':
|
||||
return <CommonAppComponentsPage />;
|
||||
case 'commonLogs':
|
||||
return <CommonAppLogsPage />;
|
||||
case 'launcherVersions':
|
||||
return <LauncherVersionsApiPage />;
|
||||
case 'launcherComponents':
|
||||
return <LauncherComponentsPage />;
|
||||
case 'launcherLogs':
|
||||
return <LauncherLogsPage />;
|
||||
case 'launcherSources':
|
||||
return <LauncherSourcePage />;
|
||||
case 'launcherBuilds':
|
||||
@@ -1623,6 +1639,7 @@ function App() {
|
||||
return (
|
||||
<DashboardPage
|
||||
onLauncherVersionsOpen={() => changeView('launcherVersions')}
|
||||
onCommonBuildsOpen={() => changeView('commonBuilds')}
|
||||
onAppManagementOpen={() => changeView('appManagement')}
|
||||
onRuntimeLogsOpen={() => changeView('runtimeLogs')}
|
||||
onNoticesOpen={() => changeView('notices')}
|
||||
|
||||
Reference in New Issue
Block a user