fancygrid 1.1.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +9 -2
- data/Gemfile +6 -9
- data/Gemfile.lock +88 -103
- data/README.md +226 -0
- data/ROADMAP +0 -1
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/app/views/fancygrid/controls.html.haml +34 -0
- data/app/views/fancygrid/fancygrid.html.haml +18 -0
- data/app/views/fancygrid/search.html.haml +24 -0
- data/app/views/fancygrid/sort.html.haml +8 -0
- data/app/views/fancygrid/table.html.haml +25 -0
- data/config/locales/fancygrid.de.yml +17 -19
- data/config/locales/fancygrid.en.yml +14 -17
- data/fancygrid.gemspec +48 -88
- data/lib/assets/javascripts/fancygrid.js +425 -0
- data/lib/assets/javascripts/fancygrid.min.js +15 -0
- data/lib/assets/stylesheets/fancygrid.css +177 -0
- data/lib/fancygrid.rb +63 -44
- data/lib/fancygrid/column.rb +165 -0
- data/lib/fancygrid/controller/helper.rb +46 -0
- data/lib/fancygrid/grid.rb +171 -317
- data/lib/fancygrid/node.rb +85 -490
- data/lib/fancygrid/object_wrapper.rb +24 -0
- data/lib/fancygrid/orm/active_record.rb +39 -0
- data/lib/fancygrid/orm/sql_generator.rb +127 -0
- data/lib/fancygrid/view/helper.rb +44 -0
- data/lib/fancygrid/view_state.rb +161 -0
- data/spec/column_spec.rb +29 -0
- data/spec/dummy/app/controllers/application_controller.rb +48 -0
- data/spec/dummy/app/views/application/index.html.haml +11 -0
- data/spec/dummy/app/views/layouts/application.html.erb +1 -1
- data/spec/dummy/config/application.rb +1 -1
- data/spec/dummy/config/environments/development.rb +2 -2
- data/spec/dummy/config/environments/test.rb +2 -2
- data/spec/dummy/config/routes.rb +3 -2
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/schema.rb +26 -0
- data/spec/dummy/public/javascripts/jquery-1.4.2.js +6240 -0
- data/spec/dummy/public/javascripts/jquery-fancygrid.js +425 -0
- data/spec/dummy/public/javascripts/jquery-ui.js +41 -0
- data/spec/dummy/public/stylesheets/fancygrid.css +183 -0
- data/spec/node_spec.rb +79 -301
- data/spec/spec_helper.rb +0 -29
- data/spec/view_state_spec.rb +91 -0
- metadata +124 -137
- data/.bundle/config +0 -2
- data/README.rdoc +0 -299
- data/app/views/fancygrid/_cells.html.haml +0 -13
- data/app/views/fancygrid/base/controls.html.haml +0 -40
- data/app/views/fancygrid/base/list_frame.html.haml +0 -37
- data/app/views/fancygrid/base/search.html.haml +0 -33
- data/app/views/fancygrid/base/sort.html.haml +0 -20
- data/app/views/fancygrid/base/table_frame.html.haml +0 -45
- data/config/initializers/fancygrid.rb +0 -67
- data/lib/fancygrid/helper.rb +0 -129
- data/lib/fancygrid/query_generator.rb +0 -340
- data/lib/fancygrid/view.rb +0 -148
- data/lib/generators/install_generator.rb +0 -61
- data/lib/generators/views_generator.rb +0 -25
- data/lib/version.rb +0 -0
- data/public/images/fancygrid/add.png +0 -0
- data/public/images/fancygrid/clear.png +0 -0
- data/public/images/fancygrid/ddn.png +0 -0
- data/public/images/fancygrid/dn.png +0 -0
- data/public/images/fancygrid/dots.png +0 -0
- data/public/images/fancygrid/loading.gif +0 -0
- data/public/images/fancygrid/magnifier.png +0 -0
- data/public/images/fancygrid/next.png +0 -0
- data/public/images/fancygrid/order.png +0 -0
- data/public/images/fancygrid/prev.png +0 -0
- data/public/images/fancygrid/reload.png +0 -0
- data/public/images/fancygrid/remove.png +0 -0
- data/public/images/fancygrid/spacer.gif +0 -0
- data/public/images/fancygrid/submit.png +0 -0
- data/public/images/fancygrid/th_bg.png +0 -0
- data/public/images/fancygrid/up.png +0 -0
- data/public/images/fancygrid/uup.png +0 -0
- data/public/javascripts/fancygrid.js +0 -477
- data/public/javascripts/fancygrid.min.js +0 -17
- data/public/stylesheets/fancygrid.css +0 -289
- data/public/stylesheets/fancygrid.scss +0 -302
- data/spec/dummy/log/development.log +0 -0
- data/spec/dummy/log/production.log +0 -0
- data/spec/dummy/log/server.log +0 -0
- data/spec/dummy/log/test.log +0 -1026
- data/spec/dummy/public/javascripts/application.js +0 -2
- data/spec/dummy/public/javascripts/controls.js +0 -965
- data/spec/dummy/public/javascripts/dragdrop.js +0 -974
- data/spec/dummy/public/javascripts/effects.js +0 -1123
- data/spec/dummy/public/javascripts/prototype.js +0 -6001
- data/spec/dummy/public/javascripts/rails.js +0 -175
- data/spec/grid_spec.rb +0 -15
- data/spec/integration/navigation_spec.rb +0 -9
- data/spec/query_generator_spec.rb +0 -358
data/CHANGELOG
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
2.0.0 - Completely refactored version of fancygrid
|
2
|
+
- Better integration in to rails
|
3
|
+
- improved fancygrid setup process, less complicated
|
4
|
+
- added possibility to implement different ORMs
|
5
|
+
- added possibility to use builder and value formatter
|
6
|
+
- added "download" feature e.g. to download data in csv, json or xml format
|
7
|
+
- improved rails 3.2 asset pipeline compatibility
|
1
8
|
1.0.0 - Added the "ajax_type" option so ajax callbacks are not restricted to GET requests only.
|
2
9
|
- Fixed a js bug that removes the input field focus when doing a simple search
|
3
10
|
BREAKING CHANGES:
|
@@ -7,8 +14,8 @@
|
|
7
14
|
- Added new style
|
8
15
|
- Every "js-" prefix in css classes is now "fg-" and stands for 'fancygrid'
|
9
16
|
0.6.2 - Drop down select box is now possible as a simple search input field
|
10
|
-
0.6.1 - Refactored js and improved
|
11
|
-
0.6.0 - Initial implemetation of
|
17
|
+
0.6.1 - Refactored js and improved leaf sorting
|
18
|
+
0.6.0 - Initial implemetation of leaf sorting feature
|
12
19
|
0.5.1 - Fixed the complex search and improved viewstate caching.
|
13
20
|
0.5.0 - Initial implementation of the complex search.
|
14
21
|
0.4.2 - Ability to define a block for print out a custom css class for each table row. Check out the 'css_proc' method
|
data/Gemfile
CHANGED
@@ -1,15 +1,12 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
gem "rails"
|
4
|
+
gem "haml"
|
5
|
+
|
6
|
+
group :development, :test do
|
7
7
|
|
8
|
-
group :test do
|
9
|
-
gem "capybara", ">= 0.4.0"
|
10
|
-
gem "webrat"
|
11
8
|
gem "sqlite3"
|
12
|
-
gem "rspec-rails"
|
9
|
+
gem "rspec-rails"
|
10
|
+
gem "jeweler"
|
13
11
|
end
|
14
12
|
|
15
|
-
|
data/Gemfile.lock
CHANGED
@@ -1,125 +1,110 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
rack (~> 1.
|
15
|
-
rack-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
arel (
|
32
|
-
builder (
|
33
|
-
|
34
|
-
|
35
|
-
culerity (>= 0.2.4)
|
36
|
-
mime-types (>= 1.16)
|
37
|
-
nokogiri (>= 1.3.3)
|
38
|
-
rack (>= 1.0.0)
|
39
|
-
rack-test (>= 0.5.4)
|
40
|
-
selenium-webdriver (>= 0.0.27)
|
41
|
-
xpath (~> 0.1.3)
|
42
|
-
celerity (0.8.7)
|
43
|
-
childprocess (0.1.6)
|
44
|
-
ffi (~> 0.6.3)
|
45
|
-
culerity (0.2.15)
|
46
|
-
diff-lcs (1.1.2)
|
47
|
-
erubis (2.6.6)
|
48
|
-
abstract (>= 1.0.0)
|
49
|
-
ffi (0.6.3)
|
50
|
-
rake (>= 0.8.7)
|
4
|
+
actionmailer (3.2.0)
|
5
|
+
actionpack (= 3.2.0)
|
6
|
+
mail (~> 2.4.0)
|
7
|
+
actionpack (3.2.0)
|
8
|
+
activemodel (= 3.2.0)
|
9
|
+
activesupport (= 3.2.0)
|
10
|
+
builder (~> 3.0.0)
|
11
|
+
erubis (~> 2.7.0)
|
12
|
+
journey (~> 1.0.0)
|
13
|
+
rack (~> 1.4.0)
|
14
|
+
rack-cache (~> 1.1)
|
15
|
+
rack-test (~> 0.6.1)
|
16
|
+
sprockets (~> 2.1.2)
|
17
|
+
activemodel (3.2.0)
|
18
|
+
activesupport (= 3.2.0)
|
19
|
+
builder (~> 3.0.0)
|
20
|
+
activerecord (3.2.0)
|
21
|
+
activemodel (= 3.2.0)
|
22
|
+
activesupport (= 3.2.0)
|
23
|
+
arel (~> 3.0.0)
|
24
|
+
tzinfo (~> 0.3.29)
|
25
|
+
activeresource (3.2.0)
|
26
|
+
activemodel (= 3.2.0)
|
27
|
+
activesupport (= 3.2.0)
|
28
|
+
activesupport (3.2.0)
|
29
|
+
i18n (~> 0.6)
|
30
|
+
multi_json (~> 1.0)
|
31
|
+
arel (3.0.2)
|
32
|
+
builder (3.0.0)
|
33
|
+
diff-lcs (1.1.3)
|
34
|
+
erubis (2.7.0)
|
51
35
|
git (1.2.5)
|
52
|
-
|
53
|
-
|
54
|
-
|
36
|
+
haml (3.1.4)
|
37
|
+
hike (1.2.1)
|
38
|
+
i18n (0.6.0)
|
39
|
+
jeweler (1.6.4)
|
40
|
+
bundler (~> 1.0)
|
55
41
|
git (>= 1.2.5)
|
56
42
|
rake
|
57
|
-
|
58
|
-
|
59
|
-
|
43
|
+
journey (1.0.3)
|
44
|
+
json (1.6.5)
|
45
|
+
mail (2.4.1)
|
60
46
|
i18n (>= 0.4.0)
|
61
47
|
mime-types (~> 1.16)
|
62
48
|
treetop (~> 1.4.8)
|
63
|
-
mime-types (1.
|
64
|
-
|
65
|
-
polyglot (0.3.
|
66
|
-
rack (1.
|
67
|
-
rack-
|
68
|
-
rack (>=
|
69
|
-
rack-
|
49
|
+
mime-types (1.17.2)
|
50
|
+
multi_json (1.1.0)
|
51
|
+
polyglot (0.3.3)
|
52
|
+
rack (1.4.1)
|
53
|
+
rack-cache (1.1)
|
54
|
+
rack (>= 0.4)
|
55
|
+
rack-ssl (1.3.2)
|
56
|
+
rack
|
57
|
+
rack-test (0.6.1)
|
70
58
|
rack (>= 1.0)
|
71
|
-
rails (3.0
|
72
|
-
actionmailer (= 3.0
|
73
|
-
actionpack (= 3.0
|
74
|
-
activerecord (= 3.0
|
75
|
-
activeresource (= 3.0
|
76
|
-
activesupport (= 3.0
|
59
|
+
rails (3.2.0)
|
60
|
+
actionmailer (= 3.2.0)
|
61
|
+
actionpack (= 3.2.0)
|
62
|
+
activerecord (= 3.2.0)
|
63
|
+
activeresource (= 3.2.0)
|
64
|
+
activesupport (= 3.2.0)
|
77
65
|
bundler (~> 1.0)
|
78
|
-
railties (= 3.0
|
79
|
-
railties (3.0
|
80
|
-
actionpack (= 3.0
|
81
|
-
activesupport (= 3.0
|
66
|
+
railties (= 3.2.0)
|
67
|
+
railties (3.2.0)
|
68
|
+
actionpack (= 3.2.0)
|
69
|
+
activesupport (= 3.2.0)
|
70
|
+
rack-ssl (~> 1.3.2)
|
82
71
|
rake (>= 0.8.7)
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
72
|
+
rdoc (~> 3.4)
|
73
|
+
thor (~> 0.14.6)
|
74
|
+
rake (0.9.2.2)
|
75
|
+
rdoc (3.12)
|
76
|
+
json (~> 1.4)
|
77
|
+
rspec (2.8.0)
|
78
|
+
rspec-core (~> 2.8.0)
|
79
|
+
rspec-expectations (~> 2.8.0)
|
80
|
+
rspec-mocks (~> 2.8.0)
|
81
|
+
rspec-core (2.8.0)
|
82
|
+
rspec-expectations (2.8.0)
|
91
83
|
diff-lcs (~> 1.1.2)
|
92
|
-
rspec-mocks (2.
|
93
|
-
rspec-rails (2.
|
94
|
-
actionpack (
|
95
|
-
activesupport (
|
96
|
-
railties (
|
97
|
-
rspec (~> 2.
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
rubyzip
|
104
|
-
sqlite3 (1.3.3)
|
84
|
+
rspec-mocks (2.8.0)
|
85
|
+
rspec-rails (2.8.1)
|
86
|
+
actionpack (>= 3.0)
|
87
|
+
activesupport (>= 3.0)
|
88
|
+
railties (>= 3.0)
|
89
|
+
rspec (~> 2.8.0)
|
90
|
+
sprockets (2.1.2)
|
91
|
+
hike (~> 1.2)
|
92
|
+
rack (~> 1.0)
|
93
|
+
tilt (~> 1.1, != 1.3.0)
|
94
|
+
sqlite3 (1.3.5)
|
105
95
|
thor (0.14.6)
|
106
|
-
|
96
|
+
tilt (1.3.3)
|
97
|
+
treetop (1.4.10)
|
98
|
+
polyglot
|
107
99
|
polyglot (>= 0.3.1)
|
108
|
-
tzinfo (0.3.
|
109
|
-
webrat (0.7.3)
|
110
|
-
nokogiri (>= 1.2.0)
|
111
|
-
rack (>= 1.0)
|
112
|
-
rack-test (>= 0.5.3)
|
113
|
-
xpath (0.1.3)
|
114
|
-
nokogiri (~> 1.3)
|
100
|
+
tzinfo (0.3.31)
|
115
101
|
|
116
102
|
PLATFORMS
|
117
103
|
ruby
|
118
104
|
|
119
105
|
DEPENDENCIES
|
120
|
-
|
106
|
+
haml
|
121
107
|
jeweler
|
122
|
-
rails
|
123
|
-
rspec-rails
|
108
|
+
rails
|
109
|
+
rspec-rails
|
124
110
|
sqlite3
|
125
|
-
webrat
|
data/README.md
ADDED
@@ -0,0 +1,226 @@
|
|
1
|
+
## Fancygrid
|
2
|
+
Fancygrid mades it easy to create and render tables for database records in rails.
|
3
|
+
### Features
|
4
|
+
* Ajax data fetch
|
5
|
+
* Pagination
|
6
|
+
* Simple search
|
7
|
+
* Complex search with 17 different conditions
|
8
|
+
* Column sorting
|
9
|
+
* View state caching
|
10
|
+
* ActiveRecord supported. MongoDB coming (some day).
|
11
|
+
* Column values from attributes, methods, method chains or even custom blocks
|
12
|
+
|
13
|
+
### Requirements
|
14
|
+
* jQuery >= 1.4.2
|
15
|
+
* jQuery-ui (required if column sorting is wanted)
|
16
|
+
* Rails 3
|
17
|
+
* Haml
|
18
|
+
|
19
|
+
### Installation
|
20
|
+
In your gemfile
|
21
|
+
```ruby
|
22
|
+
gem 'fancygrid'
|
23
|
+
```
|
24
|
+
Run
|
25
|
+
```console
|
26
|
+
bundle install
|
27
|
+
```
|
28
|
+
|
29
|
+
If you use Rails3 with asset pipeline enabled, you can just require the javascript and css
|
30
|
+
```
|
31
|
+
// = require fancygrid
|
32
|
+
```
|
33
|
+
If your asset pipeline is disabled, you have to copy the assets from the gems lib directory. There is no generator for this task.
|
34
|
+
|
35
|
+
## Getting started
|
36
|
+
|
37
|
+
### Basic Setup
|
38
|
+
In any controller in any action you can define a fancygrid for a specific model.
|
39
|
+
Here is an example for a simple table for the Users model:
|
40
|
+
```ruby
|
41
|
+
# UsersController
|
42
|
+
def index
|
43
|
+
|
44
|
+
fancygrid_for :users do |g|
|
45
|
+
# specify attributes to display
|
46
|
+
g.attributes :id, :username, :email
|
47
|
+
# specify the callback url for ajax loading
|
48
|
+
g.ajax_url = users_path
|
49
|
+
# finally call find to query the data
|
50
|
+
g.find
|
51
|
+
end
|
52
|
+
end
|
53
|
+
```
|
54
|
+
|
55
|
+
To render the fancygrid in the view, use the same name that you passed in the setup
|
56
|
+
```haml
|
57
|
+
# app/views/users/index.html.haml
|
58
|
+
= fancygrid :users
|
59
|
+
```
|
60
|
+
|
61
|
+
### Static tables
|
62
|
+
If you dont want to have an ajax table, dont specify the ajax_url. The data will be
|
63
|
+
queried and the table will be rendered without pagination.
|
64
|
+
```ruby
|
65
|
+
def index
|
66
|
+
fancygrid_for :users do |g|
|
67
|
+
# ...
|
68
|
+
g.attributes :id, :username, :email
|
69
|
+
# don't set the ajax_url and just call find
|
70
|
+
g.find
|
71
|
+
end
|
72
|
+
end
|
73
|
+
```
|
74
|
+
|
75
|
+
### Table names and model names
|
76
|
+
Usually fancygrid tries to resolve the models class and table name from given
|
77
|
+
name. If you happen to use namespaced models, you must pass the class as an option.
|
78
|
+
```ruby
|
79
|
+
def index
|
80
|
+
fancygrid_for :user, :class => Namespace::User do |g|
|
81
|
+
# ...
|
82
|
+
end
|
83
|
+
end
|
84
|
+
```
|
85
|
+
|
86
|
+
Optionally you can also pass a specific table name. However, if the class responds
|
87
|
+
to #table_name, this is not necessary.
|
88
|
+
```ruby
|
89
|
+
def index
|
90
|
+
fancygrid_for :user, :class => Namespace::User, :table_name => "users" do |g|
|
91
|
+
# ...
|
92
|
+
end
|
93
|
+
end
|
94
|
+
```
|
95
|
+
|
96
|
+
## Define columns
|
97
|
+
To display attributes as columns use the #attributes method for setup like this:
|
98
|
+
```ruby
|
99
|
+
def index
|
100
|
+
fancygrid_for :users do |g|
|
101
|
+
# ...
|
102
|
+
g.attributes :id, :email, :created_at
|
103
|
+
# ...
|
104
|
+
end
|
105
|
+
end
|
106
|
+
```
|
107
|
+
|
108
|
+
For everything else use the #columns method. You can have method names,
|
109
|
+
method chains and procs to resolve column values.
|
110
|
+
```ruby
|
111
|
+
def index
|
112
|
+
fancygrid_for :users do |g|
|
113
|
+
# ...
|
114
|
+
# methods
|
115
|
+
g.columns :full_name, :some_other_method
|
116
|
+
# method chains
|
117
|
+
g.columns "orders.count"
|
118
|
+
# procs
|
119
|
+
g.columns :roles do |record|
|
120
|
+
record.roles.map(&:name).join(", ")
|
121
|
+
end
|
122
|
+
# ...
|
123
|
+
end
|
124
|
+
end
|
125
|
+
```
|
126
|
+
For more complex output you have to format the cell value in the view or a formatter method.
|
127
|
+
|
128
|
+
## Columns formatting
|
129
|
+
Add a block to the fancygrid call in the view. In there you can use a switch condition
|
130
|
+
on the columns name to determine what to render. Do not forget to add the else case to
|
131
|
+
render all unformatted values.
|
132
|
+
```haml
|
133
|
+
= fancygrid :users do |column, record, value|
|
134
|
+
- case column.name
|
135
|
+
- when :actions
|
136
|
+
= link_to "Show", user_path(record)
|
137
|
+
= link_to "Edit", edit_user_path(record)
|
138
|
+
- else
|
139
|
+
/ this else case is important
|
140
|
+
= value
|
141
|
+
```
|
142
|
+
|
143
|
+
## belongs_to or has_one associations
|
144
|
+
To define columns for associations, use the #columns_for method.
|
145
|
+
```ruby
|
146
|
+
def index
|
147
|
+
fancygrid_for :users do |g|
|
148
|
+
# ...
|
149
|
+
g.columns_for :contact do |contact|
|
150
|
+
contact.attributes :first_name, :last_name
|
151
|
+
end
|
152
|
+
# ...
|
153
|
+
g.find do |query|
|
154
|
+
# eager loading of the association
|
155
|
+
query.select :contact_id
|
156
|
+
query.includes :contact
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
```
|
161
|
+
Mention that in the query block the contact_id is selected. This is required, since fancygrid
|
162
|
+
tries to use optimized sql queries by default. Therefore it will select only those attributes
|
163
|
+
that have been used during the fancygrid setup. If the contact_id is missing, it will not be
|
164
|
+
possible to include the contact association.
|
165
|
+
|
166
|
+
If your association name is different from the models name, pass the model
|
167
|
+
class as option.
|
168
|
+
```ruby
|
169
|
+
def index
|
170
|
+
fancygrid_for :users do |g|
|
171
|
+
# ...
|
172
|
+
g.columns_for :invoice_address, :class => Address do |adr|
|
173
|
+
adr.attributes :street, :zipcode, :city
|
174
|
+
end
|
175
|
+
# ...
|
176
|
+
end
|
177
|
+
end
|
178
|
+
```
|
179
|
+
|
180
|
+
## has_many or has_and_belongs_to_many associations
|
181
|
+
If you have Users that has_many Orders, you should rather define a fancygrid
|
182
|
+
for the Orders than for Users. However, if it must be a Users table and
|
183
|
+
you want to search on the associations attributes, you can do that:
|
184
|
+
|
185
|
+
```ruby
|
186
|
+
def index
|
187
|
+
fancygrid_for :users do |g|
|
188
|
+
# ...
|
189
|
+
g.columns_for :roles do |roles|
|
190
|
+
roles.attributes :name
|
191
|
+
end
|
192
|
+
# ...
|
193
|
+
end
|
194
|
+
end
|
195
|
+
```
|
196
|
+
|
197
|
+
The definition is valid, and you can already search for users with a specific
|
198
|
+
role. But nothing is going to be rendered in the roles.name column. This is
|
199
|
+
because roles is a collection of records, and not a single record. You can now
|
200
|
+
format the column in the view like this
|
201
|
+
|
202
|
+
```haml
|
203
|
+
= fancygrid :users do |column, record, value|
|
204
|
+
- case column.identifier
|
205
|
+
- when "roles.name"
|
206
|
+
= record.roles.map(&:name).join("|")
|
207
|
+
- else
|
208
|
+
= value
|
209
|
+
```
|
210
|
+
|
211
|
+
Here the column identifier is used to identify the column. This is useful
|
212
|
+
if you have more columns that are named the same.
|
213
|
+
|
214
|
+
## Caching the view state
|
215
|
+
To make your users life easier you can enable the view state caching. This way
|
216
|
+
the user can search for data, leave the site, come back and have his last
|
217
|
+
search back on screen.
|
218
|
+
```ruby
|
219
|
+
def index
|
220
|
+
fancygrid_for :users, :persist => true do |grid|
|
221
|
+
# ...
|
222
|
+
end
|
223
|
+
end
|
224
|
+
```
|
225
|
+
## Copyright
|
226
|
+
Copyright (c) 2010 Alexander Graefenstein. See LICENSE for details.
|