diff options
author | wicked%sci.fi <> | 2009-02-14 10:45:44 +0100 |
---|---|---|
committer | wicked%sci.fi <> | 2009-02-14 10:45:44 +0100 |
commit | 7d2c22642310a85bb0ffd8d7c47ac8a62dea860e (patch) | |
tree | 2ee18cecc8259a70a70badcc8afe193ce10c8320 /Bugzilla | |
parent | 1708f41aa376f3385f1bd0b90e3b1741961ec89d (diff) | |
download | bugzilla-7d2c22642310a85bb0ffd8d7c47ac8a62dea860e.tar.gz bugzilla-7d2c22642310a85bb0ffd8d7c47ac8a62dea860e.tar.xz |
Bug 333648: Add flag change to activity log and bugmail when only setter is changed - Patch by Teemu Mannermaa <wicked@sci.fi> r/a=LpSolit
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/Flag.pm | 13 | ||||
-rw-r--r-- | Bugzilla/Util.pm | 28 |
2 files changed, 9 insertions, 32 deletions
diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index 618cd3ef4..f0286575f 100644 --- a/Bugzilla/Flag.pm +++ b/Bugzilla/Flag.pm @@ -515,7 +515,7 @@ sub snapshot { 'attach_id' => $attach_id }); my @summaries; foreach my $flag (@$flags) { - my $summary = $flag->type->name . $flag->status; + my $summary = $flag->setter->nick . ':' . $flag->type->name . $flag->status; $summary .= "(" . $flag->requestee->login . ")" if $flag->requestee; push(@summaries, $summary); } @@ -625,10 +625,13 @@ sub update_activity { my ($bug_id, $attach_id, $timestamp, $old_summaries, $new_summaries) = @_; my $dbh = Bugzilla->dbh; - $old_summaries = join(", ", @$old_summaries); - $new_summaries = join(", ", @$new_summaries); - my ($removed, $added) = diff_strings($old_summaries, $new_summaries); - if ($removed ne $added) { + my ($removed, $added) = diff_arrays($old_summaries, $new_summaries); + if (scalar @$removed || scalar @$added) { + # Remove flag requester/setter information + foreach (@$removed, @$added) { s/^\S+:// } + + $removed = join(", ", @$removed); + $added = join(", ", @$added); my $field_id = get_field_id('flagtypes.name'); $dbh->do('INSERT INTO bugs_activity (bug_id, attach_id, who, bug_when, fieldid, removed, added) diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 3573ad148..9122ed3cf 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -37,7 +37,7 @@ use base qw(Exporter); css_class_quote html_light_quote url_decode i_am_cgi get_netaddr correct_urlbase lsearch ssl_require_redirect use_attachbase - diff_arrays diff_strings + diff_arrays trim wrap_hard wrap_comment find_wrap_point format_time format_time_decimal validate_date validate_time @@ -345,23 +345,6 @@ sub trim { return $str; } -sub diff_strings { - my ($oldstr, $newstr) = @_; - - # Split the old and new strings into arrays containing their values. - $oldstr =~ s/[\s,]+/ /g; - $newstr =~ s/[\s,]+/ /g; - my @old = split(" ", $oldstr); - my @new = split(" ", $newstr); - - my ($rem, $add) = diff_arrays(\@old, \@new); - - my $removed = join (", ", @$rem); - my $added = join (", ", @$add); - - return ($removed, $added); -} - sub wrap_comment { my ($comment, $cols) = @_; my $wrappedcomment = ""; @@ -681,7 +664,6 @@ Bugzilla::Util - Generic utility functions for bugzilla # Functions for manipulating strings $val = trim(" abc "); - ($removed, $added) = diff_strings($old, $new); $wrapped = wrap_comment($comment); # Functions for formatting time @@ -862,14 +844,6 @@ If the item is not in the list, returns -1. Removes any leading or trailing whitespace from a string. This routine does not modify the existing string. -=item C<diff_strings($oldstr, $newstr)> - -Takes two strings containing a list of comma- or space-separated items -and returns what items were removed from or added to the new one, -compared to the old one. Returns a list, where the first entry is a scalar -containing removed items, and the second entry is a scalar containing added -items. - =item C<wrap_hard($string, $size)> Wraps a string, so that a line is I<never> longer than C<$size>. |