summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwicked%sci.fi <>2009-02-14 10:45:44 +0100
committerwicked%sci.fi <>2009-02-14 10:45:44 +0100
commit7d2c22642310a85bb0ffd8d7c47ac8a62dea860e (patch)
tree2ee18cecc8259a70a70badcc8afe193ce10c8320
parent1708f41aa376f3385f1bd0b90e3b1741961ec89d (diff)
downloadbugzilla-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
-rw-r--r--Bugzilla/Flag.pm13
-rw-r--r--Bugzilla/Util.pm28
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>.