our $VERSION = '1';
+use constant READABLE_BUG_STATUS_PRODUCTS => (
+ 'Core', 'Toolkit',
+ 'Firefox', 'Firefox for Android',
+ 'Firefox for iOS', 'Bugzilla',
+ 'bugzilla.mozilla.org'
+);
+
sub show_bug_format {
my ($self, $args) = @_;
$args->{format} = _alternative_show_bug_format();
file => 'bug/edit.html.tmpl', vars => $vars,
});
- # bugzilla-readable-status
- my @flags = map { {name => $_->name, status => $_->status} } @{$bug->flags};
- $vars->{readable_bug_status_json} = encode_json({
- dupe_of => $bug->dup_id,
- id => $bug->id,
- keywords => [map { $_->name } @{$bug->keyword_objects}],
- priority => $bug->priority,
- resolution => $bug->resolution,
- status => $bug->bug_status,
- flags => \@flags,
- target_milestone => $bug->target_milestone,
- Bugzilla->has_extension('TrackingFlags')
- ? map { $_->name => $_->bug_flag($bug->id)->value } @{$vars->{tracking_flags}}
- : {},
- });
- # HTML4 attributes cannot be longer than this, so just skip it in this case.
- if (length($vars->{readable_bug_status_json}) > 65536) {
- delete $vars->{readable_bug_status_json};
+ if (any { $bug->product eq $_ } READABLE_BUG_STATUS_PRODUCTS) {
+ my @flags = map { {name => $_->name, status => $_->status} } @{$bug->flags};
+ $vars->{readable_bug_status_json} = encode_json({
+ dupe_of => $bug->dup_id,
+ id => $bug->id,
+ keywords => [map { $_->name } @{$bug->keyword_objects}],
+ priority => $bug->priority,
+ resolution => $bug->resolution,
+ status => $bug->bug_status,
+ flags => \@flags,
+ target_milestone => $bug->target_milestone,
+ map { $_->name => $_->bug_flag($bug->id)->value } @{$vars->{tracking_flags}},
+ });
+
+ # HTML4 attributes cannot be longer than this, so just skip it in this case.
+ if (length($vars->{readable_bug_status_json}) > 65536) {
+ delete $vars->{readable_bug_status_json};
+ }
}
# bug->choices loads a lot of data that we want to lazy-load
END;
END;
END;
+
+ # build Firefox flags subtitle
+ firefox_flags = [];
+ firefox_fixed_versions = [];
+ # project flags
+ FOREACH row IN tracking_flags_table;
+ NEXT UNLESS row.type == "project";
+ status_value = row.status.bug_flag(bug.id).value;
+ NEXT IF status_value == "---";
+ firefox_flags.push(row.name _ ":" _ status_value);
+ END;
+ # tracking flags title and subtitle
+ FOREACH row IN tracking_flags_table;
+ NEXT UNLESS row.type == "tracking";
+ tracking_value = row.tracking ? row.tracking.bug_flag(bug.id).value : "---";
+ status_value = row.status.bug_flag(bug.id).value || "---";
+ NEXT IF tracking_value == "---" && status_value == "---";
+ blurb = row.name;
+ IF tracking_value != "---";
+ blurb = blurb _ tracking_value;
+ END;
+ IF status_value != "---";
+ blurb = blurb _ " " _ status_value;
+ IF status_value == "fixed" || status_value == "verified";
+ flag_name = row.name;
+ IF flag_name.substr(0, 7) == "firefox";
+ IF firefox_fixed_versions.0 == "";
+ firefox_fixed_versions.0 = "Firefox " _ flag_name.substr(7);
+ END;
+ END;
+ END;
+ END;
+ firefox_flags.push(blurb);
+ END;
+ firefox_fixed_version = firefox_fixed_versions.join(", ");
+ IF firefox_flags.size;
+ firefox_flags_subtitle = firefox_flags.join(", ");
+ ELSE;
+ firefox_flags_subtitle = "Not tracked";
+ END;
%]
[% IF user.id %]
[% END %]
[% sub = [{ unfiltered = readable_bug_status_span }] %]
[% ELSE %]
- [% sub = ["Not tracked"] %]
+ [% sub = [firefox_flags_subtitle] %]
[% END %]
[% WRAPPER bug_modal/module.html.tmpl
title = "Tracking"