Make notification preferences more flexible
Problem To Solve
-
Custom
notification levels are sort of confusing because they are a mashup ofWatch
andParticipate
. - 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
Custom
is selected and a given type of notification is disabled, it also disables it for issues that you are participating in. - Given this change,
Custom
notifications are more or less the same thing asWatch
notifications 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
Watch
andParticipate
and have them both be enabled at the same time.
Proposal
- Remove
Custom
- Add the same applicable checkboxes to both
Participate
andWatch
. - 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
Participate
such asnew_release
. In this case, it would only be available at theWatch
level. - If a user selects
On mention
orDisabled
, disable/uncheck all notifications fromWatch
andParticipate
. - If a user switches from
On mention
orDisabled
toParticipate
, allParticipate
notifications are enabled by default and noWatch
notifications are enabled by default. - If a user switches from
On mention
orDisabled
toWatch
, allWatch
and allParticipate
notifications are enabled by default.
Migration
- If user has
Custom
selected, copy the activeCustom
notification settings to bothWatch
andParticipate
- If a user has
Watch
selected, make all checkboxes in bothWatch
andParticipate
active. - If user has
On mention
orDisabled
, do not make any checkboxes inWatch
orParticipate
active.
UX
TBD
Tests
- Please do