diff options
author | Byron Jones <glob@mozilla.com> | 2014-07-08 10:40:14 +0200 |
---|---|---|
committer | Byron Jones <glob@mozilla.com> | 2014-07-08 10:40:14 +0200 |
commit | 2f3b5dd7df3e131af6aef3cd5ccf7e8523c1780e (patch) | |
tree | e71ea56398621e038df3c27cc5b87accf7a04968 /extensions/TrackingFlags | |
parent | d74129306d8d5a903af6fe3957046feb36affdd1 (diff) | |
download | bugzilla-2f3b5dd7df3e131af6aef3cd5ccf7e8523c1780e.tar.gz bugzilla-2f3b5dd7df3e131af6aef3cd5ccf7e8523c1780e.tar.xz |
Bug 990980: create an extension for server-side filtering of bugmail
Diffstat (limited to 'extensions/TrackingFlags')
-rw-r--r-- | extensions/TrackingFlags/Extension.pm | 11 | ||||
-rw-r--r-- | extensions/TrackingFlags/lib/Admin.pm | 4 |
2 files changed, 13 insertions, 2 deletions
diff --git a/extensions/TrackingFlags/Extension.pm b/extensions/TrackingFlags/Extension.pm index 3ba9e768b..9b3d46ad2 100644 --- a/extensions/TrackingFlags/Extension.pm +++ b/extensions/TrackingFlags/Extension.pm @@ -27,6 +27,17 @@ use Bugzilla::Product; our $VERSION = '1'; +BEGIN { + *Bugzilla::tracking_flag_names = \&_tracking_flag_names; +} + +sub _tracking_flag_names { + # return just a list of names, hitting the database directly to avoid the + # overhead of object creation + return Bugzilla->request_cache->{tracking_flag_names} ||= + Bugzilla->dbh->selectcol_arrayref("SELECT name FROM tracking_flags"); +} + sub page_before_template { my ($self, $args) = @_; my $page = $args->{'page_id'}; diff --git a/extensions/TrackingFlags/lib/Admin.pm b/extensions/TrackingFlags/lib/Admin.pm index 389acde2c..0b19fcf80 100644 --- a/extensions/TrackingFlags/lib/Admin.pm +++ b/extensions/TrackingFlags/lib/Admin.pm @@ -343,9 +343,9 @@ sub _update_db_values { my $value_obj = Bugzilla::Extension::TrackingFlags::Flag::Value->new($value->{id}) || ThrowCodeError('tracking_flags_invalid_item_id', { item => 'flag value', id => $flag->{id} }); my $old_value = $value_obj->value; + $value_obj->set_all($object_set); + $value_obj->update(); if ($object_set->{value} ne $old_value) { - $value_obj->set_all($object_set); - $value_obj->update(); Bugzilla::Extension::TrackingFlags::Flag::Bug->update_all_values({ value_obj => $value_obj, old_value => $old_value, |