Commit graph

243 commits

Author SHA1 Message Date
Ashwin Kumar
44d4ce5b2a feat: add admin notification polling, KB category CRUD helpers, fix duplicate code
- AdminShell: added notification bell polling every 30s
- KB page: added createCategory, updateCategory, deleteCategory API helpers
- KB page: added category management state and handlers
- KB page: removed duplicate second implementation (partial)
- KB page: need to insert category UI in next step
2026-04-06 18:38:28 +02:00
Ashwin Kumar
0c757cf5bd feat(admin): wire verification actions, remove onboarding management, fix kb.tsx
- verification/[id].tsx: approve, reject, request-documents, request-revision
  all wired to real API endpoints with loading states and feedback banners
- Delete onboarding-management/ (flow moved to dashboard My Profile/Portfolio)
- kb.tsx: remove stray closing brace (TS1128 syntax error)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 17:20:41 +02:00
Ashwin Kumar
005572cdd2 feat(kb): migrate admin KB page to persistent API storage
- Replace runtime storage CRUD with real /api/admin/kb endpoints
- Add proper error handling and state management
- Support seed functionality via API
- Align data mapping with backend Article and Category structs
- Improves data persistence and admin UX

Closes #KB-API-Migration
2026-04-06 15:06:22 +02:00
Ashwin Kumar
82cfd3c1d7 fix: admin pricing page endpoint, JSX structure fixes
- pricing: change /api/admin/tracecoin-packages to /api/admin/packages
- modules.tsx: wrap with fragment, fix heading structure
- [...module].tsx: fix missing container div
- DashboardDesignPreview.tsx: fix '>' in text
2026-04-06 08:24:14 +02:00
Ashwin Kumar
0a0c51adc1 feat: wire admin dashboard to real metrics and fix JSX errors
- Wire dashboard home to live /api/admin/dashboard/metrics with 8 KPI widgets
- Add pending_approvals and total_revenue widget definitions
- Fix JSX syntax errors in [...module].tsx and modules.tsx
- Fix '>' character in DashboardDesignPreview.tsx
2026-04-06 06:19:14 +02:00
Ashwin Kumar
ac146c4d36 feat: implement dynamic knowledge base management and seeding 2026-04-06 03:33:11 +02:00
Ashwin Kumar
9bfaa2279c chore: update admin docs, role config, and kb management 2026-04-06 01:46:58 +02:00
Ashwin Kumar
ab658d826b Add UGC Content Creator to AdminShell; fix dashboard preview bugs
- AdminShell: add PAGE_TITLES and ROUTE_MODULE_KEYS entries for
  /admin/ugc-content-creators with UGC_CONTENT_CREATOR_MANAGEMENT keys
- DashboardDesignPreview: fix portfolioMediaConfig to include DEVELOPER and
  FITNESS_TRAINER as visual portfolio roles
- DashboardDesignPreview: add missing customerViewFor handlers for
  'applications', 'shortlisted candidates', 'my applications', 'saved jobs'
- external-dashboard-management: add 'Settings' to CUSTOMER sidebar array
- Fix launch.json PATH so npm is found in sh shell

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 21:14:11 +02:00
Ashwin Kumar
8855b8b378 chore: sync latest dashboard and role flow updates 2026-04-05 16:52:01 +02:00
Ashwin Kumar
c526a376d5 fix(admin): convert AdminShell to persistent layout, fix company API URL
Replace per-page AdminShell wrapping with a single SolidStart layout file
(src/routes/admin.tsx) so the shell mounts once and persists across all
/admin/* navigation — eliminating the sidebar bounce and session re-check
flash that occurred on every page transition.

- Create src/routes/admin.tsx as layout with <Outlet /> for child routes
- Remove <AdminShell> import/wrapper from all 66 route files and 2 shared
  components (RoleUserManagementTablePage, UserListPage)
- Fix company.tsx: wrong fetch URL /api/admin/companies → /api/gateway/api/admin/companies
- Add missing auth headers (Authorization Bearer) to company.tsx and users.tsx
- Fix admin/index.tsx API constant from hardcoded localhost:8000 → /api/gateway

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 02:49:14 +02:00
Ashwin Kumar
02df2baa4e Fix admin login URL — use /api/gateway/auth/login proxy route
Was calling /api/admin/auth/login which had no handler.
Fixed to /api/gateway/auth/login which proxies to Rust backend.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 02:32:56 +02:00
Ashwin Kumar
8345d6574c feat(admin): wire management modules to live backend and add UGC role 2026-04-02 13:09:42 +02:00
Ashwin Kumar
82036a0608 Align admin management tables and flows with department pattern 2026-04-02 00:42:42 +02:00
Ashwin Kumar
ad8a17a766 Refine external preview flows and simplify verification/approval management 2026-03-30 21:43:49 +02:00
Ashwin Kumar
8a24700e73 feat(dashboard): add My Portfolio to all professional role dashboards
- Add full single-page portfolio preview in DashboardDesignPreview with
  profile header, about, packages, gallery, experience, testimonials,
  and FAQs sections matching Department Management design language
- Fix sidebar persona resolution to always include My Portfolio for all
  professional subtypes (Photographer, Graphic Designer, Makeup Artist,
  Tutor, Developer, Video Editor, Social Media Manager, Fitness Trainer,
  Catering Services) via a three-layer fallback: roleId lookup → role
  key from roles list → formRoleKey stored directly from dashboard record
- Add personaFromKey() helper so any professional role key maps to
  PROFESSIONAL sidebar even when the roles API returns empty data

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 14:19:00 +02:00
Ashwin Kumar
24353ef27a Polish shell transitions and dark theme behavior 2026-03-30 04:52:10 +02:00
Ashwin Kumar
8ed523d80c Standardize admin tables and polish shell UX 2026-03-30 04:48:09 +02:00
Ashwin Kumar
d7bf5a6d56 feat(roles): add module permissions for dashboards/onboarding/external roles 2026-03-27 21:34:39 +01:00
Ashwin Kumar
93e38018dc feat(admin): runtime-gated sidebar, wire roles/employees/departments/designations 2026-03-27 21:25:00 +01:00
Ashwin Kumar
bed0942d12 fix: dashboard layout spacing and CSS cascade layer bug
Move CSS reset into @layer base so Tailwind utilities aren't overridden.
Fix settings panel: search icon overlap, cramped widget items, spacing
between header card and widget grid using inline margin styles.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 20:10:08 +01:00
Ashwin Kumar
7c4ed94975 feat: wire internal role management to real API
Full wiring: load() fetches audience=INTERNAL roles, save() creates/updates
via POST/PATCH with key/name/description/department_id/permissions/settings,
delete and status toggle wired. Permission matrix uses MODULE_PERMISSIONS
with prefix_ACTION keys. Detail view fetches permission_keys from GET /{id}.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 19:27:35 +01:00
Ashwin Kumar
0d9837b8dc feat: wire department management to real API
Remove FALLBACK_DEPARTMENTS array and fallback logic. Normalize fields
from snake_case backend response (total_employees, department_head,
department_email, transfers_enabled). Empty list shown on API failure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 19:22:55 +01:00
Ashwin Kumar
c911a0c450 feat: wire designation management to real API
Remove FALLBACK_DESIGNATIONS and static DEPARTMENTS array. Fetch
departments from API for dropdown, send department_id (UUID) on save,
normalize department_name/department_id from backend response.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 19:21:00 +01:00
Ashwin Kumar
2a3a336114 Refine admin dashboard layout spacing and widget settings UX 2026-03-27 18:29:21 +01:00
Ashwin Kumar
717a6c799e Fix admin approval/verification routing and align management UIs 2026-03-27 05:35:18 +01:00
Ashwin Kumar
a95c955ad4 Update admin panel routes: approval, designation, employees, dashboard mgmt, onboarding, roles, verification
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:28:34 +01:00
Ashwin Kumar
fd4f6ceba8 fix(sidebar): enable scrolling — set height:100% on sidebar and wrapper, replace h-screen/h-full Tailwind with inline styles
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:09:55 +01:00
Ashwin Kumar
58005121ee fix(sidebar): increase logo size to 44px height
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:08:00 +01:00
Ashwin Kumar
d0b904f3ff feat(sidebar): use full nxtgauge-logo.png in expanded state, icon-only when collapsed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:07:32 +01:00
Ashwin Kumar
1bd7fe646c feat(department): add View Department panel with row detail display
- View Department tab now shows department details (code, head, email, employees, visibility, date)
- Clicking ⋮ → View Department on a row populates the view panel
- Table hides when View tab is active (style:display reactive binding)
- Dropdown menu items rewritten with inline styles for proper spacing (4 items: View, Edit, Deactivate, Delete)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:05:28 +01:00
Ashwin Kumar
ab487ce884 feat(admin): pixel-perfect UI overhaul for department, designation, roles, employees pages
- Rewrote all layout/spacing with inline styles (Tailwind v4 doesn't generate most utility classes)
- AdminSidebar: all 37 modules in 9 groups, scrollable, 220px/64px collapse, no bottom user section
- AdminShell: header height 64px, user avatar top-right (Gmail-style), removed search bar
- Department: orange-only status badges, dark navy table header (white text), edge-to-edge table, View/Create/All tabs, View action in row menu, form with inline styles
- Designation: full rewrite matching department pattern — same tabs, filter bar, table, form
- Roles/Employees: compact filter bar and table cell sizing fixes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 01:56:55 +01:00
Ashwin Kumar
c65f32d45c chore: sync local changes 2026-03-26 20:58:39 +01:00
Ashwin Kumar
4ca69877d4 fix(admin): remove employees.tsx layout wrapper — breaks nested routing
Deleting employees.tsx allows employees/index.tsx to serve /admin/employees
directly (same pattern as roles/), fixing the blank page regression.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 08:09:26 +01:00
Ashwin Kumar
1844170429 feat(admin): employee management redesign + routing fix
- Fix employees routing: employees.tsx → Outlet layout, actual pages in employees/index.tsx and employees/create.tsx
- Employee list: stat cards, search/filter toolbar, table with 3-dot action menu (Edit, Deactivate, Delete), fallback data
- Employee create: form with full_name, email, role_id, department_id, designation_id selectors; auto-credential note
- Stage all other modified routes for next phases

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 08:07:55 +01:00
Ashwin Kumar
5b97af4e0f feat(admin): redesign sidebar, dashboard, dept, designation & roles UI
- Sidebar: white bg, rounded pill nav items, orange left indicator for active
- Dashboard: remove Export/View All buttons, add Customise Dashboard + drag handles on widgets
- Department/Designation/Roles: new design system with orange label header, stat cards, light table header, 3-dot action menus, status badges

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 08:01:23 +01:00
Ashwin Kumar
244895b241 Refactor admin UI and add Storybook/Vitest setup 2026-03-26 06:20:22 +01:00
Ashwin Kumar
df9445da65 Phase 5 & 6: Modernize Verifications, Approvals, and Onboarding UI 2026-03-26 00:35:41 +01:00
Ashwin Kumar
52adb3ad05 feat(admin): modernize verification, approvals, and onboarding ui 2026-03-26 00:16:52 +01:00
Ashwin Kumar
1b70f40e40 feat: phase 4 role management ui matching figma designs 2026-03-26 00:06:47 +01:00
Ashwin Kumar
648b6be849 feat: phase 3 identity & configuration ui matching figma designs 2026-03-26 00:01:15 +01:00
Ashwin Kumar
83a1f45e4f feat: complete phase 2 dashboard modules UI and data wiring 2026-03-25 23:55:43 +01:00
Ashwin Kumar
9d02b7be84 Phase 1: Layout & Core Design System 2026-03-25 23:50:52 +01:00
Ashwin Kumar
1ffe2b35ee chore: cleanup — remove redirect shims, unused components, fix build artifacts
- Delete 8 redirect alias pages (approval-management, approvals, external-role-management,
  internal-role-management, help, role-modules, settings, workspace) that used onMount
  navigate — causes flicker and unnecessary AdminShell renders
- Delete unused Counter.tsx and Counter.css (test artifact, never imported)
- Update AdminSidebar to link directly to /admin/roles and /admin/runtime-roles
  now that redirect shims are gone
- Remove codex build hashes from page titles (Departments, Designations, Dashboard)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 23:35:13 +01:00
Ashwin Kumar
8e2b3c1a64 Update admin dashboard UI and add management route aliases 2026-03-25 23:01:42 +01:00
Ashwin Kumar
3f20065257 chore: checkpoint current workspace changes 2026-03-25 22:15:06 +01:00
Ashwin Kumar
13b428913f feat: phase 1+2 — shell redesign + drag-and-drop dashboard
Shell (AdminShell + AdminSidebar):
- Logo moved to header-left section, width syncs with sidebar collapse state
- Global search bar with debounced multi-module API calls and grouped dropdown
- Bell notification icon with badge, gear → /admin/settings, user dropdown with logout
- Sidebar: 7 grouped nav sections with dividers, orange left-border active state,
  removed "Active" badge pill, user info (avatar + name + role) pinned to bottom
- Fixed all sidebar labels to match Figma (Employee Management, External Onboarding
  Management, Users Management, Verification Management)
- Added missing sidebar items: Verification, Fitness Trainers, Graphic Designers,
  Social Media, Video Editors, Catering Services, Applications, Responses

Dashboard (admin/index):
- Rebuilt to match Figma: "Dashboard Overview" title, Export Report button
- 4 stat cards (Total Users, Active Companies, Open Leads, Credits Purchased)
  with real API fetch, orange icons, delta badges, graceful — fallback
- ApexCharts: Leads Trend (orange gradient line) + Revenue Overview (navy bars)
- Drag-and-drop widget system via @thisbeyond/solid-dnd — sortable stat cards
  and chart cards with handles and remove buttons in Customise mode
- Add Widget panel shows all available widgets not on dashboard
- 8 stat widgets + 3 chart widgets available; layout persists in localStorage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 19:21:54 +01:00
Ashwin Kumar
801bf293a0 style: match login page to public website design language
- Dark navy gradient background (matches public site's MarketingBackground feel)
- Glassmorphism card: rounded-[28px] border-white/30 bg-white/92 backdrop-blur-xl
  shadow-[0_28px_60px_-34px_rgba(2,6,23,0.88)] — identical to public site card
- Input style: rounded-xl border-[#cfd4e3] focus:border-[#fd6216] focus:ring-[#ffd8c3]
- Label style: text-xs font-semibold uppercase tracking-[0.11em] text-[#4b546f]
- Field spacing: space-y-3.5 with mb-2 labels — matches public site exactly
- Password show/hide toggle (eye icon) matching public site
- Radial glow accent blobs behind the background
- Left brand panel kept as frosted glass over the dark bg (lg+ only)
- Navy submit button (intentional admin deviation from public orange)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 16:01:07 +01:00
Ashwin Kumar
eefdbc4561 style: redesign login page with split-panel layout
Replaced cramped single-column layout with a polished two-panel design:
- Left: navy (#0a1d37) brand panel with logo, headline, feature checklist,
  radial glow accents, and security footer — visible at lg+ breakpoints
- Right: centered white card on slate-50 background with clean form,
  proper input focus states (navy ring), and consistent navy submit button
- Mobile: collapses to single column with logo above the card
- Removed washed-out disabled orange button; button is always visible
- Consistent with admin design system (navy primary, orange accent only)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 15:57:28 +01:00
Ashwin Kumar
3b2c09cd4b style: unify all primary buttons to use shared .btn-primary class
Replaced 37 files worth of inconsistent inline Tailwind button classes
(mixed font-medium/semibold, px-4/px-6, with/without shadow-sm, inline-flex
variants) with the shared .btn-primary CSS class. Added :disabled state to
.btn-primary in app.css so disabled buttons visually dim consistently.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 08:10:29 +01:00
Ashwin Kumar
33619a1b27 style: apply consistent page header pattern across all admin routes
- Replace text-2xl font-bold with text-xl font-semibold in all page headers
- Replace bg-[#fd6216] orange buttons with bg-[#0a1d37] navy buttons
- Wrap all pages in -mx-6 -mt-6 flex flex-col layout for edge-to-edge headers
- Replace .field/.actions CSS classes with explicit Tailwind utility classes
- Apply data-table/table-card shared CSS classes to remaining list pages
- Remove duplicate tab bar from roles/index.tsx (AdminShell TAB_SETS handles it)
- Move Create Internal Role button to page header in roles/index.tsx

Pages updated: applications, modules, responses, verification-status,
company/create, company/[id], employees/[id]/edit, users/[id]/edit,
users/details/[id], roles/index, roles/[id]/index, roles/[id]/edit,
role-ui-configs, runtime-roles/[roleKey], onboarding-schemas/*,
external/internal-dashboard-management, approval/[id], approval,
jobs/[id], leads/[id], photographer/[id], requirements/[id],
kb/articles/[id], kb/articles/[id]/edit, verification/[id],
verification-status/[id], help/[id], help/support-bridge

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 07:37:02 +01:00