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

Reply via email to