summaryrefslogtreecommitdiffstats
path: root/extensions/TrackingFlags/lib
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/TrackingFlags/lib')
-rw-r--r--extensions/TrackingFlags/lib/Admin.pm15
-rw-r--r--extensions/TrackingFlags/lib/Flag/Value.pm14
2 files changed, 21 insertions, 8 deletions
diff --git a/extensions/TrackingFlags/lib/Admin.pm b/extensions/TrackingFlags/lib/Admin.pm
index 0b19fcf80..1bae18ef8 100644
--- a/extensions/TrackingFlags/lib/Admin.pm
+++ b/extensions/TrackingFlags/lib/Admin.pm
@@ -133,6 +133,7 @@ sub admin_edit {
value => '---',
setter_group_id => '',
is_active => 1,
+ comment => '',
},
]);
$vars->{visibility} = '';
@@ -337,6 +338,7 @@ sub _update_db_values {
setter_group_id => $value->{setter_group_id},
is_active => $value->{is_active},
sortkey => $sortkey,
+ comment => $value->{comment},
};
if ($value->{id}) {
@@ -345,13 +347,11 @@ sub _update_db_values {
my $old_value = $value_obj->value;
$value_obj->set_all($object_set);
$value_obj->update();
- if ($object_set->{value} ne $old_value) {
- Bugzilla::Extension::TrackingFlags::Flag::Bug->update_all_values({
- value_obj => $value_obj,
- old_value => $old_value,
- new_value => $value_obj->value,
- });
- }
+ Bugzilla::Extension::TrackingFlags::Flag::Bug->update_all_values({
+ value_obj => $value_obj,
+ old_value => $old_value,
+ new_value => $value_obj->value,
+ });
} else {
$object_set->{tracking_flag_id} = $flag_obj->flag_id;
Bugzilla::Extension::TrackingFlags::Flag::Value->create($object_set);
@@ -406,6 +406,7 @@ sub _flag_values_to_json {
value => $value->{value},
setter_group_id => $value->{setter_group_id},
is_active => $value->{is_active} ? JSON::true : JSON::false,
+ comment => $value->{comment} // '',
};
}
return encode_json(\@data);
diff --git a/extensions/TrackingFlags/lib/Flag/Value.pm b/extensions/TrackingFlags/lib/Flag/Value.pm
index 4023e191d..964d76810 100644
--- a/extensions/TrackingFlags/lib/Flag/Value.pm
+++ b/extensions/TrackingFlags/lib/Flag/Value.pm
@@ -14,7 +14,7 @@ use warnings;
use Bugzilla::Error;
use Bugzilla::Group;
-use Bugzilla::Util qw(detaint_natural);
+use Bugzilla::Util qw(detaint_natural trim);
use Scalar::Util qw(blessed);
###############################
@@ -30,6 +30,7 @@ use constant DB_COLUMNS => qw(
value
sortkey
is_active
+ comment
);
use constant LIST_ORDER => 'sortkey';
@@ -39,6 +40,7 @@ use constant UPDATE_COLUMNS => qw(
value
sortkey
is_active
+ comment
);
use constant VALIDATORS => {
@@ -47,6 +49,7 @@ use constant VALIDATORS => {
value => \&_check_value,
sortkey => \&_check_sortkey,
is_active => \&Bugzilla::Object::check_boolean,
+ comment => \&_check_comment,
};
###############################
@@ -86,6 +89,13 @@ sub _check_sortkey {
return $sortkey;
}
+sub _check_comment {
+ my ($invocant, $value) = @_;
+ return undef unless defined $value;
+ $value = trim($value);
+ return $value eq '' ? undef : $value;
+}
+
###############################
#### Setters ####
###############################
@@ -94,6 +104,7 @@ sub set_setter_group_id { $_[0]->set('setter_group_id', $_[1]); }
sub set_value { $_[0]->set('value', $_[1]); }
sub set_sortkey { $_[0]->set('sortkey', $_[1]); }
sub set_is_active { $_[0]->set('is_active', $_[1]); }
+sub set_comment { $_[0]->set('comment', $_[1]); }
###############################
#### Accessors ####
@@ -104,6 +115,7 @@ sub setter_group_id { return $_[0]->{'setter_group_id'}; }
sub value { return $_[0]->{'value'}; }
sub sortkey { return $_[0]->{'sortkey'}; }
sub is_active { return $_[0]->{'is_active'}; }
+sub comment { return $_[0]->{'comment'}; }
sub tracking_flag {
return $_[0]->{'tracking_flag'} ||= Bugzilla::Extension::TrackingFlags::Flag->new({