fancygrid 1.1.0 → 2.0.0

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.
Files changed (95) hide show
  1. data/CHANGELOG +9 -2
  2. data/Gemfile +6 -9
  3. data/Gemfile.lock +88 -103
  4. data/README.md +226 -0
  5. data/ROADMAP +0 -1
  6. data/Rakefile +2 -2
  7. data/VERSION +1 -1
  8. data/app/views/fancygrid/controls.html.haml +34 -0
  9. data/app/views/fancygrid/fancygrid.html.haml +18 -0
  10. data/app/views/fancygrid/search.html.haml +24 -0
  11. data/app/views/fancygrid/sort.html.haml +8 -0
  12. data/app/views/fancygrid/table.html.haml +25 -0
  13. data/config/locales/fancygrid.de.yml +17 -19
  14. data/config/locales/fancygrid.en.yml +14 -17
  15. data/fancygrid.gemspec +48 -88
  16. data/lib/assets/javascripts/fancygrid.js +425 -0
  17. data/lib/assets/javascripts/fancygrid.min.js +15 -0
  18. data/lib/assets/stylesheets/fancygrid.css +177 -0
  19. data/lib/fancygrid.rb +63 -44
  20. data/lib/fancygrid/column.rb +165 -0
  21. data/lib/fancygrid/controller/helper.rb +46 -0
  22. data/lib/fancygrid/grid.rb +171 -317
  23. data/lib/fancygrid/node.rb +85 -490
  24. data/lib/fancygrid/object_wrapper.rb +24 -0
  25. data/lib/fancygrid/orm/active_record.rb +39 -0
  26. data/lib/fancygrid/orm/sql_generator.rb +127 -0
  27. data/lib/fancygrid/view/helper.rb +44 -0
  28. data/lib/fancygrid/view_state.rb +161 -0
  29. data/spec/column_spec.rb +29 -0
  30. data/spec/dummy/app/controllers/application_controller.rb +48 -0
  31. data/spec/dummy/app/views/application/index.html.haml +11 -0
  32. data/spec/dummy/app/views/layouts/application.html.erb +1 -1
  33. data/spec/dummy/config/application.rb +1 -1
  34. data/spec/dummy/config/environments/development.rb +2 -2
  35. data/spec/dummy/config/environments/test.rb +2 -2
  36. data/spec/dummy/config/routes.rb +3 -2
  37. data/spec/dummy/db/development.sqlite3 +0 -0
  38. data/spec/dummy/db/schema.rb +26 -0
  39. data/spec/dummy/public/javascripts/jquery-1.4.2.js +6240 -0
  40. data/spec/dummy/public/javascripts/jquery-fancygrid.js +425 -0
  41. data/spec/dummy/public/javascripts/jquery-ui.js +41 -0
  42. data/spec/dummy/public/stylesheets/fancygrid.css +183 -0
  43. data/spec/node_spec.rb +79 -301
  44. data/spec/spec_helper.rb +0 -29
  45. data/spec/view_state_spec.rb +91 -0
  46. metadata +124 -137
  47. data/.bundle/config +0 -2
  48. data/README.rdoc +0 -299
  49. data/app/views/fancygrid/_cells.html.haml +0 -13
  50. data/app/views/fancygrid/base/controls.html.haml +0 -40
  51. data/app/views/fancygrid/base/list_frame.html.haml +0 -37
  52. data/app/views/fancygrid/base/search.html.haml +0 -33
  53. data/app/views/fancygrid/base/sort.html.haml +0 -20
  54. data/app/views/fancygrid/base/table_frame.html.haml +0 -45
  55. data/config/initializers/fancygrid.rb +0 -67
  56. data/lib/fancygrid/helper.rb +0 -129
  57. data/lib/fancygrid/query_generator.rb +0 -340
  58. data/lib/fancygrid/view.rb +0 -148
  59. data/lib/generators/install_generator.rb +0 -61
  60. data/lib/generators/views_generator.rb +0 -25
  61. data/lib/version.rb +0 -0
  62. data/public/images/fancygrid/add.png +0 -0
  63. data/public/images/fancygrid/clear.png +0 -0
  64. data/public/images/fancygrid/ddn.png +0 -0
  65. data/public/images/fancygrid/dn.png +0 -0
  66. data/public/images/fancygrid/dots.png +0 -0
  67. data/public/images/fancygrid/loading.gif +0 -0
  68. data/public/images/fancygrid/magnifier.png +0 -0
  69. data/public/images/fancygrid/next.png +0 -0
  70. data/public/images/fancygrid/order.png +0 -0
  71. data/public/images/fancygrid/prev.png +0 -0
  72. data/public/images/fancygrid/reload.png +0 -0
  73. data/public/images/fancygrid/remove.png +0 -0
  74. data/public/images/fancygrid/spacer.gif +0 -0
  75. data/public/images/fancygrid/submit.png +0 -0
  76. data/public/images/fancygrid/th_bg.png +0 -0
  77. data/public/images/fancygrid/up.png +0 -0
  78. data/public/images/fancygrid/uup.png +0 -0
  79. data/public/javascripts/fancygrid.js +0 -477
  80. data/public/javascripts/fancygrid.min.js +0 -17
  81. data/public/stylesheets/fancygrid.css +0 -289
  82. data/public/stylesheets/fancygrid.scss +0 -302
  83. data/spec/dummy/log/development.log +0 -0
  84. data/spec/dummy/log/production.log +0 -0
  85. data/spec/dummy/log/server.log +0 -0
  86. data/spec/dummy/log/test.log +0 -1026
  87. data/spec/dummy/public/javascripts/application.js +0 -2
  88. data/spec/dummy/public/javascripts/controls.js +0 -965
  89. data/spec/dummy/public/javascripts/dragdrop.js +0 -974
  90. data/spec/dummy/public/javascripts/effects.js +0 -1123
  91. data/spec/dummy/public/javascripts/prototype.js +0 -6001
  92. data/spec/dummy/public/javascripts/rails.js +0 -175
  93. data/spec/grid_spec.rb +0 -15
  94. data/spec/integration/navigation_spec.rb +0 -9
  95. data/spec/query_generator_spec.rb +0 -358
data/spec/spec_helper.rb CHANGED
@@ -5,17 +5,8 @@ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
5
  require "rails/test_help"
6
6
  require "rspec/rails"
7
7
 
8
- ActionMailer::Base.delivery_method = :test
9
- ActionMailer::Base.perform_deliveries = true
10
- ActionMailer::Base.default_url_options[:host] = "test.com"
11
-
12
8
  Rails.backtrace_cleaner.remove_silencers!
13
9
 
14
- # Configure capybara for integration testing
15
- require "capybara/rails"
16
- Capybara.default_driver = :rack_test
17
- Capybara.default_selector = :css
18
-
19
10
  # Run any available migration
20
11
  ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
21
12
 
@@ -31,23 +22,3 @@ RSpec.configure do |config|
31
22
  # == Mock Framework
32
23
  config.mock_with :rspec
33
24
  end
34
-
35
-
36
- #$:.unshift(File.join(File.expand_path(File.dirname(__FILE__)), "../lib"))
37
- #
38
- #require 'active_record'
39
- #require 'fancygrid/query_generator'
40
- #
41
- #class Ticket < ActiveRecord::Base
42
- # belongs_to :project
43
- #end
44
- #class Project < ActiveRecord::Base
45
- # has_many :tickets
46
- #end
47
- #
48
- #class User < ActiveRecord::Base
49
- # has_and_belongs_to_many :roles
50
- #end
51
- #class Role < ActiveRecord::Base
52
- # has_and_belongs_to_many :users
53
- #end
@@ -0,0 +1,91 @@
1
+ require "spec_helper"
2
+
3
+ describe Fancygrid::ViewState do
4
+
5
+
6
+ #{
7
+ # :columns => [
8
+ # { :table => [string], :column => [string], :visible => [bool], :position => [number] }
9
+ # ]
10
+ # :conditions => [
11
+ # { :table => [string], :column => [string], :operator => [string], :value => [string] }
12
+ # ],
13
+ # :conditions_match => ["all"|"any"],
14
+ # :order => { :identifier => [string], :direction => ["asc"|"desc"|""] },
15
+ # :pagination => { :page => [number], :per_page => [number] }
16
+ #}
17
+
18
+
19
+ it "should initialize without argument" do
20
+ state = Fancygrid::ViewState.new
21
+ end
22
+
23
+ it "should initialize with empty dump" do
24
+ state = Fancygrid::ViewState.new {}
25
+ end
26
+
27
+ describe "pagination scope" do
28
+ it "should resolve pagination options" do
29
+ state = Fancygrid::ViewState.new :pagination => { :page => 123, :per_page => 312 }
30
+ state.pagination.should == { "page" => 123, "per_page" => 312 }
31
+ end
32
+
33
+ it "should resolve page value" do
34
+ state = Fancygrid::ViewState.new :pagination => { :page => 123 }
35
+ state.pagination_page.should be 123
36
+ end
37
+
38
+ it "should return fallback page value" do
39
+ state = Fancygrid::ViewState.new :pagination => { }
40
+ state.pagination_page(312).should be 312
41
+ end
42
+
43
+ it "should resolve per page value" do
44
+ state = Fancygrid::ViewState.new :pagination => { :per_page => 123 }
45
+ state.pagination_per_page.should be 123
46
+ end
47
+
48
+ it "should return fallback per page value" do
49
+ state = Fancygrid::ViewState.new :pagination => { }
50
+ state.pagination_per_page(312).should be 312
51
+ end
52
+ end
53
+
54
+ describe "order scope" do
55
+ it "should resolve order options" do
56
+ state = Fancygrid::ViewState.new :order => { :identifier => "a.b", :direction => "asc" }
57
+ state.order.should == { "identifier" => "a.b", "direction" => "asc" }
58
+ end
59
+
60
+ it "should resolve order table" do
61
+ state = Fancygrid::ViewState.new :order => { :identifier => "a.b", :direction => "c" }
62
+ state.order_table.should == "a"
63
+ end
64
+
65
+ it "should resolve order column" do
66
+ state = Fancygrid::ViewState.new :order => { :identifier => "a.b", :direction => "c" }
67
+ state.order_column.should == "b"
68
+ end
69
+
70
+ it "should resolve order direction" do
71
+ state = Fancygrid::ViewState.new :order => { :identifier => "a.b", :direction => "desc" }
72
+ state.order_direction.should == "desc"
73
+ end
74
+
75
+ it "ordered? should return true if all order options are set" do
76
+ state = Fancygrid::ViewState.new :order => { :identifier => "a.b", :direction => "desc" }
77
+ state.ordered?.should be true
78
+ end
79
+
80
+ it "ordered? should return false if identifier option is missing" do
81
+ state = Fancygrid::ViewState.new :order => { :direction => "c" }
82
+ state.ordered?.should be false
83
+ end
84
+
85
+ it "ordered? should return false if direction option is missing" do
86
+ state = Fancygrid::ViewState.new :order => { :identifier => "a.b" }
87
+ state.ordered?.should be false
88
+ end
89
+ end
90
+
91
+ end
metadata CHANGED
@@ -1,119 +1,142 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: fancygrid
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 1
9
- - 0
10
- version: 1.1.0
11
6
  platform: ruby
12
- authors:
13
- - "Alexander Gr\xC3\xA4fenstein"
7
+ authors:
8
+ - Alexander Graefenstein
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-08-23 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- type: :development
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 1
29
- segments:
30
- - 3
31
- - 0
32
- - 3
33
- version: 3.0.3
12
+ date: 2012-07-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
34
15
  name: rails
35
- version_requirements: *id001
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: haml
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
36
39
  prerelease: false
37
- - !ruby/object:Gem::Dependency
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: sqlite3
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
38
54
  type: :development
39
- requirement: &id002 !ruby/object:Gem::Requirement
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec-rails
64
+ requirement: !ruby/object:Gem::Requirement
40
65
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
48
79
  name: jeweler
49
- version_requirements: *id002
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
50
87
  prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
51
94
  description: Enables easy table rendering in rails applications
52
95
  email: giniedp@online.de
53
96
  executables: []
54
-
55
97
  extensions: []
56
-
57
- extra_rdoc_files:
98
+ extra_rdoc_files:
58
99
  - LICENSE
59
- - README.rdoc
60
- files:
61
- - .bundle/config
100
+ - README.md
101
+ files:
62
102
  - .rspec
63
103
  - CHANGELOG
64
104
  - Gemfile
65
105
  - Gemfile.lock
66
106
  - LICENSE
67
- - README.rdoc
107
+ - README.md
68
108
  - ROADMAP
69
109
  - Rakefile
70
110
  - VERSION
71
- - app/views/fancygrid/_cells.html.haml
72
- - app/views/fancygrid/base/controls.html.haml
73
- - app/views/fancygrid/base/list_frame.html.haml
74
- - app/views/fancygrid/base/search.html.haml
75
- - app/views/fancygrid/base/sort.html.haml
76
- - app/views/fancygrid/base/table_frame.html.haml
77
- - config/initializers/fancygrid.rb
111
+ - app/views/fancygrid/controls.html.haml
112
+ - app/views/fancygrid/fancygrid.html.haml
113
+ - app/views/fancygrid/search.html.haml
114
+ - app/views/fancygrid/sort.html.haml
115
+ - app/views/fancygrid/table.html.haml
78
116
  - config/locales/fancygrid.de.yml
79
117
  - config/locales/fancygrid.en.yml
80
118
  - fancygrid.gemspec
81
119
  - init.rb
120
+ - lib/assets/javascripts/fancygrid.js
121
+ - lib/assets/javascripts/fancygrid.min.js
122
+ - lib/assets/stylesheets/fancygrid.css
82
123
  - lib/fancygrid.rb
124
+ - lib/fancygrid/column.rb
125
+ - lib/fancygrid/controller/helper.rb
83
126
  - lib/fancygrid/grid.rb
84
- - lib/fancygrid/helper.rb
85
127
  - lib/fancygrid/node.rb
86
- - lib/fancygrid/query_generator.rb
87
- - lib/fancygrid/view.rb
88
- - lib/generators/install_generator.rb
89
- - lib/generators/views_generator.rb
90
- - lib/version.rb
91
- - public/images/fancygrid/add.png
92
- - public/images/fancygrid/clear.png
93
- - public/images/fancygrid/ddn.png
94
- - public/images/fancygrid/dn.png
95
- - public/images/fancygrid/dots.png
96
- - public/images/fancygrid/loading.gif
97
- - public/images/fancygrid/magnifier.png
98
- - public/images/fancygrid/next.png
99
- - public/images/fancygrid/order.png
100
- - public/images/fancygrid/prev.png
101
- - public/images/fancygrid/reload.png
102
- - public/images/fancygrid/remove.png
103
- - public/images/fancygrid/spacer.gif
104
- - public/images/fancygrid/submit.png
105
- - public/images/fancygrid/th_bg.png
106
- - public/images/fancygrid/up.png
107
- - public/images/fancygrid/uup.png
108
- - public/javascripts/fancygrid.js
109
- - public/javascripts/fancygrid.min.js
110
- - public/stylesheets/fancygrid.css
111
- - public/stylesheets/fancygrid.scss
128
+ - lib/fancygrid/object_wrapper.rb
129
+ - lib/fancygrid/orm/active_record.rb
130
+ - lib/fancygrid/orm/sql_generator.rb
131
+ - lib/fancygrid/view/helper.rb
132
+ - lib/fancygrid/view_state.rb
133
+ - spec/column_spec.rb
112
134
  - spec/dummy/Rakefile
113
135
  - spec/dummy/app/controllers/application_controller.rb
114
136
  - spec/dummy/app/helpers/application_helper.rb
115
137
  - spec/dummy/app/models/project.rb
116
138
  - spec/dummy/app/models/ticket.rb
139
+ - spec/dummy/app/views/application/index.html.haml
117
140
  - spec/dummy/app/views/layouts/application.html.erb
118
141
  - spec/dummy/config.ru
119
142
  - spec/dummy/config/application.rb
@@ -130,85 +153,49 @@ files:
130
153
  - spec/dummy/config/initializers/session_store.rb
131
154
  - spec/dummy/config/locales/en.yml
132
155
  - spec/dummy/config/routes.rb
156
+ - spec/dummy/db/development.sqlite3
133
157
  - spec/dummy/db/migrate/20110112183948_create_projects.rb
134
158
  - spec/dummy/db/migrate/20110112183956_create_tickets.rb
159
+ - spec/dummy/db/schema.rb
135
160
  - spec/dummy/db/test.sqlite3
136
- - spec/dummy/log/development.log
137
- - spec/dummy/log/production.log
138
- - spec/dummy/log/server.log
139
- - spec/dummy/log/test.log
140
161
  - spec/dummy/public/404.html
141
162
  - spec/dummy/public/422.html
142
163
  - spec/dummy/public/500.html
143
164
  - spec/dummy/public/favicon.ico
144
- - spec/dummy/public/javascripts/application.js
145
- - spec/dummy/public/javascripts/controls.js
146
- - spec/dummy/public/javascripts/dragdrop.js
147
- - spec/dummy/public/javascripts/effects.js
148
- - spec/dummy/public/javascripts/prototype.js
149
- - spec/dummy/public/javascripts/rails.js
165
+ - spec/dummy/public/javascripts/jquery-1.4.2.js
166
+ - spec/dummy/public/javascripts/jquery-fancygrid.js
167
+ - spec/dummy/public/javascripts/jquery-ui.js
150
168
  - spec/dummy/public/stylesheets/.gitkeep
169
+ - spec/dummy/public/stylesheets/fancygrid.css
151
170
  - spec/dummy/script/rails
152
- - spec/grid_spec.rb
153
- - spec/integration/navigation_spec.rb
154
171
  - spec/node_spec.rb
155
- - spec/query_generator_spec.rb
156
172
  - spec/spec_helper.rb
157
- has_rdoc: true
173
+ - spec/view_state_spec.rb
158
174
  homepage: http://github.com/giniedp/fancygrid
159
175
  licenses: []
160
-
161
176
  post_install_message:
162
177
  rdoc_options: []
163
-
164
- require_paths:
178
+ require_paths:
165
179
  - lib
166
- required_ruby_version: !ruby/object:Gem::Requirement
180
+ required_ruby_version: !ruby/object:Gem::Requirement
167
181
  none: false
168
- requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- hash: 3
172
- segments:
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ segments:
173
187
  - 0
174
- version: "0"
175
- required_rubygems_version: !ruby/object:Gem::Requirement
188
+ hash: 3573550039207082280
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
190
  none: false
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- hash: 3
181
- segments:
182
- - 0
183
- version: "0"
191
+ requirements:
192
+ - - ! '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
184
195
  requirements: []
185
-
186
196
  rubyforge_project:
187
- rubygems_version: 1.5.3
197
+ rubygems_version: 1.8.24
188
198
  signing_key:
189
199
  specification_version: 3
190
200
  summary: Table rendering for rails applications
191
- test_files:
192
- - spec/dummy/app/controllers/application_controller.rb
193
- - spec/dummy/app/helpers/application_helper.rb
194
- - spec/dummy/app/models/project.rb
195
- - spec/dummy/app/models/ticket.rb
196
- - spec/dummy/config/application.rb
197
- - spec/dummy/config/boot.rb
198
- - spec/dummy/config/environment.rb
199
- - spec/dummy/config/environments/development.rb
200
- - spec/dummy/config/environments/production.rb
201
- - spec/dummy/config/environments/test.rb
202
- - spec/dummy/config/initializers/backtrace_silencers.rb
203
- - spec/dummy/config/initializers/inflections.rb
204
- - spec/dummy/config/initializers/mime_types.rb
205
- - spec/dummy/config/initializers/secret_token.rb
206
- - spec/dummy/config/initializers/session_store.rb
207
- - spec/dummy/config/routes.rb
208
- - spec/dummy/db/migrate/20110112183948_create_projects.rb
209
- - spec/dummy/db/migrate/20110112183956_create_tickets.rb
210
- - spec/grid_spec.rb
211
- - spec/integration/navigation_spec.rb
212
- - spec/node_spec.rb
213
- - spec/query_generator_spec.rb
214
- - spec/spec_helper.rb
201
+ test_files: []