summaryrefslogtreecommitdiffstats
path: root/template
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2007-09-08 07:14:25 +0200
committermkanat%bugzilla.org <>2007-09-08 07:14:25 +0200
commitaa888f2218179d59b4f0b8e51e43b863f1da3e43 (patch)
tree4e6bf6ff4b7066b19c5b1728dd325adf4bed1f78 /template
parent16336299f17522d040736cb0f063694381d9d761 (diff)
downloadbugzilla-aa888f2218179d59b4f0b8e51e43b863f1da3e43.tar.gz
bugzilla-aa888f2218179d59b4f0b8e51e43b863f1da3e43.tar.xz
Bug 287330: Multi-Select Custom Fields
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit
Diffstat (limited to 'template')
-rw-r--r--template/en/default/admin/custom_fields/edit.html.tmpl3
-rw-r--r--template/en/default/bug/field.html.tmpl31
-rw-r--r--template/en/default/global/field-descs.none.tmpl4
-rw-r--r--template/en/default/global/user-error.html.tmpl6
4 files changed, 34 insertions, 10 deletions
diff --git a/template/en/default/admin/custom_fields/edit.html.tmpl b/template/en/default/admin/custom_fields/edit.html.tmpl
index 9199eb62a..b983bbcc6 100644
--- a/template/en/default/admin/custom_fields/edit.html.tmpl
+++ b/template/en/default/admin/custom_fields/edit.html.tmpl
@@ -84,7 +84,8 @@
<th>&nbsp;</th>
<td>&nbsp;</td>
</tr>
- [% IF field.type == constants.FIELD_TYPE_SINGLE_SELECT %]
+ [% IF field.type == constants.FIELD_TYPE_SINGLE_SELECT
+ || field.type == constants.FIELD_TYPE_MULTI_SELECT %]
<tr>
<th>&nbsp;</th>
<td colspan="3">
diff --git a/template/en/default/bug/field.html.tmpl b/template/en/default/bug/field.html.tmpl
index af1233097..1652ffb0b 100644
--- a/template/en/default/bug/field.html.tmpl
+++ b/template/en/default/bug/field.html.tmpl
@@ -42,21 +42,42 @@
[% SWITCH field.type %]
[% CASE constants.FIELD_TYPE_FREETEXT %]
<input name="[% field.name FILTER html %]" value="[% value FILTER html %]" size="60">
- [% CASE constants.FIELD_TYPE_SINGLE_SELECT %]
- <select id="[% field.name FILTER html %]" name="[% field.name FILTER html %]">
+ [% CASE [ constants.FIELD_TYPE_SINGLE_SELECT
+ constants.FIELD_TYPE_MULTI_SELECT ] %]
+ <select id="[% field.name FILTER html %]"
+ name="[% field.name FILTER html %]"
+ [% IF field.type == constants.FIELD_TYPE_MULTI_SELECT %]
+ [% SET field_size = 5 %]
+ [% IF field.legal_values.size < 5 %]
+ [% SET field_size = field.legal_values.size %]
+ [% END %]
+ size="[% field_size FILTER html %]" multiple="multiple"
+ [% END %]
+ >
[% IF allow_dont_change %]
- <option value="[% dontchange FILTER html %]">
+ <option value="[% dontchange FILTER html %]"
+ [% ' selected="selected"' IF value == dontchange %]>
[% dontchange FILTER html %]
</option>
[% END %]
[% FOREACH legal_value = field.legal_values %]
<option value="[% legal_value FILTER html %]"
- [%- " selected=\"selected\"" IF value == legal_value %]>
+ [%- " selected=\"selected\"" IF value.contains(legal_value).size %]>
[%- legal_value FILTER html %]</option>
[% END %]
</select>
+ [%# When you pass an empty multi-select in the web interface,
+ # it doesn't appear at all in the CGI object. Instead of
+ # forcing all users of process_bug to always specify every
+ # multi-select, we have this field defined if the multi-select
+ # field is defined, and then if this is passed but the multi-select
+ # isn't, we know that the multi-select was emptied.
+ %]
+ [% IF field.type == constants.FIELD_TYPE_MULTI_SELECT %]
+ <input type="hidden" name="defined_[% field.name FILTER html %]">
+ [% END %]
[% END %]
[% ELSE %]
- [% value FILTER html %]
+ [% value.join(', ') FILTER html %]
[% END %]
</td>
diff --git a/template/en/default/global/field-descs.none.tmpl b/template/en/default/global/field-descs.none.tmpl
index 2d577bb1a..dc6887707 100644
--- a/template/en/default/global/field-descs.none.tmpl
+++ b/template/en/default/global/field-descs.none.tmpl
@@ -80,7 +80,9 @@
[% field_types = { ${constants.FIELD_TYPE_UNKNOWN} => "Unknown Type",
${constants.FIELD_TYPE_FREETEXT} => "Free Text",
- ${constants.FIELD_TYPE_SINGLE_SELECT} => "Drop Down" } %]
+ ${constants.FIELD_TYPE_SINGLE_SELECT} => "Drop Down",
+ ${constants.FIELD_TYPE_MULTI_SELECT} => "Multiple-Selection Box",
+ } %]
[% status_descs = { "UNCONFIRMED" => "UNCONFIRMED",
"NEW" => "NEW",
diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl
index 5a33b75c5..ff9c17497 100644
--- a/template/en/default/global/user-error.html.tmpl
+++ b/template/en/default/global/user-error.html.tmpl
@@ -658,13 +658,13 @@
[% ELSIF error == "illegal_change" %]
[% title = "Not allowed" %]
- You tried to change the
+ You tried to change the
<strong>[% field_descs.$field FILTER html %]</strong> field
[% IF oldvalue.defined %]
- from <em>[% oldvalue FILTER html %]</em>
+ from <em>[% oldvalue.join(', ') FILTER html %]</em>
[% END %]
[% IF newvalue.defined %]
- to <em>[% newvalue FILTER html %]</em>
+ to <em>[% newvalue.join(', ') FILTER html %]</em>
[% END %]
, but only
[% IF privs < 3 %]