From 3208ebbf96c52c8b62f92524dc92ce3a0c6b4048 Mon Sep 17 00:00:00 2001 From: Byron Jones Date: Tue, 3 Mar 2015 12:03:24 +0800 Subject: Bug 880552: Add links to socorro from the crash signatures in show_bug.cgi --- extensions/BMO/Extension.pm | 16 +++++- .../default/hook/bug/edit-custom_field.html.tmpl | 57 ++++++++++++++++++++-- 2 files changed, 69 insertions(+), 4 deletions(-) (limited to 'extensions') diff --git a/extensions/BMO/Extension.pm b/extensions/BMO/Extension.pm index 0e43830ee..62f88287a 100644 --- a/extensions/BMO/Extension.pm +++ b/extensions/BMO/Extension.pm @@ -45,9 +45,10 @@ use Email::MIME::ContentType qw(parse_content_type); use Encode qw(find_encoding encode_utf8); use File::MimeInfo::Magic; use List::MoreUtils qw(natatime); -use Scalar::Util qw(blessed); use List::Util qw(first); +use Scalar::Util qw(blessed); use Sys::Syslog qw(:DEFAULT setlogsock); +use Text::Balanced qw( extract_bracketed extract_multiple ); use Bugzilla::Extension::BMO::Constants; use Bugzilla::Extension::BMO::FakeBug; @@ -130,6 +131,9 @@ sub template_before_process { $vars->{'versions'} = [ reverse @$versions ]; } } + elsif ($file eq 'bug/edit.html.tmpl') { + $vars->{split_cf_crash_signature} = $self->_split_crash_signature($vars); + } if ($file =~ /^list\/list/ || $file =~ /^bug\/create\/create[\.-]/) { @@ -1860,4 +1864,14 @@ sub bug_comments { } } +sub _split_crash_signature { + my ($self, $vars) = @_; + my $bug = $vars->{bug} // return; + my $crash_signature = $bug->cf_crash_signature // return; + return [ + grep { /\S/ } + extract_multiple($crash_signature, [ sub { extract_bracketed($_[0], '[]') } ]) + ]; +} + __PACKAGE__->NAME; diff --git a/extensions/BMO/template/en/default/hook/bug/edit-custom_field.html.tmpl b/extensions/BMO/template/en/default/hook/bug/edit-custom_field.html.tmpl index 6e871f731..c11e6ea42 100644 --- a/extensions/BMO/template/en/default/hook/bug/edit-custom_field.html.tmpl +++ b/extensions/BMO/template/en/default/hook/bug/edit-custom_field.html.tmpl @@ -6,6 +6,57 @@ # defined by the Mozilla Public License, v. 2.0. #%] -[% IF field.name == 'cf_rank' %] - [% field.hidden = 1 %] -[% END %] +[% + IF field.name == 'cf_rank'; + field.hidden = 1; + RETURN; + END; +%] + +[% + IF field.name == 'cf_crash_signature'; + field.hidden = 1; + value = bug.cf_crash_signature; +%] + [%# lifted from bug/field.html.tmpl %] + + [% PROCESS "bug/field-label.html.tmpl" %] + +
+
+ (edit) +
+ [% IF split_cf_crash_signature.size %] + [% FOREACH sig = split_cf_crash_signature %] + [% IF sig.match('^\[\@\s*') && sig.match('\s*\]$') %] + [% sig = sig.replace('(^\[\@\s*|\s*\]$)', '') %] + [@ [% sig FILTER html %] ]
+ [% ELSE %] + [% sig FILTER html %]
+ [% END %] + [% END %] + [% ELSIF value %] +
[% value FILTER html %]
+ [% END %] +
+
+ [% INCLUDE global/textarea.html.tmpl + id = field.name name = field.name minrows = 4 maxrows = 8 + cols = 60 defaultcontent = value %] +
+ + + +[% + RETURN; + END; +%] -- cgit v1.2.3-24-g4f1b