admin_views 0.1 → 0.2
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.
@@ -1,11 +1,20 @@
|
|
1
1
|
class Admin::<%= pluralize(model_class) %>Controller < Admin::AdminController
|
2
|
+
helper_method :order_param
|
3
|
+
|
2
4
|
# GET /admin/<%= model_plural %>
|
3
5
|
def index
|
4
6
|
if params[:search]
|
5
|
-
|
6
|
-
|
7
|
+
sql, sql_params = [], []
|
8
|
+
# By default searches all text fields
|
9
|
+
<% search_cols = columns.find_all {|col| [:text, :string].include?(col.type) }.collect {|col| "'#{col.name}'" }.join(",") -%>
|
10
|
+
[<%= search_cols %>].each do |col|
|
11
|
+
sql << "#{col} LIKE ?"
|
12
|
+
sql_params << "%#{params[:search]}%"
|
13
|
+
end
|
14
|
+
conditions = [sql.join(" OR "), sql_params].flatten
|
15
|
+
@<%= model_plural %> = <%= model_class %>.paginate(:all, :page => params[:page], :conditions => conditions, :order => order_sql(params))
|
7
16
|
else
|
8
|
-
@<%= model_plural %> = <%= model_class %>.paginate(:all, :page => params[:page])
|
17
|
+
@<%= model_plural %> = <%= model_class %>.paginate(:all, :page => params[:page], :order => order_sql(params))
|
9
18
|
end
|
10
19
|
end
|
11
20
|
|
@@ -53,4 +62,26 @@ class Admin::<%= pluralize(model_class) %>Controller < Admin::AdminController
|
|
53
62
|
|
54
63
|
redirect_to(admin_<%= model_plural %>_url)
|
55
64
|
end
|
65
|
+
|
66
|
+
private
|
67
|
+
def order_sql(params)
|
68
|
+
if params[:order]
|
69
|
+
split = params[:order].split("_")
|
70
|
+
order = split.last.upcase
|
71
|
+
column = split[0..-2].join("_")
|
72
|
+
"#{column} #{order}"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def order_param(col_name)
|
77
|
+
order = params[:order]
|
78
|
+
|
79
|
+
if order == "#{col_name}_asc"
|
80
|
+
"#{col_name}_asc"
|
81
|
+
elsif order == "#{col_name}_desc"
|
82
|
+
"#{col_name}_desc"
|
83
|
+
else
|
84
|
+
"#{col_name}_asc"
|
85
|
+
end
|
86
|
+
end
|
56
87
|
end
|
@@ -3,18 +3,31 @@
|
|
3
3
|
</div>
|
4
4
|
|
5
5
|
<div id="search">
|
6
|
-
|
6
|
+
<form method="get">
|
7
|
+
<%%= text_field_tag 'search', params[:search] %>
|
8
|
+
<%%= submit_tag "Search" %>
|
9
|
+
</form>
|
7
10
|
</div>
|
8
11
|
|
9
12
|
<h2><%= model_class %></h2>
|
10
13
|
<table>
|
11
14
|
<tr>
|
12
|
-
<%
|
13
|
-
<th
|
15
|
+
<% columns.each do |col| -%>
|
16
|
+
<th><%%= link_to '<%= col.human_name %>', params.merge(:order => order_param('<%= col.name %>')) %></th>
|
14
17
|
<% end -%>
|
15
18
|
<th></th>
|
16
19
|
</tr>
|
17
|
-
|
20
|
+
<%% @<%= model_plural %>.each do |<%= model_name %>| %>
|
21
|
+
<tr id="<%= model_name %>_<%%= <%= model_name %>.id %>">
|
22
|
+
<% columns.each do |col| -%>
|
23
|
+
<td><%%= h <%= model_name %>.<%= col.name %> %></td>
|
24
|
+
<% end -%>
|
25
|
+
<td>
|
26
|
+
<%%= link_to "Edit", edit_admin_<%= model_name %>_path(<%= model_name %>) %>
|
27
|
+
<%%= link_to "Delete", admin_<%= model_name %>_path(<%= model_name %>), :method => :delete, :confirm => "Are you sure?" %>
|
28
|
+
</td>
|
29
|
+
</tr>
|
30
|
+
<%% end -%>
|
18
31
|
</table>
|
19
32
|
|
20
33
|
<%%= will_paginate @<%= model_plural %> %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: admin_views
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "0.
|
4
|
+
version: "0.2"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Conor Hunt
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.9.7
|
34
34
|
version:
|
35
|
-
description: Rails generator to create admin
|
35
|
+
description: Rails generator to create admin scaffolding with searching and sorting for models
|
36
36
|
email: conor.hunt@gmail.com
|
37
37
|
executables: []
|
38
38
|
|
@@ -47,7 +47,6 @@ files:
|
|
47
47
|
- generators/admin_views/admin_views_generator.rb
|
48
48
|
- generators/admin_views/templates/controllers/controller.rb
|
49
49
|
- generators/admin_views/templates/views/_form.html.erb
|
50
|
-
- generators/admin_views/templates/views/_model.html.erb
|
51
50
|
- generators/admin_views/templates/views/edit.html.erb
|
52
51
|
- generators/admin_views/templates/views/index.html.erb
|
53
52
|
- generators/admin_views/templates/views/new.html.erb
|
@@ -79,6 +78,6 @@ rubyforge_project:
|
|
79
78
|
rubygems_version: 1.3.5
|
80
79
|
signing_key:
|
81
80
|
specification_version: 3
|
82
|
-
summary: Rails generator to create admin
|
81
|
+
summary: Rails generator to create admin scaffolding with searching and sorting for models
|
83
82
|
test_files: []
|
84
83
|
|
@@ -1,9 +0,0 @@
|
|
1
|
-
<tr id="<%= model_name %>_<%%= <%= model_name %>.id %>">
|
2
|
-
<% for col in columns -%>
|
3
|
-
<td><%%= h <%= model_name %>.<%= col.name %> %></td>
|
4
|
-
<% end -%>
|
5
|
-
<td>
|
6
|
-
<%%= link_to "Edit", edit_admin_<%= model_name %>_path(<%= model_name %>) %>
|
7
|
-
<%%= link_to "Delete", admin_<%= model_name %>_path(<%= model_name %>), :method => :delete, :confirm => "Are you sure?" %>
|
8
|
-
</td>
|
9
|
-
</tr>
|