]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 731526: Adds an email event for product and/or component notifications
authorByron Jones <bjones@mozilla.com>
Thu, 22 Mar 2012 05:50:02 +0000 (13:50 +0800)
committerByron Jones <bjones@mozilla.com>
Thu, 22 Mar 2012 05:50:02 +0000 (13:50 +0800)
r=LpSolit, a=LpSolit

Bugzilla/Constants.pm
Bugzilla/Install/DB.pm
Bugzilla/User.pm
template/en/default/account/prefs/email.html.tmpl

index ec0c92f563aaaab2d2666617f9e949b2773adf03..6ce19ad3c1090deecad566250ee6468471728fed 100644 (file)
@@ -81,7 +81,7 @@ use Memoize;
     POS_EVENTS
     EVT_OTHER EVT_ADDED_REMOVED EVT_COMMENT EVT_ATTACHMENT EVT_ATTACHMENT_DATA
     EVT_PROJ_MANAGEMENT EVT_OPENED_CLOSED EVT_KEYWORD EVT_CC EVT_DEPEND_BLOCK
-    EVT_BUG_CREATED
+    EVT_BUG_CREATED EVT_COMPONENT
 
     NEG_EVENTS
     EVT_UNCONFIRMED EVT_CHANGED_BY_ME 
@@ -332,11 +332,13 @@ use constant EVT_KEYWORD            => 7;
 use constant EVT_CC                 => 8;
 use constant EVT_DEPEND_BLOCK       => 9;
 use constant EVT_BUG_CREATED        => 10;
+use constant EVT_COMPONENT          => 11;
 
 use constant POS_EVENTS => EVT_OTHER, EVT_ADDED_REMOVED, EVT_COMMENT, 
                            EVT_ATTACHMENT, EVT_ATTACHMENT_DATA, 
                            EVT_PROJ_MANAGEMENT, EVT_OPENED_CLOSED, EVT_KEYWORD,
-                           EVT_CC, EVT_DEPEND_BLOCK, EVT_BUG_CREATED;
+                           EVT_CC, EVT_DEPEND_BLOCK, EVT_BUG_CREATED,
+                           EVT_COMPONENT;
 
 use constant EVT_UNCONFIRMED        => 50;
 use constant EVT_CHANGED_BY_ME      => 51;
index e48a36cffaf119bc1dddb58a2a75e342c4b4cbe2..5bd8fc79031a67e56eb02ded74dd2d6fd613f90c 100644 (file)
@@ -388,7 +388,7 @@ sub update_table_definitions {
               "WHERE initialqacontact = 0");
 
     _migrate_email_prefs_to_new_table();
-    _initialize_dependency_tree_changes_email_pref();
+    _initialize_new_email_prefs();
     _change_all_mysql_booleans_to_tinyint();
 
     # make classification_id field type be consistent with DB:Schema
@@ -2393,13 +2393,16 @@ sub _migrate_email_prefs_to_new_table {
     }
 }
 
-sub _initialize_dependency_tree_changes_email_pref {
+sub _initialize_new_email_prefs {
     my $dbh = Bugzilla->dbh;
     # Check for any "new" email settings that wouldn't have been ported over
     # during the block above.  Since these settings would have otherwise
     # fallen under EVT_OTHER, we'll just clone those settings.  That way if
     # folks have already disabled all of that mail, there won't be any change.
-    my %events = ("Dependency Tree Changes" => EVT_DEPEND_BLOCK);
+    my %events = (
+        "Dependency Tree Changes" => EVT_DEPEND_BLOCK,
+        "Product/Component Changes" => EVT_COMPONENT,
+    );
 
     foreach my $desc (keys %events) {
         my $event = $events{$desc};
index 5462b33db23ffa9ad9bc36aa925f5dbb38b338c0..9e4ecb8fb684c1102c40539903b8be175e3b9da1 100644 (file)
@@ -1620,7 +1620,9 @@ our %names_to_events = (
     'attachments.mimetype'    => EVT_ATTACHMENT_DATA,
     'attachments.ispatch'     => EVT_ATTACHMENT_DATA,
     'dependson'               => EVT_DEPEND_BLOCK,
-    'blocked'                 => EVT_DEPEND_BLOCK);
+    'blocked'                 => EVT_DEPEND_BLOCK,
+    'product'                 => EVT_COMPONENT,
+    'component'               => EVT_COMPONENT);
 
 # Returns true if the user wants mail for a given bug change.
 # Note: the "+" signs before the constants suppress bareword quoting.
@@ -1639,7 +1641,7 @@ sub wants_bug_mail {
         }
         else {
             # Catch-all for any change not caught by a more specific event
-            $events{+EVT_OTHER} = 1;            
+            $events{+EVT_OTHER} = 1;
         }
 
         # If the user is in a particular role and the value of that role
index 959655d976adf277d8447544d73ef88f7b4279f6..3288481318cade4ab42810b3311ecde5b4253cf6 100644 (file)
@@ -103,6 +103,8 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb
       description = "A new $terms.bug is created" },
     { id = constants.EVT_OPENED_CLOSED,
       description = "The $terms.bug is resolved or reopened" },
+    { id = constants.EVT_COMPONENT,
+      description = "The product or component changes" },
     { id = constants.EVT_PROJ_MANAGEMENT,
       description = "The priority, status, severity, or milestone changes" },
     { id = constants.EVT_COMMENT,