rails_admin 1.4.3 → 2.0.0.beta
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.
- checksums.yaml +4 -4
- data/Gemfile +4 -1
- data/README.md +2 -4
- data/app/assets/javascripts/rails_admin/jquery.pjax.js +1 -3
- data/app/assets/javascripts/rails_admin/ra.filtering-select.js +9 -7
- data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +1 -4
- data/app/assets/javascripts/rails_admin/ra.sidescroll.coffee +19 -0
- data/app/assets/javascripts/rails_admin/ra.widgets.coffee +35 -35
- data/app/assets/javascripts/rails_admin/rails_admin.js +1 -0
- data/app/assets/javascripts/rails_admin/ui.coffee +23 -18
- data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +29 -0
- data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +2 -1
- data/app/helpers/rails_admin/application_helper.rb +1 -1
- data/app/helpers/rails_admin/main_helper.rb +4 -4
- data/app/views/layouts/rails_admin/application.html.haml +0 -3
- data/app/views/layouts/rails_admin/pjax.html.haml +1 -5
- data/app/views/rails_admin/main/_form_action_text.html.haml +7 -0
- data/app/views/rails_admin/main/_form_file_upload.html.haml +1 -1
- data/app/views/rails_admin/main/_form_filtering_select.html.haml +1 -1
- data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +1 -1
- data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +18 -3
- data/app/views/rails_admin/main/dashboard.html.haml +1 -2
- data/app/views/rails_admin/main/export.html.haml +2 -2
- data/app/views/rails_admin/main/index.html.haml +18 -14
- data/app/views/rails_admin/main/show.html.haml +6 -7
- data/config/locales/rails_admin.en.yml +1 -1
- data/lib/rails_admin/adapters/active_record.rb +10 -6
- data/lib/rails_admin/adapters/active_record/property.rb +1 -5
- data/lib/rails_admin/adapters/mongoid.rb +16 -13
- data/lib/rails_admin/bootstrap-sass.rb +4 -2
- data/lib/rails_admin/bootstrap-sass/sass_functions.rb +1 -3
- data/lib/rails_admin/config.rb +4 -0
- data/lib/rails_admin/config/actions/index.rb +3 -3
- data/lib/rails_admin/config/configurable.rb +5 -3
- data/lib/rails_admin/config/fields.rb +2 -0
- data/lib/rails_admin/config/fields/base.rb +1 -1
- data/lib/rails_admin/config/fields/factories/action_text.rb +12 -0
- data/lib/rails_admin/config/fields/factories/dragonfly.rb +1 -1
- data/lib/rails_admin/config/fields/factories/shrine.rb +27 -0
- data/lib/rails_admin/config/fields/types/action_text.rb +31 -0
- data/lib/rails_admin/config/fields/types/active_record_enum.rb +3 -19
- data/lib/rails_admin/config/fields/types/active_storage.rb +1 -0
- data/lib/rails_admin/config/fields/types/all.rb +2 -0
- data/lib/rails_admin/config/fields/types/ck_editor.rb +5 -5
- data/lib/rails_admin/config/fields/types/code_mirror.rb +8 -10
- data/lib/rails_admin/config/fields/types/froala.rb +7 -9
- data/lib/rails_admin/config/fields/types/shrine.rb +48 -0
- data/lib/rails_admin/config/fields/types/simple_mde.rb +6 -3
- data/lib/rails_admin/config/fields/types/text.rb +0 -18
- data/lib/rails_admin/config/fields/types/wysihtml5.rb +12 -8
- data/lib/rails_admin/config/model.rb +3 -2
- data/lib/rails_admin/config/proxyable.rb +13 -1
- data/lib/rails_admin/config/proxyable/proxy.rb +3 -5
- data/lib/rails_admin/config/sections/list.rb +23 -0
- data/lib/rails_admin/engine.rb +1 -2
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +16 -4
- data/lib/rails_admin/version.rb +4 -4
- data/vendor/assets/fonts/rails_admin/FontAwesome.otf +0 -0
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.eot +0 -0
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.svg +2671 -0
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff +0 -0
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff2 +0 -0
- data/vendor/assets/stylesheets/rails_admin/font-awesome.css.erb +2342 -0
- metadata +47 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 286d5b253a622e6ece58238f4b18544e53e0650f427ba1f0f4d4b3b880a46032
|
4
|
+
data.tar.gz: 21b11784af9577e8823db1fe56f4e87a187c962d632788e61ced23ea9af99214
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e89158a576546098a11cf0c660f84a43130bbc69e57d592e68e65a3adce27461e811c93649a9624632d1299d10cabbdce06ff41ecb90119f42c488dc6f95f46
|
7
|
+
data.tar.gz: e5944858dd931bc962e2c4a3b64117464c6ef118c9bc322c4ab9c54e5103b2d07972b3f50513b59b7d50e30ca19e05839cb58a93882b81425538d3be2eb37246
|
data/Gemfile
CHANGED
@@ -10,7 +10,7 @@ group :active_record do
|
|
10
10
|
|
11
11
|
platforms :ruby, :mswin, :mingw do
|
12
12
|
gem 'mysql2', '>= 0.3.14'
|
13
|
-
gem 'sqlite3', '
|
13
|
+
gem 'sqlite3', '>= 1.3'
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -32,8 +32,11 @@ group :test do
|
|
32
32
|
gem 'pundit'
|
33
33
|
gem 'rack-cache', require: 'rack/cache'
|
34
34
|
gem 'rspec-rails', '>= 2.14'
|
35
|
+
gem 'rspec-expectations', '!= 3.8.3'
|
35
36
|
gem 'rubocop', '~> 0.41.2'
|
36
37
|
gem 'simplecov', '>= 0.9', require: false
|
38
|
+
gem 'shrine', '~> 2.0'
|
39
|
+
gem 'shrine-memory'
|
37
40
|
gem 'timecop', '>= 0.5'
|
38
41
|
|
39
42
|
platforms :ruby_19 do
|
data/README.md
CHANGED
@@ -50,7 +50,7 @@ RailsAdmin is a Rails engine that provides an easy-to-use interface for managing
|
|
50
50
|
|
51
51
|
## Installation
|
52
52
|
|
53
|
-
1. On your gemfile: `gem 'rails_admin', '~>
|
53
|
+
1. On your gemfile: `gem 'rails_admin', '~> 2.0.0.beta'`
|
54
54
|
2. Run `bundle install`
|
55
55
|
3. Run `rails g rails_admin:install`
|
56
56
|
4. Provide a namespace for the routes when asked
|
@@ -96,13 +96,11 @@ If you think you found a bug in RailsAdmin, you can [submit an issue](https://gi
|
|
96
96
|
## Supported Ruby Versions
|
97
97
|
This library aims to support and is [tested against][travis] the following Ruby implementations:
|
98
98
|
|
99
|
-
* Ruby 2.1
|
100
99
|
* Ruby 2.2
|
101
100
|
* Ruby 2.3
|
102
101
|
* Ruby 2.4
|
103
102
|
* Ruby 2.5
|
104
|
-
*
|
103
|
+
* Ruby 2.6
|
105
104
|
* [JRuby][]
|
106
105
|
|
107
|
-
[rubinius]: http://rubinius.com
|
108
106
|
[jruby]: http://jruby.org/
|
@@ -188,8 +188,6 @@ function pjax(options) {
|
|
188
188
|
xhr.setRequestHeader('X-PJAX', 'true')
|
189
189
|
xhr.setRequestHeader('X-PJAX-Container', context.selector)
|
190
190
|
|
191
|
-
var result
|
192
|
-
|
193
191
|
if (!fire('pjax:beforeSend', [xhr, settings]))
|
194
192
|
return false
|
195
193
|
|
@@ -437,7 +435,7 @@ function fallbackPjax(options) {
|
|
437
435
|
form.append($('<input>', {type: 'hidden', name: pair[0], value: pair[1]}))
|
438
436
|
})
|
439
437
|
} else if (typeof data === 'object') {
|
440
|
-
for (key in data)
|
438
|
+
for (var key in data)
|
441
439
|
form.append($('<input>', {type: 'hidden', name: key, value: data[key]}))
|
442
440
|
}
|
443
441
|
|
@@ -31,21 +31,22 @@
|
|
31
31
|
button: null,
|
32
32
|
input: null,
|
33
33
|
select: null,
|
34
|
+
filtering_select: null,
|
34
35
|
|
35
36
|
_create: function() {
|
36
|
-
|
37
|
+
this.filtering_select = this.element.siblings(
|
37
38
|
'[data-input-for="' + this.element.attr('id') + '"]'
|
38
39
|
);
|
39
40
|
|
40
41
|
// When using the browser back and forward buttons, it is possible that
|
41
42
|
// the autocomplete field will be cached which causes duplicate fields
|
42
43
|
// to be generated.
|
43
|
-
if (filtering_select.length > 0) {
|
44
|
-
this.input = filtering_select.children('input');
|
45
|
-
this.button = filtering_select.children('.input-group-btn');
|
44
|
+
if (this.filtering_select.length > 0) {
|
45
|
+
this.input = this.filtering_select.children('input');
|
46
|
+
this.button = this.filtering_select.children('.input-group-btn');
|
46
47
|
} else {
|
47
48
|
this.element.hide();
|
48
|
-
filtering_select = this._inputGroup(this.element.attr('id'));
|
49
|
+
this.filtering_select = this._inputGroup(this.element.attr('id'));
|
49
50
|
this.input = this._inputField();
|
50
51
|
this.button = this._buttonField();
|
51
52
|
}
|
@@ -56,7 +57,7 @@
|
|
56
57
|
this._overloadRenderItem();
|
57
58
|
this._autocompleteDropdownEvent(this.button);
|
58
59
|
|
59
|
-
return filtering_select.append(this.input)
|
60
|
+
return this.filtering_select.append(this.input)
|
60
61
|
.append(this.button)
|
61
62
|
.insertAfter(this.element);
|
62
63
|
},
|
@@ -201,7 +202,7 @@
|
|
201
202
|
return $('<div>')
|
202
203
|
.addClass('input-group filtering-select col-sm-2')
|
203
204
|
.attr('data-input-for', inputFor)
|
204
|
-
.css('float',
|
205
|
+
.css('float', this.element.css("float"));
|
205
206
|
},
|
206
207
|
|
207
208
|
_initAutocomplete: function() {
|
@@ -286,6 +287,7 @@
|
|
286
287
|
this.input.remove();
|
287
288
|
this.button.remove();
|
288
289
|
this.element.show();
|
290
|
+
this.filtering_select.remove();
|
289
291
|
$.Widget.prototype.destroy.call(this);
|
290
292
|
}
|
291
293
|
});
|
@@ -9,9 +9,6 @@ $(document).ready ->
|
|
9
9
|
$(document).on 'nested:fieldAdded', 'form', (content) ->
|
10
10
|
field = content.field.addClass('tab-pane').attr('id', 'unique-id-' + (new Date().getTime()))
|
11
11
|
new_tab = $('<li><a data-toggle="tab" href="#' + field.attr('id') + '">' + field.children('.object-infos').data('object-label') + '</a></li>')
|
12
|
-
new_tab = $('<li></li>').append(
|
13
|
-
$('<a></a>').attr('data-toggle', 'tab').attr('href', '#' + field.attr('id')).text(field.children('.object-infos').data('object-label'))
|
14
|
-
)
|
15
12
|
parent_group = field.closest('.control-group')
|
16
13
|
controls = parent_group.children('.controls')
|
17
14
|
one_to_one = controls.data('nestedone') != undefined
|
@@ -27,7 +24,7 @@ $(document).on 'nested:fieldAdded', 'form', (content) ->
|
|
27
24
|
toggler.addClass('active').removeClass('disabled').children('i').addClass('icon-chevron-down').removeClass('icon-chevron-right')
|
28
25
|
|
29
26
|
# Convert the "add nested field" button to just showing the title of the new model
|
30
|
-
controls.find('.add_nested_fields').removeClass('add_nested_fields').
|
27
|
+
controls.find('.add_nested_fields').removeClass('add_nested_fields').html(field.children('.object-infos').data('object-label')) if one_to_one
|
31
28
|
|
32
29
|
$(document).on 'nested:fieldRemoved', 'form', (content) ->
|
33
30
|
field = content.field
|
@@ -0,0 +1,19 @@
|
|
1
|
+
(->
|
2
|
+
$ = jQuery
|
3
|
+
|
4
|
+
setFrozenColPositions = ->
|
5
|
+
$listForm = $('#bulk_form')
|
6
|
+
return unless $listForm.is('.ra-sidescroll')
|
7
|
+
frozenColumns = $listForm.data('ra-sidescroll')
|
8
|
+
$listForm.find('table tr').each (index, tr) ->
|
9
|
+
firstPosition = 0
|
10
|
+
$(tr).children().slice(0, frozenColumns).each (idx, td) ->
|
11
|
+
$(td).addClass('ra-sidescroll-frozen')
|
12
|
+
$(td).addClass('last-of-frozen') if idx == frozenColumns - 1
|
13
|
+
tdLeft = $(td).position().left
|
14
|
+
firstPosition = tdLeft if idx == 0
|
15
|
+
td.style.left = "#{tdLeft - firstPosition}px"
|
16
|
+
|
17
|
+
$(window).on('load', setFrozenColPositions) # Update after link icons load.
|
18
|
+
$(document).on('rails_admin.dom_ready', setFrozenColPositions)
|
19
|
+
)()
|
@@ -48,9 +48,12 @@ $(document).on 'rails_admin.dom_ready', (e, content) ->
|
|
48
48
|
# fileupload
|
49
49
|
|
50
50
|
content.find('[data-fileupload]').each ->
|
51
|
-
|
52
|
-
|
53
|
-
$(
|
51
|
+
parent = $(this).closest('.controls')
|
52
|
+
parent.find('.btn-remove-image').on 'click', ->
|
53
|
+
$(this).siblings('[type=checkbox]').click()
|
54
|
+
parent.find('.toggle').toggle('slow')
|
55
|
+
$(this).toggleClass('btn-danger btn-info')
|
56
|
+
false
|
54
57
|
|
55
58
|
# fileupload-preview
|
56
59
|
|
@@ -70,6 +73,15 @@ $(document).on 'rails_admin.dom_ready', (e, content) ->
|
|
70
73
|
else
|
71
74
|
image_container.hide()
|
72
75
|
|
76
|
+
# multiple-fileupload
|
77
|
+
|
78
|
+
content.find('[data-multiple-fileupload]').each ->
|
79
|
+
$(this).closest('.controls').find('.btn-remove-image').on 'click', ->
|
80
|
+
$(this).siblings('[type=checkbox]').click()
|
81
|
+
$(this).parent('.toggle').toggle('slow')
|
82
|
+
$(this).toggleClass('btn-danger btn-info')
|
83
|
+
false
|
84
|
+
|
73
85
|
# multiple-fileupload-preview
|
74
86
|
|
75
87
|
content.find('[data-multiple-fileupload]').change ->
|
@@ -115,11 +127,7 @@ $(document).on 'rails_admin.dom_ready', (e, content) ->
|
|
115
127
|
# add each nested field to a tab-pane and reference it in the nav
|
116
128
|
tab_content.children('.fields:not(.tab-pane)').addClass('tab-pane').each ->
|
117
129
|
$(this).attr('id', 'unique-id-' + (new Date().getTime()) + Math.floor(Math.random()*100000)) # some elements are created on the same ms
|
118
|
-
nav.append(
|
119
|
-
$('<li></li>').append(
|
120
|
-
$('<a></a>').attr('data-toggle', 'tab').attr('href', '#' + this.id).text($(this).children('.object-infos').data('object-label'))
|
121
|
-
)
|
122
|
-
)
|
130
|
+
nav.append('<li><a data-toggle="tab" href="#' + this.id + '">' + $(this).children('.object-infos').data('object-label') + '</a></li>')
|
123
131
|
# only if no tab is set to active
|
124
132
|
if nav.find("> li.active").length == 0
|
125
133
|
# init first tab, toggler and tab_content/tabs visibility
|
@@ -147,12 +155,8 @@ $(document).on 'rails_admin.dom_ready', (e, content) ->
|
|
147
155
|
toggler = field.find('> .controls > .btn-group > .toggler')
|
148
156
|
tab_content.children(".fields:not(.tab-pane)").addClass('tab-pane active').each ->
|
149
157
|
# Convert the "add nested field" button to just showing the title of the new model
|
150
|
-
field.find('> .controls .add_nested_fields').removeClass('add_nested_fields').
|
151
|
-
nav.append(
|
152
|
-
$('<li></li>').append(
|
153
|
-
$('<a></a>').attr('data-toggle', 'tab').attr('href', '#' + this.id).text($(this).children('.object-infos').data('object-label'))
|
154
|
-
)
|
155
|
-
)
|
158
|
+
field.find('> .controls .add_nested_fields').removeClass('add_nested_fields').html( $(this).children('.object-infos').data('object-label') )
|
159
|
+
nav.append('<li><a data-toggle="tab" href="#' + this.id + '">' + $(this).children('.object-infos').data('object-label') + '</a></li>')
|
156
160
|
first_tab = nav.find("> li > a[data-toggle='tab']:first")
|
157
161
|
first_tab.tab('show')
|
158
162
|
field.find("> .controls > [data-target]:first").html('<i class="icon-white"></i> ' + first_tab.html())
|
@@ -176,25 +180,13 @@ $(document).on 'rails_admin.dom_ready', (e, content) ->
|
|
176
180
|
field = type_select.parents('.control-group').first()
|
177
181
|
object_select = field.find('select').last()
|
178
182
|
urls = type_select.data('urls')
|
183
|
+
|
179
184
|
type_select.on 'change', (e) ->
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
data:
|
186
|
-
compact: true
|
187
|
-
all: true
|
188
|
-
beforeSend: (xhr) ->
|
189
|
-
xhr.setRequestHeader("Accept", "application/json")
|
190
|
-
success: (data, status, xhr) ->
|
191
|
-
html = $('<option></option>')
|
192
|
-
$(data).each (i, el) ->
|
193
|
-
option = $('<option></option>')
|
194
|
-
option.attr('value', el.id)
|
195
|
-
option.text(el.label)
|
196
|
-
html = html.add(option)
|
197
|
-
object_select.html(html)
|
185
|
+
selected_type = type_select.val().toLowerCase()
|
186
|
+
selected_data = $("##{selected_type}-js-options").data('options')
|
187
|
+
object_select.data('options', selected_data)
|
188
|
+
object_select.filteringSelect("destroy")
|
189
|
+
object_select.filteringSelect selected_data
|
198
190
|
|
199
191
|
|
200
192
|
# simplemde
|
@@ -302,9 +294,9 @@ $(document).on 'rails_admin.dom_ready', (e, content) ->
|
|
302
294
|
authenticity_token: $('meta[name=csrf-token]').attr('content')
|
303
295
|
|
304
296
|
$(@).addClass('froala-wysiwyged')
|
305
|
-
$(@).
|
297
|
+
$(@).froalaEditor(config_options)
|
306
298
|
if uploadEnabled
|
307
|
-
$(@).on '
|
299
|
+
$(@).on 'froalaEditor.image.error', (e, editor, error) ->
|
308
300
|
alert("error uploading image: " + error.message);
|
309
301
|
# Custom error message returned from the server.
|
310
302
|
if error.code == 0
|
@@ -334,7 +326,7 @@ $(document).on 'rails_admin.dom_ready', (e, content) ->
|
|
334
326
|
|
335
327
|
return
|
336
328
|
|
337
|
-
.on('
|
329
|
+
.on('froalaEditor.image.removed', (e, editor, $img) ->
|
338
330
|
# Set the image source to the image delete params.
|
339
331
|
editor.options.imageDeleteParams =
|
340
332
|
src: $img.attr('src')
|
@@ -357,3 +349,11 @@ $(document).on 'rails_admin.dom_ready', (e, content) ->
|
|
357
349
|
goFroalaWysiwygs(array)
|
358
350
|
else
|
359
351
|
goFroalaWysiwygs(array)
|
352
|
+
|
353
|
+
# action_text
|
354
|
+
|
355
|
+
content.find('trix-editor').each ->
|
356
|
+
if !window.Trix
|
357
|
+
options = $(this).data('options')
|
358
|
+
$('head').append('<link href="' + options['csspath'] + '" rel="stylesheet" media="all" type="text\/css">')
|
359
|
+
$.getScript options['jspath']
|
@@ -53,12 +53,16 @@ $(document).on 'click', 'form .tab-content .tab-pane a.remove_nested_one_fields'
|
|
53
53
|
siblings('i').toggleClass('icon-check icon-trash')
|
54
54
|
|
55
55
|
$(document).ready ->
|
56
|
+
RailsAdmin.I18n.init $('html').attr('lang'), $("#admin-js").data('i18nOptions')
|
56
57
|
$(document).trigger('rails_admin.dom_ready')
|
57
58
|
|
58
59
|
$(document).on 'pjax:end', ->
|
59
60
|
$(document).trigger('rails_admin.dom_ready')
|
60
61
|
|
61
62
|
$(document).on 'rails_admin.dom_ready', ->
|
63
|
+
$('.nav.nav-pills li.active').removeClass('active')
|
64
|
+
$(".nav.nav-pills li[data-model=\"#{$('.page-header').data('model')}\"]").addClass('active')
|
65
|
+
|
62
66
|
$('.animate-width-to').each ->
|
63
67
|
length = $(this).data("animate-length")
|
64
68
|
width = $(this).data("animate-width-to")
|
@@ -74,6 +78,23 @@ $(document).on 'rails_admin.dom_ready', ->
|
|
74
78
|
$('[formnovalidate]').on 'click', ->
|
75
79
|
$(this).closest('form').attr('novalidate', true)
|
76
80
|
|
81
|
+
$.each $('#filters_box').data('options'), ->
|
82
|
+
$.filters.append(this)
|
83
|
+
|
84
|
+
# Interactions for index action
|
85
|
+
$(document).on 'click', ".bulk-link", (event) ->
|
86
|
+
event.preventDefault()
|
87
|
+
$('#bulk_action').val($(this).data('action'))
|
88
|
+
$('#bulk_form').submit()
|
89
|
+
|
90
|
+
$(document).on 'click', "#remove_filter", (event) ->
|
91
|
+
event.preventDefault()
|
92
|
+
$("#filters_box").html("")
|
93
|
+
$("hr.filters_box").hide()
|
94
|
+
$(this).parent().siblings("input[type='search']").val("")
|
95
|
+
$(this).parents("form").submit()
|
96
|
+
|
97
|
+
# Interactions for export action
|
77
98
|
$(document).on 'click', '#fields_to_export label input#check_all', () ->
|
78
99
|
elems = $('#fields_to_export label input')
|
79
100
|
if $('#fields_to_export label input#check_all').is ':checked'
|
@@ -81,22 +102,6 @@ $(document).on 'click', '#fields_to_export label input#check_all', () ->
|
|
81
102
|
else
|
82
103
|
$(elems).prop('checked',false)
|
83
104
|
|
84
|
-
|
85
|
-
|
86
|
-
# pjax, so this code runs it:
|
87
|
-
# https://github.com/defunkt/jquery-pjax/issues/241#issuecomment-13251065
|
88
|
-
$(document).on 'pjax:popstate', () ->
|
89
|
-
$(document).one 'pjax:end', (event) ->
|
90
|
-
$(event.target).find('script').each () ->
|
91
|
-
$.globalEval(this.text || this.textContent || this.innerHTML || '')
|
92
|
-
return
|
93
|
-
return
|
94
|
-
return
|
105
|
+
$(document).on 'click', '#fields_to_export .reverse-selection', () ->
|
106
|
+
$(this).closest(".control-group").find(".controls").find("input").click()
|
95
107
|
|
96
|
-
#Remove all filter and then refresh
|
97
|
-
$(document).on 'click', "#remove_filter",(event) ->
|
98
|
-
event.preventDefault()
|
99
|
-
$("#filters_box").html("")
|
100
|
-
$("hr.filters_box").hide()
|
101
|
-
$(this).parent().siblings("input[type='search']").val("")
|
102
|
-
$(this).parents("form").submit()
|
@@ -0,0 +1,29 @@
|
|
1
|
+
.ra-sidescroll {
|
2
|
+
margin-bottom: 20px;
|
3
|
+
overflow-x: auto;
|
4
|
+
.table {
|
5
|
+
margin-bottom: 0;
|
6
|
+
}
|
7
|
+
|
8
|
+
.ra-sidescroll-frozen {
|
9
|
+
position: sticky;
|
10
|
+
|
11
|
+
// border-right isn't sticky
|
12
|
+
&.last-of-frozen {
|
13
|
+
box-shadow: -1px 0 0 0 $table-border-color inset;
|
14
|
+
padding-right: $table-condensed-cell-padding + 1px;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
// Remove transparency on frozen cells.
|
19
|
+
$table-bg-default: if($table-bg == transparent, if($body-bg == transparent, #fff, $body-bg), $table-bg) !default;
|
20
|
+
.table-striped > tbody > tr:nth-child(even) > td, .table-striped > thead > tr > th {
|
21
|
+
background-color: $table-bg-default;
|
22
|
+
}
|
23
|
+
$table-bg-header-sort: #e2eff6 !default;
|
24
|
+
.table .ra-sidescroll-frozen {
|
25
|
+
&.headerSortUp, &.headerSortDown {
|
26
|
+
background-color: $table-bg-header-sort;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
@@ -55,12 +55,13 @@
|
|
55
55
|
@import "rails_admin/bootstrap-datetimepicker-build";
|
56
56
|
@import "rails_admin/ra.filtering-multiselect";
|
57
57
|
@import "rails_admin/ra.widgets";
|
58
|
+
@import "rails_admin/ra.sidescroll";
|
58
59
|
@import "rails_admin/jquery.colorpicker";
|
59
60
|
|
60
61
|
|
61
62
|
/*** Font-awesome ***/
|
62
63
|
|
63
|
-
@import 'font-awesome';
|
64
|
+
@import 'rails_admin/font-awesome';
|
64
65
|
@import 'rails_admin/base/font-awesome-4-compability';
|
65
66
|
|
66
67
|
/*** Bootstrap Theming ***/
|
@@ -160,7 +160,7 @@ module RailsAdmin
|
|
160
160
|
content_tag(:ul, class: 'dropdown-menu', style: 'left:auto; right:0;') do
|
161
161
|
actions.collect do |action|
|
162
162
|
content_tag :li do
|
163
|
-
link_to wording_for(:bulk_link, action), '#',
|
163
|
+
link_to wording_for(:bulk_link, action, abstract_model), '#', class: 'bulk-link', data: {action: action.action_name}
|
164
164
|
end
|
165
165
|
end.join.html_safe
|
166
166
|
end
|
@@ -56,8 +56,8 @@ module RailsAdmin
|
|
56
56
|
end.to_a.sort_by(&:first)
|
57
57
|
end
|
58
58
|
|
59
|
-
def
|
60
|
-
@
|
59
|
+
def ordered_filter_options
|
60
|
+
@ordered_filter_options ||= ordered_filters.map do |duplet|
|
61
61
|
options = {index: duplet[0]}
|
62
62
|
filter_for_field = duplet[1]
|
63
63
|
filter_name = filter_for_field.keys.first
|
@@ -77,8 +77,8 @@ module RailsAdmin
|
|
77
77
|
options[:value] = filter_hash['v']
|
78
78
|
options[:label] = field.label
|
79
79
|
options[:operator] = filter_hash['o']
|
80
|
-
|
81
|
-
end
|
80
|
+
options
|
81
|
+
end if ordered_filters
|
82
82
|
end
|
83
83
|
end
|
84
84
|
end
|
@@ -10,9 +10,6 @@
|
|
10
10
|
= javascript_include_tag "rails_admin/rails_admin.js"
|
11
11
|
%body.rails_admin
|
12
12
|
#admin-js{:'data-i18n-options' => I18n.t("admin.js").to_json}
|
13
|
-
-# Initialize JS simple i18n
|
14
|
-
:javascript
|
15
|
-
RailsAdmin.I18n.init('#{I18n.locale}', document.getElementById("admin-js").dataset.i18nOptions);
|
16
13
|
#loading.label.label-warning{style: 'display:none; position:fixed; right:20px; bottom:20px; z-index:100000'}= t('admin.loading')
|
17
14
|
%nav.navbar.navbar-default.navbar-fixed-top
|
18
15
|
= render "layouts/rails_admin/navigation"
|