Commit Graph

14 Commits

Author SHA1 Message Date
zhi
50563f2b3d feat(users): add admin user management page 2026-03-20 10:56:00 +00:00
zhi
35e7d3a141 feat(P10): add Propose type, list page, detail page with accept/reject/reopen + sidebar link 2026-03-17 05:03:49 +00:00
zhi
ef42231697 feat: unify task creation with shared modal 2026-03-16 16:32:09 +00:00
zhi
01affdb020 refactor: rename Issue → Task throughout frontend
- Rename files: IssuesPage → TasksPage, IssueDetailPage → TaskDetailPage,
  CreateIssuePage → CreateTaskPage
- Rename TypeScript interface: Issue → Task (keep backend field names)
- Update routes: /issues → /tasks, /issues/new → /tasks/new, /issues/:id → /tasks/:id
- Update CSS class names: issue-* → task-*, create-issue → create-task
- Update UI text: 'Issues' → 'Tasks', 'Create Issue' → 'Create Task'
- Keep 'issue' as a task subtype value in TASK_TYPES dropdown
- Keep all backend API endpoint paths unchanged (/issues, /comments, etc.)
- Rename local Task interface in MilestoneDetailPage to MilestoneTask
  to avoid conflict with the global Task type
2026-03-16 07:47:58 +00:00
Zhi
9190c17abc Hardcode wizard base to 127.0.0.1 2026-03-14 10:22:36 +00:00
Zhi
f7a19c71d6 Add VITE_WIZARD_HOST env variable 2026-03-13 19:43:04 +00:00
Zhi
f6460e2d70 feat: add Role Editor page 2026-03-12 11:45:30 +00:00
zhi
0ab1d2f380 i18n: translate frontend UI strings to English 2026-03-11 21:19:54 +00:00
zhi
bc1714281c feat: allow public monitor route without login and add monitor page 2026-03-11 11:59:56 +00:00
zhi
bd4a206e76 fix: use configured backend_url for API base instead of /api path
- Read HF_BACKEND_BASE_URL from localStorage in api client
- Refresh baseURL on each request interceptor
- Persist backend_url from wizard config during app bootstrap
- Persist backend_base_url after setup save
2026-03-11 10:31:25 +00:00
zhi
c92e399218 fix: check wizard config for initialized flag instead of backend health
- App checks wizard API for harborforge.json config with initialized=true
- If not initialized, show embedded setup wizard (talks to wizard API via CORS)
- Setup saves config with initialized:true to wizard config volume
- After restart, backend reads config and starts, frontend sees initialized=true
- Remove VITE_API_BASE build arg (not needed, api.ts uses /api relative path)
- Fix Object.entries null crash in DashboardPage
2026-03-11 10:09:33 +00:00
zhi
f8fac48fcc feat: setup wizard page for first-deploy initialization
- SetupWizardPage: step-by-step config (DB, admin, project)
- Connects directly to AbstractWizard via SSH tunnel (127.0.0.1)
- App.tsx: detect backend health, show wizard if not ready
- Auto-switch wizard to readonly after setup
- Add VITE_WIZARD_PORT build arg
- Add vite-env.d.ts for type safety
2026-03-06 13:46:46 +00:00
zhi
54d4c4379a feat: remove nginx, add projects/milestones/notifications pages
- Dockerfile: replace nginx with serve for static files
- Fix auth endpoint: /auth/login → /auth/token
- Add ProjectsPage, ProjectDetailPage
- Add MilestonesPage, MilestoneDetailPage with progress bar
- Add NotificationsPage with unread count
- Sidebar: add milestones/notifications nav, live unread badge
- API: configurable VITE_API_BASE for host nginx proxy
- Types: add Milestone, MilestoneProgress, Notification, ProjectMember
2026-03-06 13:05:19 +00:00
Zhi
853594f447 feat: initial frontend - React + TypeScript + Vite
- Login page with JWT auth
- Dashboard with stats and charts
- Issues list with pagination, filtering
- Issue detail with comments, status transitions
- Create issue form
- Dark theme UI
- Docker (nginx) with API proxy to backend
- Sidebar navigation
2026-02-27 09:47:19 +00:00