Implement custom reminders with multiple VAlarms per event
Major Features: - Replace single ReminderType enum with Vec<VAlarm> throughout stack - Add comprehensive alarm management UI with AlarmList and AddAlarmModal components - Support relative (15min before, 2hrs after) and absolute (specific date/time) triggers - Display reminder icons in both month and week calendar views - RFC 5545 compliant VALARM implementation using calendar-models library Frontend Changes: - Create AlarmList component for displaying configured reminders - Create AddAlarmModal with full alarm configuration (trigger, timing, description) - Update RemindersTab to use new alarm management interface - Replace old ReminderType dropdown with modern multi-alarm system - Add reminder icons to event displays in month/week views - Fix event title ellipsis behavior in week view with proper CSS constraints Backend Changes: - Update all request/response models to use Vec<VAlarm> instead of String - Remove EventReminder conversion logic, pass VAlarms directly through - Maintain RFC 5545 compliance for CalDAV server compatibility UI/UX Improvements: - Improved basic details tab layout (calendar/repeat side-by-side, All Day checkbox repositioned) - Simplified reminder system to single notification type for user clarity - Font Awesome icons throughout instead of emojis for consistency - Clean modal styling with proper button padding and hover states - Removed non-standard custom message fields for maximum CalDAV compatibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -968,7 +968,12 @@ pub fn week_view(props: &WeekViewProps) -> Html {
|
||||
|
||||
// Event content
|
||||
<div class="event-content">
|
||||
<div class="event-title">{event.summary.as_ref().unwrap_or(&"Untitled".to_string())}</div>
|
||||
<div class="event-title-row">
|
||||
<span class="event-title">{event.summary.as_ref().unwrap_or(&"Untitled".to_string())}</span>
|
||||
if !event.alarms.is_empty() {
|
||||
<i class="fas fa-bell event-reminder-icon" title="Has reminders"></i>
|
||||
}
|
||||
</div>
|
||||
{if !is_all_day && duration_pixels > 30.0 {
|
||||
html! { <div class="event-time">{time_display}</div> }
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user