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" />