sortablecolumns 0.1.2 → 0.1.3
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/History.txt +3 -0
- data/README.txt +8 -7
- data/Rakefile +17 -0
- data/lib/sortablecolumns.rb +1 -1
- data/test/sortablecolumns_test.rb +5 -4
- metadata +3 -3
data/History.txt
CHANGED
data/README.txt
CHANGED
@@ -47,7 +47,7 @@ Say we have a Person model (or a custom SQL query result) with the following col
|
|
47
47
|
|
48
48
|
We're going to call this sorter "mysorter". This will be the name of the YAML file and the name passed into the sortable_columns method in the model.
|
49
49
|
|
50
|
-
|
50
|
+
==== Model:
|
51
51
|
|
52
52
|
class Person < ActiveRecord::Base
|
53
53
|
sortable_columns :mysorter
|
@@ -63,10 +63,11 @@ In model:
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
-
YAML file:
|
66
|
+
==== YAML file:
|
67
67
|
|
68
|
-
The YAML file needs to be in an ordered format (i.e., it gets loaded into Ruby
|
69
|
-
of the columns in the YAML file determines their
|
68
|
+
The YAML file needs to be in an ordered format (i.e., it gets loaded into Ruby
|
69
|
+
as an Array). The order of the columns in the YAML file determines their
|
70
|
+
display order when rendered as HTML.
|
70
71
|
|
71
72
|
-
|
72
73
|
firstname:
|
@@ -150,7 +151,7 @@ You can also have extra parameters in the url that are attributes in the results
|
|
150
151
|
|
151
152
|
...where person_id is a field (method) in the result set that will be invoked.
|
152
153
|
|
153
|
-
|
154
|
+
==== Controller:
|
154
155
|
|
155
156
|
def index #plain HTML table
|
156
157
|
@people = Person.find_for_mysorter(options=params.dup)
|
@@ -176,7 +177,7 @@ In the controller:
|
|
176
177
|
end
|
177
178
|
end
|
178
179
|
|
179
|
-
|
180
|
+
==== View:
|
180
181
|
|
181
182
|
<%= print_table(@people, :mysorter %>
|
182
183
|
Or if you want alternating styles for table rows:
|
@@ -192,7 +193,7 @@ Also make sure the table is inside a div with the same id as specified in the co
|
|
192
193
|
|
193
194
|
* YUI4Rails gem if you want to use YUI datatables
|
194
195
|
|
195
|
-
==
|
196
|
+
== DISCLAIMER
|
196
197
|
|
197
198
|
This is beta-quality software. It works well according to my tests, but the API may change and other features may be added.
|
198
199
|
|
data/Rakefile
CHANGED
@@ -19,4 +19,21 @@ rule '' do |t|
|
|
19
19
|
system "cd test && ruby sortablecolumns_test.rb"
|
20
20
|
end
|
21
21
|
|
22
|
+
ALLISON = "/opt/local/lib/ruby/gems/1.8/gems/allison-2.0.3/lib/allison.rb"
|
23
|
+
|
24
|
+
Rake::RDocTask.new do |rd|
|
25
|
+
rd.main = "README.txt"
|
26
|
+
rd.rdoc_dir = "doc"
|
27
|
+
rd.rdoc_files.include(
|
28
|
+
"README.txt",
|
29
|
+
"History.txt",
|
30
|
+
"Manifest.txt",
|
31
|
+
"lib/**/*.rb")
|
32
|
+
rd.title = "SortableColumns RDoc"
|
33
|
+
|
34
|
+
rd.options << '-S' # inline source
|
35
|
+
|
36
|
+
rd.template = ALLISON if File.exist?(ALLISON)
|
37
|
+
end
|
38
|
+
|
22
39
|
# vim: syntax=Ruby
|
data/lib/sortablecolumns.rb
CHANGED
@@ -73,9 +73,6 @@ class Dude < Person
|
|
73
73
|
firstname
|
74
74
|
end
|
75
75
|
|
76
|
-
def person_id
|
77
|
-
id
|
78
|
-
end
|
79
76
|
end
|
80
77
|
|
81
78
|
class SubPerson < Person
|
@@ -352,6 +349,10 @@ class SortablecolumnsHelperTest < Test::Unit::TestCase
|
|
352
349
|
registered_at = DateTime.new(2008,5,1,7,30)
|
353
350
|
@dude = Dude.create(:firstname => "The Dude", :lastname => "Lebowski", :age => 45,
|
354
351
|
:description => "The Dude Speaks", :created_at => created_at, :registered_at => registered_at)
|
352
|
+
|
353
|
+
#make sure a find_by_sql query works with an arbitrary attribute (person_id in this case)
|
354
|
+
query = "select p.*, '23445' as person_id from people p where id = #{@dude.id}"
|
355
|
+
@dude = Dude.find_by_sql(query).first
|
355
356
|
|
356
357
|
@expected_person_row = "<tr><td class=\"left\"><a href=\"http://test.host/people/show/1\">Billy</a></td><td>Jones</td><td class=\"center\">24</td><td class=\"left\"><p>Billy is an awesome guy.\n<br />However, he is also a punk. <a href=\"http://www.google.com\">www.google.com</a></p></td><td class=\"right\">£1 234,57</td><td><a href=\"http://test.host/people/edit/1\">Edit</a></td><td><a href=\"http://test.host/people/destroy/1\" onclick=\"if (confirm('Are you sure?')) { var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', 'delete'); f.appendChild(m);f.submit(); };return false;\">Delete</a></td></tr>"
|
357
358
|
@expected_person_row_alternate = @expected_person_row.gsub(/<tr>/, "<tr class=\"even\">")
|
@@ -423,7 +424,7 @@ class SortablecolumnsHelperTest < Test::Unit::TestCase
|
|
423
424
|
#
|
424
425
|
# Where person_id is a field in the result set (in this test, there's a mock method instead)
|
425
426
|
|
426
|
-
expected = "<td><a href=\"http://test.host/dudes/print_view?person_id
|
427
|
+
expected = "<td><a href=\"http://test.host/dudes/print_view?person_id=23445\">Print</a></td>"
|
427
428
|
assert_equal expected, @view.print_col(@dude, :dude_report, :print_view)
|
428
429
|
end
|
429
430
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sortablecolumns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan Donovan - http://www.bryandonovan.com
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-05-
|
12
|
+
date: 2008-05-05 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -66,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements: []
|
67
67
|
|
68
68
|
rubyforge_project: sortablecolumns
|
69
|
-
rubygems_version: 1.1.
|
69
|
+
rubygems_version: 1.1.1
|
70
70
|
signing_key:
|
71
71
|
specification_version: 2
|
72
72
|
summary: Sortable HTML tables for Rails
|