merb-admin 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.markdown CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  It currently offers the features listed [here](http://sferik.tadalist.com/lists/1352791/public).
6
6
 
7
+ The status of the current build can be seen [here](http://runcoderun.com/sferik/merb-admin).
8
+
7
9
  ## Get it
8
10
 
9
11
  At the command prompt, type:
@@ -14,7 +16,7 @@ At the command prompt, type:
14
16
 
15
17
  In your app, add the following dependency to `config/dependencies.rb`:
16
18
 
17
- dependency "merb-admin", "0.4.4"
19
+ dependency "merb-admin", "0.4.5"
18
20
 
19
21
  Add the following route to `config/router.rb`:
20
22
 
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ AUTHOR = "Erik Michaels-Ober"
9
9
  EMAIL = "sferik@gmail.com"
10
10
  HOMEPAGE = "http://twitter.com/sferik"
11
11
  SUMMARY = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
12
- GEM_VERSION = "0.4.4"
12
+ GEM_VERSION = "0.4.5"
13
13
 
14
14
  spec = Gem::Specification.new do |s|
15
15
  s.rubyforge_project = "merb"
@@ -13,6 +13,7 @@ class MerbAdmin::Main < MerbAdmin::Application
13
13
 
14
14
  def list
15
15
  options = {}
16
+ merge_query!(options)
16
17
  merge_sort!(options)
17
18
  merge_sort_reverse!(options)
18
19
 
@@ -125,6 +126,19 @@ class MerbAdmin::Main < MerbAdmin::Application
125
126
  raise NotFound unless @object
126
127
  end
127
128
 
129
+ def merge_query!(options)
130
+ return unless params[:query]
131
+ condition_statement = []
132
+ conditions = []
133
+ @properties.each do |property|
134
+ next unless property[:type] == :string
135
+ condition_statement << "#{property[:name]} LIKE ?"
136
+ conditions << "%#{params[:query]}%"
137
+ end
138
+ conditions.unshift(condition_statement.join(' OR '))
139
+ options.merge!(:conditions => conditions) unless conditions == ['']
140
+ end
141
+
128
142
  def merge_sort!(options)
129
143
  return unless params[:sort]
130
144
  sort = params[:sort] || "id"
@@ -1,5 +1,6 @@
1
1
  <%
2
2
  params = request.params.except(:action, :controller, :model_name)
3
+ query = params[:query]
3
4
  sort = params[:sort]
4
5
  sort_reverse = params[:sort_reverse]
5
6
  %>
@@ -10,6 +11,19 @@
10
11
  </li>
11
12
  </ul>
12
13
  <div class="module" id="changelist">
14
+ <div id="toolbar">
15
+ <form id="changelist-search" action="" method="get">
16
+ <div>
17
+ <label for="searchbar"><img src="<%= image_path("icon_searchbox.png") %>" alt="Search" /></label>
18
+ <input type="text" size="40" name="query" value="" id="searchbar" />
19
+ <input type="submit" value="Search" />
20
+ <% if query %>
21
+ <span class="small quiet"><%= @record_count %> <%= @record_count == 1 ? "result" : "results" %> (<a href="?"><%= @abstract_model.count %> total</a>)</span>
22
+ <% end %>
23
+ </div>
24
+ </form>
25
+ </div>
26
+ <script type="text/javascript">document.getElementById("searchbar").focus();</script>
13
27
  <table cellspacing="0">
14
28
  <thead>
15
29
  <tr>
data/lib/merb-admin.rb CHANGED
@@ -23,7 +23,7 @@ if defined?(Merb::Plugins)
23
23
 
24
24
  # Slice metadata
25
25
  self.description = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
26
- self.version = "0.4.4"
26
+ self.version = "0.4.5"
27
27
  self.author = "Erik Michaels-Ober"
28
28
 
29
29
  # Stub classes loaded hook - runs before LoadClasses BootLoader
@@ -89,6 +89,26 @@ describe "MerbAdmin" do
89
89
  end
90
90
  end
91
91
 
92
+ describe "list with query" do
93
+ before(:each) do
94
+ MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :sex => :male, :position => :second)
95
+ MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :sex => :male, :position => :pitcher)
96
+ @response = request(url(:admin_list, :model_name => "player"), :params => {:query => "Jackie Robinson"})
97
+ end
98
+
99
+ it "should respond sucessfully" do
100
+ @response.should be_successful
101
+ end
102
+
103
+ it "should contain a correct result" do
104
+ @response.body.should contain("Jackie Robinson")
105
+ end
106
+
107
+ it "should not contain an incorrect result" do
108
+ @response.body.should_not contain("Sandy Koufax")
109
+ end
110
+ end
111
+
92
112
  describe "list with sort" do
93
113
  before(:each) do
94
114
  MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :sex => :male, :position => :second)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merb-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Michaels-Ober