diff options
Diffstat (limited to 'extensions/TrackingFlags/lib')
-rw-r--r-- | extensions/TrackingFlags/lib/Admin.pm | 15 | ||||
-rw-r--r-- | extensions/TrackingFlags/lib/Flag/Value.pm | 14 |
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({ |