[%# 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. #%] [% USE Bugzilla; bug_modal = 1; # only edit one bug UNLESS bug.defined; bug = bugs.0; END; bugid = bug.id; # this is used in a few places is_cced = bug.cc.contains(user.login); # custom fields that have custom rendering, or should not be rendered rendered_custom_fields = [ 'cf_user_story', 'cf_last_resolved', ]; # all custom fields custom_fields = Bugzilla.active_custom_fields(product => bug.product_obj, component => bug.component_obj, bug_id => bug.id); # extract needinfo flags needinfo = []; FOREACH flag_type IN bug.flag_types; IF flag_type.name == 'needinfo'; needinfo_flag_type = flag_type; FOREACH flag IN flag_type.flags; IF flag.status == '?'; needinfo.push(flag); END; END; END; END; # count attachments active_attachments = 0; obsolete_attachments = 0; FOREACH attachment IN bug.attachments; NEXT IF attachment.isprivate && !(user.is_insider || attachment.attacher.id == user.id); IF attachment.isobsolete; obsolete_attachments = obsolete_attachments + 1; ELSE; active_attachments = active_attachments + 1; END; END; # count set bug flags (excluding needinfo) has_bug_flags = 0; FOREACH flag IN bug.flags; NEXT IF flag.name == 'needinfo'; has_bug_flags = 1; LAST; END; # count set project/tracking flags tracking_flags_has = 0; tracking_flags_set = 0; project_flags_has = 0; project_flags_set = 0; FOREACH flag IN tracking_flags; is_set = flag.bug_flag(bug.id).value != "---"; IF flag.flag_type == "tracking"; tracking_flags_has = 1; IF is_set; tracking_flags_set = 1; END; END; IF flag.flag_type == "project"; project_flags_has = 1; IF is_set; project_flags_set = 1; END; END; END; # build firefox flags subtitle firefox_flags = []; firefox_fixed_version = ""; tracking_flags_title = "Firefox Tracking Flags"; # 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 firefox_fixed_version == "" && status_value == "fixed"; firefox_fixed_version = row.name.ucfirst.replace('^(\D+)(\d)', '$1 $2'); END; END; firefox_flags.push(blurb); IF row.name.search("^thunderbird"); tracking_flags_title = "Thunderbird Tracking Flags"; ELSIF row.name.search("^seamonkey"); tracking_flags_title = "SeaMonkey Tracking Flags"; END; END; IF firefox_flags.size; firefox_flags_subtitle = firefox_flags.join(", "); ELSE; firefox_flags_subtitle = "Not tracked"; END; %] [% IF user.id %]
[% END %] [%# === blocks === %] [% BLOCK fields_lhs %]