diff options
-rwxr-xr-x | enter_bug.cgi | 29 | ||||
-rw-r--r-- | template/en/default/bug/create/create.html.tmpl | 40 |
2 files changed, 34 insertions, 35 deletions
diff --git a/enter_bug.cgi b/enter_bug.cgi index a13515f3d..afaffd752 100755 --- a/enter_bug.cgi +++ b/enter_bug.cgi @@ -52,7 +52,6 @@ use Bugzilla::Token; use Bugzilla::Field; use Bugzilla::Status; use Bugzilla::UserAgent; -use JSON::XS qw(encode_json); my $user = Bugzilla->login(LOGIN_REQUIRED); @@ -439,33 +438,7 @@ 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] = \@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()); diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl index 4103c16dc..ba5d08273 100644 --- a/template/en/default/bug/create/create.html.tmpl +++ b/template/en/default/bug/create/create.html.tmpl @@ -63,17 +63,43 @@ function initCrashSignatureField() { 'cf_crash_signature_action', 'cf_crash_signature'); [% END %] } -var data = JSON.parse('[% data FILTER js %]'); -var initialowners = data["initialowners"]; + +var initialowners = new Array([% product.components.size %]); var last_initialowner; -var initialccs = data["initialccs"]; -var components = data["components"]; -var comp_desc = data["comp_desc"]; -var flags = data["flags"]; +var initialccs = new Array([% product.components.size %]); +var components = new Array([% product.components.size %]); +var comp_desc = new Array([% product.components.size %]); +var flags = new Array([% product.components.size %]); [% IF Param("useqacontact") %] - var initialqacontacts = data["initialqacontacts"]; + var initialqacontacts = new Array([% product.components.size %]); var last_initialqacontact; [% END %] +[% count = 0 %] +[%- FOREACH c = product.components %] + [% NEXT IF NOT c.is_active %] + components[[% count %]] = "[% c.name FILTER js %]"; + comp_desc[[% count %]] = "[% c.description FILTER html_light FILTER js %]"; + initialowners[[% count %]] = "[% c.default_assignee.login FILTER js %]"; + [% flag_list = [] %] + [% FOREACH f = c.flag_types.bug %] + [% flag_list.push(f.id) %] + [% END %] + [% FOREACH f = c.flag_types.attachment %] + [% flag_list.push(f.id) %] + [% END %] + flags[[% count %]] = [[% flag_list.join(",") FILTER js %]]; + [% IF Param("useqacontact") %] + initialqacontacts[[% count %]] = "[% c.default_qa_contact.login FILTER js %]"; + [% END %] + + [% SET initial_cc_list = [] %] + [% FOREACH cc_user = c.initial_cc %] + [% initial_cc_list.push(cc_user.login) %] + [% END %] + initialccs[[% count %]] = "[% initial_cc_list.join(', ') FILTER js %]"; + + [% count = count + 1 %] +[%- END %] function set_assign_to() { // Based on the selected component, fill the "Assign To:" field |