bugzilla-4intranet/template/en/default/bug/field.html.tmpl

272 lines
12 KiB
Cheetah

[%# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Bug Tracking System.
#
# The Initial Developer of the Original Code is Netscape Communications
# Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): Myk Melez <myk@mozilla.org>
# Max Kanat-Alexander <mkanat@bugzilla.org>
# Elliotte Martin <elliotte_martin@yahoo.com>
#%]
[%# INTERFACE:
# field: a Bugzilla::Field object
# value: The value of the field for this bug.
# value_name: (alternative) Value name, for select fields.
# override_legal_values: (optional)
# The list of legal values, for select fields.
# editable:
# Whether the field should be displayed as an editable
# <input> or as just the plain text of its value.
# allow_dont_change: display the --do_not_change-- option for select fields.
# value_span:
# A colspan for the table cell containing the field value.
# no_tds: boolean;
# If true, don't display the label <th> or the wrapping <td> for the field.
# custom_label: string;
# Label for this field. Default label is takes from the field description.
# desc_url: string;
# Normally the label of a non-custom field links to
# fields.html. If you want it to link elsewhere, specify the
# relative URL you want to link to, here. Remember to call
# url_quote on any query string arguments.
# bug: (optional)
# The current Bugzilla::Bug being displayed, or a hash
# with default field values being displayed on a page.
# tabindex: (optional) HTML tabindex.
#%]
[% IF NOT no_tds %]
<th class="field_label" id="field_label_[% field.name | html %]">
[% IF editable %]
<label for="[% field.name | html %]">
[% END %]
[% IF desc_url %]
<a href="[% desc_url | html %]">
[% ELSIF !field.custom %]
<a href="page.cgi?id=fields.html#[% field.name | url_quote %]">
[% END -%]
[% custom_label || field_descs.${field.name} || field.description | html %]:
[%- '</a>' IF desc_url || !field.custom %]
[% '</label>' IF editable %]
</th>
<td class="field_value" id="field_container_[% field.name | html %]"
[% " colspan=\"$value_span\"" | none IF value_span %]>
[% END %]
[% IF editable %]
[% SWITCH field.type %]
[% CASE constants.FIELD_TYPE_FREETEXT %]
<input id="[% field.name | html %]" class="text_input"
name="[% field.name | html %]"
value="[% value | html %]" size="40"
[% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]
maxlength="[% constants.MAX_FREETEXT_LENGTH | none %]" />
[% CASE constants.FIELD_TYPE_NUMERIC %]
<input id="[% field.name | html %]" class="numeric_input"
name="[% field.name | html %]"
value="[% value | html %]" size="14"
[% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]
maxlength="[% constants.MAX_NUMERIC_LENGTH | none %]"
onchange="this.className = 'numeric_input' + (isNaN(this.value) ? ' numeric_invalid' : '');"
onkeyup="this.className = 'numeric_input' + (isNaN(this.value) ? ' numeric_invalid' : '');" />
[% CASE constants.FIELD_TYPE_DATETIME %]
<input name="[% field.name | html %]" size="20"
[% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]
id="[% field.name | html %]"
value="[% value | html %]" />
<script type="text/javascript">
Calendar.set('[% field.name | js %]')
</script>
[% CASE constants.FIELD_TYPE_BUG_ID %]
<span id="[% field.name | html %]_input_area">
<input name="[% field.name | html %]" id="[% field.name | html %]"
[% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]
value="[% value | html %]" size="7" />
</span>
[%# Do not hide input on bug creation form %]
[% IF bug.id %]
[% IF bug.${field.name} %]
[% bug.${field.name} | bug_link(bug.${field.name}) | none %]
[% END %]
<span id="[% field.name | html %]_edit_container" class="edit_me bz_default_hidden">
(<a href="#" id="[% field.name | html %]_edit_action" [% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]>edit</a>)
</span>
<script type="text/javascript">
hideEditableField(
'[% field.name | js %]_edit_container',
'[% field.name | js %]_input_area',
'[% field.name | js %]_edit_action',
'[% field.name | js %]',
"[% bug.${field.name} | js %]"
);
</script>
[% END %]
[% CASE constants.FIELD_TYPE_EXTURL %]
<span id="[% field.name | html %]_input_area">
<input name="[% field.name | html %]" id="[% field.name | html %]"
[% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]
value="[% value | html %]" size="30" />
</span>
[% IF bug.${field.name} %]
[% SET url_quoted = bug.${field.name} | url_quote_ns %]
<a href="[% field.url.replace('\$1', url_quoted) %]">[% bug.${field.name} | html %]</a>
[% END %]
<span id="[% field.name | html %]_edit_container" class="edit_me bz_default_hidden">
(<a href="#" id="[% field.name | html %]_edit_action" [% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]>edit</a>)
</span>
<script type="text/javascript">
hideEditableField(
'[% field.name | js %]_edit_container',
'[% field.name | js %]_input_area',
'[% field.name | js %]_edit_action',
'[% field.name | js %]',
"[% bug.${field.name} | js %]"
);
</script>
[% CASE [ constants.FIELD_TYPE_SINGLE_SELECT, constants.FIELD_TYPE_MULTI_SELECT ] %]
<select id="[% field.name | html %]"
[% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]
name="[% field.name | html %]"
[% IF field.type == constants.FIELD_TYPE_MULTI_SELECT %]
[% # FIXME array[] when $cgi->VarHash will be used everywhere %]
[% SET field_size = 5 %]
[% IF field.legal_values.size < 5 %]
[% SET field_size = field.legal_values.size %]
[% END %]
size="[% field_size | html %]" multiple="multiple"
[% END %]>
[% IF allow_dont_change %]
<option value="[% dontchange | html %]" [% ' selected="selected"' IF value == dontchange %]>
[% dontchange | html %]
</option>
[% END %]
[% IF field.type == constants.FIELD_TYPE_SINGLE_SELECT && field.check_is_nullable(bug) %]
<option value="">---</option>
[% END %]
[% IF override_legal_values %]
[% legal_values = override_legal_values %]
[% ELSIF field.value_field AND field.name != 'product' %]
[% legal_values = field.restricted_legal_values(bug.get_ids(field.value_field.name)) %]
[% ELSE %]
[% legal_values = field.legal_values %]
[% END %]
[% value_found = allow_dont_change AND value == dontchange %]
[% FOREACH legal_value = legal_values %]
<option value="[% legal_value.name | html %]" id="v[% legal_value.id | html %]_[% field.name | html %]"
[% IF value.contains(legal_value.id).size || value_name.defined && value_name.contains(legal_value.name).size %]
selected="selected"
[% value_found = 1 %]
[% END %]>
[%- legal_value.name | html ~%]
</option>
[% END %]
[% IF NOT value_found %]
[% value = bug.get_object(field.name) %]
[% IF value %]
[% FOR v = value %]
<option selected="selected" value="[% v.name | html %]" id="v[% v.id | html %]_[% field.name | html %]">[% v.name | html %]</option>
[% END %]
[% END %]
[% 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 | html %]" />
[% END %]
[% CASE constants.FIELD_TYPE_TEXTAREA %]
[% INCLUDE global/textarea.html.tmpl
id = field.name
name = field.name
minrows = 4
maxrows = 8
cols = 60
defaultcontent = value
tabindex = tabindex %]
[% CASE constants.FIELD_TYPE_BUG_URLS %]
[% '<ul class="bug_urls">' IF value.size %]
[% FOREACH url = value %]
<li>
<a href="[% url | html %]">[% url | html %]</a>
[% IF editable %]
<label><input type="checkbox" value="[% url | html %]"
[% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]
name="remove_[% field.name | html %]" />Remove</label> [% # FIXME array[] when $cgi->VarHash will be used everywhere %]
[% END %]
</li>
[% END %]
[% '</ul>' IF value.size %]
[% IF editable && Bugzilla.get_field('see_also').enabled %]
<label for="[% field.name | html %]">
<strong>Add [% terms.Bug %] URLs:</strong>
</label><br>
<input type="text" id="[% field.name | html %]" size="40"
[% IF tabindex %] tabindex="[% tabindex | html %]"[% END %]
class="text_input" name="[% field.name | html %]" />
[% END %]
[% CASE constants.FIELD_TYPE_BUG_ID_REV %]
[% FOREACH b = bug.${field.name} %]
[% ", " IF !loop.first %][% b | bug_link(b) | none %]
[% END %]
[% END %]
[%#
# Custis Bug 129375 - Add search link for some custom fields
#%]
[% IF bug.id && field.name != 'priority' && field.name != 'bug_status' &&
field.name != 'resolution' && field.type != constants.FIELD_TYPE_BUG_ID_REV &&
field.type != constants.FIELD_TYPE_MULTI_SELECT %]
&nbsp;(<a href="buglist.cgi?query_format=advanced&product=[% bug.product | uri %]
[%- IF field.name != 'product' %]&
[%- IF field.type == constants.FIELD_TYPE_DATETIME -%]
type0-1-0=greaterthaneq&field0-1-0=[% field.name %]&field0-0-0=[% field.name %]&value0-1-0=[% bug.${field.name}.substr(0,10) | uri -%]
+00%3A00%3A00&type0-0-0=lessthaneq&value0-0-0=[% bug.${field.name}.substr(0,10) | uri %]+23%3A59%3A59
[%- ELSIF field.type == constants.FIELD_TYPE_BUG_ID_REV -%]
[%- field.name %]=[% bug.${field.name}.join(' ') | uri -%]
[%- ELSE -%]
[%- field.name %]=[% bug.${field.name} | uri -%]
[%- END -%]
[%- END -%]" target="_blank" id="search_link_[% field.name %]" class="search-link">search</a>)
[% END %]
[% ELSIF field.type == constants.FIELD_TYPE_TEXTAREA %]
<div class="uneditable_textarea">[% value | html | wrap_comment %]</div>
[% ELSIF field.type == constants.FIELD_TYPE_BUG_ID %]
[% IF bug.${field.name} %]
[% bug.${field.name} | bug_link(bug.${field.name}) | none %]
[% END %]
[% ELSIF field.type == constants.FIELD_TYPE_SINGLE_SELECT %]
[% IF value_name %]
[% value_name | html %]
[% ELSE %]
[% f = field.name _ '_obj' %]
[% bug.$f.name | html %]
[% END %]
[% ELSIF field.type == constants.FIELD_TYPE_MULTI_SELECT %]
[% f = field.name _ '_obj' %]
[% bug.$f.name.join(', ') | html %]
[% ELSE %]
[% value.join(', ') | html %]
[% END %]
[% '</td>' IF NOT no_tds %]