_form.rhtml
98 lines
| 3.2 KiB
| text/html+ruby
|
RhtmlLexer
|
r2 | <%= error_messages_for 'custom_field' %> | ||
|
r220 | <script type="text/javascript"> | ||
//<![CDATA[ | ||||
|
r97 | function toggle_custom_field_format() { | ||
format = $("custom_field_field_format"); | ||||
p_length = $("custom_field_min_length"); | ||||
p_regexp = $("custom_field_regexp"); | ||||
p_values = $("custom_field_possible_values"); | ||||
|
r981 | p_searchable = $("custom_field_searchable"); | ||
|
r97 | switch (format.value) { | ||
case "list": | ||||
Element.hide(p_length.parentNode); | ||||
Element.hide(p_regexp.parentNode); | ||||
|
r981 | Element.show(p_searchable.parentNode); | ||
|
r220 | Element.show(p_values); | ||
|
r97 | break; | ||
case "date": | ||||
case "bool": | ||||
Element.hide(p_length.parentNode); | ||||
Element.hide(p_regexp.parentNode); | ||||
|
r981 | Element.hide(p_searchable.parentNode); | ||
Element.hide(p_values); | ||||
break; | ||||
case "float": | ||||
case "int": | ||||
Element.show(p_length.parentNode); | ||||
Element.show(p_regexp.parentNode); | ||||
Element.hide(p_searchable.parentNode); | ||||
|
r220 | Element.hide(p_values); | ||
|
r97 | break; | ||
default: | ||||
Element.show(p_length.parentNode); | ||||
Element.show(p_regexp.parentNode); | ||||
|
r981 | Element.show(p_searchable.parentNode); | ||
|
r857 | Element.hide(p_values); | ||
|
r97 | break; | ||
} | ||||
} | ||||
|
r220 | |||
function addValueField() { | ||||
var f = $$('p#custom_field_possible_values span'); | ||||
p = document.getElementById("custom_field_possible_values"); | ||||
var v = f[0].cloneNode(true); | ||||
v.childNodes[0].value = ""; | ||||
p.appendChild(v); | ||||
} | ||||
function deleteValueField(e) { | ||||
var f = $$('p#custom_field_possible_values span'); | ||||
if (f.length == 1) { | ||||
e.parentNode.childNodes[0].value = ""; | ||||
} else { | ||||
Element.remove(e.parentNode); | ||||
} | ||||
} | ||||
//]]> | ||||
|
r97 | </script> | ||
|
r10 | <div class="box"> | ||
|
r97 | <p><%= f.text_field :name, :required => true %></p> | ||
|
r330 | <p><%= f.select :field_format, custom_field_formats_for_select, {}, :onchange => "toggle_custom_field_format();" %></p> | ||
|
r19 | <p><label for="custom_field_min_length"><%=l(:label_min_max_length)%></label> | ||
|
r97 | <%= f.text_field :min_length, :size => 5, :no_label => true %> - | ||
<%= f.text_field :max_length, :size => 5, :no_label => true %><br>(<%=l(:text_min_max_length_info)%>)</p> | ||||
|
r330 | <p><%= f.text_field :regexp, :size => 50 %><br>(<%=l(:text_regexp_info)%>)</p> | ||
|
r220 | <p id="custom_field_possible_values"><label><%= l(:field_possible_values) %> <%= image_to_function "add.png", "addValueField();return false" %></label> | ||
<% (@custom_field.possible_values.to_a + [""]).each do |value| %> | ||||
<span><%= text_field_tag 'custom_field[possible_values][]', value, :size => 30 %> <%= image_to_function "delete.png", "deleteValueField(this);return false" %><br /></span> | ||||
<% end %> | ||||
</p> | ||||
|
r330 | </div> | ||
|
r2 | |||
|
r10 | <div class="box"> | ||
|
r97 | <% case @custom_field.type.to_s | ||
|
r330 | when "IssueCustomField" %> | ||
<fieldset><legend><%=l(:label_tracker_plural)%></legend> | ||||
|
r97 | <% for tracker in @trackers %> | ||
|
r330 | <%= check_box_tag "tracker_ids[]", tracker.id, (@custom_field.trackers.include? tracker) %> <%= tracker.name %> | ||
|
r97 | <% end %> | ||
|
r330 | </fieldset> | ||
|
r97 | | ||
<p><%= f.check_box :is_required %></p> | ||||
<p><%= f.check_box :is_for_all %></p> | ||||
|
r444 | <p><%= f.check_box :is_filter %></p> | ||
|
r981 | <p><%= f.check_box :searchable %></p> | ||
|
r97 | |||
<% when "UserCustomField" %> | ||||
<p><%= f.check_box :is_required %></p> | ||||
|
r10 | |||
|
r97 | <% when "ProjectCustomField" %> | ||
<p><%= f.check_box :is_required %></p> | ||||
|
r10 | |||
<% end %> | ||||
</div> | ||||
|
r981 | <%= javascript_tag "toggle_custom_field_format();" %> | ||