[%# 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 Guy Pyrzak # Portions created by the Initial Developer are Copyright (C) 2010 the # Initial Developer. All Rights Reserved. # # Contributor(s): Guy Pyrzak <guy.pyrzak@gmail.com> # Reed Loden <reed@reedloden.com> # #%] [%# INTERFACE: # field: a Bugzilla::Field object # value: the value or values that should be used to prepopulate the field # accesskey: the access key used to access the field more quickly # onchange: js to run when the change event fires on the field # type_selected: used by the free text to indicate which type of text # search was selected for a particular field #%] [% SWITCH field.type %] [% CASE [ constants.FIELD_TYPE_FREETEXT, constants.FIELD_TYPE_TEXTAREA, constants.FIELD_TYPE_UNKNOWN ] %] [% INCLUDE "bug/field-label.html.tmpl" field = field tag_name = "span" editable = 1 %] [% INCLUDE "search/type-select.html.tmpl" name = field.name _ "_type", types = types, selected = type_selected %] <input name="[% field.name FILTER html %]" id="[% field.name FILTER html %]" size="40" [% IF autofocus %] autofocus[% END %] [% IF onchange %] onchange="[% onchange FILTER html %]"[% END %] value="[% value FILTER html %]"> [% CASE constants.FIELD_TYPE_KEYWORDS %] [% INCLUDE "bug/field-label.html.tmpl" field = field tag_name = "span" editable = 1 %] [% INCLUDE "search/type-select.html.tmpl" name = field.name _ "_type", types = types, selected = type_selected %] <input name="[% field.name FILTER html %]" id="[% field.name FILTER html %]" size="40" class="bz_autocomplete_values" [% IF onchange %] onchange="[% onchange FILTER html %]"[% END %] value="[% value FILTER html %]" data-values="[% field.name FILTER html %]"> <script> if (typeof BUGZILLA.autocomplete_values === 'undefined') BUGZILLA.autocomplete_values = []; BUGZILLA.autocomplete_values['[% field.name FILTER js %]'] = [ [%- FOREACH keyword = all_keywords %] [%-# %]"[% keyword.name FILTER js %]" [%- "," IF NOT loop.last %][% END %]]; </script> [% CASE [constants.FIELD_TYPE_DATETIME, constants.FIELD_TYPE_DATE] %] [% INCLUDE "bug/field-label.html.tmpl" field = field tag_name = "span" editable = 1 %] from <input name="[% field.name FILTER html %]from" id="[% field.name FILTER html %]" size="10" maxlength="10" value="[% value.0 FILTER html %]" onchange="updateCalendarFromField(this);[% onchange FILTER html %]"> <button type="button" class="calendar_button" id="button_calendar_[% field.name FILTER html %]" onclick="showCalendar('[% field.name FILTER js %]')"> <span>Calendar</span> </button> <span id="con_calendar_[% field.name FILTER html %]"></span> to <input name="[% field.name FILTER html %]to" id="[% field.name FILTER html %]to" size="10" maxlength="10" value="[% value.1 FILTER html %]" onchange="updateCalendarFromField(this);[% onchange FILTER html %]"> <button type="button" class="calendar_button" id="button_calendar_[% field.name FILTER html %]to" onclick="showCalendar('[% field.name FILTER js %]to')"> <span>Calendar</span> </button> <small>(YYYY-MM-DD or relative dates)</small> <span id="con_calendar_[% field.name FILTER html %]to"></span> <script> createCalendar('[% field.name FILTER js %]'); createCalendar('[% field.name FILTER js %]to'); </script> [% CASE [ constants.FIELD_TYPE_SINGLE_SELECT, constants.FIELD_TYPE_MULTI_SELECT ] %] <div id="container_[% field.name FILTER html %]" class="search_field_grid"> [% INCLUDE "bug/field-label.html.tmpl" field = field editable = 1 tag_name = "span" %] <select name="[% field.name FILTER html%]" id="[% field.name FILTER html %]" [% IF onchange %] onchange="[% onchange FILTER html %]"[% END %] multiple="multiple" size="9"> [% legal_values = ${field.name} %] [% IF field.name == "component" %] [% legal_values = ${"component_"} %] [% END %] [% FOREACH current_value = legal_values %] [% IF current_value.id %] [%# current_value is a hash instead of a value which only applies for Resolution really, everywhere else current_value is just the value %] [% v = current_value.name OR '---' -%] <option value="[% v FILTER html %]" [% ' selected="selected"' IF value.contains( v ) %]> [% display_value(field.name, current_value.name) FILTER html %] </option> [% ELSE %] <option value="[% current_value OR '---' FILTER html %]" [% ' selected="selected"' IF value.contains( current_value ) %]> [% display_value(field.name, current_value) FILTER html %] </option> [% END %] [% END %] </select> </div> [% END %]