diff --git a/webtools/bugzilla/Bugzilla/Constants.pm b/webtools/bugzilla/Bugzilla/Constants.pm index 7411ca0b040..09717486ee6 100644 --- a/webtools/bugzilla/Bugzilla/Constants.pm +++ b/webtools/bugzilla/Bugzilla/Constants.pm @@ -78,7 +78,7 @@ use base qw(Exporter); 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_PROJ_MANAGEMENT EVT_OPENED_CLOSED EVT_KEYWORD EVT_CC EVT_DEPEND_BLOCK NEG_EVENTS EVT_UNCONFIRMED EVT_CHANGED_BY_ME @@ -214,11 +214,12 @@ use constant EVT_PROJ_MANAGEMENT => 5; use constant EVT_OPENED_CLOSED => 6; use constant EVT_KEYWORD => 7; use constant EVT_CC => 8; +use constant EVT_DEPEND_BLOCK => 9; 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_CC, EVT_DEPEND_BLOCK; use constant EVT_UNCONFIRMED => 50; use constant EVT_CHANGED_BY_ME => 51; diff --git a/webtools/bugzilla/Bugzilla/User.pm b/webtools/bugzilla/Bugzilla/User.pm index 6beb16a8b2e..701c1c2b229 100644 --- a/webtools/bugzilla/Bugzilla/User.pm +++ b/webtools/bugzilla/Bugzilla/User.pm @@ -1085,7 +1085,9 @@ our %names_to_events = ( 'Target Milestone' => EVT_PROJ_MANAGEMENT, 'Attachment description' => EVT_ATTACHMENT_DATA, 'Attachment mime type' => EVT_ATTACHMENT_DATA, - 'Attachment is patch' => EVT_ATTACHMENT_DATA); + 'Attachment is patch' => EVT_ATTACHMENT_DATA, + 'BugsThisDependsOn' => EVT_DEPEND_BLOCK, + 'OtherBugsDependingOnThis' => EVT_DEPEND_BLOCK); # Returns true if the user wants mail for a given bug change. # Note: the "+" signs before the constants suppress bareword quoting. diff --git a/webtools/bugzilla/checksetup.pl b/webtools/bugzilla/checksetup.pl index c728c46367c..84c94f10811 100755 --- a/webtools/bugzilla/checksetup.pl +++ b/webtools/bugzilla/checksetup.pl @@ -3890,6 +3890,26 @@ if ($dbh->bz_column_info("profiles", "emailflags")) { $dbh->bz_drop_column("profiles", "emailflags"); } +# 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); + + foreach my $desc (keys %events) { + my $event = $events{$desc}; + $sth = $dbh->prepare("SELECT count(*) FROM email_setting WHERE event = $event"); + $sth->execute(); + if (!($sth->fetchrow_arrayref()->[0])) { + # No settings in the table yet, so we assume that this is the + # first time it's being set. + print "Initializing \"$desc\" email_setting ...\n" unless $silent; + CloneEmailEvent(EVT_OTHER, $event); + } + } +} + sub CloneEmailEvent { my ($source, $target) = @_; diff --git a/webtools/bugzilla/template/en/default/account/prefs/email.html.tmpl b/webtools/bugzilla/template/en/default/account/prefs/email.html.tmpl index 2c75a085c9a..8579992008b 100644 --- a/webtools/bugzilla/template/en/default/account/prefs/email.html.tmpl +++ b/webtools/bugzilla/template/en/default/account/prefs/email.html.tmpl @@ -124,6 +124,8 @@ document.write('