diff options
Diffstat (limited to 'Bugzilla/Keyword.pm')
-rw-r--r-- | Bugzilla/Keyword.pm | 126 |
1 files changed, 64 insertions, 62 deletions
diff --git a/Bugzilla/Keyword.pm b/Bugzilla/Keyword.pm index 61038f602..35dc2f594 100644 --- a/Bugzilla/Keyword.pm +++ b/Bugzilla/Keyword.pm @@ -23,76 +23,78 @@ use Bugzilla::Util; use constant IS_CONFIG => 1; use constant DB_COLUMNS => qw( - keyworddefs.id - keyworddefs.name - keyworddefs.description - keyworddefs.is_active + keyworddefs.id + keyworddefs.name + keyworddefs.description + keyworddefs.is_active ); use constant DB_TABLE => 'keyworddefs'; use constant VALIDATORS => { - name => \&_check_name, - description => \&_check_description, - is_active => \&_check_is_active, + name => \&_check_name, + description => \&_check_description, + is_active => \&_check_is_active, }; use constant UPDATE_COLUMNS => qw( - name - description - is_active + name + description + is_active ); ############################### #### Accessors ###### ############################### -sub description { return $_[0]->{'description'}; } +sub description { return $_[0]->{'description'}; } sub bug_count { - my ($self) = @_; - return $self->{'bug_count'} if defined $self->{'bug_count'}; - ($self->{'bug_count'}) = - Bugzilla->dbh->selectrow_array( - 'SELECT COUNT(*) FROM keywords WHERE keywordid = ?', - undef, $self->id); - return $self->{'bug_count'}; + my ($self) = @_; + return $self->{'bug_count'} if defined $self->{'bug_count'}; + ($self->{'bug_count'}) + = Bugzilla->dbh->selectrow_array( + 'SELECT COUNT(*) FROM keywords WHERE keywordid = ?', + undef, $self->id); + return $self->{'bug_count'}; } ############################### #### Mutators ##### ############################### -sub set_name { $_[0]->set('name', $_[1]); } +sub set_name { $_[0]->set('name', $_[1]); } sub set_description { $_[0]->set('description', $_[1]); } -sub set_is_active { $_[0]->set('is_active', $_[1]); } +sub set_is_active { $_[0]->set('is_active', $_[1]); } ############################### #### Subroutines ###### ############################### sub get_all_with_bug_count { - my $class = shift; - my $dbh = Bugzilla->dbh; - my $keywords = - $dbh->selectall_arrayref('SELECT ' - . join(', ', $class->_get_db_columns) . ', + my $class = shift; + my $dbh = Bugzilla->dbh; + my $keywords = $dbh->selectall_arrayref( + 'SELECT ' . join(', ', $class->_get_db_columns) . ', COUNT(keywords.bug_id) AS bug_count FROM keyworddefs LEFT JOIN keywords - ON keyworddefs.id = keywords.keywordid ' . - $dbh->sql_group_by('keyworddefs.id', - 'keyworddefs.name, - keyworddefs.description') . ' - ORDER BY keyworddefs.name', {'Slice' => {}}); - if (!$keywords) { - return []; - } - - foreach my $keyword (@$keywords) { - bless($keyword, $class); - } - return $keywords; + ON keyworddefs.id = keywords.keywordid ' + . $dbh->sql_group_by( + 'keyworddefs.id', 'keyworddefs.name, + keyworddefs.description' + ) . ' + ORDER BY keyworddefs.name', + {'Slice' => {}} + ); + if (!$keywords) { + return []; + } + + foreach my $keyword (@$keywords) { + bless($keyword, $class); + } + return $keywords; } ############################### @@ -100,33 +102,33 @@ sub get_all_with_bug_count { ############################### sub _check_name { - my ($self, $name) = @_; - - $name = trim($name); - if (!defined $name or $name eq "") { - ThrowUserError("keyword_blank_name"); - } - if ($name =~ /[\s,]/) { - ThrowUserError("keyword_invalid_name"); - } - - # We only want to validate the non-existence of the name if - # we're creating a new Keyword or actually renaming the keyword. - if (!ref($self) || $self->name ne $name) { - my $keyword = new Bugzilla::Keyword({ name => $name }); - ThrowUserError("keyword_already_exists", { name => $name }) if $keyword; - } - - return $name; + my ($self, $name) = @_; + + $name = trim($name); + if (!defined $name or $name eq "") { + ThrowUserError("keyword_blank_name"); + } + if ($name =~ /[\s,]/) { + ThrowUserError("keyword_invalid_name"); + } + + # We only want to validate the non-existence of the name if + # we're creating a new Keyword or actually renaming the keyword. + if (!ref($self) || $self->name ne $name) { + my $keyword = new Bugzilla::Keyword({name => $name}); + ThrowUserError("keyword_already_exists", {name => $name}) if $keyword; + } + + return $name; } sub _check_description { - my ($self, $desc) = @_; - $desc = trim($desc); - if (!defined $desc or $desc eq '') { - ThrowUserError("keyword_blank_description"); - } - return $desc; + my ($self, $desc) = @_; + $desc = trim($desc); + if (!defined $desc or $desc eq '') { + ThrowUserError("keyword_blank_description"); + } + return $desc; } sub _check_is_active { return $_[1] ? 1 : 0 } |