server: highlight today's date on the calendar widget

This commit is contained in:
Bill Thiede 2025-08-19 16:57:26 -07:00
parent ea60cce86b
commit 6ca2459034
2 changed files with 22 additions and 7 deletions

View File

@ -285,6 +285,7 @@ pub fn extract_calendar_metadata_from_mail(
event_days: event_days.clone(), event_days: event_days.clone(),
caption, caption,
description_paragraphs: &description_paragraphs, description_paragraphs: &description_paragraphs,
today: Some(chrono::Local::now().date_naive()),
}; };
if let Ok(rendered) = template.render() { if let Ok(rendered) = template.render() {
body_html = Some(rendered); body_html = Some(rendered);
@ -1444,10 +1445,11 @@ pub struct IcalSummaryTemplate<'a> {
pub local_fmt_end: &'a str, pub local_fmt_end: &'a str,
pub organizer: &'a str, pub organizer: &'a str,
pub organizer_cn: &'a str, pub organizer_cn: &'a str,
pub all_days: Vec<NaiveDate>, pub all_days: Vec<chrono::NaiveDate>,
pub event_days: Vec<NaiveDate>, pub event_days: Vec<chrono::NaiveDate>,
pub caption: String, pub caption: String,
pub description_paragraphs: &'a [String], pub description_paragraphs: &'a [String],
pub today: Option<chrono::NaiveDate>,
} }
// Add this helper function to parse the DMARC XML and summarize it. // Add this helper function to parse the DMARC XML and summarize it.
@ -1800,6 +1802,7 @@ pub fn render_ical_summary(ical_data: &str) -> Result<String, ServerError> {
event_days: event_days.clone(), event_days: event_days.clone(),
caption, caption,
description_paragraphs: description_paragraphs_val, description_paragraphs: description_paragraphs_val,
today: Some(chrono::Local::now().date_naive()),
}; };
summary_parts.push(template.render()?); summary_parts.push(template.render()?);
} }

View File

@ -69,13 +69,25 @@
{% for week in all_days|batch(7) %} {% for week in all_days|batch(7) %}
<tr> <tr>
{% for day in week %} {% for day in week %}
{% if event_days.contains(day) %} {% if event_days.contains(day) && today.is_some() && today.unwrap() == day %}
<td
style="background:#ffd700; color:#222; font-weight:bold; border:2px solid #2196f3; border-radius:4px; text-align:center; box-shadow:0 0 0 2px #2196f3;">
{{ day.day() }}
</td>
{% elif event_days.contains(day) %}
<td <td
style="background:#ffd700; color:#222; font-weight:bold; border:1px solid #aaa; border-radius:4px; text-align:center;"> style="background:#ffd700; color:#222; font-weight:bold; border:1px solid #aaa; border-radius:4px; text-align:center;">
{{ day.day() }}</td> {{ day.day() }}
</td>
{% elif today.is_some() && today.unwrap() == day %}
<td
style="border:2px solid #2196f3; border-radius:4px; text-align:center; background:#e3f2fd; color:#222; box-shadow:0 0 0 2px #2196f3;">
{{ day.day() }}
</td>
{% else %} {% else %}
<td style="border:1px solid #eee; text-align:center;background:#f7f7f7;color:#bbb;">{{ <td style="border:1px solid #eee; text-align:center;background:#f7f7f7;color:#bbb;">
day.day() }}</td> {{ day.day() }}
</td>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</tr> </tr>
@ -93,4 +105,4 @@
<p style="margin: 0 0 8px 0; color:#444;">{{ p }}</p> <p style="margin: 0 0 8px 0; color:#444;">{{ p }}</p>
{% endfor %} {% endfor %}
</div> </div>
{% endif %} {% endif %}