summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/DB/Schema.pm2
-rw-r--r--Bugzilla/Field.pm19
-rwxr-xr-xchecksetup.pl3
-rwxr-xr-xenter_bug.cgi11
-rwxr-xr-xpost_bug.cgi7
-rw-r--r--template/en/default/bug/create/create.html.tmpl9
-rw-r--r--template/en/default/bug/field.html.tmpl3
7 files changed, 52 insertions, 2 deletions
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm
index c885987bc..94e457dd0 100644
--- a/Bugzilla/DB/Schema.pm
+++ b/Bugzilla/DB/Schema.pm
@@ -464,6 +464,8 @@ use constant ABSTRACT_SCHEMA => {
sortkey => {TYPE => 'INT2', NOTNULL => 1},
obsolete => {TYPE => 'BOOLEAN', NOTNULL => 1,
DEFAULT => 'FALSE'},
+ enter_bug => {TYPE => 'BOOLEAN', NOTNULL => 1,
+ DEFAULT => 'FALSE'},
],
INDEXES => [
fielddefs_name_idx => {FIELDS => ['name'],
diff --git a/Bugzilla/Field.pm b/Bugzilla/Field.pm
index 2118d41ac..e964141d4 100644
--- a/Bugzilla/Field.pm
+++ b/Bugzilla/Field.pm
@@ -82,7 +82,8 @@ use constant DB_COLUMNS => (
'description',
'type',
'custom',
- 'obsolete'
+ 'obsolete',
+ 'enter_bug',
);
our $columns = join(", ", DB_COLUMNS);
@@ -182,6 +183,19 @@ a boolean specifying whether or not the field is obsolete;
sub obsolete { return $_[0]->{obsolete} }
+=over
+
+=item C<enter_bug>
+
+A boolean specifying whether or not this field should appear on
+enter_bug.cgi
+
+=back
+
+=cut
+
+sub enter_bug { return $_[0]->{enter_bug} }
+
=pod
@@ -267,6 +281,9 @@ sub match {
if (defined $criteria->{obsolete}) {
push(@terms, "obsolete=" . ($criteria->{obsolete} ? "1" : "0"));
}
+ if (defined $criteria->{enter_bug}) {
+ push(@terms, "enter_bug=" . ($criteria->{enter_bug} ? '1' : '0'));
+ }
my $where = (scalar(@terms) > 0) ? "WHERE " . join(" AND ", @terms) : "";
my $records = Bugzilla->dbh->selectall_arrayref(
diff --git a/checksetup.pl b/checksetup.pl
index 71e43d281..d6a76a0a0 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -4246,6 +4246,9 @@ if (!$dbh->bz_column_info('classifications', 'sortkey')) {
}
}
+$dbh->bz_add_column('fielddefs', 'enter_bug',
+ {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'FALSE'});
+
# If you had to change the --TABLE-- definition in any way, then add your
# differential change code *** A B O V E *** this comment.
#
diff --git a/enter_bug.cgi b/enter_bug.cgi
index 66f4109c7..70c989eca 100755
--- a/enter_bug.cgi
+++ b/enter_bug.cgi
@@ -336,6 +336,13 @@ $vars->{'cloned_bug_id'} = $cloned_bug_id;
$vars->{'token'} = Bugzilla::Token::IssueSessionToken('createbug:');
+
+my @enter_bug_fields = Bugzilla->get_fields({ custom => 1, obsolete => 0,
+ enter_bug => 1 });
+foreach my $field (@enter_bug_fields) {
+ $vars->{$field->name} = formvalue($field->name);
+}
+
if ($cloned_bug_id) {
$default{'component_'} = $cloned_bug->{'component'};
@@ -357,6 +364,10 @@ if ($cloned_bug_id) {
$vars->{'cc'} = formvalue('cc');
}
+ foreach my $field (@enter_bug_fields) {
+ $vars->{$field->name} = $cloned_bug->{$field->name};
+ }
+
# We need to ensure that we respect the 'insider' status of
# the first comment, if it has one. Either way, make a note
# that this bug was cloned from another bug.
diff --git a/post_bug.cgi b/post_bug.cgi
index b3f668e3f..083f577ac 100755
--- a/post_bug.cgi
+++ b/post_bug.cgi
@@ -172,10 +172,15 @@ if (!UserInGroup("editbugs") || $cgi->param('assigned_to') eq "") {
-value => login_to_id(trim($cgi->param('assigned_to')), THROW_ERROR));
}
+
+my @enter_bug_field_names = map {$_->name} Bugzilla->get_fields({ custom => 1,
+ obsolete => 0, enter_bug => 1});
+
my @bug_fields = ("version", "rep_platform",
"bug_severity", "priority", "op_sys", "assigned_to",
"bug_status", "everconfirmed", "bug_file_loc", "short_desc",
- "target_milestone", "status_whiteboard");
+ "target_milestone", "status_whiteboard",
+ @enter_bug_field_names);
if (Bugzilla->params->{"usebugaliases"}) {
my $alias = trim($cgi->param('alias') || "");
diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl
index 1749813e3..8b2bcb997 100644
--- a/template/en/default/bug/create/create.html.tmpl
+++ b/template/en/default/bug/create/create.html.tmpl
@@ -313,6 +313,15 @@ function handleWantsAttachment(wants_attachment) {
</td>
</tr>
+ [% USE Bugzilla %]
+ [% FOREACH field = Bugzilla.get_fields({ obsolete => 0, custom => 1,
+ enter_bug => 1 }) %]
+ [% SET value = ${field.name} IF ${field.name}.defined %]
+ <tr>
+ [% PROCESS bug/field.html.tmpl editable=1 value_span=3 %]
+ </tr>
+ [% END %]
+
<tr>
<td align="right"><strong>Summary:</strong></td>
<td colspan="3">
diff --git a/template/en/default/bug/field.html.tmpl b/template/en/default/bug/field.html.tmpl
index 9c45b3e57..ece2f64bf 100644
--- a/template/en/default/bug/field.html.tmpl
+++ b/template/en/default/bug/field.html.tmpl
@@ -25,6 +25,8 @@
# value: The value of the field for this bug.
# editable: Whether the field should be displayed as an editable
# <input> or as just the plain text of its value.
+ # value_span: A colspan for the table cell containing
+ # the field value.
#%]
<th class="field_label">
@@ -41,6 +43,7 @@
[% CASE constants.FIELD_TYPE_FREETEXT %]
<input name="[% field.name FILTER html %]"
value="[% value FILTER html %]"
+ [% "colspan=\"$value_span\"" FILTER none IF value_span %]
size="60">
[% END %]
[% ELSE %]