diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 581ea2fe..3f96c7de 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -132,6 +132,15 @@ module ApplicationHelper s end + # Renders tabs and their content + def render_tabs(tabs) + if tabs.any? + render :partial => 'common/tabs', :locals => {:tabs => tabs} + else + content_tag 'p', l(:label_no_data), :class => "nodata" + end + end + # Renders the project quick-jump box def render_project_jump_box # Retrieve them now to avoid a COUNT query diff --git a/app/helpers/custom_fields_helper.rb b/app/helpers/custom_fields_helper.rb index eb39b4c0..f97b9238 100644 --- a/app/helpers/custom_fields_helper.rb +++ b/app/helpers/custom_fields_helper.rb @@ -18,11 +18,11 @@ module CustomFieldsHelper def custom_fields_tabs - tabs = [{:name => 'IssueCustomField', :label => :label_issue_plural}, - {:name => 'TimeEntryCustomField', :label => :label_spent_time}, - {:name => 'ProjectCustomField', :label => :label_project_plural}, - {:name => 'UserCustomField', :label => :label_user_plural}, - {:name => 'GroupCustomField', :label => :label_group_plural} + tabs = [{:name => 'IssueCustomField', :partial => 'custom_fields/index', :label => :label_issue_plural}, + {:name => 'TimeEntryCustomField', :partial => 'custom_fields/index', :label => :label_spent_time}, + {:name => 'ProjectCustomField', :partial => 'custom_fields/index', :label => :label_project_plural}, + {:name => 'UserCustomField', :partial => 'custom_fields/index', :label => :label_user_plural}, + {:name => 'GroupCustomField', :partial => 'custom_fields/index', :label => :label_group_plural} ] end diff --git a/app/views/common/_tabs.rhtml b/app/views/common/_tabs.rhtml new file mode 100644 index 00000000..f9ef5dd3 --- /dev/null +++ b/app/views/common/_tabs.rhtml @@ -0,0 +1,19 @@ +<% selected_tab = params[:tab] ? params[:tab].to_s : tabs.first[:name] %> + +
<%=l(:field_name)%> | +<%=l(:field_field_format)%> | +<%=l(:field_is_required)%> | + <% if tab[:name] == 'IssueCustomField' %> +<%=l(:field_is_for_all)%> | +<%=l(:label_used_by)%> | + <% end %> +<%=l(:button_sort)%> | ++ |
---|---|---|---|---|---|---|
<%= link_to custom_field.name, :action => 'edit', :id => custom_field %> | +<%= l(CustomField::FIELD_FORMATS[custom_field.field_format][:name]) %> | +<%= image_tag 'true.png' if custom_field.is_required? %> | + <% if tab[:name] == 'IssueCustomField' %> +<%= image_tag 'true.png' if custom_field.is_for_all? %> | +<%= l(:label_x_projects, :count => custom_field.projects.count) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %> | + <% end %> +<%= reorder_links('custom_field', {:action => 'edit', :id => custom_field}) %> | ++ <%= button_to l(:button_delete), { :action => 'destroy', :id => custom_field }, :confirm => l(:text_are_you_sure), :class => "button-small" %> + | +
<%= link_to l(:label_custom_field_new), {:action => 'new', :type => tab[:name]}, :class => 'icon icon-add' %>
diff --git a/app/views/custom_fields/index.rhtml b/app/views/custom_fields/index.rhtml index 999648f0..7b29e25e 100644 --- a/app/views/custom_fields/index.rhtml +++ b/app/views/custom_fields/index.rhtml @@ -1,53 +1,5 @@<%= l(:label_no_data) %>
-<% end %> +<%= render_tabs project_settings_tabs %> <% html_title(l(:label_settings)) -%> diff --git a/app/views/settings/edit.rhtml b/app/views/settings/edit.rhtml index c99a1396..de64e3bb 100644 --- a/app/views/settings/edit.rhtml +++ b/app/views/settings/edit.rhtml @@ -1,23 +1,5 @@