ab_admin 0.7.0 → 0.8.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 (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)