From: Michal Fojtik <mfoj...@redhat.com> --- src/app/helpers/application_helper.rb | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/src/app/helpers/application_helper.rb b/src/app/helpers/application_helper.rb index 6b82e6d..7c6a5a7 100644 --- a/src/app/helpers/application_helper.rb +++ b/src/app/helpers/application_helper.rb @@ -82,6 +82,33 @@ module ApplicationHelper content_tag 'th', label end + # Fields example: + # [ + # { :name => 'Pool name', :sort_attr => 'name'}, + # { :name => 'Zone', :sortable => false}, + # ] + def sortable_table_header(fields=[]) + columns = fields.collect do |field| + if field[:sortable]==true or field[:sortable].nil? + order_dir = params[:order_dir] ? params[:order_dir] : 'desc' + content_tag('th', :class => (field[:sort_attr].to_s.eql?(params[:order_field]) ? 'active' : nil)) do + link_to(field[:name], :controller => params[:controller], + :action => params[:action], :order_field => field[:sort_attr], + :order_dir => order_dir.eql?('asc') ? 'desc' : 'asc') + end + else + content_tag('th') do + field[:name] + end + end + end + header = content_tag('thead') do + content_tag('tr') do + columns.join + end + end + end + def paginated_table(html_id, columns, data, opts = {}) search_url = url_for(:partial => true, :order => opts[:order], :order_dir => opts[:order_dir]) -- 1.7.2.3 _______________________________________________ deltacloud-devel mailing list deltacloud-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/deltacloud-devel