##// END OF EJS Templates
Allow existing single value custom fields to be changed to multiselect....
Jean-Philippe Lang -
r8603:f84688687bcb
parent child
Show More
@@ -1,128 +1,128
1 <%= error_messages_for 'custom_field' %>
1 <%= error_messages_for 'custom_field' %>
2
2
3 <script type="text/javascript">
3 <script type="text/javascript">
4 //<![CDATA[
4 //<![CDATA[
5 function toggle_custom_field_format() {
5 function toggle_custom_field_format() {
6 format = $("custom_field_field_format");
6 format = $("custom_field_field_format");
7 p_length = $("custom_field_min_length");
7 p_length = $("custom_field_min_length");
8 p_regexp = $("custom_field_regexp");
8 p_regexp = $("custom_field_regexp");
9 p_values = $("custom_field_possible_values");
9 p_values = $("custom_field_possible_values");
10 p_searchable = $("custom_field_searchable");
10 p_searchable = $("custom_field_searchable");
11 p_default = $("custom_field_default_value");
11 p_default = $("custom_field_default_value");
12 p_multiple = $("custom_field_multiple");
12 p_multiple = $("custom_field_multiple");
13
13
14 p_default.setAttribute('type','text');
14 p_default.setAttribute('type','text');
15 Element.show(p_default.parentNode);
15 Element.show(p_default.parentNode);
16
16
17 switch (format.value) {
17 switch (format.value) {
18 case "list":
18 case "list":
19 Element.hide(p_length.parentNode);
19 Element.hide(p_length.parentNode);
20 Element.hide(p_regexp.parentNode);
20 Element.hide(p_regexp.parentNode);
21 if (p_searchable) Element.show(p_searchable.parentNode);
21 if (p_searchable) Element.show(p_searchable.parentNode);
22 Element.show(p_values.parentNode);
22 Element.show(p_values.parentNode);
23 Element.show(p_multiple.parentNode);
23 Element.show(p_multiple.parentNode);
24 break;
24 break;
25 case "bool":
25 case "bool":
26 p_default.setAttribute('type','checkbox');
26 p_default.setAttribute('type','checkbox');
27 Element.hide(p_length.parentNode);
27 Element.hide(p_length.parentNode);
28 Element.hide(p_regexp.parentNode);
28 Element.hide(p_regexp.parentNode);
29 if (p_searchable) Element.hide(p_searchable.parentNode);
29 if (p_searchable) Element.hide(p_searchable.parentNode);
30 Element.hide(p_values.parentNode);
30 Element.hide(p_values.parentNode);
31 Element.hide(p_multiple.parentNode);
31 Element.hide(p_multiple.parentNode);
32 break;
32 break;
33 case "date":
33 case "date":
34 Element.hide(p_length.parentNode);
34 Element.hide(p_length.parentNode);
35 Element.hide(p_regexp.parentNode);
35 Element.hide(p_regexp.parentNode);
36 if (p_searchable) Element.hide(p_searchable.parentNode);
36 if (p_searchable) Element.hide(p_searchable.parentNode);
37 Element.hide(p_values.parentNode);
37 Element.hide(p_values.parentNode);
38 Element.hide(p_multiple.parentNode);
38 Element.hide(p_multiple.parentNode);
39 break;
39 break;
40 case "float":
40 case "float":
41 case "int":
41 case "int":
42 Element.show(p_length.parentNode);
42 Element.show(p_length.parentNode);
43 Element.show(p_regexp.parentNode);
43 Element.show(p_regexp.parentNode);
44 if (p_searchable) Element.hide(p_searchable.parentNode);
44 if (p_searchable) Element.hide(p_searchable.parentNode);
45 Element.hide(p_values.parentNode);
45 Element.hide(p_values.parentNode);
46 Element.hide(p_multiple.parentNode);
46 Element.hide(p_multiple.parentNode);
47 break;
47 break;
48 case "user":
48 case "user":
49 case "version":
49 case "version":
50 Element.hide(p_length.parentNode);
50 Element.hide(p_length.parentNode);
51 Element.hide(p_regexp.parentNode);
51 Element.hide(p_regexp.parentNode);
52 if (p_searchable) Element.hide(p_searchable.parentNode);
52 if (p_searchable) Element.hide(p_searchable.parentNode);
53 Element.hide(p_values.parentNode);
53 Element.hide(p_values.parentNode);
54 Element.hide(p_default.parentNode);
54 Element.hide(p_default.parentNode);
55 Element.show(p_multiple.parentNode);
55 Element.show(p_multiple.parentNode);
56 break;
56 break;
57 default:
57 default:
58 Element.show(p_length.parentNode);
58 Element.show(p_length.parentNode);
59 Element.show(p_regexp.parentNode);
59 Element.show(p_regexp.parentNode);
60 if (p_searchable) Element.show(p_searchable.parentNode);
60 if (p_searchable) Element.show(p_searchable.parentNode);
61 Element.hide(p_values.parentNode);
61 Element.hide(p_values.parentNode);
62 Element.hide(p_multiple.parentNode);
62 Element.hide(p_multiple.parentNode);
63 break;
63 break;
64 }
64 }
65 }
65 }
66
66
67 //]]>
67 //]]>
68 </script>
68 </script>
69
69
70 <div class="box tabular">
70 <div class="box tabular">
71 <p><%= f.text_field :name, :required => true %></p>
71 <p><%= f.text_field :name, :required => true %></p>
72 <p><%= f.select :field_format, custom_field_formats_for_select(@custom_field), {}, :onchange => "toggle_custom_field_format();",
72 <p><%= f.select :field_format, custom_field_formats_for_select(@custom_field), {}, :onchange => "toggle_custom_field_format();",
73 :disabled => !@custom_field.new_record? %></p>
73 :disabled => !@custom_field.new_record? %></p>
74 <p><%= f.check_box :multiple, :disabled => !@custom_field.new_record? %></p>
74 <p><%= f.check_box :multiple, :disabled => @custom_field.multiple && !@custom_field.new_record? %></p>
75 <p><label for="custom_field_min_length"><%=l(:label_min_max_length)%></label>
75 <p><label for="custom_field_min_length"><%=l(:label_min_max_length)%></label>
76 <%= f.text_field :min_length, :size => 5, :no_label => true %> -
76 <%= f.text_field :min_length, :size => 5, :no_label => true %> -
77 <%= f.text_field :max_length, :size => 5, :no_label => true %><br />(<%=l(:text_min_max_length_info)%>)</p>
77 <%= f.text_field :max_length, :size => 5, :no_label => true %><br />(<%=l(:text_min_max_length_info)%>)</p>
78 <p><%= f.text_field :regexp, :size => 50 %><br />(<%=l(:text_regexp_info)%>)</p>
78 <p><%= f.text_field :regexp, :size => 50 %><br />(<%=l(:text_regexp_info)%>)</p>
79 <p>
79 <p>
80 <%= f.text_area :possible_values, :value => @custom_field.possible_values.to_a.join("\n"), :rows => 15 %>
80 <%= f.text_area :possible_values, :value => @custom_field.possible_values.to_a.join("\n"), :rows => 15 %>
81 <br /><em><%= l(:text_custom_field_possible_values_info) %></em>
81 <br /><em><%= l(:text_custom_field_possible_values_info) %></em>
82 </p>
82 </p>
83 <p><%= @custom_field.field_format == 'bool' ? f.check_box(:default_value) : f.text_field(:default_value) %></p>
83 <p><%= @custom_field.field_format == 'bool' ? f.check_box(:default_value) : f.text_field(:default_value) %></p>
84 <%= call_hook(:view_custom_fields_form_upper_box, :custom_field => @custom_field, :form => f) %>
84 <%= call_hook(:view_custom_fields_form_upper_box, :custom_field => @custom_field, :form => f) %>
85 </div>
85 </div>
86
86
87 <div class="box tabular">
87 <div class="box tabular">
88 <% case @custom_field.class.name
88 <% case @custom_field.class.name
89 when "IssueCustomField" %>
89 when "IssueCustomField" %>
90
90
91 <fieldset><legend><%=l(:label_tracker_plural)%></legend>
91 <fieldset><legend><%=l(:label_tracker_plural)%></legend>
92 <% Tracker.all.each do |tracker| %>
92 <% Tracker.all.each do |tracker| %>
93 <%= check_box_tag "custom_field[tracker_ids][]",
93 <%= check_box_tag "custom_field[tracker_ids][]",
94 tracker.id,
94 tracker.id,
95 (@custom_field.trackers.include? tracker),
95 (@custom_field.trackers.include? tracker),
96 :id => "custom_field_tracker_ids_#{tracker.id}" %>
96 :id => "custom_field_tracker_ids_#{tracker.id}" %>
97 <label class="no-css" for="custom_field_tracker_ids_<%=tracker.id%>">
97 <label class="no-css" for="custom_field_tracker_ids_<%=tracker.id%>">
98 <%= h(tracker.name) %>
98 <%= h(tracker.name) %>
99 </label>
99 </label>
100 <% end %>
100 <% end %>
101 <%= hidden_field_tag "custom_field[tracker_ids][]", '' %>
101 <%= hidden_field_tag "custom_field[tracker_ids][]", '' %>
102 </fieldset>
102 </fieldset>
103 &nbsp;
103 &nbsp;
104 <p><%= f.check_box :is_required %></p>
104 <p><%= f.check_box :is_required %></p>
105 <p><%= f.check_box :is_for_all %></p>
105 <p><%= f.check_box :is_for_all %></p>
106 <p><%= f.check_box :is_filter %></p>
106 <p><%= f.check_box :is_filter %></p>
107 <p><%= f.check_box :searchable %></p>
107 <p><%= f.check_box :searchable %></p>
108
108
109 <% when "UserCustomField" %>
109 <% when "UserCustomField" %>
110 <p><%= f.check_box :is_required %></p>
110 <p><%= f.check_box :is_required %></p>
111 <p><%= f.check_box :visible %></p>
111 <p><%= f.check_box :visible %></p>
112 <p><%= f.check_box :editable %></p>
112 <p><%= f.check_box :editable %></p>
113
113
114 <% when "ProjectCustomField" %>
114 <% when "ProjectCustomField" %>
115 <p><%= f.check_box :is_required %></p>
115 <p><%= f.check_box :is_required %></p>
116 <p><%= f.check_box :visible %></p>
116 <p><%= f.check_box :visible %></p>
117 <p><%= f.check_box :searchable %></p>
117 <p><%= f.check_box :searchable %></p>
118
118
119 <% when "TimeEntryCustomField" %>
119 <% when "TimeEntryCustomField" %>
120 <p><%= f.check_box :is_required %></p>
120 <p><%= f.check_box :is_required %></p>
121
121
122 <% else %>
122 <% else %>
123 <p><%= f.check_box :is_required %></p>
123 <p><%= f.check_box :is_required %></p>
124
124
125 <% end %>
125 <% end %>
126 <%= call_hook(:"view_custom_fields_form_#{@custom_field.type.to_s.underscore}", :custom_field => @custom_field, :form => f) %>
126 <%= call_hook(:"view_custom_fields_form_#{@custom_field.type.to_s.underscore}", :custom_field => @custom_field, :form => f) %>
127 </div>
127 </div>
128 <%= javascript_tag "toggle_custom_field_format();" %>
128 <%= javascript_tag "toggle_custom_field_format();" %>
General Comments 0
You need to be logged in to leave comments. Login now