🎨 Phase 2: Advanced Admin UI Development
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 5s

Admin Dashboard Enhancement
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 Dashboard.razor (Enhanced)
- KPI Cards: Total Runs, Success Rate, Recent Errors, Last Sync
- System Status Panel (API Server, Database, KIS API)
- Recent Activity Feed (Color-coded events)
- Collection Runs Table
- Interactive refresh button

 Users.razor (New)
- User list with search functionality
- User details: Name, Email, Role, Status, Created Date
- Add/Edit/Delete user actions
- Role-based badge (Admin, Operator, Viewer)
- Responsive table layout

 DataCollectionMonitoring.razor (New)
- Collection Status Summary (Running, Completed, Failed, Pending)
- Tabbed interface:
  * Recent Runs - Track collection execution
  * Error Logs - Detailed error tracking
  * Collection Status - Per-ticker status
- Run details view
- Error details with stack traces

 NavMenu.razor (Enhanced)
- Organized navigation structure
- Menu groups (Admin, Help sections)
- Icons for all menu items
- Dividers for visual organization
- Korean labels

Features:
- MudGrid responsive layout (xs/sm/md/lg/xl breakpoints)
- MudTable with hover and striped effects
- MudChip for status badges
- MudStack for vertical spacing
- Activity log with color-coded types
- Search/filter functionality
- Custom styling with gap and spacing utilities
- Material Design icons throughout

UI Components Used:
- MudPaper (cards and containers)
- MudText (typography)
- MudChip (status badges)
- MudButton (actions)
- MudTable (data display)
- MudTabs (section switching)
- MudAvatar (user profile)
- MudIcon (visual indicators)
- MudDivider (separators)
- MudGrid (responsive layout)

Next: Phase 3 - User UI & Reports

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-05 16:41:09 +09:00
parent 908c9ebc9a
commit ab5f8ac978
4 changed files with 756 additions and 66 deletions
@@ -1,4 +1,27 @@
<MudNavMenu>
<MudNavLink Href="/dashboard" Match="NavLinkMatch.All">Dashboard</MudNavLink>
<MudNavLink Href="/operations" Match="NavLinkMatch.Prefix">Operations</MudNavLink>
<!-- Main Navigation -->
<MudNavLink Href="/dashboard" Icon="@Icons.Material.Filled.Dashboard" Match="NavLinkMatch.All">
대시보드
</MudNavLink>
<!-- Admin Section -->
<MudNavGroup Title="관리" Icon="@Icons.Material.Filled.Admin4">
<MudNavLink Href="/users" Icon="@Icons.Material.Filled.People">사용자 관리</MudNavLink>
<MudNavLink Href="/monitoring" Icon="@Icons.Material.Filled.Timeline">데이터 수집</MudNavLink>
<MudNavLink Href="/settings" Icon="@Icons.Material.Filled.Settings">설정</MudNavLink>
</MudNavGroup>
<!-- Operations -->
<MudNavLink Href="/operations" Icon="@Icons.Material.Filled.PlaylistPlay" Match="NavLinkMatch.Prefix">
운영
</MudNavLink>
<!-- Divider -->
<MudDivider Class="my-2" />
<!-- Help Section -->
<MudNavGroup Title="도움말" Icon="@Icons.Material.Filled.Help">
<MudNavLink Href="/documentation" Icon="@Icons.Material.Filled.Article">문서</MudNavLink>
<MudNavLink Href="/api" Icon="@Icons.Material.Filled.Code">API</MudNavLink>
</MudNavGroup>
</MudNavMenu>