diff options
author | Kalpesh Krishna <kalpeshk2011@gmail.com> | 2016-08-29 19:22:51 +0200 |
---|---|---|
committer | Dylan William Hardison <dylan@hardison.net> | 2016-08-29 19:22:51 +0200 |
commit | 8ec323b76f91c1fe3eb5da1a103853e7e39462cd (patch) | |
tree | 323c7a7b74c1debb8010175f8e2484484fe7aa57 /enter_bug.cgi | |
parent | a4751a09cf5864c868db0dc8277d465810f63dfe (diff) | |
download | bugzilla-8ec323b76f91c1fe3eb5da1a103853e7e39462cd.tar.gz bugzilla-8ec323b76f91c1fe3eb5da1a103853e7e39462cd.tar.xz |
Bug 1294478 - Move JSON serialization out of the templates and into perl to improve performance
Diffstat (limited to 'enter_bug.cgi')
-rwxr-xr-x | enter_bug.cgi | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/enter_bug.cgi b/enter_bug.cgi index afaffd752..697b6c8df 100755 --- a/enter_bug.cgi +++ b/enter_bug.cgi @@ -52,6 +52,7 @@ use Bugzilla::Token; use Bugzilla::Field; use Bugzilla::Status; use Bugzilla::UserAgent; +use JSON::XS qw(encode_json); my $user = Bugzilla->login(LOGIN_REQUIRED); @@ -438,7 +439,33 @@ my $format = $template->get_format("bug/create/create", scalar $cgi->param('format'), scalar $cgi->param('ctype')); +my %data; +my $count = 0; +foreach my $c (@{ $product->components }) { + next if not $c->is_active; + $data{components}[$count] = $c->name; + $data{comp_desc}[$count] = $c->description; + $data{initialowners}[$count] = $c->default_assignee->login; + my @flag_list; + foreach my $f (@{ $c->flag_types->{bug} }) { + push @flag_list, $f->id; + } + foreach my $f (@{ $c->flag_types->{attachment} }) { + push @flag_list, $f->id; + } + $data{flags}[$count] = join(',', @flag_list); + $count++; + if (Bugzilla->params->{'useqacontact'}) { + $data{initialqacontacts}[$count] = $c->default_qa_contact->login; + } + my @initial_cc_list; + foreach my $cc_user (@{ $c->initial_cc }) { + push @initial_cc_list, $cc_user->login; + } + $data{initialccs}[$count] = join(', ', @initial_cc_list); +} +$vars->{data} = encode_json(\%data); print $cgi->header($format->{'ctype'}); $template->process($format->{'template'}, $vars) - || ThrowTemplateError($template->error()); + || ThrowTemplateError($template->error()); |