ACK, works fine for me, small suggestion: it would be nice to add along with 'active' class also class for sorting direction
On 09/22/2010 05:35 PM, [email protected] wrote: > From: Michal Fojtik<[email protected]> > > --- > 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]) > _______________________________________________ deltacloud-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/deltacloud-devel
