Make notification preferences more flexible
Problem To Solve
-
Customnotification levels are sort of confusing because they are a mashup ofWatchandParticipate. - As discovered in this issue (#271252), if my notifications are set to
Custom, I still receive notifications for unchecked events for issues that I'm participating in. -
!57436 (closed) changed this behavior such that when
Customis selected and a given type of notification is disabled, it also disables it for issues that you are participating in. - Given this change,
Customnotifications are more or less the same thing asWatchnotifications with the added ability to customize which events trigger a notification. - Additionally, this is not super flexible as I can't define independent notification settings for both
WatchandParticipateand have them both be enabled at the same time.
Proposal
- Remove
Custom - Add the same applicable checkboxes to both
ParticipateandWatch. - You can have notifications enabled for both and they can be set independent of one another. There are certain fringe cases where a notification is not available within
Participatesuch asnew_release. In this case, it would only be available at theWatchlevel. - If a user selects
On mentionorDisabled, disable/uncheck all notifications fromWatchandParticipate. - If a user switches from
On mentionorDisabledtoParticipate, allParticipatenotifications are enabled by default and noWatchnotifications are enabled by default. - If a user switches from
On mentionorDisabledtoWatch, allWatchand allParticipatenotifications are enabled by default.
Migration
- If user has
Customselected, copy the activeCustomnotification settings to bothWatchandParticipate - If a user has
Watchselected, make all checkboxes in bothWatchandParticipateactive. - If user has
On mentionorDisabled, do not make any checkboxes inWatchorParticipateactive.
UX
TBD
Tests
- Please do