summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Legnitto <clegnitto@mozilla.com>2010-10-28 15:19:51 +0200
committerFrédéric Buclin <LpSolit@gmail.com>2010-10-28 15:19:51 +0200
commita6041007c544e7b2a8ae703c8e45e635e2ace991 (patch)
tree0491fa7a4263d959e95781bcaf007338f5984a0a
parent178eb04938393f06f60ee1a21df5d2a955c93634 (diff)
downloadbugzilla-a6041007c544e7b2a8ae703c8e45e635e2ace991.tar.gz
bugzilla-a6041007c544e7b2a8ae703c8e45e635e2ace991.tar.xz
Bug 585802: Change the cc/user autocomplete (and backend) usermatching to ignore spaces / search on space separated names
r/a=mkanat
-rw-r--r--Bugzilla/Bug.pm5
-rw-r--r--Bugzilla/User.pm9
-rw-r--r--js/field.js2
3 files changed, 10 insertions, 6 deletions
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm
index 026244db9..abc00c298 100644
--- a/Bugzilla/Bug.pm
+++ b/Bugzilla/Bug.pm
@@ -1134,7 +1134,7 @@ sub send_changes {
? $changes->{cc}->[0] : '';
my %forced = (
- cc => [split(/[\s,]+/, $old_cc)],
+ cc => [split(/[,;]+/, $old_cc)],
owner => $old_own,
qacontact => $old_qa,
changer => $user,
@@ -1384,10 +1384,11 @@ sub _check_cc {
return [map {$_->id} @{$component->initial_cc}] unless $ccs;
# Allow comma-separated input as well as arrayrefs.
- $ccs = [split(/[\s,]+/, $ccs)] if !ref $ccs;
+ $ccs = [split(/[,;]+/, $ccs)] if !ref $ccs;
my %cc_ids;
foreach my $person (@$ccs) {
+ $person = trim($person);
next unless $person;
my $id = login_to_id($person, THROW_ERROR);
$cc_ids{$id} = 1;
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm
index bf0a9e7e9..de2d0dcc7 100644
--- a/Bugzilla/User.pm
+++ b/Bugzilla/User.pm
@@ -1222,6 +1222,8 @@ sub match {
my $user = Bugzilla->user;
my $dbh = Bugzilla->dbh;
+ $str = trim($str);
+
my @users = ();
return \@users if $str =~ /^\s*$/;
@@ -1360,7 +1362,7 @@ sub match_field {
#Concatenate login names, so that we have a common way to handle them.
my $raw_field;
if (ref $data->{$field}) {
- $raw_field = join(" ", @{$data->{$field}});
+ $raw_field = join(",", @{$data->{$field}});
}
else {
$raw_field = $data->{$field};
@@ -1378,7 +1380,7 @@ sub match_field {
$data->{$field} = '';
}
elsif ($fields->{$field}->{'type'} eq 'multi') {
- @queries = split(/[\s,;]+/, $raw_field);
+ @queries = split(/[,;]+/, $raw_field);
# We will repopulate it later if a match is found, else it must
# be undefined.
delete $data->{$field};
@@ -1402,6 +1404,7 @@ sub match_field {
my @logins;
for my $query (@queries) {
+ $query = trim($query);
my $users = match(
$query, # match string
$limit, # match limit
@@ -1653,7 +1656,7 @@ sub is_global_watcher {
my $self = shift;
if (!defined $self->{'is_global_watcher'}) {
- my @watchers = split(/[,\s]+/, Bugzilla->params->{'globalwatchers'});
+ my @watchers = split(/[,;]+/, Bugzilla->params->{'globalwatchers'});
$self->{'is_global_watcher'} = scalar(grep { $_ eq $self->login } @watchers) ? 1 : 0;
}
return $self->{'is_global_watcher'};
diff --git a/js/field.js b/js/field.js
index a70e41a64..6d78a60ce 100644
--- a/js/field.js
+++ b/js/field.js
@@ -724,7 +724,7 @@ YAHOO.bugzilla.userAutocomplete = {
userAutoComp.useIFrame = true;
userAutoComp.resultTypeList = false;
if( multiple == true ){
- userAutoComp.delimChar = [","," "];
+ userAutoComp.delimChar = [","];
}
}