Make notification preferences more flexible

Problem To Solve

  1. Custom notification levels are sort of confusing because they are a mashup of Watch and Participate.
  2. 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.
  3. !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.
  4. Given this change, Custom notifications are more or less the same thing as Watch notifications with the added ability to customize which events trigger a notification.
  5. Additionally, this is not super flexible as I can't define independent notification settings for both Watch and Participate and have them both be enabled at the same time.

Proposal

  1. Remove Custom
  2. Add the same applicable checkboxes to both Participate and Watch.
  3. 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 as new_release. In this case, it would only be available at the Watch level.
  4. If a user selects On mention or Disabled, disable/uncheck all notifications from Watch and Participate.
  5. If a user switches from On mention or Disabled to Participate, all Participate notifications are enabled by default and no Watch notifications are enabled by default.
  6. If a user switches from On mention or Disabled to Watch, all Watch and all Participate notifications are enabled by default.

Migration

  1. If user has Custom selected, copy the active Custom notification settings to both Watch and Participate
  2. If a user has Watch selected, make all checkboxes in both Watch and Participate active.
  3. If user has On mention or Disabled, do not make any checkboxes in Watch or Participate active.

UX

TBD

Tests

  • Please do

Tier