Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
4671e0ff
Commit
4671e0ff
authored
Oct 06, 2009
by
mkanat%bugzilla.org
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 512618: Make Bugzilla::Bug::choices return Field::Choice objects, not just values
Patch by Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit
parent
6e282d38
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
44 deletions
+34
-44
Bug.pm
Bugzilla/Bug.pm
+25
-24
edit.html.tmpl
template/en/default/bug/edit.html.tmpl
+6
-16
knob.html.tmpl
template/en/default/bug/knob.html.tmpl
+3
-4
No files found.
Bugzilla/Bug.pm
View file @
4671e0ff
...
...
@@ -2108,6 +2108,7 @@ sub set_resolution {
my
$old_res
=
$self
->
resolution
;
$self
->
set
(
'resolution'
,
$value
);
delete
$self
->
{
choices
};
my
$new_res
=
$self
->
resolution
;
if
(
$new_res
ne
$old_res
)
{
...
...
@@ -2899,38 +2900,38 @@ sub user {
return
$self
->
{
'user'
};
}
# This is intended to get values that can be selected by the user in the
# UI. It should not be used for security or validation purposes.
sub
choices
{
my
$self
=
shift
;
return
$self
->
{
'choices'
}
if
exists
$self
->
{
'choices'
};
return
{}
if
$self
->
{
'error'
};
my
$user
=
Bugzilla
->
user
;
$self
->
{
'choices'
}
=
{};
my
@prodlist
=
map
{
$_
->
name
}
@
{
Bugzilla
->
user
->
get_enterable_products
};
my
@products
=
@
{
$user
->
get_enterable_products
};
# The current product is part of the popup, even if new bugs are no longer
# allowed for that product
if
(
lsearch
(
\
@prodlist
,
$self
->
product
)
<
0
)
{
push
(
@prodlist
,
$self
->
product
);
@prodlist
=
sort
@prodlist
;
}
# Hack - this array contains "". See bug 106589.
my
@res
=
grep
(
$_
,
@
{
get_legal_field_values
(
'resolution'
)});
$self
->
{
'choices'
}
=
{
'product'
=>
\
@prodlist
,
'rep_platform'
=>
get_legal_field_values
(
'rep_platform'
),
'priority'
=>
get_legal_field_values
(
'priority'
),
'bug_severity'
=>
get_legal_field_values
(
'bug_severity'
),
'op_sys'
=>
get_legal_field_values
(
'op_sys'
),
'bug_status'
=>
get_legal_field_values
(
'bug_status'
),
'resolution'
=>
\
@res
,
'component'
=>
[
map
(
$_
->
name
,
@
{
$self
->
product_obj
->
components
})],
'version'
=>
[
map
(
$_
->
name
,
@
{
$self
->
product_obj
->
versions
})],
'target_milestone'
=>
[
map
(
$_
->
name
,
@
{
$self
->
product_obj
->
milestones
})],
};
if
(
!
grep
(
$_
->
name
eq
$self
->
product_obj
->
name
,
@products
))
{
unshift
(
@products
,
$self
->
product_obj
);
}
my
%
choices
=
(
product
=>
\
@products
,
component
=>
$self
->
product_obj
->
components
,
version
=>
$self
->
product_obj
->
versions
,
target_milestone
=>
$self
->
product_obj
->
milestones
,
);
my
$resolution_field
=
new
Bugzilla::
Field
({
name
=>
'resolution'
});
# Don't include the empty resolution in drop-downs.
my
@resolutions
=
grep
(
$_
->
name
,
@
{
$resolution_field
->
legal_values
});
# And don't include MOVED in the list unless the bug is already MOVED.
if
(
$self
->
resolution
ne
'MOVED'
)
{
@resolutions
=
grep
{
$_
->
name
ne
'MOVED'
}
@resolutions
;
}
$choices
{
'resolution'
}
=
\
@resolutions
;
$self
->
{
'choices'
}
=
\%
choices
;
return
$self
->
{
'choices'
};
}
...
...
template/en/default/bug/edit.html.tmpl
View file @
4671e0ff
...
...
@@ -375,16 +375,9 @@
[%#############%]
<tr>
[% IF bug.check_can_change_field('product', 0, 1) %]
[% prod_list = user.get_enterable_products %]
[% IF NOT user.can_enter_product(bug.product) %]
[% prod_list.unshift(bug.product_obj) %]
[% END %]
[% END %]
[% INCLUDE bug/field.html.tmpl
bug = bug, field = select_fields.product,
override_legal_values =
prod_lis
t
override_legal_values =
bug.choices.produc
t
desc_url = 'describecomponents.cgi', value = bug.product
editable = bug.check_can_change_field('product', 0, 1) %]
</tr>
...
...
@@ -1112,24 +1105,21 @@
[%############################################################################%]
[% BLOCK select %]
[% IF NOT no_td %]
<td>
[% END %]
[% IF bug.check_can_change_field(selname, 0, 1)
AND bug.choices.${selname}.size > 1 %]
[% IF bug.check_can_change_field(selname, 0, 1)
AND bug.choices.${selname}.size > 1 %]
<select id="[% selname %]" name="[% selname %]">
[% FOREACH x = bug.choices.${selname} %]
<option value="[% x FILTER html %]"
[% " selected" IF x == bug.${selname} %]>[% x FILTER html %]
<option value="[% x.name FILTER html %]"
[% " selected" IF x.name == bug.${selname} %]>
[%- x.name FILTER html %]
</option>
[% END %]
</select>
[% ELSE %]
[% bug.${selname} FILTER html %]
[% END %]
[% IF NOT no_td %]
</td>
[% END %]
[% no_td = 0 %]
[% END %]
[%############################################################################%]
...
...
template/en/default/bug/knob.html.tmpl
View file @
4671e0ff
...
...
@@ -147,10 +147,9 @@
[% BLOCK select_resolution %]
<select name="resolution" id="resolution">
[% FOREACH r = bug.choices.resolution %]
[% NEXT IF r == "MOVED" && bug.resolution != "MOVED" %]
<option value="[% r FILTER html %]"
[% "selected" IF r == bug.resolution %]>
[% display_value("resolution", r) FILTER html %]</option>
<option value="[% r.name FILTER html %]"
[% ' selected="selected"' IF r.name == bug.resolution %]>
[% display_value("resolution", r.name) FILTER html %]</option>
[% END %]
</select>
[% END %]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment