rails_admin 0.8.1 → 1.0.0.rc

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -15
  3. data/LICENSE.md +1 -1
  4. data/README.md +21 -8
  5. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +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/bootstrap/glyphicons-halflings-white.png +0 -0
  10. data/app/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +0 -0
  11. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  12. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  13. data/app/assets/images/rails_admin/calendar.png +0 -0
  14. data/app/assets/images/rails_admin/clock.png +0 -0
  15. data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  16. data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  17. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  18. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  19. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  20. data/app/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  21. data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  22. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  23. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  24. data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  25. data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  26. data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  27. data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  28. data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  29. data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  30. data/app/assets/images/rails_admin/colorpicker/custom_indic.gif +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/slider.png +0 -0
  34. data/app/assets/images/rails_admin/magnifier.png +0 -0
  35. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  36. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  37. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  38. data/app/assets/javascripts/rails_admin/ra.filter-box.js +1 -1
  39. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +4 -1
  40. data/app/assets/javascripts/rails_admin/ra.remote-form.js +4 -1
  41. data/app/assets/javascripts/rails_admin/rails_admin.js +1 -1
  42. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  43. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  44. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  45. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  46. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +5 -5
  47. data/app/assets/stylesheets/rails_admin/ra.widgets.scss +5 -1
  48. data/app/controllers/rails_admin/application_controller.rb +3 -3
  49. data/app/controllers/rails_admin/main_controller.rb +6 -6
  50. data/app/helpers/rails_admin/application_helper.rb +5 -5
  51. data/app/helpers/rails_admin/form_builder.rb +1 -1
  52. data/app/helpers/rails_admin/main_helper.rb +1 -1
  53. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_gap.html.haml +0 -0
  54. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_next_page.html.haml +0 -0
  55. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_page.html.haml +0 -0
  56. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_paginator.html.haml +0 -0
  57. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_prev_page.html.haml +0 -0
  58. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +1 -1
  59. data/app/views/rails_admin/main/_form_colorpicker.html.haml +1 -1
  60. data/app/views/rails_admin/main/dashboard.html.haml +5 -5
  61. data/app/views/rails_admin/main/export.html.haml +45 -36
  62. data/app/views/rails_admin/main/history.html.haml +2 -2
  63. data/app/views/rails_admin/main/index.html.haml +1 -1
  64. data/config/locales/rails_admin.en.yml +1 -1
  65. data/lib/generators/rails_admin/templates/initializer.erb +4 -0
  66. data/lib/rails_admin.rb +23 -0
  67. data/lib/rails_admin/adapters/active_record.rb +8 -3
  68. data/lib/rails_admin/adapters/mongoid.rb +10 -13
  69. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +1 -0
  70. data/lib/rails_admin/adapters/mongoid/association.rb +1 -0
  71. data/lib/rails_admin/adapters/mongoid/bson.rb +29 -0
  72. data/lib/rails_admin/config.rb +12 -6
  73. data/lib/rails_admin/config/actions/bulk_delete.rb +2 -2
  74. data/lib/rails_admin/config/actions/dashboard.rb +3 -3
  75. data/lib/rails_admin/config/actions/export.rb +1 -1
  76. data/lib/rails_admin/config/actions/index.rb +6 -2
  77. data/lib/rails_admin/config/actions/new.rb +2 -1
  78. data/lib/rails_admin/config/fields/association.rb +5 -1
  79. data/lib/rails_admin/config/fields/types/active_record_enum.rb +4 -0
  80. data/lib/rails_admin/config/fields/types/bson_object_id.rb +1 -15
  81. data/lib/rails_admin/config/fields/types/datetime.rb +5 -2
  82. data/lib/rails_admin/config/fields/types/file_upload.rb +1 -1
  83. data/lib/rails_admin/config/fields/types/serialized.rb +2 -2
  84. data/lib/rails_admin/config/fields/types/wysihtml5.rb +2 -2
  85. data/lib/rails_admin/config/lazy_model.rb +44 -4
  86. data/lib/rails_admin/config/model.rb +1 -1
  87. data/lib/rails_admin/engine.rb +0 -1
  88. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +2 -1
  89. data/lib/rails_admin/support/csv_converter.rb +9 -13
  90. data/lib/rails_admin/support/datetime.rb +6 -5
  91. data/lib/rails_admin/support/i18n.rb +7 -5
  92. data/lib/rails_admin/version.rb +4 -4
  93. metadata +22 -30
  94. data/app/assets/javascripts/rails_admin/jquery.remotipart.fixed.js +0 -72
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e491a0735ca200d0e74ad5dcb6bd299919da52b
4
- data.tar.gz: 5a96d44742b0029c1d7554c532e7fa6ae6ed6853
3
+ metadata.gz: ad179cb9f029df989c979439f2e5debb9b2a8f23
4
+ data.tar.gz: 2a148ec6c217c0dc67369cb0164bed57db97b953
5
5
  SHA512:
6
- metadata.gz: 51af7b94bb6eb226489fdd111ba81bd17a16f32910c44c97876b427396d48c8b972c7b3ea288f3d850157c12bb1fa628351b878e6e2d1bcb1683ec6d402d7349
7
- data.tar.gz: 99bedb21db9884f4f58c0ed3069e15961aad70209d75e1cd8dcbff99b6e5fa39a3ca02f90eb82593f0b8d44e9cccf2b2cd15ccefec1bcd4402b999acba041916
6
+ metadata.gz: c5c61a2c10d83cdbc00fb163974026eba3a940bd998e674a2e0a256b41f7a9aec821e6aca93a3904bc801d6ee240022bc736b04764bea11953f64ef705ed1d7e
7
+ data.tar.gz: aa9a9cfb2e7eda6f0fd9b3bc2fe16430eb83120499da7e87f0361a93a3b3734e458ec6ac0a0bd553bb6d25fa7f4829f3e717ad15d6cf195efd4771e3b62b0738
data/Gemfile CHANGED
@@ -2,13 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'appraisal', '>= 2.0'
4
4
  gem 'devise'
5
-
6
- group :mongoid do
7
- gem 'mongoid', '~> 4.0.0'
8
- gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip'
9
- gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid'
10
- gem 'refile-mongoid', '>= 0.0.1', platforms: [:ruby_21, :ruby_22]
11
- end
5
+ gem 'remotipart', github: 'mshibuya/remotipart'
12
6
 
13
7
  group :active_record do
14
8
  platforms :jruby do
@@ -26,7 +20,7 @@ group :active_record do
26
20
  gem 'sqlite3', '>= 1.3'
27
21
  end
28
22
 
29
- gem 'paper_trail', '~> 3.0'
23
+ gem 'paper_trail', '>= 5.0'
30
24
  end
31
25
 
32
26
  group :development, :test do
@@ -36,7 +30,6 @@ end
36
30
  group :test do
37
31
  gem 'cancan', '>= 1.6'
38
32
  gem 'cancancan', '~> 1.12.0'
39
- gem 'capybara', '>= 2.1'
40
33
  gem 'carrierwave', '>= 0.8'
41
34
  gem 'coveralls'
42
35
  gem 'database_cleaner', ['>= 1.2', '!= 1.4.0', '!= 1.5.0']
@@ -55,12 +48,7 @@ group :test do
55
48
  gem 'timecop', '>= 0.5'
56
49
 
57
50
  platforms :ruby_19 do
58
- gem 'tins', '~> 1.6.0'
59
- end
60
-
61
- platforms :ruby_21, :ruby_22 do
62
- gem 'refile', '~> 0.5', require: 'refile/rails'
63
- gem 'refile-mini_magick', '>= 0.1.0'
51
+ gem 'tins', '~> 1.6.0', require: false
64
52
  end
65
53
  end
66
54
 
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2014 Erik Michaels-Ober
1
+ Copyright (c) 2010-2016 Erik Michaels-Ober
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  [![Inline docs](http://inch-ci.org/github/sferik/rails_admin.svg)][inch]
9
9
 
10
10
  [gem]: https://rubygems.org/gems/rails_admin
11
- [travis]: http://travis-ci.org/sferik/rails_admin
11
+ [travis]: https://travis-ci.org/sferik/rails_admin
12
12
  [gemnasium]: https://gemnasium.com/sferik/rails_admin
13
13
  [codeclimate]: https://codeclimate.com/github/sferik/rails_admin
14
14
  [coveralls]: https://coveralls.io/r/sferik/rails_admin
@@ -33,10 +33,24 @@ RailsAdmin is a Rails engine that provides an easy-to-use interface for managing
33
33
 
34
34
  ## Installation
35
35
 
36
- 1. Bundle the gem
37
- 2. Run `rails g rails_admin:install`
38
- 3. Provide a namespace for the routes when asked
39
- 4. Start a server `rails s` and administer your data at [/admin](http://localhost:3000/admin). (if you chose default namespace: /admin)
36
+ 1. On your gemfile:
37
+ - For Rails 5 project:
38
+
39
+ ```
40
+ gem 'remotipart', github: 'mshibuya/remotipart'
41
+ gem 'rails_admin', '>= 1.0.0.rc'
42
+ ```
43
+
44
+ - For Rails 4 project:
45
+
46
+ ```
47
+ gem 'rails_admin'
48
+ ```
49
+
50
+ 2. Run `bundle install`
51
+ 3. Run `rails g rails_admin:install`
52
+ 4. Provide a namespace for the routes when asked
53
+ 5. Start a server `rails s` and administer your data at [/admin](http://localhost:3000/admin). (if you chose default namespace: /admin)
40
54
 
41
55
  ## Configuration
42
56
  ### Global
@@ -87,12 +101,11 @@ If you think you found a bug in RailsAdmin, you can [submit an issue](https://gi
87
101
  ## Supported Ruby Versions
88
102
  This library aims to support and is [tested against][travis] the following Ruby implementations:
89
103
 
90
- * Ruby 1.9.3
91
- * Ruby 2.0.0
92
104
  * Ruby 2.1
93
105
  * Ruby 2.2
106
+ * Ruby 2.3
94
107
  * [Rubinius][]
95
108
  * [JRuby][]
96
109
 
97
- [rubinius]: http://rubini.us/
110
+ [rubinius]: http://rubinius.com
98
111
  [jruby]: http://jruby.org/
@@ -101,7 +101,7 @@
101
101
 
102
102
  var $content = $('<p>')
103
103
  .addClass('filter form-search')
104
- .append('<span class="label label-info form-label"><a href="#delete" class="delete"><i class="fa fa-trash-o fa-fw icon-white"></i></a> ' + field_label + '</span>')
104
+ .append('<span class="label label-info form-label"><a href="#delete" class="delete"><i class="fa fa-trash-o fa-fw icon-white"></i>' + field_label + '</a></span>')
105
105
  .append('&nbsp;' + control + '&nbsp;' + (additional_control || ''));
106
106
 
107
107
  $('#filters_box').append($content);
@@ -29,7 +29,7 @@ $(document).on 'nested:fieldAdded', 'form', (content) ->
29
29
  $(document).on 'nested:fieldRemoved', 'form', (content) ->
30
30
  field = content.field
31
31
  nav = field.closest(".control-group").children('.controls').children('.nav')
32
- current_li = nav.children('li').has('a[href=#' + field.attr('id') + ']')
32
+ current_li = nav.children('li').has('a[href="#' + field.attr('id') + '"]')
33
33
  parent_group = field.closest(".control-group")
34
34
  controls = parent_group.children('.controls')
35
35
  one_to_one = controls.data('nestedone') != undefined
@@ -50,3 +50,6 @@ $(document).on 'nested:fieldRemoved', 'form', (content) ->
50
50
  add_button = toggler.next()
51
51
  add_button.addClass('add_nested_fields').html(add_button.data('add-label'))
52
52
 
53
+ # Removing all required attributes from deleted child form to bypass browser validations.
54
+ field.find('[required]').each ->
55
+ $(this).removeAttr('required')
@@ -91,7 +91,10 @@
91
91
  dialog.find('.modal-body').html(data.responseText);
92
92
  widget._bindFormEvents();
93
93
  } else {
94
- var json = $.parseJSON(data.responseText);
94
+ // responseText may contain redundant try-catch clause added by remotipart
95
+ // https://github.com/JangoSteve/remotipart/blob/c08d61137ee18e0e78eb3cd9ca3030479fd101f1/lib/remotipart/render_overrides.rb#L17
96
+ var responseText = data.responseText.replace(/^try{[^}]+}catch\(err\){[^}]+}/, '');
97
+ var json = $.parseJSON(responseText);
95
98
  var option = '<option value="' + json.id + '" selected>' + json.label + '</option>';
96
99
  var select = widget.element.find('select').filter(":hidden");
97
100
 
@@ -1,6 +1,6 @@
1
1
  //= require 'jquery'
2
2
  //= require 'jquery_ujs'
3
- //= require 'rails_admin/jquery.remotipart.fixed'
3
+ //= require 'jquery.remotipart'
4
4
  //= require 'jquery-ui/effect'
5
5
  //= require 'jquery-ui/sortable'
6
6
  //= require 'jquery-ui/autocomplete'
@@ -69,7 +69,7 @@
69
69
  background: -webkit-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Chrome10+,Safari5.1+ */
70
70
  background: -o-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Opera11.10+ */
71
71
  background: -ms-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* IE10+ */
72
- background: linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* W3C */
72
+ background: linear-gradient(to bottom, #ededed 0%,#c4c4c4 100%); /* W3C */
73
73
  }
74
74
  .ui-widget-header a { color: #4F4F4F; }
75
75
 
@@ -83,7 +83,7 @@
83
83
  background: -webkit-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Chrome10+,Safari5.1+ */
84
84
  background: -o-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Opera11.10+ */
85
85
  background: -ms-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* IE10+ */
86
- background: linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* W3C */
86
+ background: linear-gradient(to bottom, #ededed 0%,#c4c4c4 100%); /* W3C */
87
87
  -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
88
88
  -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
89
89
  box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
@@ -100,7 +100,7 @@
100
100
  background: -webkit-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Chrome10+,Safari5.1+ */
101
101
  background: -o-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Opera11.10+ */
102
102
  background: -ms-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* IE10+ */
103
- background: linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* W3C */
103
+ background: linear-gradient(to bottom, #b9e0f5 0%,#92bdd6 100%); /* W3C */
104
104
  -webkit-box-shadow: none;
105
105
  -moz-box-shadow: none;
106
106
  box-shadow: none;
@@ -481,7 +481,7 @@ button.ui-button-icons-only { width: 3.7em; }
481
481
  background: -webkit-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Chrome10+,Safari5.1+ */
482
482
  background: -o-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Opera11.10+ */
483
483
  background: -ms-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* IE10+ */
484
- background: linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* W3C */
484
+ background: linear-gradient(to bottom, #b9e0f5 0%,#92bdd6 100%); /* W3C */
485
485
  -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
486
486
  -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
487
487
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
@@ -527,7 +527,7 @@ input.ui-button::-moz-focus-inner {
527
527
  background: -webkit-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Chrome10+,Safari5.1+ */
528
528
  background: -o-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Opera11.10+ */
529
529
  background: -ms-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* IE10+ */
530
- background: linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* W3C */
530
+ background: linear-gradient(to bottom, #b9e0f5 0%,#92bdd6 100%); /* W3C */
531
531
  -webkit-box-shadow: none;
532
532
  -moz-box-shadow: none;
533
533
  box-shadow: none;
@@ -1,6 +1,10 @@
1
1
  iframe.wysihtml5-sandbox{
2
2
  height: 250px !important;
3
- width: 75% !important;
3
+ width: 99.7% !important;
4
+ }
5
+
6
+ iframe.wysihtml5-sandbox, .wysihtml5-editor{
7
+ border: 1px solid #ccc !important;
4
8
  }
5
9
 
6
10
  .controls img.preview{
@@ -11,9 +11,9 @@ module RailsAdmin
11
11
  end
12
12
 
13
13
  class ApplicationController < Config.parent_controller.constantize
14
- before_filter :_authenticate!
15
- before_filter :_authorize!
16
- before_filter :_audit!
14
+ before_action :_authenticate!
15
+ before_action :_authorize!
16
+ before_action :_audit!
17
17
 
18
18
  helper_method :_current_user, :_get_plugin_name
19
19
 
@@ -6,9 +6,9 @@ module RailsAdmin
6
6
 
7
7
  layout :get_layout
8
8
 
9
- before_filter :get_model, except: RailsAdmin::Config::Actions.all(:root).collect(&:action_name)
10
- before_filter :get_object, only: RailsAdmin::Config::Actions.all(:member).collect(&:action_name)
11
- before_filter :check_for_cancel
9
+ before_action :get_model, except: RailsAdmin::Config::Actions.all(:root).collect(&:action_name)
10
+ before_action :get_object, only: RailsAdmin::Config::Actions.all(:member).collect(&:action_name)
11
+ before_action :check_for_cancel
12
12
 
13
13
  RailsAdmin::Config::Actions.all.each do |action|
14
14
  class_eval <<-EOS, __FILE__, __LINE__ + 1
@@ -75,7 +75,7 @@ module RailsAdmin
75
75
  end
76
76
 
77
77
  def redirect_to_on_success
78
- notice = t('admin.flash.successful', name: @model_config.label, action: t("admin.actions.#{@action.key}.done"))
78
+ notice = I18n.t('admin.flash.successful', name: @model_config.label, action: I18n.t("admin.actions.#{@action.key}.done"))
79
79
  if params[:_add_another]
80
80
  redirect_to new_path(return_to: params[:return_to]), flash: {success: notice}
81
81
  elsif params[:_add_edit]
@@ -105,7 +105,7 @@ module RailsAdmin
105
105
  end
106
106
 
107
107
  def handle_save_error(whereto = :new)
108
- flash.now[:error] = t('admin.flash.error', name: @model_config.label, action: t("admin.actions.#{@action.key}.done").html_safe).html_safe
108
+ flash.now[:error] = I18n.t('admin.flash.error', name: @model_config.label, action: I18n.t("admin.actions.#{@action.key}.done").html_safe).html_safe
109
109
  flash.now[:error] += %(<br>- #{@object.errors.full_messages.join('<br>- ')}).html_safe
110
110
 
111
111
  respond_to do |format|
@@ -116,7 +116,7 @@ module RailsAdmin
116
116
 
117
117
  def check_for_cancel
118
118
  return unless params[:_continue] || (params[:bulk_action] && !params[:bulk_ids])
119
- redirect_to(back_or_index, notice: t('admin.flash.noaction'))
119
+ redirect_to(back_or_index, notice: I18n.t('admin.flash.noaction'))
120
120
  end
121
121
 
122
122
  def get_collection(model_config, scope, pagination)
@@ -35,9 +35,9 @@ module RailsAdmin
35
35
  return nil unless _current_user.respond_to?(:email)
36
36
  return nil unless abstract_model = RailsAdmin.config(_current_user.class).abstract_model
37
37
  return nil unless (edit_action = RailsAdmin::Config::Actions.find(:edit, controller: controller, abstract_model: abstract_model, object: _current_user)).try(:authorized?)
38
- link_to url_for(action: edit_action.action_name, model_name: abstract_model.to_param, id: _current_user.id, controller: 'rails_admin/main') do
38
+ link_to rails_admin.url_for(action: edit_action.action_name, model_name: abstract_model.to_param, id: _current_user.id, controller: 'rails_admin/main') do
39
39
  html = []
40
- html << image_tag("#{(request.ssl? ? 'https://secure' : 'http://www')}.gravatar.com/avatar/#{Digest::MD5.hexdigest _current_user.email}?s=30", alt: '') if _current_user.email.present?
40
+ html << image_tag("#{(request.ssl? ? 'https://secure' : 'http://www')}.gravatar.com/avatar/#{Digest::MD5.hexdigest _current_user.email}?s=30", alt: '') if RailsAdmin::Config.show_gravatar && _current_user.email.present?
41
41
  html << content_tag(:span, _current_user.email)
42
42
  html.join.html_safe
43
43
  end
@@ -97,7 +97,7 @@ module RailsAdmin
97
97
  def navigation(nodes_stack, nodes, level = 0)
98
98
  nodes.collect do |node|
99
99
  model_param = node.abstract_model.to_param
100
- url = url_for(action: :index, controller: 'rails_admin/main', model_name: model_param)
100
+ url = rails_admin.url_for(action: :index, controller: 'rails_admin/main', model_name: model_param)
101
101
  level_class = " nav-level-#{level}" if level > 0
102
102
  nav_icon = node.navigation_icon ? %(<i class="#{node.navigation_icon}"></i>).html_safe : ''
103
103
  li = content_tag :li, data: {model: model_param} do
@@ -120,7 +120,7 @@ module RailsAdmin
120
120
  crumb = begin
121
121
  if !current_action?(a, am, o)
122
122
  if a.http_methods.include?(:get)
123
- link_to url_for(action: a.action_name, controller: 'rails_admin/main', model_name: am.try(:to_param), id: (o.try(:persisted?) && o.try(:id) || nil)), class: 'pjax' do
123
+ link_to rails_admin.url_for(action: a.action_name, controller: 'rails_admin/main', model_name: am.try(:to_param), id: (o.try(:persisted?) && o.try(:id) || nil)), class: 'pjax' do
124
124
  wording_for(:breadcrumb, a, am, o)
125
125
  end
126
126
  else
@@ -143,7 +143,7 @@ module RailsAdmin
143
143
  wording = wording_for(:menu, action)
144
144
  %(
145
145
  <li title="#{wording if only_icon}" rel="#{'tooltip' if only_icon}" class="icon #{action.key}_#{parent}_link #{'active' if current_action?(action)}">
146
- <a class="#{action.pjax? ? 'pjax' : ''}" href="#{url_for(action: action.action_name, controller: 'rails_admin/main', model_name: abstract_model.try(:to_param), id: (object.try(:persisted?) && object.try(:id) || nil))}">
146
+ <a class="#{action.pjax? ? 'pjax' : ''}" href="#{rails_admin.url_for(action: action.action_name, controller: 'rails_admin/main', model_name: abstract_model.try(:to_param), id: (object.try(:persisted?) && object.try(:id) || nil))}">
147
147
  <i class="#{action.link_icon}"></i>
148
148
  <span#{only_icon ? " style='display:none'" : ''}>#{wording}</span>
149
149
  </a>
@@ -131,7 +131,7 @@ module RailsAdmin
131
131
 
132
132
  def nested_field_association?(field, nested_in)
133
133
  field.inverse_of.presence && nested_in.presence && field.inverse_of == nested_in.name &&
134
- (@template.instance_variable_get(:@model_config).abstract_model == field.associated_model_config.abstract_model ||
134
+ (@template.instance_variable_get(:@model_config).abstract_model == field.abstract_model ||
135
135
  field.name == nested_in.inverse_of)
136
136
  end
137
137
  end
@@ -43,7 +43,7 @@ module RailsAdmin
43
43
  def ordered_filters
44
44
  return @ordered_filters if @ordered_filters.present?
45
45
  @index = 0
46
- @ordered_filters = (params[:f] || @model_config.list.filters).inject({}) do |memo, filter|
46
+ @ordered_filters = (params[:f].try(:permit!).try(:to_h) || @model_config.list.filters).inject({}) do |memo, filter|
47
47
  field_name = filter.is_a?(Array) ? filter.first : filter
48
48
  (filter.is_a?(Array) ? filter.last : {(@index += 1) => {'v' => ''}}).each do |index, filter_hash|
49
49
  if filter_hash['disabled'].blank?
@@ -1,6 +1,6 @@
1
1
  %ul.nav.navbar-nav.navbar-right.root_links
2
2
  - actions(:root).each do |action|
3
- %li{class: "#{action.action_name}_root_link"}= link_to wording_for(:menu, action), { action: action.action_name, controller: 'rails_admin/main' }, class: "pjax"
3
+ %li{class: "#{action.action_name}_root_link"}= link_to wording_for(:menu, action), { action: action.action_name, controller: 'rails_admin/main' }, class: action.pjax? ? "pjax" : ""
4
4
  - if main_app_root_path = (main_app.root_path rescue false)
5
5
  %li= link_to t('admin.home.name'), main_app_root_path
6
6
  - if _current_user