app/views/forms/list.html.erb in sferik-merb-admin-0.1.7 vs app/views/forms/list.html.erb in sferik-merb-admin-0.1.8

- old
+ new

@@ -1,12 +1,44 @@ <div id="content-main"> <ul class="object-tools"> <li> - <a href="<%= slice_url(:admin_new, :model_name => @model_name.snake_case) %>" class="addlink">Add <%=h @model_name.snake_case.gsub('_', ' ') %></a> + <%= link_to("Add #{@model_name.snake_case.gsub('_', ' ')}", slice_url(:admin_new, :model_name => @model_name.snake_case), :class => "addlink") %> </li> </ul> <div class="module filtered" id="changelist"> + <div id="changelist-filter"> + <h2>Filter</h2> + <% params = request.params.except(:action, :controller, :model_name) %> + <% @properties.each do |property| %> + <% if property.primitive.to_s == "TrueClass" %> + <h3>By <%= property.field.gsub('_', ' ') %></h3> + <ul> + <li<%= params[:filter].nil? || params[:filter][property.name].blank? ? ' class="selected"' : nil %>> + <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).reject{|key, value| key.to_sym == property.name})) %>">All</a> + </li> + <li<%= params[:filter] && params[:filter][property.name] == "true" ? ' class="selected"' : nil %>> + <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).merge({property.name => true}))) %>">Yes</a> + </li> + <li<%= params[:filter] && params[:filter][property.name] == "false" ? ' class="selected"' : nil %>> + <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).merge({property.name => false}))) %>">No</a> + </li> + </ul> + <% elsif property.primitive.to_s == "Integer" && property.type.respond_to?(:flag_map) %> + <h3>By <%= property.field.gsub('_', ' ') %></h3> + <ul> + <li<%= params[:filter].nil? || params[:filter][property.name].blank? ? ' class="selected"' : nil %>> + <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).reject{|key, value| key.to_sym == property.name})) %>">All</a> + </li> + <% property.type.flag_map.each do |value, name| %> + <li<%= params[:filter] && params[:filter][property.name] == name.to_s ? ' class="selected"' : nil %>> + <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).merge({property.name => name}))) %>"><%= name.to_s.capitalize.gsub('_', ' ')%></a> + </li> + <% end %> + </ul> + <% end %> + <% end %> + </div> <table cellspacing="0"> <thead> <tr> <% @properties.each do |property| %> <th> @@ -53,12 +85,16 @@ </tr> <% end %> </tbody> </table> <p class="paginator"> - <%= paginate(@current_page, @page_count, :url => slice_url(:admin_list, :model_name => @model_name.snake_case)) if @page_count.to_i > 1 %> + <% if @page_count.to_i > 1 %> + <%= paginate(@current_page, @page_count, :url => slice_url(:admin_list, :model_name => @model_name.snake_case)) %> + <% end %> <%= @model.count %> <%= @model.count == 1 ? @model_name.snake_case.gsub('_', ' ') : @model_name.snake_case.gsub('_', ' ').pluralize %> - <%= "<a href=\"#{slice_url(:admin_list, :model_name => @model_name.snake_case, :all => true)}\" class=\"showall\">Show all</a>" if @page_count.to_i == 2 %> + <% if @page_count.to_i == 2 %> + <%= link_to("Show all", slice_url(:admin_list, :model_name => @model_name.snake_case, :all => true), :class => "showall") %> + <% end %> </p> </div> </div> <br class="clear" />