feat(calendars): name the contact-filled calendars, and hold their delete (#76)
The special-dates mirrors were the last unexplained exclusion: writable, visible, syncing, and still not offered as an event target, because their events belong to the contact sync and anything authored there is removed on the next pass. Their rows now say "Filled from your contacts", and the pickers' footer names that third reason alongside switched-off and read-only. Their delete stays where it is rather than disappearing, but is held while special dates are on: reconcileCalendars recreates a missing mirror for an enabled type on the very next sync, so the delete would look like it worked and then quietly undo itself. The button dims, an info card in the editor says why and points at Settings → Special dates, and turning the feature off gives the delete back — at which point a leftover mirror really is the user's to remove. The lock is derived from the enabled types' stored calendar ids, which is what the sync itself reconciles against: a mirror whose type is switched off is already an orphan the next sync would delete anyway, so it stays deletable by hand. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
the device, so the switch they used to have could not have shown you anything
|
||||
— the calendar simply looked broken. Whether an account syncs a calendar stays
|
||||
that account's own app's decision ([#78]).
|
||||
- The birthday and anniversary calendars Calendula fills from your contacts are
|
||||
marked **Filled from your contacts**, which is why they can't be picked for a
|
||||
new event: anything you put there would be removed again on the next sync.
|
||||
Deleting one is held back while special dates are switched on — Calendula
|
||||
would simply create it again — and the calendar's editor says so; turn the
|
||||
feature off under Settings → Special dates and the delete works as usual
|
||||
([#76]).
|
||||
- The calendar picker in the event form and in the .ics import screen now ends
|
||||
with a **"Missing a calendar?"** row that opens Settings → Calendars, where
|
||||
those marks then explain why a calendar isn't offered ([#76]).
|
||||
|
||||
Reference in New Issue
Block a user