diff options
-rwxr-xr-x | enter_bug.cgi | 22 | ||||
-rw-r--r-- | template/en/default/bug/create/create.html.tmpl | 51 |
2 files changed, 59 insertions, 14 deletions
diff --git a/enter_bug.cgi b/enter_bug.cgi index 9784b81a3..8f736ff03 100755 --- a/enter_bug.cgi +++ b/enter_bug.cgi @@ -242,17 +242,19 @@ elsif (1 == @{$::components{$product}}) { } my @components; -SendSQL("SELECT name, description FROM components " . - "WHERE product_id = $product_id ORDER BY name"); +SendSQL("SELECT name, description, login_name, realname + FROM components, profiles + WHERE product_id = $product_id + AND initialowner=userid + ORDER BY name"); while (MoreSQLData()) { - my ($name, $description) = FetchSQLData(); - - my %component; - - $component{'name'} = $name; - $component{'description'} = $description; - - push @components, \%component; + my ($name, $description, $login, $realname) = FetchSQLData(); + push @components, { + name => $name, + description => $description, + default_login => $login, + default_realname => $realname, + }; } my %default; diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl index fcc894e1e..4196f77bb 100644 --- a/template/en/default/bug/create/create.html.tmpl +++ b/template/en/default/bug/create/create.html.tmpl @@ -23,9 +23,52 @@ [% PROCESS global/header.html.tmpl title = "Enter Bug" h2 = "This page lets you enter a new bug into Bugzilla." + onload="set_assign_to();" %] -<form method="post" action="post_bug.cgi"> +<script type="text/javascript" language="JavaScript"> +<!-- + +var default_owners = new Array([% component_.size %]); +var components = new Array([% component_.size %]); +[% count = 0 %] +[%- FOREACH c = component_ %] + components[[% count %]] = "[% c.name FILTER html %]"; + default_owners[[% count %]] = "[% c.default_login FILTER html %]"; + [% count = count + 1 %] +[%- END %] +var last_default_owner; +function set_assign_to() { + // Based on the selected component, fill the "Assign To:" field + // with the default component owner. + var form = document.Create; + assigned_to = form.assigned_to.value + var index = -1; + if (form.component.type == 'select-one') { + index = form.component.selectedIndex; + } else if (form.component.type == 'hidden') { + // Assume there is only one component in the list + index = 0; + } + if (index != -1) { + var owner = default_owners[index]; + var component = components[index]; + if (assigned_to == last_default_owner + || assigned_to == owner + || assigned_to == '' + || confirm('Would you like to change\n\n' + + ' "Assign To: ' + assigned_to + '"\n\n' + + 'to the default "' + component + '" owner:\n\n' + + ' ' + owner + "?")) { + form.assigned_to.value = owner; + last_default_owner = owner; + } + } +} +--> +</script> + +<form name="Create" id="Create" method="post" action="post_bug.cgi"> <input type="hidden" name="product" value="[% product FILTER html %]"> <table cellspacing="2" cellpadding="0" border="0"> @@ -78,7 +121,7 @@ </strong> </td> <td> - <select name="component" size="5"> + <select name="component" onchange="set_assign_to();" size="5"> [%- FOREACH c = component_ %] <option value="[% c.name FILTER html %]" [% " selected=\"selected\"" IF c.name == default.component_ %]> @@ -134,13 +177,13 @@ <tr> <td align="right"> <strong> - <a href="bug_status.html#assigned_to">Assigned To</a>: + <a href="bug_status.html#assigned_to">Assign To</a>: </strong> </td> <td colspan="3"> <input name="assigned_to" size="32" value="[% assigned_to FILTER html %]"> - (Leave blank to assign to default component owner) + <noscript>(Leave blank to assign to default component owner)</noscript> </td> </tr> |