# Summary Added a new HRD-only submenu `รายชื่อพนักงานทั้งหมด` under `ข้อมูลหลัก` while keeping the existing `พนักงาน` menu and route unchanged. The new page provides a searchable employee directory and a protected employee detail page with training-hour and K/S/A summaries. # Files Changed - `src/config/nav-config.ts` - `src/hooks/use-breadcrumbs.tsx` - `src/app/dashboard/employee-directory/page.tsx` - `src/app/dashboard/employee-directory/[id]/page.tsx` - `src/features/employee-directory/components/employee-directory-action-menu.tsx` - `src/features/employee-directory/components/employee-directory-columns.tsx` - `src/features/employee-directory/components/employee-directory-table.tsx` - `src/features/employee-directory/components/employee-directory-listing.tsx` - `src/features/employee-directory/components/employee-directory-detail-page.tsx` - `src/features/employee-directory/server/employee-directory-data.ts` - `docs/management-change-add-employee-directory-menu-review.md` # Sidebar Changes - Kept the existing `พนักงาน` submenu under `ข้อมูลหลัก` - Added a new submenu: - `รายชื่อพนักงานทั้งหมด` - route: `/dashboard/employee-directory` - Visibility is limited to HRD/Admin via existing role-based navigation rules # New Routes - `/dashboard/employee-directory` - `/dashboard/employee-directory/[id]` # Existing Employee Menu Kept - The existing `พนักงาน` menu remains unchanged - Existing route `/dashboard/users` remains unchanged - Existing users page behavior is untouched # Employee Directory Page - Reuses the existing users data source for minimal-impact implementation - Search supports the existing backend search across: - employee code - employee name - email - department - position - Table columns: - รหัสพนักงาน - ชื่อพนักงาน - ฝ่าย - ตำแหน่ง - Action - Action uses a compact three-dot menu with `ดูข้อมูลพนักงาน` # Employee Detail Page - Protected server-rendered detail page for HRD/Admin only - Sections included: 1. ข้อมูลทั่วไปพนักงาน 2. ข้อมูลชั่วโมงอบรม 3. K / S / A Summary 4. รายการอบรม - Training summary uses current-year targets and current-year approved/pending/rejected hours - Training records list links back to the existing training record detail pages # Permission Rules - HRD/Admin: - can see the new menu - can access the directory list - can open employee detail pages - Employee: - does not see the menu - cannot access the routes directly because the pages use `requireHRDDashboardAccess()` # Responsive Notes - The directory table uses the existing scrollable table container - The action column is compact and pinned-friendly - Detail sections stack into single-column layouts on smaller screens - Training records in the detail page use horizontal scrolling inside the section instead of expanding page width # Manual Test Checklist - [ ] Existing `พนักงาน` menu remains - [ ] New `รายชื่อพนักงานทั้งหมด` menu appears under `ข้อมูลหลัก` - [ ] HRD/Admin can open employee directory - [ ] Employee cannot see employee directory menu - [ ] Employee cannot access employee directory by URL - [ ] Employee directory table shows employee code - [ ] Employee directory table shows employee name - [ ] Employee directory table shows department/faction - [ ] Employee directory table shows position - [ ] Action opens employee detail - [ ] Detail page shows general employee data - [ ] Detail page shows training hour summary - [ ] Detail page shows K/S/A summary - [ ] Detail page shows training records - [ ] Mobile layout works - [ ] Existing `พนักงาน` page still works # Known Limitations - The current schema does not have a separate dedicated `ฝ่าย` field, so this page displays the available department data in that slot. - The summary cards use the current year for target and hour progress calculations. - Certificate status in the training-record list is shown as file count with a link to the existing training record detail page.