SpecialX
|
e997abaf5e
|
refactor(dashboard): V2 审计重构 — i18n 补齐 + 共享抽象 + 单测 + a11y
V2 审计报告(docs/architecture/audit/dashboard-audit-report-v2.md)发现并修复:
- P0 i18n:10 个子组件硬编码字符串全部接入 next-intl(teacher-quick-actions /
teacher-classes-card / teacher-homework-card / teacher-schedule /
recent-submissions / teacher-grade-trends / student-grades-card /
student-today-schedule-card / student-upcoming-assignments-card /
admin-dashboard),新增 ~50 个翻译键
- P1 共享抽象:新增 DashboardGreetingHeader 组件,消除 teacher/student
头部 90% 重复代码,两个 Header 改为薄包装
- P2 单测:为 6 个纯函数添加 31 个单元测试
(tests/integration/dashboard/dashboard-utils.test.ts)
- P2 a11y:admin 表格 caption、teacher/student 视图语义化标签
(header / section aria-label / aside aria-label)
- 同步架构图 004/005
|
2026-06-22 17:01:00 +08:00 |
|
SpecialX
|
a4d096a6fc
|
fix: patch P0 security vulnerabilities and critical UX issues across 6 modules
Security: Add admin/layout.tsx auth guard; Add requirePermission() to 12 admin pages
Dashboard: Fix StudentStatsGrid rendering; Fix teacher greeting; Add loading/error boundaries; Fix col-span; Add metadata
Announcements: Fix audience filtering; Add user detail page; Trigger notifications on publish; Pass classes data; Add loading.tsx
Messages: Implement soft delete; Add unread badge with polling; Add notification dropdown polling; Add keyword search; Add quiet hours DND
Management: Add loading/error for 9 admin routes; Fix admin-classes-view to use Select for school/grade
Profile/Settings: Add loading/error; Fix parent role routing; Create ParentSettingsView; Integrate AiProviderSettingsCard; Add Tab URL persistence; Add logout confirm; Add avatar; Fix Progress arbitrary class
Schema: Add senderDeletedAt/receiverDeletedAt to messages; Add quietHours to notificationPreferences; Add uniqueIndex import
Docs: Update architecture docs 004/005
|
2026-06-22 13:57:31 +08:00 |
|
SpecialX
|
9bfc621d3f
|
feat(classes): optimize teacher dashboard ui and implement grade management
|
2026-01-14 13:59:11 +08:00 |
|
SpecialX
|
57807def37
|
完整性更新
现在已经实现了大部分基础功能
|
2026-01-08 11:14:03 +08:00 |
|