зеркало из https://github.com/mozilla/gecko-dev.git
Bug 344521: Make custom fields optionally functional on enter_bug.cgi
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=myk
This commit is contained in:
Родитель
59339f08d8
Коммит
f39ba8d1b6
|
@ -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'],
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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.
|
||||
#
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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') || "");
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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 %]
|
||||
|
|
Загрузка…
Ссылка в новой задаче