# TODO

## Trip Form Follow-up
- [x] Update `trips/new/index.php` with the restored trip form design and PHP functionality
- [x] Update `assets/trip-form.js` selectors for the new HTML structure
- [ ] Test trip form submission end to end: create trip, verify DB write, verify redirect to view page
- [ ] Test trip edit mode
- [ ] Test mobile responsiveness for the trip form
- [ ] Complete final browser demo for the trip flow

## My Settings QA Notes
Manual verification based on the screenshots shared on 2026-04-24.

## Missing Or Incomplete In My Settings
- [ ] Replace the simplified travel-profile modal in `my_settings/my_settings.php` with the full travel-profile flow used in `my_settings/travel_profile.php`
- [x] Wire loyalty-program edit action so the row edit icon opens the dialog with the existing record instead of using `href="#"`
- [x] Wire travel-document edit action so the row edit icon opens the dialog with the existing record instead of using `href="#"`
- [x] Add delete support for loyalty programs
- [x] Add delete support for travel documents
- [x] Support multiple loyalty programs instead of only loading/saving the latest row
- [x] Support multiple travel documents instead of only loading/saving the latest row
- [x] Make the budgets period dropdown functional instead of static UI only
- [x] Load real notifications in the notifications drawer instead of always showing the empty state
- [x] Align travel-document type options with the reference flow: current code uses `ID Card`/`Other`, screenshots show `Passport`, `Visa`, `ESTA`, `Others`
- [ ] Align preference default-value fields with the reference flow: current code stores simple text fields, screenshots show selectable fields like `Meal Preference`, `Seat Preference`, `Is International`, `Paid Through`, and `Tax Inclusive`
- [ ] Verify that saved trip defaults are actually applied in trip creation
- [ ] Verify that saved expense defaults are actually applied in expense creation

### Basic Information
- [x] Basic Information tab is present and styled correctly
- [x] Personal Details card is visible
- [x] Bank Account card is visible
- [x] Delegate card is visible
- [x] Out of Office Approver card is visible

### Preferences
- [x] Email Receipt Forwarding card is visible
- [x] Trip default values can be configured
- [x] Expense default values can be configured
- [x] Trip default sample verified: `Is International = Yes`
- [x] Expense default sample verified: `Tax Inclusive = true`
- [ ] Verify saved default values are applied on actual trip creation
- [ ] Verify saved default values are applied on actual expense creation

### Travel Details
- [x] Travel Details tab is present with `Travel Profile`, `Loyalty Programs`, and `Travel Documents`
- [x] Travel Profile form is available
- [x] Travel document modal opens
- [x] Travel document type options include `Visa`, `Passport`, `ESTA`, and `Others`
- [x] Travel document sample saved successfully
- [ ] Verify travel profile save with complete personal details
- [ ] Verify loyalty program create/edit flow
- [ ] Verify travel document edit and delete flows

### Budgets
- [x] Budgets tab is present
- [x] Empty state is shown when no budget exists for the selected period
- [ ] Verify budget period dropdown changes the displayed data when budget records exist

### Notifications
- [x] Notification drawer opens
- [x] Approval-related notifications are displayed
