BMO/ComponentWatch

< BMO

component watching

a non-generic implementation, as an extension, would involve:

schema

  • table component_watch (user_id, product_id, component_id)

preferences

  • add a hook to the end of account/prefs/email.html.tmpl or add a component/product watching tab using the existing hook
  • add a select for selecting multiple products and/or components
  • allow users to watch individual components, or entire products

code

  • hook bugmail_recipients
  • simple join to bring in watchers, update recipients hash

issues

  • need to send notification when a bug changes from a watched component/product
  • ensure users can't continue to watch items when their access is revoked
  • bugmail needs to be extended to support a new relationship type (component/product watching)

ui sketch

 Product   [ product name |v]
 Component [ __any__      |v]
 ( Add )
 
 You are currently watching:
 Select an item to stop watching it.
 
     Product         Component
 [ ] product name    __any__
 [ ] another prod    some component

 
 ( Submit Changes )

need to support non-javascript, so always validate the product & component match.