diff options
-rw-r--r-- | Bugzilla/Constants.pm | 5 | ||||
-rw-r--r-- | Bugzilla/User.pm | 4 | ||||
-rwxr-xr-x | checksetup.pl | 20 | ||||
-rw-r--r-- | template/en/default/account/prefs/email.html.tmpl | 2 |
4 files changed, 28 insertions, 3 deletions
diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm index 7411ca0b0..09717486e 100644 --- a/Bugzilla/Constants.pm +++ b/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/Bugzilla/User.pm b/Bugzilla/User.pm index 6beb16a8b..701c1c2b2 100644 --- a/Bugzilla/User.pm +++ b/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/checksetup.pl b/checksetup.pl index c728c4636..84c94f108 100755 --- a/checksetup.pl +++ b/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/template/en/default/account/prefs/email.html.tmpl b/template/en/default/account/prefs/email.html.tmpl index 2c75a085c..857999200 100644 --- a/template/en/default/account/prefs/email.html.tmpl +++ b/template/en/default/account/prefs/email.html.tmpl @@ -124,6 +124,8 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb description = "The keywords field changes" }, { id = constants.EVT_CC, description = "The CC field changes" }, + { id = constants.EVT_DEPEND_BLOCK, + description = "The dependency tree changes" }, { id = constants.EVT_OTHER, description = "Any field not mentioned above changes" }, ] %] |