diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-01-31 20:10:21 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-01-31 20:10:21 +0000 |
commit | f9c400a727f177021a836d730fde1b992c33228b (patch) | |
tree | 84160c4a2d19186fcd9990b211e04037c41d27e0 | |
parent | fe22797d69273cc68b5d070416223e9c5f52f396 (diff) | |
download | redmine-f9c400a727f177021a836d730fde1b992c33228b.tar.gz redmine-f9c400a727f177021a836d730fde1b992c33228b.zip |
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
-rw-r--r-- | app/controllers/custom_fields_controller.rb | 11 | ||||
-rw-r--r-- | app/views/custom_fields/list.rhtml | 50 |
2 files changed, 35 insertions, 26 deletions
diff --git a/app/controllers/custom_fields_controller.rb b/app/controllers/custom_fields_controller.rb index bfa152fd1..29314f4b1 100644 --- a/app/controllers/custom_fields_controller.rb +++ b/app/controllers/custom_fields_controller.rb @@ -25,7 +25,8 @@ class CustomFieldsController < ApplicationController end 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? end @@ -44,7 +45,7 @@ class CustomFieldsController < ApplicationController end
if request.post? and @custom_field.save
flash[:notice] = l(:notice_successful_create)
- redirect_to :action => 'list'
+ redirect_to :action => 'list', :tab => @custom_field.type
end
@trackers = Tracker.find(:all)
end
@@ -56,14 +57,14 @@ class CustomFieldsController < ApplicationController @custom_field.trackers = params[:tracker_ids] ? Tracker.find(params[:tracker_ids]) : []
end
flash[:notice] = l(:notice_successful_update)
- redirect_to :action => 'list'
+ redirect_to :action => 'list', :tab => @custom_field.type
end
@trackers = Tracker.find(:all)
end
def destroy - CustomField.find(params[:id]).destroy - redirect_to :action => 'list'
+ @custom_field = CustomField.find(params[:id]).destroy
+ redirect_to :action => 'list', :tab => @custom_field.type
rescue
flash[:notice] = "Unable to delete custom field"
redirect_to :action => 'list' diff --git a/app/views/custom_fields/list.rhtml b/app/views/custom_fields/list.rhtml index 982e66aab..76637c8d5 100644 --- a/app/views/custom_fields/list.rhtml +++ b/app/views/custom_fields/list.rhtml @@ -1,38 +1,46 @@ <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">
<thead><tr> - <th><%=l(:field_name)%></th> - <th><%=l(:field_type)%></th>
+ <th width="30%"><%=l(:field_name)%></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(:label_used_by)%></th>
- <th></th>
+ <th><%=l(:label_used_by)%></th> + <% end %>
+ <th width="10%"></th>
</tr></thead> <tbody> -<% for custom_field in @custom_fields %> +<% for custom_field in (@custom_fields_by_type[type] || []) %> <tr class="<%= cycle("odd", "even") %>">
- <td><%= link_to custom_field.name, :action => 'edit', :id => custom_field %></td>
- <td align="center"><%= l(custom_field.type_name) %></td> + <td><%= link_to custom_field.name, :action => 'edit', :id => custom_field %></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"><%= 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"> <%= button_to l(:button_delete), { :action => 'destroy', :id => custom_field }, :confirm => l(:text_are_you_sure), :class => "button-small" %> </td> </tr> -<% end %> +<% end; reset_cycle %> </tbody> -</table>
- -<%= pagination_links_full @custom_field_pages %> - +</table> <br /> -<%=l(:label_custom_field_new)%>: -<ul> -<li><%= link_to l(:label_issue_plural), :action => 'new', :type => 'IssueCustomField' %></li> -<li><%= link_to l(:label_project_plural), :action => 'new', :type => 'ProjectCustomField' %></li> -<li><%= link_to l(:label_user_plural), :action => 'new', :type => 'UserCustomField' %></li> -</ul> +<%= link_to l(:label_custom_field_new), {:action => 'new', :type => type}, :class => 'icon icon-add' %> +</div> +<% end %> + +<%= javascript_tag "showTab('#{@tab}');" %>
\ No newline at end of file |