summaryrefslogtreecommitdiffstats
path: root/extensions/TrackingFlags/lib/Flag/Bug.pm
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/TrackingFlags/lib/Flag/Bug.pm')
-rw-r--r--extensions/TrackingFlags/lib/Flag/Bug.pm168
1 files changed, 81 insertions, 87 deletions
diff --git a/extensions/TrackingFlags/lib/Flag/Bug.pm b/extensions/TrackingFlags/lib/Flag/Bug.pm
index 7be661720..9d9c5ce8c 100644
--- a/extensions/TrackingFlags/lib/Flag/Bug.pm
+++ b/extensions/TrackingFlags/lib/Flag/Bug.pm
@@ -24,32 +24,26 @@ use Scalar::Util qw(blessed);
#### Initialization ####
###############################
-use constant DEFAULT_FLAG_BUG => {
- 'id' => 0,
- 'tracking_flag_id' => 0,
- 'bug_id' => 0,
- 'value' => '---',
-};
+use constant DEFAULT_FLAG_BUG =>
+ {'id' => 0, 'tracking_flag_id' => 0, 'bug_id' => 0, 'value' => '---',};
use constant DB_TABLE => 'tracking_flags_bugs';
use constant DB_COLUMNS => qw(
- id
- tracking_flag_id
- bug_id
- value
+ id
+ tracking_flag_id
+ bug_id
+ value
);
use constant LIST_ORDER => 'id';
use constant UPDATE_COLUMNS => qw(
- value
+ value
);
-use constant VALIDATORS => {
- tracking_flag_id => \&_check_tracking_flag,
- value => \&_check_value,
-};
+use constant VALIDATORS =>
+ {tracking_flag_id => \&_check_tracking_flag, value => \&_check_value,};
use constant AUDIT_CREATES => 0;
use constant AUDIT_UPDATES => 0;
@@ -60,67 +54,67 @@ use constant AUDIT_REMOVES => 0;
###############################
sub new {
- my $invocant = shift;
- my $class = ref($invocant) || $invocant;
- my ($param) = @_;
-
- my $self;
- if ($param) {
- $self = $class->SUPER::new(@_);
- if (!$self) {
- $self = DEFAULT_FLAG_BUG;
- bless($self, $class);
- }
- }
- else {
- $self = DEFAULT_FLAG_BUG;
- bless($self, $class);
+ my $invocant = shift;
+ my $class = ref($invocant) || $invocant;
+ my ($param) = @_;
+
+ my $self;
+ if ($param) {
+ $self = $class->SUPER::new(@_);
+ if (!$self) {
+ $self = DEFAULT_FLAG_BUG;
+ bless($self, $class);
}
+ }
+ else {
+ $self = DEFAULT_FLAG_BUG;
+ bless($self, $class);
+ }
- return $self
+ return $self;
}
sub match {
- my $class = shift;
- my $bug_flags = $class->SUPER::match(@_);
- preload_all_the_things($bug_flags);
- return $bug_flags;
+ my $class = shift;
+ my $bug_flags = $class->SUPER::match(@_);
+ preload_all_the_things($bug_flags);
+ return $bug_flags;
}
sub remove_from_db {
- my ($self) = @_;
- $self->SUPER::remove_from_db();
- $self->{'id'} = $self->{'tracking_flag_id'} = $self->{'bug_id'} = 0;
- $self->{'value'} = '---';
+ my ($self) = @_;
+ $self->SUPER::remove_from_db();
+ $self->{'id'} = $self->{'tracking_flag_id'} = $self->{'bug_id'} = 0;
+ $self->{'value'} = '---';
}
sub preload_all_the_things {
- my ($bug_flags) = @_;
- my $cache = Bugzilla->request_cache;
-
- # Preload tracking flag objects
- my @tracking_flag_ids;
- foreach my $bug_flag (@$bug_flags) {
- if (exists $cache->{'tracking_flags'}
- && $cache->{'tracking_flags'}->{$bug_flag->tracking_flag_id})
- {
- $bug_flag->{'tracking_flag'}
- = $cache->{'tracking_flags'}->{$bug_flag->tracking_flag_id};
- next;
- }
- push(@tracking_flag_ids, $bug_flag->tracking_flag_id);
+ my ($bug_flags) = @_;
+ my $cache = Bugzilla->request_cache;
+
+ # Preload tracking flag objects
+ my @tracking_flag_ids;
+ foreach my $bug_flag (@$bug_flags) {
+ if (exists $cache->{'tracking_flags'}
+ && $cache->{'tracking_flags'}->{$bug_flag->tracking_flag_id})
+ {
+ $bug_flag->{'tracking_flag'}
+ = $cache->{'tracking_flags'}->{$bug_flag->tracking_flag_id};
+ next;
}
+ push(@tracking_flag_ids, $bug_flag->tracking_flag_id);
+ }
- return unless @tracking_flag_ids;
+ return unless @tracking_flag_ids;
- my $tracking_flags
- = Bugzilla::Extension::TrackingFlags::Flag->match({ id => \@tracking_flag_ids });
- my %tracking_flag_hash = map { $_->flag_id => $_ } @$tracking_flags;
+ my $tracking_flags = Bugzilla::Extension::TrackingFlags::Flag->match(
+ {id => \@tracking_flag_ids});
+ my %tracking_flag_hash = map { $_->flag_id => $_ } @$tracking_flags;
- foreach my $bug_flag (@$bug_flags) {
- next if exists $bug_flag->{'tracking_flag'};
- $bug_flag->{'tracking_flag'} = $tracking_flag_hash{$bug_flag->tracking_flag_id};
- }
+ foreach my $bug_flag (@$bug_flags) {
+ next if exists $bug_flag->{'tracking_flag'};
+ $bug_flag->{'tracking_flag'} = $tracking_flag_hash{$bug_flag->tracking_flag_id};
+ }
}
##############################
@@ -128,15 +122,15 @@ sub preload_all_the_things {
##############################
sub update_all_values {
- my ($invocant, $params) = @_;
- my $dbh = Bugzilla->dbh;
- $dbh->do(
- "UPDATE tracking_flags_bugs SET value=? WHERE tracking_flag_id=? AND value=?",
- undef,
- $params->{new_value},
- $params->{value_obj}->tracking_flag_id,
- $params->{old_value},
- );
+ my ($invocant, $params) = @_;
+ my $dbh = Bugzilla->dbh;
+ $dbh->do(
+ "UPDATE tracking_flags_bugs SET value=? WHERE tracking_flag_id=? AND value=?",
+ undef,
+ $params->{new_value},
+ $params->{value_obj}->tracking_flag_id,
+ $params->{old_value},
+ );
}
###############################
@@ -144,19 +138,21 @@ sub update_all_values {
###############################
sub _check_value {
- my ($invocant, $value) = @_;
- $value || ThrowCodeError('param_required', { param => 'value' });
- return $value;
+ my ($invocant, $value) = @_;
+ $value || ThrowCodeError('param_required', {param => 'value'});
+ return $value;
}
sub _check_tracking_flag {
- my ($invocant, $flag) = @_;
- if (blessed $flag) {
- return $flag->flag_id;
- }
- $flag = Bugzilla::Extension::TrackingFlags::Flag->new({ id => $flag, cache => 1 })
- || ThrowCodeError('tracking_flags_invalid_param', { name => 'flag_id', value => $flag });
+ my ($invocant, $flag) = @_;
+ if (blessed $flag) {
return $flag->flag_id;
+ }
+ $flag
+ = Bugzilla::Extension::TrackingFlags::Flag->new({id => $flag, cache => 1})
+ || ThrowCodeError('tracking_flags_invalid_param',
+ {name => 'flag_id', value => $flag});
+ return $flag->flag_id;
}
###############################
@@ -170,19 +166,17 @@ sub set_value { $_[0]->set('value', $_[1]); }
###############################
sub tracking_flag_id { return $_[0]->{'tracking_flag_id'}; }
-sub bug_id { return $_[0]->{'bug_id'}; }
-sub value { return $_[0]->{'value'}; }
+sub bug_id { return $_[0]->{'bug_id'}; }
+sub value { return $_[0]->{'value'}; }
sub bug {
- return $_[0]->{'bug'} ||= Bugzilla::Bug->new({
- id => $_[0]->bug_id, cache => 1
- });
+ return $_[0]->{'bug'} ||= Bugzilla::Bug->new({id => $_[0]->bug_id, cache => 1});
}
sub tracking_flag {
- return $_[0]->{'tracking_flag'} ||= Bugzilla::Extension::TrackingFlags::Flag->new({
- id => $_[0]->tracking_flag_id, cache => 1
- });
+ return $_[0]->{'tracking_flag'}
+ ||= Bugzilla::Extension::TrackingFlags::Flag->new(
+ {id => $_[0]->tracking_flag_id, cache => 1});
}
1;