rails_admin 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rails_admin might be problematic. Click here for more details.

Files changed (120) hide show
  1. data/Gemfile +2 -2
  2. data/README.md +13 -6
  3. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  4. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  5. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  6. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  7. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  8. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  9. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  10. data/app/assets/images/rails_admin/calendar.png +0 -0
  11. data/app/assets/images/rails_admin/clock.png +0 -0
  12. data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  13. data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  14. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  15. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  16. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  17. data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  18. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  19. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  20. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  21. data/app/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  22. data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  23. data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  24. data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  25. data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  26. data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  27. data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  28. data/app/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  29. data/app/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  30. data/app/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  31. data/app/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  32. data/app/assets/images/rails_admin/colorpicker/select.png +0 -0
  33. data/app/assets/images/rails_admin/colorpicker/select2.png +0 -0
  34. data/app/assets/images/rails_admin/colorpicker/slider.png +0 -0
  35. data/app/assets/images/rails_admin/logo.png +0 -0
  36. data/app/assets/images/rails_admin/magnifier.png +0 -0
  37. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  38. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  39. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  40. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  41. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  42. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  43. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  44. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  45. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  46. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  47. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  48. data/app/assets/stylesheets/rails_admin/jquery.colorpicker.css.scss +1 -0
  49. data/app/controllers/rails_admin/main_controller.rb +1 -1
  50. data/app/helpers/rails_admin/application_helper.rb +3 -2
  51. data/app/views/rails_admin/main/index.html.haml +1 -1
  52. data/lib/generators/rails_admin/install_generator.rb +1 -1
  53. data/lib/rails_admin/abstract_model.rb +4 -0
  54. data/lib/rails_admin/adapters/active_record.rb +4 -0
  55. data/lib/rails_admin/adapters/mongoid.rb +6 -0
  56. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +3 -3
  57. data/lib/rails_admin/config.rb +9 -12
  58. data/lib/rails_admin/config/actions/base.rb +4 -3
  59. data/lib/rails_admin/config/fields/association.rb +1 -1
  60. data/lib/rails_admin/config/fields/base.rb +1 -1
  61. data/lib/rails_admin/config/fields/factories/association.rb +1 -1
  62. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +1 -1
  63. data/lib/rails_admin/config/fields/types/boolean.rb +2 -2
  64. data/lib/rails_admin/config/fields/types/datetime.rb +1 -1
  65. data/lib/rails_admin/config/has_fields.rb +3 -2
  66. data/lib/rails_admin/config/lazy_model.rb +21 -0
  67. data/lib/rails_admin/extensions/history/history.rb +5 -5
  68. data/lib/rails_admin/support/csv_converter.rb +2 -6
  69. data/lib/rails_admin/version.rb +1 -1
  70. data/spec/controllers/{application_controller_spec.rb → rails_admin/application_controller_spec.rb} +0 -0
  71. data/spec/controllers/{main_controller_spec.rb → rails_admin/main_controller_spec.rb} +36 -4
  72. data/spec/dummy_app/Gemfile +2 -2
  73. data/spec/dummy_app/app/active_record/comment.rb +1 -1
  74. data/spec/dummy_app/app/active_record/team.rb +1 -1
  75. data/spec/dummy_app/app/mongoid/field_test.rb +2 -1
  76. data/spec/dummy_app/app/mongoid/team.rb +1 -1
  77. data/spec/dummy_app/db/seeds.rb +4 -4
  78. data/spec/dummy_app/db/test.sqlite3 +0 -0
  79. data/spec/dummy_app/log/test.log +156160 -0
  80. data/spec/helpers/rails_admin/application_helper_spec.rb +353 -0
  81. data/spec/helpers/{form_builder_spec.rb → rails_admin/form_builder_spec.rb} +0 -0
  82. data/spec/integration/authorization/cancan_spec.rb +13 -13
  83. data/spec/integration/basic/bulk_action/rails_admin_basic_bulk_action_spec.rb +2 -2
  84. data/spec/integration/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +13 -2
  85. data/spec/integration/basic/create/rails_admin_basic_create_spec.rb +8 -9
  86. data/spec/integration/basic/create/rails_admin_namespaced_model_create_spec.rb +1 -1
  87. data/spec/integration/basic/destroy/rails_admin_basic_destroy_spec.rb +4 -4
  88. data/spec/integration/basic/edit/rails_admin_basic_edit_spec.rb +2 -2
  89. data/spec/integration/basic/export/rails_admin_basic_export_spec.rb +2 -2
  90. data/spec/integration/basic/list/rails_admin_basic_list_spec.rb +51 -21
  91. data/spec/integration/basic/update/rails_admin_basic_update_spec.rb +15 -15
  92. data/spec/integration/config/edit/rails_admin_config_edit_spec.rb +13 -14
  93. data/spec/integration/config/list/rails_admin_config_list_spec.rb +7 -6
  94. data/spec/integration/config/show/rails_admin_config_show_spec.rb +1 -1
  95. data/spec/integration/rails_admin_spec.rb +2 -0
  96. data/spec/{unit → rails_admin}/abstract_model_spec.rb +7 -0
  97. data/spec/{unit → rails_admin}/active_record_extension_spec.rb +0 -0
  98. data/spec/{unit → rails_admin}/adapters/active_record/abstract_object_spec.rb +0 -0
  99. data/spec/{unit → rails_admin}/adapters/active_record_spec.rb +0 -0
  100. data/spec/{unit → rails_admin}/adapters/mongoid/abstract_object_spec.rb +0 -0
  101. data/spec/{unit → rails_admin}/adapters/mongoid_spec.rb +7 -1
  102. data/spec/{unit → rails_admin}/config/actions/base_spec.rb +0 -0
  103. data/spec/{unit → rails_admin}/config/actions_spec.rb +0 -0
  104. data/spec/{unit → rails_admin}/config/fields/base_spec.rb +0 -0
  105. data/spec/{unit → rails_admin}/config/fields/date_spec.rb +0 -0
  106. data/spec/{unit → rails_admin}/config/fields/datetime_spec.rb +0 -0
  107. data/spec/{unit → rails_admin}/config/fields/file_upload_spec.rb +0 -0
  108. data/spec/{unit → rails_admin}/config/fields/time_spec.rb +0 -0
  109. data/spec/{unit → rails_admin}/config/fields/timestamp_spec.rb +0 -0
  110. data/spec/rails_admin/config/fields/types/datetime_spec.rb +18 -0
  111. data/spec/{unit → rails_admin}/config/fields_spec.rb +0 -0
  112. data/spec/rails_admin/config/has_fields_spec.rb +30 -0
  113. data/spec/rails_admin/config/lazy_model_spec.rb +29 -0
  114. data/spec/{unit → rails_admin}/config/model_spec.rb +0 -0
  115. data/spec/{unit → rails_admin}/config/sections_spec.rb +0 -0
  116. data/spec/{unit → rails_admin}/config_spec.rb +0 -0
  117. data/spec/{unit → rails_admin}/support/csv_converter_spec.rb +0 -0
  118. data/spec/spec_helper.rb +2 -0
  119. metadata +65 -60
  120. data/spec/helpers/application_helper_spec.rb +0 -328
@@ -1,328 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe RailsAdmin::ApplicationHelper do
4
-
5
- before do
6
- controller.stub(:authorized?).and_return(true)
7
- end
8
-
9
- describe "#current_action?" do
10
- it "returns true if current_action, false otherwise" do
11
- @action = RailsAdmin::Config::Actions.find(:index)
12
-
13
- expect(helper.current_action?(RailsAdmin::Config::Actions.find(:index))).to be_true
14
- expect(helper.current_action?(RailsAdmin::Config::Actions.find(:show))).not_to be_true
15
- end
16
- end
17
-
18
- describe "#action" do
19
- it "returns action by :custom_key" do
20
- RailsAdmin.config do |config|
21
- config.actions do
22
- dashboard do
23
- custom_key :my_custom_dashboard_key
24
- end
25
- end
26
- end
27
- expect(helper.action(:my_custom_dashboard_key)).to be
28
- end
29
-
30
- it "returns only visible actions" do
31
- RailsAdmin.config do |config|
32
- config.actions do
33
- dashboard do
34
- visible false
35
- end
36
- end
37
- end
38
-
39
- expect(helper.action(:dashboard)).to be_nil
40
- end
41
-
42
- it "returns only visible actions, passing all bindings" do
43
- RailsAdmin.config do |config|
44
- config.actions do
45
- member :test_bindings do
46
- visible do
47
- bindings[:controller].is_a?(ActionView::TestCase::TestController) and
48
- bindings[:abstract_model].model == Team and
49
- bindings[:object].is_a? Team
50
- end
51
- end
52
- end
53
- end
54
- expect(helper.action(:test_bindings, RailsAdmin::AbstractModel.new(Team), Team.new)).to be
55
- expect(helper.action(:test_bindings, RailsAdmin::AbstractModel.new(Team), Player.new)).to be_nil
56
- expect(helper.action(:test_bindings, RailsAdmin::AbstractModel.new(Player), Team.new)).to be_nil
57
- end
58
- end
59
-
60
- describe "#actions" do
61
- it "returns actions by type" do
62
- abstract_model = RailsAdmin::AbstractModel.new(Player)
63
- object = FactoryGirl.create :player
64
- expect(helper.actions(:all, abstract_model, object).map(&:custom_key)).to eq([:dashboard, :index, :show, :new, :edit, :export, :delete, :bulk_delete, :history_show, :history_index, :show_in_app])
65
- expect(helper.actions(:root, abstract_model, object).map(&:custom_key)).to eq([:dashboard])
66
- expect(helper.actions(:collection, abstract_model, object).map(&:custom_key)).to eq([:index, :new, :export, :bulk_delete, :history_index])
67
- expect(helper.actions(:member, abstract_model, object).map(&:custom_key)).to eq([:show, :edit, :delete, :history_show, :show_in_app])
68
- end
69
-
70
- it "only returns visible actions, passing bindings correctly" do
71
- RailsAdmin.config do |config|
72
- config.actions do
73
- member :test_bindings do
74
- visible do
75
- bindings[:controller].is_a?(ActionView::TestCase::TestController) and
76
- bindings[:abstract_model].model == Team and
77
- bindings[:object].is_a? Team
78
- end
79
- end
80
- end
81
- end
82
-
83
- expect(helper.actions(:all, RailsAdmin::AbstractModel.new(Team), Team.new).map(&:custom_key)).to eq([:test_bindings])
84
- expect(helper.actions(:all, RailsAdmin::AbstractModel.new(Team), Player.new).map(&:custom_key)).to eq([])
85
- expect(helper.actions(:all, RailsAdmin::AbstractModel.new(Player), Team.new).map(&:custom_key)).to eq([])
86
- end
87
- end
88
-
89
- describe "#wording_for" do
90
- it "gives correct wording even if action is not visible" do
91
- RailsAdmin.config do |config|
92
- config.actions do
93
- index do
94
- visible false
95
- end
96
- end
97
- end
98
-
99
- expect(helper.wording_for(:menu, :index)).to eq("List")
100
- end
101
-
102
- it "passes correct bindings" do
103
- expect(helper.wording_for(:title, :edit, RailsAdmin::AbstractModel.new(Team), Team.new(:name => 'the avengers'))).to eq("Edit Team 'the avengers'")
104
- end
105
-
106
- it "defaults correct bindings" do
107
- @action = RailsAdmin::Config::Actions.find :edit
108
- @abstract_model = RailsAdmin::AbstractModel.new(Team)
109
- @object = Team.new(:name => 'the avengers')
110
- expect(helper.wording_for(:title)).to eq("Edit Team 'the avengers'")
111
- end
112
-
113
- it "does not try to use the wrong :label_metod" do
114
- @abstract_model = RailsAdmin::AbstractModel.new(Draft)
115
- @object = Draft.new
116
-
117
- expect(helper.wording_for(:link, :new, RailsAdmin::AbstractModel.new(Team))).to eq("Add a new Team")
118
- end
119
-
120
- end
121
-
122
- describe "#breadcrumb" do
123
- it "gives us a breadcrumb" do
124
- @action = RailsAdmin::Config::Actions.find(:edit, {:abstract_model => RailsAdmin::AbstractModel.new(Team), :object => Team.new(:name => 'the avengers')})
125
- bc = helper.breadcrumb
126
- expect(bc).to match /Dashboard/ # dashboard
127
- expect(bc).to match /Teams/ # list
128
- expect(bc).to match /the avengers/ # show
129
- expect(bc).to match /Edit/ # current (edit)
130
- end
131
- end
132
-
133
- describe "#menu_for" do
134
- it "passes model and object as bindings and generates a menu, excluding non-get actions" do
135
- RailsAdmin.config do |config|
136
- config.actions do
137
- dashboard
138
- index do
139
- visible do
140
- bindings[:abstract_model].model == Team
141
- end
142
- end
143
- show do
144
- visible do
145
- bindings[:object].class == Team
146
- end
147
- end
148
- delete do
149
- http_methods [:post, :put, :delete]
150
- end
151
- end
152
- end
153
-
154
- @action = RailsAdmin::Config::Actions.find :show
155
- @abstract_model = RailsAdmin::AbstractModel.new(Team)
156
- @object = Team.new(:name => 'the avengers')
157
-
158
- expect(helper.menu_for(:root)).to match /Dashboard/
159
- expect(helper.menu_for(:collection, @abstract_model)).to match /List/
160
- expect(helper.menu_for(:member, @abstract_model, @object)).to match /Show/
161
-
162
- @abstract_model = RailsAdmin::AbstractModel.new(Player)
163
- @object = Player.new
164
- expect(helper.menu_for(:collection, @abstract_model)).not_to match /List/
165
- expect(helper.menu_for(:member, @abstract_model, @object)).not_to match /Show/
166
- end
167
-
168
- it "excludes non-get actions" do
169
- RailsAdmin.config do |config|
170
- config.actions do
171
- dashboard do
172
- http_methods [:post, :put, :delete]
173
- end
174
- end
175
- end
176
-
177
- @action = RailsAdmin::Config::Actions.find :dashboard
178
- expect(helper.menu_for(:root)).not_to match /Dashboard/
179
- end
180
- end
181
-
182
- describe "#main_navigation" do
183
- it "shows included models" do
184
- RailsAdmin.config do |config|
185
- config.included_models = [Ball, Comment]
186
- end
187
- expect(helper.main_navigation).to match /(nav\-header).*(Navigation).*(Balls).*(Comments)/m
188
- end
189
-
190
- it "does not draw empty navigation labels" do
191
- RailsAdmin.config do |config|
192
- config.included_models = [Ball, Comment, Comment::Confirmed]
193
- config.model Comment do
194
- navigation_label 'Commentz'
195
- end
196
- config.model Comment::Confirmed do
197
- label_plural 'Confirmed'
198
- end
199
- end
200
- expect(helper.main_navigation).to match /(nav\-header).*(Navigation).*(Balls).*(Commentz).*(Confirmed)/m
201
- expect(helper.main_navigation).not_to match /(nav\-header).*(Navigation).*(Balls).*(Commentz).*(Confirmed).*(Comment)/m
202
- end
203
-
204
- it "does not show unvisible models" do
205
- RailsAdmin.config do |config|
206
- config.included_models = [Ball, Comment]
207
- config.model Comment do
208
- hide
209
- end
210
- end
211
- result = helper.main_navigation
212
- expect(result).to match /(nav\-header).*(Navigation).*(Balls)/m
213
- expect(result).not_to match "Comments"
214
- end
215
-
216
- it "shows children of hidden models" do # https://github.com/sferik/rails_admin/issues/978
217
- RailsAdmin.config do |config|
218
- config.included_models = [Ball, Hardball]
219
- config.model Ball do
220
- hide
221
- end
222
- end
223
- expect(helper.main_navigation).to match /(nav\-header).*(Navigation).*(Hardballs)/m
224
- end
225
-
226
- it "shows children of excluded models" do
227
- RailsAdmin.config do |config|
228
- config.included_models = [Hardball]
229
- end
230
- expect(helper.main_navigation).to match /(nav\-header).*(Navigation).*(Hardballs)/m
231
- end
232
-
233
- it "nests in navigation label" do
234
- RailsAdmin.config do |config|
235
- config.included_models = [Comment]
236
- config.model Comment do
237
- navigation_label 'commentable'
238
- end
239
- end
240
- expect(helper.main_navigation).to match /(nav\-header).*(commentable).*(Comments)/m
241
- end
242
-
243
- it "nests in parent model" do
244
- RailsAdmin.config do |config|
245
- config.included_models = [Player, Comment]
246
- config.model Comment do
247
- parent Player
248
- end
249
- end
250
- expect(helper.main_navigation).to match /(Players).* (nav\-level\-1).*(Comments)/m
251
- end
252
-
253
- it "orders" do
254
- RailsAdmin.config do |config|
255
- config.included_models = [Player, Comment]
256
- end
257
- expect(helper.main_navigation).to match /(Comments).*(Players)/m
258
-
259
- RailsAdmin.config(Comment) do
260
- weight 1
261
- end
262
- expect(helper.main_navigation).to match /(Players).*(Comments)/m
263
- end
264
- end
265
-
266
- describe "#static_navigation" do
267
- it "shows not show static nav if no static links defined" do
268
- RailsAdmin.config do |config|
269
- config.navigation_static_links = {}
270
- end
271
- expect(helper.static_navigation).to be_empty
272
- end
273
-
274
- it "shows links if defined" do
275
- RailsAdmin.config do |config|
276
- config.navigation_static_links = {
277
- 'Test Link' => 'http://www.google.com'
278
- }
279
- end
280
- expect(helper.static_navigation).to match /Test Link/
281
- end
282
-
283
- it "shows default header if navigation_static_label not defined in config" do
284
- RailsAdmin.config do |config|
285
- config.navigation_static_links = {
286
- 'Test Link' => 'http://www.google.com'
287
- }
288
- end
289
- expect(helper.static_navigation).to match I18n.t('admin.misc.navigation_static_label')
290
- end
291
-
292
- it "shows custom header if defined" do
293
- RailsAdmin.config do |config|
294
- config.navigation_static_label = "Test Header"
295
- config.navigation_static_links = {
296
- 'Test Link' => 'http://www.google.com'
297
- }
298
- end
299
- expect(helper.static_navigation).to match /Test Header/
300
- end
301
- end
302
-
303
- describe "#bulk_menu" do
304
- it "includes all visible bulkable actions" do
305
- RailsAdmin.config do |config|
306
- config.actions do
307
- index
308
- collection :zorg do
309
- bulkable true
310
- action_name :zorg_action
311
- end
312
- collection :blub do
313
- bulkable true
314
- visible do
315
- bindings[:abstract_model].model == Team
316
- end
317
- end
318
- end
319
- end
320
- @action = RailsAdmin::Config::Actions.find :index
321
- result = helper.bulk_menu(RailsAdmin::AbstractModel.new(Team))
322
- expect(result).to match "zorg_action"
323
- expect(result).to match "blub"
324
-
325
- expect(helper.bulk_menu(RailsAdmin::AbstractModel.new(Player))).not_to match "blub"
326
- end
327
- end
328
- end