summaryrefslogtreecommitdiffstats
path: root/extensions/TrackingFlags
diff options
context:
space:
mode:
authorByron Jones <glob@mozilla.com>2014-07-08 10:40:14 +0200
committerByron Jones <glob@mozilla.com>2014-07-08 10:40:14 +0200
commit2f3b5dd7df3e131af6aef3cd5ccf7e8523c1780e (patch)
treee71ea56398621e038df3c27cc5b87accf7a04968 /extensions/TrackingFlags
parentd74129306d8d5a903af6fe3957046feb36affdd1 (diff)
downloadbugzilla-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.pm11
-rw-r--r--extensions/TrackingFlags/lib/Admin.pm4
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,