summaryrefslogtreecommitdiffstats
path: root/extensions/BugmailFilter/lib/FakeField.pm
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/BugmailFilter/lib/FakeField.pm')
-rw-r--r--extensions/BugmailFilter/lib/FakeField.pm57
1 files changed, 57 insertions, 0 deletions
diff --git a/extensions/BugmailFilter/lib/FakeField.pm b/extensions/BugmailFilter/lib/FakeField.pm
new file mode 100644
index 000000000..88e4ac1ca
--- /dev/null
+++ b/extensions/BugmailFilter/lib/FakeField.pm
@@ -0,0 +1,57 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+package Bugzilla::Extension::BugmailFilter::FakeField;
+
+use strict;
+use warnings;
+
+use Bugzilla::Extension::BugmailFilter::Constants;
+
+# object
+
+sub new {
+ my ($class, $params) = @_;
+ return bless($params, $class);
+}
+
+sub name { $_[0]->{name} }
+sub description { $_[0]->{description} }
+
+# static methods
+
+sub fake_fields {
+ my $cache = Bugzilla->request_cache->{bugmail_filter};
+ if (!$cache->{fake_fields}) {
+ my @fields;
+ foreach my $rh (@{ FAKE_FIELD_NAMES() }) {
+ push @fields, Bugzilla::Extension::BugmailFilter::FakeField->new($rh);
+ }
+ $cache->{fake_fields} = \@fields;
+ }
+ return $cache->{fake_fields};
+}
+
+sub tracking_flag_fields {
+ my $cache = Bugzilla->request_cache->{bugmail_filter};
+ if (!$cache->{tracking_flag_fields}) {
+ require Bugzilla::Extension::TrackingFlags::Constants;
+ my @fields;
+ my $tracking_types = Bugzilla::Extension::TrackingFlags::Constants::FLAG_TYPES();
+ foreach my $tracking_type (@$tracking_types) {
+ push @fields, Bugzilla::Extension::BugmailFilter::FakeField->new({
+ name => 'tracking.' . $tracking_type->{name},
+ description => $tracking_type->{description},
+ sortkey => $tracking_type->{sortkey},
+ });
+ }
+ $cache->{tracking_flag_fields} = \@fields;
+ }
+ return $cache->{tracking_flag_fields};
+}
+
+1;