ab_admin 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/admin/flags/de.png +0 -0
  3. data/app/assets/images/admin/flags/en.png +0 -0
  4. data/app/assets/images/admin/flags/es.png +0 -0
  5. data/app/assets/images/admin/flags/fr.png +0 -0
  6. data/app/assets/images/admin/flags/it.png +0 -0
  7. data/app/assets/images/admin/flags/ja.png +0 -0
  8. data/app/assets/images/admin/flags/pl.png +0 -0
  9. data/app/assets/images/admin/flags/ru.png +0 -0
  10. data/app/assets/images/admin/flags/{b_de.png → toremove/b_de.png} +0 -0
  11. data/app/assets/images/admin/flags/{b_en.png → toremove/b_en.png} +0 -0
  12. data/app/assets/images/admin/flags/{b_es.png → toremove/b_es.png} +0 -0
  13. data/app/assets/images/admin/flags/{b_fr.png → toremove/b_fr.png} +0 -0
  14. data/app/assets/images/admin/flags/{b_it.png → toremove/b_it.png} +0 -0
  15. data/app/assets/images/admin/flags/{b_ru.png → toremove/b_ru.png} +0 -0
  16. data/app/assets/images/admin/flags/{b_uk.png → toremove/b_uk.png} +0 -0
  17. data/app/assets/images/admin/flags/{flag_de.gif → toremove/flag_de.gif} +0 -0
  18. data/app/assets/images/admin/flags/{flag_de_nonact.gif → toremove/flag_de_nonact.gif} +0 -0
  19. data/app/assets/images/admin/flags/{flag_en.gif → toremove/flag_en.gif} +0 -0
  20. data/app/assets/images/admin/flags/{flag_en_nonact.gif → toremove/flag_en_nonact.gif} +0 -0
  21. data/app/assets/images/admin/flags/{flag_es.gif → toremove/flag_es.gif} +0 -0
  22. data/app/assets/images/admin/flags/{flag_es_nonact.gif → toremove/flag_es_nonact.gif} +0 -0
  23. data/app/assets/images/admin/flags/{flag_fr.gif → toremove/flag_fr.gif} +0 -0
  24. data/app/assets/images/admin/flags/{flag_fr_nonact.gif → toremove/flag_fr_nonact.gif} +0 -0
  25. data/app/assets/images/admin/flags/{flag_it.gif → toremove/flag_it.gif} +0 -0
  26. data/app/assets/images/admin/flags/{flag_it_nonact.gif → toremove/flag_it_nonact.gif} +0 -0
  27. data/app/assets/images/admin/flags/{flag_ru.gif → toremove/flag_ru.gif} +0 -0
  28. data/app/assets/images/admin/flags/{flag_ru_nonact.gif → toremove/flag_ru_nonact.gif} +0 -0
  29. data/app/assets/images/admin/flags/{flag_uk.gif → toremove/flag_uk.gif} +0 -0
  30. data/app/assets/images/admin/flags/{flag_uk_nonact.gif → toremove/flag_uk_nonact.gif} +0 -0
  31. data/app/assets/images/admin/flags/uk.png +0 -0
  32. data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +9 -1
  33. data/app/assets/javascripts/ab_admin/components/select2_bridge.js.coffee +1 -2
  34. data/app/assets/javascripts/ab_admin/core/init.js.coffee +5 -3
  35. data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +17 -0
  36. data/app/assets/javascripts/ab_admin/inputs/datetime_input.js.coffee +8 -3
  37. data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.scss +37 -8
  38. data/app/assets/stylesheets/ab_admin/components/_form.scss +31 -2
  39. data/app/assets/stylesheets/ab_admin/components/_locale_tabs.scss +13 -48
  40. data/app/assets/stylesheets/ab_admin/components/_navigation.scss +5 -0
  41. data/app/assets/stylesheets/ab_admin/main.scss +1 -1
  42. data/app/controllers/admin/base_controller.rb +14 -15
  43. data/app/controllers/admin/locators_controller.rb +18 -0
  44. data/app/controllers/admin/manager_controller.rb +6 -8
  45. data/app/controllers/admin/settings_controller.rb +1 -1
  46. data/app/controllers/admin/static_pages_controller.rb +1 -3
  47. data/app/controllers/admin/structures_controller.rb +2 -7
  48. data/app/controllers/admin/users_controller.rb +1 -1
  49. data/app/views/ab_admin/devise/sessions/new.html.slim +3 -3
  50. data/app/views/admin/base/_search_layout.html.slim +3 -1
  51. data/app/views/admin/base/_table.html.slim +1 -1
  52. data/app/views/admin/base/update.js.erb +3 -1
  53. data/app/views/admin/locators/show.html.slim +22 -1
  54. data/app/views/admin/manager/_chart.html.slim +4 -0
  55. data/app/views/admin/manager/_table.html.slim +16 -13
  56. data/app/views/admin/shared/_action_items.html.slim +12 -0
  57. data/app/views/admin/shared/_content_actions.html.slim +15 -3
  58. data/app/views/admin/shared/_locale_tabs.html.slim +5 -3
  59. data/app/views/admin/shared/_main_menu.html.slim +20 -0
  60. data/app/views/admin/shared/_save_buttons.html.slim +2 -1
  61. data/app/views/admin/users/_table.html.slim +6 -0
  62. data/app/views/layouts/admin/_navigation.html.slim +2 -24
  63. data/config/locales/de.yml +0 -8
  64. data/config/locales/en.yml +3 -11
  65. data/config/locales/it.yml +9 -17
  66. data/config/locales/ru.yml +0 -8
  67. data/config/locales/uk.yml +0 -8
  68. data/config/routes.rb +2 -1
  69. data/lib/ab_admin.rb +6 -1
  70. data/lib/ab_admin/abstract_resource.rb +1 -1
  71. data/lib/ab_admin/carrierwave/base_uploader.rb +1 -1
  72. data/lib/ab_admin/concerns/utilities.rb +2 -2
  73. data/lib/ab_admin/config/base.rb +7 -5
  74. data/lib/ab_admin/core_ext/hash.rb +19 -1
  75. data/lib/ab_admin/core_ext/other.rb +0 -48
  76. data/lib/ab_admin/hooks/will_paginate_id_prefetch.rb +1 -1
  77. data/lib/ab_admin/i18n_tools/model_translator.rb +4 -4
  78. data/lib/ab_admin/models/asset.rb +0 -4
  79. data/lib/ab_admin/models/locator.rb +37 -4
  80. data/lib/ab_admin/models/user.rb +2 -2
  81. data/lib/ab_admin/utils.rb +1 -1
  82. data/lib/ab_admin/utils/eval_helpers.rb +1 -5
  83. data/lib/ab_admin/utils/logger.rb +11 -2
  84. data/lib/ab_admin/utils/mysql.rb +2 -2
  85. data/lib/ab_admin/version.rb +1 -1
  86. data/lib/ab_admin/views/admin_helpers.rb +38 -21
  87. data/lib/ab_admin/views/admin_navigation_helpers.rb +6 -6
  88. data/lib/ab_admin/views/form_builder.rb +4 -1
  89. data/lib/ab_admin/views/helpers.rb +13 -34
  90. data/lib/ab_admin/views/inputs/date_time_picker_input.rb +5 -4
  91. data/lib/ab_admin/views/manager_helpers.rb +21 -3
  92. data/lib/generators/ab_admin/glob/glob_generator.rb +3 -6
  93. data/lib/generators/ab_admin/install/templates/models/asset.rb +1 -1
  94. data/lib/generators/ab_admin/install/templates/models/structure_type.rb +4 -0
  95. data/lib/generators/ab_admin/install/templates/spec/factories/sequences.rb +2 -2
  96. data/lib/generators/ab_admin/install/templates/spec/factories/structure_factory.rb +1 -1
  97. data/lib/generators/ab_admin/install/templates/spec/factories/user_factory.rb +1 -1
  98. data/lib/generators/ab_admin/install/templates/spec/spec_helper.rb +1 -1
  99. data/lib/generators/ab_admin/install/templates/spec/support/controller_macros.rb +4 -4
  100. data/lib/generators/template.rb +2 -2
  101. metadata +51 -39
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aaedc8d3ac86c03428e71248fb4dcd4d21f04627
4
- data.tar.gz: 184c8970705793cb444da77d63d9d96b7f7952fb
3
+ metadata.gz: 6ce8e9459f56af1d3d99d9879e7ff436044d8ddf
4
+ data.tar.gz: cbb672396e927b87745c456a0d2c00c4c448495c
5
5
  SHA512:
6
- metadata.gz: beb13940643e8e8480cf0cd61b3071722b7ce2fef2cb15669b52bd7e335276d3a565679f002ac619259c9cdb16d24a0e34a449da973d2204233798b0eecaff14
7
- data.tar.gz: be2111af7a9ebb8462c57acc04f8d66b94b0d96dd42fa26c6bf01f5a5f4114e5013c221daa24b09c2db2fae6e93c5ce173936ee6e55a11e5d0e3e06a50575e9d
6
+ metadata.gz: 16bde27cb07d0374a9a88e0d62dd4b3d6ec6146e1abe3bcb4305009cdf118eeced0d8f9d8f5c24e73ab16850971fe7dd06057174e26bc9d9832fcd4a62e8a6e4
7
+ data.tar.gz: b97fedf00db9ab33b7ba49e1c07d4c001096f26a5426a3b92c54f913e77fbf3e9ea79ebbd60f45556182f9ab05567c3df6af8e7ee73af11bfbc3756ab2ba3f4e
@@ -13,10 +13,15 @@ EditableForm.prototype.saveWithUrlHook = (value) ->
13
13
  data: params
14
14
  type: 'POST'
15
15
  dataType: 'json'
16
+ if @options.accept == 'script'
17
+ ajax_opts.dataType = @options.accept
18
+ ajaxOptions = $.extend(@options.ajaxOptions, {headers: {Accept: 'text/javascript, application/javascript'}})
19
+ else
20
+ ajaxOptions = @options.ajaxOptions
16
21
  delete params.name
17
22
  delete params.value
18
23
  delete params.pk
19
- $.ajax $.extend(ajax_opts, @options.ajaxOptions)
24
+ $.ajax $.extend(ajax_opts, ajaxOptions)
20
25
  @saveWithoutUrlHook(value)
21
26
  EditableForm.prototype.saveWithoutUrlHook = EditableForm.prototype.save
22
27
  EditableForm.prototype.save = EditableForm.prototype.saveWithUrlHook
@@ -32,6 +37,9 @@ $(document).on 'admin:init', (e) ->
32
37
  flash JSON.parse(response.responseText).errors.join(', ')
33
38
  else
34
39
  response.responseText
40
+ success: (response) ->
41
+ if response && $(this).data().options?.accept == 'script'
42
+ $.globalEval(response.responseText)
35
43
  datetimepicker:
36
44
  format: "dd.mm.yyyy hh:ii"
37
45
  autoclose: true
@@ -19,7 +19,7 @@ class window.Select2Bridge
19
19
  $.get $el.attr('href'), {modal: true}, fn, 'script'
20
20
 
21
21
  buildOptions: ->
22
- @options = _.defaults(@el.data('select2_opts') || {}, @defaults())
22
+ @options = _.defaults(@el.data('select2_opts') || @el.data('select2-opts') || {}, @defaults())
23
23
  @options.multiple = @el.data('multi') unless _.isUndefined(@el.data('multi'))
24
24
  @options.width = @el[0].style.width || 'resolve'
25
25
  if @el.data('tags')
@@ -38,7 +38,6 @@ class window.Select2Bridge
38
38
  @initCreateChoice()
39
39
  if @el.data('create-search-choice')
40
40
  @options.createSearchChoice = (term) ->
41
- log 'createSearchChoice'
42
41
  {id: term, text: term}
43
42
  @options
44
43
 
@@ -43,15 +43,17 @@ $ ->
43
43
 
44
44
  if window.fv?.list_dblclick
45
45
  $(document).on 'dblclick', '#list > tbody > tr', (e) ->
46
- e.preventDefault()
47
- unless $(e.target).closest('#list > tbody > tr > td').hasClass('list_adds')
48
- $(this).find('td a.resource_id_link').toHref()
46
+ if e.target.tagName == 'TD'
47
+ e.preventDefault()
48
+ unless $(e.target).closest('#list > tbody > tr > td').hasClass('list_adds')
49
+ $(this).find('td a.resource_id_link').toHref()
49
50
 
50
51
  initFancySelect()
51
52
  initNestedFields()
52
53
  initNestedFields()
53
54
  inputSetToggle()
54
55
  inputBtnClose()
56
+ initEditableBool()
55
57
 
56
58
  if window.fv?.bg_color
57
59
  $('body').css('background-color', "##{window.fv.bg_color.replace(/^#/, '')}")
@@ -65,3 +65,20 @@ window.initFancySelect = ->
65
65
  $el = $(this)
66
66
  return if $el.data('select2')
67
67
  $el.data('Select2Bridge') or $el.data('Select2Bridge', new Select2Bridge($el))
68
+
69
+ window.initEditableBool = ->
70
+ $(document).on 'click', '.js-auto-submit-checkbox', (e) ->
71
+ $el = $(this)
72
+ $el.attr('disabled', true)
73
+ $wrap = $el.closest('.auto-submit-checkbox-wrap').removeClass('success', 'error')
74
+ params = {}
75
+ params[$el.attr('name')] = if $el.prop('checked') then 1 else 0
76
+ params['_method'] = $el.data('method') || 'PATCH'
77
+ $.ajax $el.data('url'),
78
+ data: params
79
+ method: 'POST'
80
+ error: ->
81
+ $wrap.addClass('error')
82
+ success: ->
83
+ $wrap.addClass('success')
84
+ $el.attr('disabled', null)
@@ -1,15 +1,20 @@
1
1
  $ ->
2
2
  window.initPickers = ->
3
3
  base_options =
4
- format: "dd.mm.yyyy hh:ii"
4
+ format: "yyyy-mm-dd hh:ii"
5
5
  autoclose: true
6
6
  todayBtn: true
7
+ viewSelect: 'month'
8
+ minView: 'day'
7
9
  language: I18n.locale
8
10
 
9
11
  search_form_options = _.defaults({pickerPosition: "bottom-left datetimepicker-bottom-left-custom"}, base_options)
10
- $('#search_form input.datepicker').datetimepicker search_form_options
12
+ search_form_options_gt = _.defaults({initialDate: new Date(new Date().setHours(0,0,0,0))}, search_form_options)
13
+ search_form_options_lt = _.defaults({initialDate: new Date(new Date().setHours(23,59,59,999))}, search_form_options)
14
+ $('#search_form input.datepicker[name*="_at_gteq]"]').datetimepicker search_form_options_gt
15
+ $('#search_form input.datepicker[name*="_at_lteq]"]').datetimepicker search_form_options_lt
11
16
 
12
- date_picker_options = _.defaults({format: "dd.mm.yyyy", minView: 2}, base_options)
17
+ date_picker_options = _.defaults({format: "yyyy-mm-dd", minView: 2}, base_options)
13
18
  $('.simple_form input.date_picker').datetimepicker date_picker_options
14
19
 
15
20
  $('.simple_form input.datetime_picker').datetimepicker base_options
@@ -23,10 +23,6 @@ img {
23
23
  max-width: none;
24
24
  }
25
25
 
26
- .thumbnail.active {
27
- @extend a.thumbnail:hover
28
- }
29
-
30
26
  .pagination a {
31
27
  background-color: white;
32
28
  }
@@ -70,10 +66,6 @@ img {
70
66
  margin-left: 20px;
71
67
  }
72
68
 
73
- .control-group.ckeditor textarea {
74
- max-width: none;
75
- }
76
-
77
69
  ul.nav li.dropdown:hover ul.dropdown-menu {
78
70
  display: block;
79
71
  margin: 0;
@@ -184,4 +176,41 @@ label.control-label.label-reset {
184
176
  }
185
177
  .inline_block {
186
178
  display: inline-block;
179
+ }
180
+ .white-space-nowrap {
181
+ white-space: nowrap;
182
+ }
183
+
184
+ @media (max-width: 767px) {
185
+ body, .container-fluid {
186
+ padding: 0;
187
+ }
188
+ .content_with_sidebar {
189
+ padding: 10px 0;
190
+ }
191
+ .navbar-fixed-top, .navbar-fixed-bottom, .navbar-static-top {
192
+ margin: 0;
193
+ }
194
+ #container {
195
+ display: flex;
196
+ flex-direction: column;
197
+ }
198
+ #main {
199
+ .wrap_content {
200
+ position: static;
201
+ order: 2;
202
+ margin: 0 3px;
203
+ .content_with_sidebar {
204
+ margin: 0;
205
+ }
206
+ }
207
+ .sidebar {
208
+ position: static;
209
+ order: 1;
210
+ margin: 0 3px 5px;
211
+ }
212
+ .content_actions {
213
+ margin-left: 0;
214
+ }
215
+ }
187
216
  }
@@ -19,7 +19,7 @@ input[type="color"],
19
19
  }
20
20
 
21
21
  .simple_form {
22
- input, textarea {
22
+ input, textarea.text {
23
23
  width: 100%;
24
24
  max-width: 600px;
25
25
  }
@@ -120,6 +120,16 @@ input[type="color"],
120
120
  -webkit-transform: translateX(-10px) translateY(-4px);
121
121
  transform: translateX(-10px) translateY(-4px);
122
122
  }
123
+ hr {
124
+ margin: 10px 0;
125
+ }
126
+ .search-submit-wide {
127
+ display: block;
128
+ width: calc(100% + 26px);
129
+ margin-top: -13px;
130
+ margin-left: -13px;
131
+ margin-right: -13px;
132
+ }
123
133
  }
124
134
 
125
135
  .datetimepicker-bottom-left-custom {
@@ -144,7 +154,7 @@ textarea.do_wysihtml5 {
144
154
  width: 625px;
145
155
  }
146
156
 
147
- textarea {
157
+ textarea.text {
148
158
  width: 100%;
149
159
  max-width: 600px;
150
160
  height: 90px;
@@ -170,4 +180,23 @@ textarea {
170
180
 
171
181
  .label.control-label.label-reset {
172
182
  display: block;
183
+ }
184
+
185
+ .list_edit .form-horizontal .control-group {
186
+ margin-bottom: 1px;
187
+ }
188
+
189
+ .auto-submit-checkbox-wrap {
190
+ display: inline-block;
191
+ padding: 2px 4px 2px 6px;
192
+ border-radius: 5px;
193
+ input.js-auto-submit-checkbox[type='checkbox'] {
194
+ margin: 0;
195
+ }
196
+ &.success {
197
+ background-color: #dff0d8;
198
+ }
199
+ &.error {
200
+ background-color: #f2dede;
201
+ }
173
202
  }
@@ -1,27 +1,24 @@
1
- // tabs
2
1
  .locale_tabs {
3
2
  @include colored_tabs(#999);
4
3
  }
5
- // icons
4
+
6
5
  .locale_tabs {
7
- @each $lang in ru, uk, en, it, de, fr, es {
6
+ @each $locale in ru, uk, en, it, de, fr, es, pl {
8
7
  li {
9
- a.ico_#{$lang} {
10
- background-position: 10px center;
11
- background-repeat: no-repeat;
12
- background-image: image-url("admin/flags/flag_#{$lang}_nonact.gif");
13
- background-color: white;
8
+ a.ico_#{$locale} {
9
+ opacity: 0.5;
10
+ padding-left: 12px;
14
11
  }
15
- &.active a.ico_#{$lang} {
16
- background-image: image-url("admin/flags/flag_#{$lang}.gif");
12
+ &.active a.ico_#{$locale} {
13
+ opacity: 1;
17
14
  }
18
15
  }
19
16
 
20
- .t_locale_#{$lang} {
21
- background: image-url("admin/flags/b_#{$lang}.png") 10px center no-repeat;
17
+ .t_locale_#{$locale} {
18
+ background: image-url("admin/flags/#{$locale}.png") 10px center no-repeat;
22
19
  }
23
- ##{$lang} {
24
- .t_locale_#{$lang} {
20
+ ##{$locale} {
21
+ .t_locale_#{$locale} {
25
22
  display: none;
26
23
  }
27
24
  }
@@ -30,7 +27,7 @@
30
27
 
31
28
  .t_locales {
32
29
  position: absolute;
33
- top: 0px;
30
+ top: 0;
34
31
  left: -5px;
35
32
  height: 60px;
36
33
  width: 40px;
@@ -46,36 +43,4 @@
46
43
  &:hover {
47
44
  opacity: 1;
48
45
  }
49
- }
50
-
51
- // NON display: none; tabs
52
- //.tab-content > .tab-pane {
53
- // clear: both;
54
- // display: block;
55
- // position: absolute;
56
- // height: 0px;
57
- // overflow: hidden !important;
58
- // &.active {
59
- // position: relative;
60
- // height: auto;
61
- // overflow: visible !important;
62
- // }
63
- //}
64
-
65
- //.asset_description {
66
- // width: 1000px;
67
- //}
68
- //
69
- //.asset_block {
70
- // clear: both;
71
- // padding: 5px 0;
72
- //}
73
- //
74
- //.asset_image {
75
- // float: left;
76
- // margin: 0 5px 5px 0;
77
- //}
78
- //
79
- //.asset_inputs input {
80
- // margin-bottom: 5px;
81
- //}
46
+ }
@@ -27,6 +27,11 @@
27
27
  margin-left: 15px;
28
28
  }
29
29
 
30
+ .aggregations {
31
+ float: left;
32
+ margin: 5px;
33
+ }
34
+
30
35
  .breadcrumb {
31
36
  margin-bottom: 5px;
32
37
  }
@@ -1,7 +1,7 @@
1
1
  //= require bootstrap-wysihtml5
2
- //= require ab_admin/bootstrap-editable
3
2
  //= require select2
4
3
  //= require fancybox
5
4
  //= require ab_admin/bootstrap_and_overrides
5
+ //= require ab_admin/bootstrap-editable
6
6
  //= require ab_admin/bootstrap-datetimepicker
7
7
  //= require ab_admin/fileupload
@@ -19,7 +19,7 @@ class Admin::BaseController < ::InheritedResources::Base
19
19
 
20
20
  helper_method :admin?, :moderator?
21
21
 
22
- helper_method :button_scopes, :collection_action?, :action_items, :resource_action_items,
22
+ helper_method :button_scopes, :collection_action?, :action_items, :resource_action_items, :query_params,
23
23
  :preview_resource_path, :get_subject, :settings, :batch_action_list, :tree_node_renderer,
24
24
  :normalized_index_views, :current_index_view, :pjax?, :xhr?, :max_per_page, :params_for_links
25
25
 
@@ -206,15 +206,7 @@ class Admin::BaseController < ::InheritedResources::Base
206
206
  end
207
207
 
208
208
  def settings
209
- {
210
- index_view: 'table',
211
- sidebar: collection_action?,
212
- well: (collection_action? || %w(show history).include?(action_name)),
213
- search: true,
214
- batch: true,
215
- hotkeys: true,
216
- list_dblclick: true
217
- }
209
+ {sidebar: collection_action?, well: (collection_action? || %w(show history).include?(action_name))}.update(AbAdmin.default_resource_settings)
218
210
  end
219
211
 
220
212
  def action_items
@@ -236,9 +228,10 @@ class Admin::BaseController < ::InheritedResources::Base
236
228
  %w(index search batch rebuild).include?(action_name)
237
229
  end
238
230
 
239
- def self.scope(name, options={})
240
- has_scope name, options.without(:badge)
231
+ def self.scope(name, options={}, &block)
232
+ has_scope name, options.without(:badge, :if), &block
241
233
  options[:badge] = {} if options[:badge] && !options[:badge].is_a?(Hash)
234
+ options[:block] = block
242
235
  self.button_scopes ||= []
243
236
  self.button_scopes << [name, options]
244
237
  end
@@ -279,11 +272,17 @@ class Admin::BaseController < ::InheritedResources::Base
279
272
  end
280
273
 
281
274
  def search_collection
282
- query = params[:q].try!{|q| q.permit!.to_h } || {}
275
+ @search_collection ||= begin
276
+ @search = end_of_association_chain.accessible_by(current_ability).ransack(query_params)
277
+ with_scopes(@search.result(distinct: @search.object.joins_values.present?)).admin(current_user)
278
+ end
279
+ end
280
+
281
+ def query_params
282
+ query = params[:q].try! {|q| q.permit!.to_h} || {}
283
283
  nested = resource_class.respond_to?(:acts_as_nested_set_options) && current_index_view == 'tree'
284
284
  query[:s] ||= settings[:default_order] || ('id desc' unless nested)
285
- @search = with_scopes(end_of_association_chain.accessible_by(current_ability).admin).ransack(query.no_blank)
286
- @search.result(distinct: @search.object.joins_values.present?)
285
+ query.reject_blank
287
286
  end
288
287
 
289
288
  def with_scopes(relation)