Compare commits

...

3 Commits

3 changed files with 20 additions and 5 deletions

15
app.py
View File

@@ -427,7 +427,20 @@ def api_calendar_sync_all():
summary = (evt.get('summary') or '').strip() summary = (evt.get('summary') or '').strip()
if not summary: if not summary:
continue continue
text = f"{evt['time']}{summary}" if evt.get('time') else summary date_str = evt.get('date', '')
if date_str:
try:
parts = date_str.split('-')
date_label = f"{int(parts[1])}{int(parts[2])}"
except:
date_label = date_str
else:
date_label = ''
time_str = evt.get('time', '')
prefix = f"{date_label} {time_str}" if date_label and time_str else \
(f"{date_label}" if date_label else \
(f"{time_str}" if time_str else ''))
text = f"{prefix}{summary}" if prefix else summary
loc = evt.get('location', '') loc = evt.get('location', '')
if loc: if loc:
text += f" @{loc}" text += f" @{loc}"

View File

@@ -458,10 +458,12 @@
html += '<div class="sync-day">'; html += '<div class="sync-day">';
html += '<div class="sync-day-header"><span>' + day.date + '</span></div>'; html += '<div class="sync-day-header"><span>' + day.date + '</span></div>';
day.events.forEach(function(e) { day.events.forEach(function(e) {
var timeStr = e.time ? ' (' + e.time + ')' : ''; var timeStr = e.time ? e.time : '';
var dateStr = e.date || '';
html += '<div class="sync-event">' + html += '<div class="sync-event">' +
'<span class="sync-event-icon">📌</span>' + '<span class="sync-event-icon">📌</span>' +
'<span class="sync-event-text">' + esc(e.summary) + '<span class="sync-event-time">' + esc(timeStr) + '</span></span>' + '<span class="sync-event-text">' + esc(e.summary) + '</span>' +
'<span class="sync-event-meta">' + esc(dateStr) + (timeStr ? ' ' + esc(timeStr) : '') + '</span>' +
'</div>'; '</div>';
}); });
html += '</div>'; html += '</div>';

View File

@@ -1029,7 +1029,7 @@ body {
gap: 5px; gap: 5px;
width: 100%; width: 100%;
padding: 9px; padding: 9px;
margin-top: auto; margin-top: 12px;
border: 1.5px dashed var(--primary); border: 1.5px dashed var(--primary);
background: var(--primary-light); background: var(--primary-light);
color: var(--primary); color: var(--primary);
@@ -1461,7 +1461,7 @@ body {
.sync-event + .sync-event { border-top: 1px solid var(--bg); } .sync-event + .sync-event { border-top: 1px solid var(--bg); }
.sync-event-icon { flex-shrink: 0; } .sync-event-icon { flex-shrink: 0; }
.sync-event-text { flex: 1; } .sync-event-text { flex: 1; }
.sync-event-time { font-size: 11px; color: var(--text-muted); margin-left: 6px; } .sync-event-meta { font-size: 11px; color: var(--text-muted); }
.sync-modal-footer { .sync-modal-footer {
padding: 12px 20px; padding: 12px 20px;
border-top: 1px solid var(--border); border-top: 1px solid var(--border);