This document describes the UI changes made to align the Terminplaner app with the legacy scheduler shown in assets/Legacy.jpg and assets/Legacy_2.jpg.
Added the following properties to support legacy features:
-
ScheduledDate (DateTime?)
- When the appointment is scheduled to occur
- Optional field (nullable)
- Example: "2025-10-04T10:00:00+00:00"
-
Duration (string?)
- Estimated time the appointment will take
- Flexible format for user-friendly input
- Examples: "30 min", "1 Std", "1-2 Std"
-
IsOutOfHome (bool)
- Flag to indicate if the appointment is an out-of-home activity
- Default: false
- When true, the appointment gets a green background (matching legacy)
- New: Added a prominent date display at the top of the page
- Shows current date in German format: "Sonntag, 4. Oktober 2025"
- Blue background (#667eea) to make it stand out
- Property:
CurrentDateDisplayin MainViewModel
Added new input fields:
- DatePicker: Select scheduled date for the appointment
- Duration Entry: Free-text field for duration (e.g., "30 min", "1-2 Std")
- Out-of-Home Checkbox: Mark appointment as outside activity
Each appointment now displays:
- Time (🕒): Shows scheduled time if set (e.g., "10:00 Uhr")
- Duration (⏱️): Shows estimated duration if set (e.g., "1 Std")
- Out-of-Home Indicator (📍): Shows "Außer Haus" label for external activities
- Green Background: Appointments with
IsOutOfHome = trueget a light green background (#C8E6C9) - Color bar, category, and action buttons remain the same
Added the same new fields:
- DatePicker for scheduled date
- Entry for duration
- Checkbox for out-of-home flag
Updated sample appointments in AppointmentService:
-
Zahnarzttermin (Dentist appointment)
- Scheduled: Today at 10:00
- Duration: "1 Std"
- Out of Home: No
- Color: Red (#FF0000)
-
Projekt abschließen (Complete project)
- Scheduled: Today at 14:00
- Duration: "2-3 Std"
- Out of Home: No
- Color: Blue (#0000FF)
-
Lebensmittel einkaufen (Grocery shopping)
- Scheduled: Today at 16:00
- Duration: "30 min"
- Out of Home: Yes → Gets green background
- Color: Green (#00FF00)
All new fields are optional:
ScheduledDateis nullable (DateTime?)Durationis nullable (string?)IsOutOfHomedefaults to false
Existing appointments without these fields will:
- Not show time/duration labels (conditional rendering with IsNotNullConverter)
- Have white background (not green)
- Work exactly as before
✅ Shows current date/day → Implemented (top of page) ✅ Shows appointment text → Already existed ✅ Shows estimated time → Implemented (duration field) ✅ Green highlighting for out-of-home → Implemented (IsOutOfHome flag) ✅ Categorization → Already existed
- Priority management: New app uses up/down arrows (more intuitive than legacy)
- Color customization: New app allows any color (more flexible)
- Editing: New app has dedicated edit page (better UX)
- Modern UI: Uses Material Design principles with rounded corners and better spacing
All changes have been tested:
- ✅ All 42 unit and integration tests pass
- ✅ API correctly serializes/deserializes new fields
- ✅ Backward compatibility maintained (optional fields)
- ✅ Update operations preserve new fields
Potential improvements for even better legacy compatibility:
- Add time picker for more precise scheduling
- Add recurring appointment support
- Add appointment filtering by date
- Add calendar view