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.
- checksums.yaml +4 -4
- data/app/assets/images/admin/flags/de.png +0 -0
- data/app/assets/images/admin/flags/en.png +0 -0
- data/app/assets/images/admin/flags/es.png +0 -0
- data/app/assets/images/admin/flags/fr.png +0 -0
- data/app/assets/images/admin/flags/it.png +0 -0
- data/app/assets/images/admin/flags/ja.png +0 -0
- data/app/assets/images/admin/flags/pl.png +0 -0
- data/app/assets/images/admin/flags/ru.png +0 -0
- data/app/assets/images/admin/flags/{b_de.png → toremove/b_de.png} +0 -0
- data/app/assets/images/admin/flags/{b_en.png → toremove/b_en.png} +0 -0
- data/app/assets/images/admin/flags/{b_es.png → toremove/b_es.png} +0 -0
- data/app/assets/images/admin/flags/{b_fr.png → toremove/b_fr.png} +0 -0
- data/app/assets/images/admin/flags/{b_it.png → toremove/b_it.png} +0 -0
- data/app/assets/images/admin/flags/{b_ru.png → toremove/b_ru.png} +0 -0
- data/app/assets/images/admin/flags/{b_uk.png → toremove/b_uk.png} +0 -0
- data/app/assets/images/admin/flags/{flag_de.gif → toremove/flag_de.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_de_nonact.gif → toremove/flag_de_nonact.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_en.gif → toremove/flag_en.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_en_nonact.gif → toremove/flag_en_nonact.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_es.gif → toremove/flag_es.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_es_nonact.gif → toremove/flag_es_nonact.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_fr.gif → toremove/flag_fr.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_fr_nonact.gif → toremove/flag_fr_nonact.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_it.gif → toremove/flag_it.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_it_nonact.gif → toremove/flag_it_nonact.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_ru.gif → toremove/flag_ru.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_ru_nonact.gif → toremove/flag_ru_nonact.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_uk.gif → toremove/flag_uk.gif} +0 -0
- data/app/assets/images/admin/flags/{flag_uk_nonact.gif → toremove/flag_uk_nonact.gif} +0 -0
- data/app/assets/images/admin/flags/uk.png +0 -0
- data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +9 -1
- data/app/assets/javascripts/ab_admin/components/select2_bridge.js.coffee +1 -2
- data/app/assets/javascripts/ab_admin/core/init.js.coffee +5 -3
- data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +17 -0
- data/app/assets/javascripts/ab_admin/inputs/datetime_input.js.coffee +8 -3
- data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.scss +37 -8
- data/app/assets/stylesheets/ab_admin/components/_form.scss +31 -2
- data/app/assets/stylesheets/ab_admin/components/_locale_tabs.scss +13 -48
- data/app/assets/stylesheets/ab_admin/components/_navigation.scss +5 -0
- data/app/assets/stylesheets/ab_admin/main.scss +1 -1
- data/app/controllers/admin/base_controller.rb +14 -15
- data/app/controllers/admin/locators_controller.rb +18 -0
- data/app/controllers/admin/manager_controller.rb +6 -8
- data/app/controllers/admin/settings_controller.rb +1 -1
- data/app/controllers/admin/static_pages_controller.rb +1 -3
- data/app/controllers/admin/structures_controller.rb +2 -7
- data/app/controllers/admin/users_controller.rb +1 -1
- data/app/views/ab_admin/devise/sessions/new.html.slim +3 -3
- data/app/views/admin/base/_search_layout.html.slim +3 -1
- data/app/views/admin/base/_table.html.slim +1 -1
- data/app/views/admin/base/update.js.erb +3 -1
- data/app/views/admin/locators/show.html.slim +22 -1
- data/app/views/admin/manager/_chart.html.slim +4 -0
- data/app/views/admin/manager/_table.html.slim +16 -13
- data/app/views/admin/shared/_action_items.html.slim +12 -0
- data/app/views/admin/shared/_content_actions.html.slim +15 -3
- data/app/views/admin/shared/_locale_tabs.html.slim +5 -3
- data/app/views/admin/shared/_main_menu.html.slim +20 -0
- data/app/views/admin/shared/_save_buttons.html.slim +2 -1
- data/app/views/admin/users/_table.html.slim +6 -0
- data/app/views/layouts/admin/_navigation.html.slim +2 -24
- data/config/locales/de.yml +0 -8
- data/config/locales/en.yml +3 -11
- data/config/locales/it.yml +9 -17
- data/config/locales/ru.yml +0 -8
- data/config/locales/uk.yml +0 -8
- data/config/routes.rb +2 -1
- data/lib/ab_admin.rb +6 -1
- data/lib/ab_admin/abstract_resource.rb +1 -1
- data/lib/ab_admin/carrierwave/base_uploader.rb +1 -1
- data/lib/ab_admin/concerns/utilities.rb +2 -2
- data/lib/ab_admin/config/base.rb +7 -5
- data/lib/ab_admin/core_ext/hash.rb +19 -1
- data/lib/ab_admin/core_ext/other.rb +0 -48
- data/lib/ab_admin/hooks/will_paginate_id_prefetch.rb +1 -1
- data/lib/ab_admin/i18n_tools/model_translator.rb +4 -4
- data/lib/ab_admin/models/asset.rb +0 -4
- data/lib/ab_admin/models/locator.rb +37 -4
- data/lib/ab_admin/models/user.rb +2 -2
- data/lib/ab_admin/utils.rb +1 -1
- data/lib/ab_admin/utils/eval_helpers.rb +1 -5
- data/lib/ab_admin/utils/logger.rb +11 -2
- data/lib/ab_admin/utils/mysql.rb +2 -2
- data/lib/ab_admin/version.rb +1 -1
- data/lib/ab_admin/views/admin_helpers.rb +38 -21
- data/lib/ab_admin/views/admin_navigation_helpers.rb +6 -6
- data/lib/ab_admin/views/form_builder.rb +4 -1
- data/lib/ab_admin/views/helpers.rb +13 -34
- data/lib/ab_admin/views/inputs/date_time_picker_input.rb +5 -4
- data/lib/ab_admin/views/manager_helpers.rb +21 -3
- data/lib/generators/ab_admin/glob/glob_generator.rb +3 -6
- data/lib/generators/ab_admin/install/templates/models/asset.rb +1 -1
- data/lib/generators/ab_admin/install/templates/models/structure_type.rb +4 -0
- data/lib/generators/ab_admin/install/templates/spec/factories/sequences.rb +2 -2
- data/lib/generators/ab_admin/install/templates/spec/factories/structure_factory.rb +1 -1
- data/lib/generators/ab_admin/install/templates/spec/factories/user_factory.rb +1 -1
- data/lib/generators/ab_admin/install/templates/spec/spec_helper.rb +1 -1
- data/lib/generators/ab_admin/install/templates/spec/support/controller_macros.rb +4 -4
- data/lib/generators/template.rb +2 -2
- metadata +51 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ce8e9459f56af1d3d99d9879e7ff436044d8ddf
|
4
|
+
data.tar.gz: cbb672396e927b87745c456a0d2c00c4c448495c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16bde27cb07d0374a9a88e0d62dd4b3d6ec6146e1abe3bcb4305009cdf118eeced0d8f9d8f5c24e73ab16850971fe7dd06057174e26bc9d9832fcd4a62e8a6e4
|
7
|
+
data.tar.gz: b97fedf00db9ab33b7ba49e1c07d4c001096f26a5426a3b92c54f913e77fbf3e9ea79ebbd60f45556182f9ab05567c3df6af8e7ee73af11bfbc3756ab2ba3f4e
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
Binary file
|
@@ -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,
|
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.
|
47
|
-
|
48
|
-
$(
|
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
|
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
|
-
|
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
|
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
|
-
|
4
|
+
|
6
5
|
.locale_tabs {
|
7
|
-
@each $
|
6
|
+
@each $locale in ru, uk, en, it, de, fr, es, pl {
|
8
7
|
li {
|
9
|
-
a.ico_#{$
|
10
|
-
|
11
|
-
|
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_#{$
|
16
|
-
|
12
|
+
&.active a.ico_#{$locale} {
|
13
|
+
opacity: 1;
|
17
14
|
}
|
18
15
|
}
|
19
16
|
|
20
|
-
.t_locale_#{$
|
21
|
-
background: image-url("admin/flags
|
17
|
+
.t_locale_#{$locale} {
|
18
|
+
background: image-url("admin/flags/#{$locale}.png") 10px center no-repeat;
|
22
19
|
}
|
23
|
-
##{$
|
24
|
-
.t_locale_#{$
|
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:
|
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
|
+
}
|
@@ -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
|
-
|
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
|
-
|
286
|
-
@search.result(distinct: @search.object.joins_values.present?)
|
285
|
+
query.reject_blank
|
287
286
|
end
|
288
287
|
|
289
288
|
def with_scopes(relation)
|