diff --git a/app/views/custom_fields/_form.html.erb b/app/views/custom_fields/_form.html.erb
index e428a27c6..97d39f96b 100644
--- a/app/views/custom_fields/_form.html.erb
+++ b/app/views/custom_fields/_form.html.erb
@@ -31,101 +31,37 @@
-<% case @custom_field.class.name
-when "IssueCustomField" %>
-
-
<%= f.check_box :is_required %>
- <% if @custom_field.format.is_filter_supported %>
-
<%= f.check_box :is_filter %>
- <% end %>
- <% if @custom_field.format.searchable_supported %>
-
<%= f.check_box :searchable %>
- <% end %>
-
- <%= render :partial => 'visibility_by_role_selector' %>
-
-<% when "UserCustomField" %>
-
-
<%= f.check_box :is_required %>
-
<%= f.check_box :visible %>
-
<%= f.check_box :editable %>
- <% if @custom_field.format.is_filter_supported %>
-
<%= f.check_box :is_filter %>
- <% end %>
-
-
-<% when "ProjectCustomField" %>
-
-
<%= f.check_box :is_required %>
-
<%= f.check_box :visible %>
- <% if @custom_field.format.searchable_supported %>
-
<%= f.check_box :searchable %>
- <% end %>
- <% if @custom_field.format.is_filter_supported %>
-
<%= f.check_box :is_filter %>
- <% end %>
-
-
-<% when "VersionCustomField" %>
-
-
<%= f.check_box :is_required %>
- <% if @custom_field.format.is_filter_supported %>
-
<%= f.check_box :is_filter %>
- <% end %>
-
-
-<% when "GroupCustomField" %>
-
-
<%= f.check_box :is_required %>
- <% if @custom_field.format.is_filter_supported %>
-
<%= f.check_box :is_filter %>
- <% end %>
-
-
-<% when "TimeEntryCustomField" %>
-
-
<%= f.check_box :is_required %>
- <% if @custom_field.format.is_filter_supported %>
-
<%= f.check_box :is_filter %>
- <% end %>
-
- <%= render :partial => 'visibility_by_role_selector' %>
-
-<% else %>
<%= f.check_box :is_required %>
+
+ <% if %w(UserCustomField ProjectCustomField).include?(@custom_field.class.name) %>
+
<%= f.check_box :visible %>
+ <% end %>
+
+ <% if @custom_field.is_a?(UserCustomField) %>
+
<%= f.check_box :editable %>
+ <% end %>
+
+ <% if %w(IssueCustomField UserCustomField ProjectCustomField VersionCustomField GroupCustomField TimeEntryCustomField).include?(@custom_field.class.name) &&
+ @custom_field.format.is_filter_supported %>
+
<%= f.check_box :is_filter %>
+ <% end %>
+
+ <% if %w(IssueCustomField ProjectCustomField).include?(@custom_field.class.name) && @custom_field.format.searchable_supported %>
+
<%= f.check_box :searchable %>
+ <% end %>
+ <%= call_hook(:"view_custom_fields_form_#{@custom_field.type.to_s.underscore}", :custom_field => @custom_field, :form => f) %>
-<% end %>
-<%= call_hook(:"view_custom_fields_form_#{@custom_field.type.to_s.underscore}", :custom_field => @custom_field, :form => f) %>
-<% if @custom_field.is_a?(IssueCustomField) %>
-
-
-
-<% end %>
+ <%= render :partial => 'visibility_by_project_selector', :locals => { :f => f } %>
+ <% end %>
diff --git a/app/views/custom_fields/_visibility_by_project_selector.html.erb b/app/views/custom_fields/_visibility_by_project_selector.html.erb
new file mode 100644
index 000000000..d92e5cdab
--- /dev/null
+++ b/app/views/custom_fields/_visibility_by_project_selector.html.erb
@@ -0,0 +1,11 @@
+