sferik-merb-admin 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -14,7 +14,7 @@ At the command prompt, type:
14
14
 
15
15
  In your app, add the following dependency to `config/dependencies.rb`:
16
16
 
17
- dependency "sferik-merb-admin", "0.1.9", :require_as => "merb-admin"
17
+ dependency "sferik-merb-admin", "0.2.0", :require_as => "merb-admin"
18
18
 
19
19
  Add the following route to `config/router.rb`:
20
20
 
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ AUTHOR = "Erik Michaels-Ober"
12
12
  EMAIL = "sferik@gmail.com"
13
13
  HOMEPAGE = "http://twitter.com/sferik"
14
14
  SUMMARY = "MerbAdmin is a merb slice that provides an easy-to-use interface for managing your data."
15
- GEM_VERSION = "0.1.9"
15
+ GEM_VERSION = "0.2.0"
16
16
 
17
17
  spec = Gem::Specification.new do |s|
18
18
  s.rubyforge_project = "merb"
@@ -35,6 +35,11 @@ class MerbAdmin::Forms < MerbAdmin::Application
35
35
  conditions.unshift(condition_statement.join(" OR "))
36
36
  options.merge!(:conditions => conditions) unless conditions == [""]
37
37
  end
38
+ if params[:sort]
39
+ order = "[:#{params[:sort]}.#{params[:sort_reverse] ? 'desc' : 'asc'}]"
40
+ options.merge!(:order => eval(order))
41
+ end
42
+
38
43
  # monkey patch pagination
39
44
  @model.class_eval("is_paginated") unless @model.respond_to?(:paginated)
40
45
  @current_page = (params[:page] || 1).to_i
@@ -30,24 +30,24 @@
30
30
  <% if property.primitive.to_s == "TrueClass" %>
31
31
  <h3>By <%= property.field.gsub('_', ' ') %></h3>
32
32
  <ul>
33
- <li<%= params[:filter].nil? || params[:filter][property.name].blank? ? ' class="selected"' : nil %>>
33
+ <li class="<%= params[:filter].nil? || params[:filter][property.name].blank? ? "selected" : nil %>">
34
34
  <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).reject{|key, value| key.to_sym == property.name})) %>">All</a>
35
35
  </li>
36
- <li<%= params[:filter] && params[:filter][property.name] == "true" ? ' class="selected"' : nil %>>
37
- <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).merge({property.name => true}))) %>">Yes</a>
36
+ <li class="<%= params[:filter] && params[:filter][property.name] == "true" ? "selected" : nil %>">
37
+ <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).merge({property.name => "true"}))) %>">Yes</a>
38
38
  </li>
39
- <li<%= params[:filter] && params[:filter][property.name] == "false" ? ' class="selected"' : nil %>>
40
- <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).merge({property.name => false}))) %>">No</a>
39
+ <li class="<%= params[:filter] && params[:filter][property.name] == "false" ? "selected" : nil %>">
40
+ <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).merge({property.name => "false"}))) %>">No</a>
41
41
  </li>
42
42
  </ul>
43
43
  <% elsif property.primitive.to_s == "Integer" && property.type.respond_to?(:flag_map) %>
44
44
  <h3>By <%= property.field.gsub('_', ' ') %></h3>
45
45
  <ul>
46
- <li<%= params[:filter].nil? || params[:filter][property.name].blank? ? ' class="selected"' : nil %>>
46
+ <li class="<%= params[:filter].nil? || params[:filter][property.name].blank? ? "selected" : nil %>">
47
47
  <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).reject{|key, value| key.to_sym == property.name})) %>">All</a>
48
48
  </li>
49
49
  <% property.type.flag_map.each do |value, name| %>
50
- <li<%= params[:filter] && params[:filter][property.name] == name.to_s ? ' class="selected"' : nil %>>
50
+ <li class="<%= params[:filter] && params[:filter][property.name] == name.to_s ? "selected" : nil %>">
51
51
  <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (params[:filter] || {}).merge({property.name => name}))) %>"><%= name.to_s.capitalize.gsub('_', ' ')%></a>
52
52
  </li>
53
53
  <% end %>
@@ -59,8 +59,8 @@
59
59
  <thead>
60
60
  <tr>
61
61
  <% @properties.each do |property| %>
62
- <th>
63
- <%= property.field.capitalize.gsub('_', ' ') %>
62
+ <th class="<%= params[:sort] == property.field ? params[:sort_reverse] ? 'sorted descending' : 'sorted ascending' : nil %>">
63
+ <a href="?<%= Merb::Parse.params_to_query_string(params.merge(:sort => property.field).reject{|key, value| key.to_sym == :sort_reverse}.merge(params[:sort] == property.field && params[:sort_reverse] != "true" ? {:sort_reverse => "true"} : {})) %>"><%= property.field.capitalize.gsub('_', ' ') %></a>
64
64
  </th>
65
65
  <% end %>
66
66
  </tr>
data/lib/merb-admin.rb CHANGED
@@ -22,7 +22,7 @@ if defined?(Merb::Plugins)
22
22
 
23
23
  # Slice metadata
24
24
  self.description = "MerbAdmin is a merb slice that uses your DataMapper models to provide an easy-to-use, Django-style interface for content managers."
25
- self.version = "0.1.9"
25
+ self.version = "0.2.0"
26
26
  self.author = "Erik Michaels-Ober"
27
27
 
28
28
  # Stub classes loaded hook - runs before LoadClasses BootLoader
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sferik-merb-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Michaels-Ober