custom fields list screen split in 3 tabs (one for each kind of custom fields)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@206 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
fe22797d69
commit
f9c400a727
|
@ -25,7 +25,8 @@ class CustomFieldsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def list
|
def list
|
||||||
@custom_field_pages, @custom_fields = paginate :custom_fields, :per_page => 15
|
@custom_fields_by_type = CustomField.find(:all).group_by {|f| f.type.to_s }
|
||||||
|
@tab = params[:tab] || 'IssueCustomField'
|
||||||
render :action => "list", :layout => false if request.xhr?
|
render :action => "list", :layout => false if request.xhr?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -44,7 +45,7 @@ class CustomFieldsController < ApplicationController
|
||||||
end
|
end
|
||||||
if request.post? and @custom_field.save
|
if request.post? and @custom_field.save
|
||||||
flash[:notice] = l(:notice_successful_create)
|
flash[:notice] = l(:notice_successful_create)
|
||||||
redirect_to :action => 'list'
|
redirect_to :action => 'list', :tab => @custom_field.type
|
||||||
end
|
end
|
||||||
@trackers = Tracker.find(:all)
|
@trackers = Tracker.find(:all)
|
||||||
end
|
end
|
||||||
|
@ -56,14 +57,14 @@ class CustomFieldsController < ApplicationController
|
||||||
@custom_field.trackers = params[:tracker_ids] ? Tracker.find(params[:tracker_ids]) : []
|
@custom_field.trackers = params[:tracker_ids] ? Tracker.find(params[:tracker_ids]) : []
|
||||||
end
|
end
|
||||||
flash[:notice] = l(:notice_successful_update)
|
flash[:notice] = l(:notice_successful_update)
|
||||||
redirect_to :action => 'list'
|
redirect_to :action => 'list', :tab => @custom_field.type
|
||||||
end
|
end
|
||||||
@trackers = Tracker.find(:all)
|
@trackers = Tracker.find(:all)
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
CustomField.find(params[:id]).destroy
|
@custom_field = CustomField.find(params[:id]).destroy
|
||||||
redirect_to :action => 'list'
|
redirect_to :action => 'list', :tab => @custom_field.type
|
||||||
rescue
|
rescue
|
||||||
flash[:notice] = "Unable to delete custom field"
|
flash[:notice] = "Unable to delete custom field"
|
||||||
redirect_to :action => 'list'
|
redirect_to :action => 'list'
|
||||||
|
|
|
@ -1,38 +1,46 @@
|
||||||
<h2><%=l(:label_custom_field_plural)%></h2>
|
<h2><%=l(:label_custom_field_plural)%></h2>
|
||||||
|
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><%= link_to l(:label_issue_plural), {}, :id=> "tab-IssueCustomField", :onclick => "showTab('IssueCustomField'); this.blur(); return false;" %></li>
|
||||||
|
<li><%= link_to l(:label_project_plural), {}, :id=> "tab-ProjectCustomField", :onclick => "showTab('ProjectCustomField'); this.blur(); return false;" %></li>
|
||||||
|
<li><%= link_to l(:label_user_plural), {}, :id=> "tab-UserCustomField", :onclick => "showTab('UserCustomField'); this.blur(); return false;" %></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% %w(IssueCustomField ProjectCustomField UserCustomField).each do |type| %>
|
||||||
|
<div id="tab-content-<%= type %>" class="tab-content">
|
||||||
<table class="list">
|
<table class="list">
|
||||||
<thead><tr>
|
<thead><tr>
|
||||||
<th><%=l(:field_name)%></th>
|
<th width="30%"><%=l(:field_name)%></th>
|
||||||
<th><%=l(:field_type)%></th>
|
|
||||||
<th><%=l(:field_field_format)%></th>
|
<th><%=l(:field_field_format)%></th>
|
||||||
<th><%=l(:field_is_required)%></th>
|
<th><%=l(:field_is_required)%></th>
|
||||||
|
<% if type == 'IssueCustomField' %>
|
||||||
<th><%=l(:field_is_for_all)%></th>
|
<th><%=l(:field_is_for_all)%></th>
|
||||||
<th><%=l(:label_used_by)%></th>
|
<th><%=l(:label_used_by)%></th>
|
||||||
<th></th>
|
<% end %>
|
||||||
|
<th width="10%"></th>
|
||||||
</tr></thead>
|
</tr></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<% for custom_field in @custom_fields %>
|
<% for custom_field in (@custom_fields_by_type[type] || []) %>
|
||||||
<tr class="<%= cycle("odd", "even") %>">
|
<tr class="<%= cycle("odd", "even") %>">
|
||||||
<td><%= link_to custom_field.name, :action => 'edit', :id => custom_field %></td>
|
<td><%= link_to custom_field.name, :action => 'edit', :id => custom_field %></td>
|
||||||
<td align="center"><%= l(custom_field.type_name) %></td>
|
|
||||||
<td align="center"><%= l(CustomField::FIELD_FORMATS[custom_field.field_format][:name]) %></td>
|
<td align="center"><%= l(CustomField::FIELD_FORMATS[custom_field.field_format][:name]) %></td>
|
||||||
<td align="center"><%= image_tag 'true.png' if custom_field.is_required? %></td>
|
<td align="center"><%= image_tag 'true.png' if custom_field.is_required? %></td>
|
||||||
|
<% if type == 'IssueCustomField' %>
|
||||||
<td align="center"><%= image_tag 'true.png' if custom_field.is_for_all? %></td>
|
<td align="center"><%= image_tag 'true.png' if custom_field.is_for_all? %></td>
|
||||||
<td align="center"><%= custom_field.projects.count.to_s + ' ' + lwr(:label_project, custom_field.projects.count) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %></td>
|
<td align="center"><%= custom_field.projects.count.to_s + ' ' + lwr(:label_project, custom_field.projects.count) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %></td>
|
||||||
|
<% end %>
|
||||||
<td align="center">
|
<td align="center">
|
||||||
<%= button_to l(:button_delete), { :action => 'destroy', :id => custom_field }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
|
<%= button_to l(:button_delete), { :action => 'destroy', :id => custom_field }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end; reset_cycle %>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<%= pagination_links_full @custom_field_pages %>
|
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<%=l(:label_custom_field_new)%>:
|
<%= link_to l(:label_custom_field_new), {:action => 'new', :type => type}, :class => 'icon icon-add' %>
|
||||||
<ul>
|
</div>
|
||||||
<li><%= link_to l(:label_issue_plural), :action => 'new', :type => 'IssueCustomField' %></li>
|
<% end %>
|
||||||
<li><%= link_to l(:label_project_plural), :action => 'new', :type => 'ProjectCustomField' %></li>
|
|
||||||
<li><%= link_to l(:label_user_plural), :action => 'new', :type => 'UserCustomField' %></li>
|
<%= javascript_tag "showTab('#{@tab}');" %>
|
||||||
</ul>
|
|
Loading…
Reference in New Issue