Spaces:
Sleeping
Sleeping
| # Asset Request Management Updates | |
| ## Summary of Changes | |
| ### 1. Custom Action Dialog Component | |
| Created a new custom dialog component (`ActionDialog.tsx`) for approve/reject actions that: | |
| - Provides a better user experience with custom styling | |
| - Shows request details (ID and employee name) prominently | |
| - Has built-in validation and error handling | |
| - Displays character count for comments | |
| - Uses backdrop blur effect for better focus | |
| - Includes loading states during submission | |
| ### 2. Acknowledgement Status Added | |
| Extended the asset request lifecycle to include an "acknowledged" status: | |
| **Type Updates (`asset-request.ts`):** | |
| - Added `'acknowledged'` to `RequestStatus` type | |
| - Added new fields to `AssetRequest` interface: | |
| - `acknowledgedDate: string | null` | |
| - `acknowledgedBy: number | null` | |
| - `acknowledgementComments: string | null` | |
| - Updated status transition rules: `assigned` β `acknowledged` | |
| - Added label: "Acknowledged" | |
| - Added color: purple theme for acknowledged status | |
| **Status Flow:** | |
| ``` | |
| pending β approved β assigned β acknowledged | |
| β rejected | |
| ``` | |
| ### 3. Updated Components | |
| **AssetRequestReview.tsx:** | |
| - Replaced shadcn Dialog with custom ActionDialog component | |
| - Simplified approve/reject handlers | |
| - Removed local state management for comments (now handled by ActionDialog) | |
| - Cleaner code with better separation of concerns | |
| **MyAssetRequests.tsx:** | |
| - Added acknowledgement status icon and color | |
| - Added "Acknowledged" tab to display acknowledged requests | |
| - Added acknowledgement information section showing: | |
| - Acknowledged date | |
| - Acknowledgement comments | |
| - Updated tab grid from 5 to 6 columns | |
| **assetRequestApi.ts:** | |
| - Updated `createSafeAssetRequest` helper to include acknowledgement fields | |
| - Ensures backward compatibility with API responses | |
| ### 4. Features | |
| **Custom Dialog Benefits:** | |
| - β Better visual hierarchy | |
| - β Clearer action context | |
| - β Inline validation feedback | |
| - β Improved accessibility | |
| - β Consistent styling across approve/reject actions | |
| - β Backdrop click to close | |
| - β Escape key support (via onClose) | |
| **Acknowledgement Status Benefits:** | |
| - β Employees can confirm receipt of assigned assets | |
| - β Complete audit trail of asset request lifecycle | |
| - β Optional comments for acknowledgement | |
| - β Clear visual distinction with purple badge | |
| - β Separate tab for tracking acknowledged requests | |
| ## Usage | |
| ### Approve/Reject Dialog | |
| The custom dialog automatically handles: | |
| - Comment validation (minimum 5 characters) | |
| - Character count display | |
| - Loading states | |
| - Error messages | |
| - Form submission | |
| ### Acknowledgement Flow | |
| 1. Admin assigns assets to approved request (status: `assigned`) | |
| 2. Employee receives notification | |
| 3. Employee acknowledges receipt (status: `acknowledged`) | |
| 4. Optional: Employee can add comments during acknowledgement | |
| ## API Integration Notes | |
| The frontend now expects these additional fields in API responses: | |
| ```typescript | |
| { | |
| acknowledgedDate: string | null, | |
| acknowledgedBy: number | null, | |
| acknowledgementComments: string | null | |
| } | |
| ``` | |
| If the backend doesn't provide these fields yet, the frontend will safely default them to `null`. | |
| ## Next Steps | |
| To fully implement acknowledgement functionality: | |
| 1. Add acknowledgement API endpoint (e.g., `PUT /api/AssetRequests/{id}/acknowledge`) | |
| 2. Add acknowledgement button in MyAssetRequests for assigned requests | |
| 3. Create acknowledgement dialog similar to approve/reject | |
| 4. Update backend to support acknowledgement status transition | |
| 5. Add notifications for acknowledgement events | |