rails_admin 3.0.0.beta2 → 3.0.0.rc3
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/README.md +6 -9
- data/Rakefile +11 -0
- data/app/assets/javascripts/{rails_admin.js → rails_admin/application.js} +4 -4
- data/app/assets/stylesheets/rails_admin/application.scss +31 -0
- data/app/controllers/rails_admin/application_controller.rb +1 -1
- data/app/controllers/rails_admin/main_controller.rb +12 -21
- data/app/helpers/rails_admin/application_helper.rb +43 -22
- data/app/helpers/rails_admin/form_builder.rb +3 -3
- data/app/helpers/rails_admin/main_helper.rb +1 -1
- data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +2 -2
- data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +4 -4
- data/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +4 -4
- data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +12 -10
- data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +4 -4
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +4 -4
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +6 -4
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +4 -4
- data/app/views/layouts/rails_admin/_head.html.erb +2 -2
- data/app/views/layouts/rails_admin/_navigation.html.erb +12 -16
- data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +8 -8
- data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +1 -5
- data/app/views/layouts/rails_admin/application.html.erb +4 -7
- data/app/views/layouts/rails_admin/{pjax.html.erb → content.html.erb} +7 -5
- data/app/views/layouts/rails_admin/modal.js.erb +1 -1
- data/app/views/rails_admin/main/_dashboard_history.html.erb +1 -1
- data/app/views/rails_admin/main/_delete_notice.html.erb +2 -2
- data/app/views/rails_admin/main/_form_boolean.html.erb +6 -8
- data/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -1
- data/app/views/rails_admin/main/_form_datetime.html.erb +8 -7
- data/app/views/rails_admin/main/_form_enumeration.html.erb +5 -1
- data/app/views/rails_admin/main/_form_file_upload.html.erb +1 -1
- data/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +14 -14
- data/app/views/rails_admin/main/_form_filtering_select.html.erb +16 -21
- data/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +1 -1
- data/app/views/rails_admin/main/_form_nested_many.html.erb +4 -4
- data/app/views/rails_admin/main/_form_nested_one.html.erb +4 -4
- data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +11 -6
- data/app/views/rails_admin/main/_submit_buttons.html.erb +8 -8
- data/app/views/rails_admin/main/bulk_delete.html.erb +1 -1
- data/app/views/rails_admin/main/dashboard.html.erb +4 -4
- data/app/views/rails_admin/main/delete.html.erb +1 -1
- data/app/views/rails_admin/main/edit.html.erb +1 -1
- data/app/views/rails_admin/main/export.html.erb +35 -32
- data/app/views/rails_admin/main/history.html.erb +16 -14
- data/app/views/rails_admin/main/index.html.erb +39 -36
- data/app/views/rails_admin/main/new.html.erb +1 -1
- data/config/locales/rails_admin.en.yml +0 -1
- data/lib/generators/rails_admin/install_generator.rb +8 -7
- data/lib/generators/rails_admin/templates/webpack.config.js +0 -3
- data/lib/rails_admin/abstract_model.rb +3 -4
- data/lib/rails_admin/adapters/active_record/object_extension.rb +1 -1
- data/lib/rails_admin/adapters/active_record/property.rb +1 -1
- data/lib/rails_admin/adapters/active_record.rb +8 -3
- data/lib/rails_admin/adapters/mongoid/property.rb +3 -3
- data/lib/rails_admin/adapters/mongoid.rb +4 -4
- data/lib/rails_admin/config/actions/base.rb +1 -6
- data/lib/rails_admin/config/actions/dashboard.rb +13 -9
- data/lib/rails_admin/config/actions/delete.rb +4 -0
- data/lib/rails_admin/config/actions/edit.rb +4 -0
- data/lib/rails_admin/config/actions/export.rb +2 -1
- data/lib/rails_admin/config/actions/index.rb +2 -1
- data/lib/rails_admin/config/actions/new.rb +7 -1
- data/lib/rails_admin/config/actions/show_in_app.rb +0 -4
- data/lib/rails_admin/config/fields/association.rb +6 -1
- data/lib/rails_admin/config/fields/base.rb +3 -3
- data/lib/rails_admin/config/fields/factories/active_storage.rb +2 -1
- data/lib/rails_admin/config/fields/factories/association.rb +4 -4
- data/lib/rails_admin/config/fields/factories/carrierwave.rb +2 -1
- data/lib/rails_admin/config/fields/factories/devise.rb +2 -1
- data/lib/rails_admin/config/fields/factories/dragonfly.rb +2 -1
- data/lib/rails_admin/config/fields/factories/paperclip.rb +2 -1
- data/lib/rails_admin/config/fields/types/action_text.rb +1 -1
- data/lib/rails_admin/config/fields/types/date.rb +7 -0
- data/lib/rails_admin/config/fields/types/datetime.rb +11 -5
- data/lib/rails_admin/config/fields/types/has_many_association.rb +4 -0
- data/lib/rails_admin/config/fields/types/has_one_association.rb +4 -0
- data/lib/rails_admin/config/fields/types/time.rb +9 -0
- data/lib/rails_admin/config/has_fields.rb +4 -0
- data/lib/rails_admin/config/model.rb +8 -0
- data/lib/rails_admin/config/sections/list.rb +4 -4
- data/lib/rails_admin/config.rb +18 -4
- data/lib/rails_admin/engine.rb +6 -13
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +2 -2
- data/lib/rails_admin/support/datetime.rb +50 -53
- data/lib/rails_admin/support/esmodule_preprocessor.rb +2 -1
- data/lib/rails_admin/version.rb +1 -1
- data/package.json +7 -5
- data/src/rails_admin/base.js +3 -6
- data/src/rails_admin/filter-box.js +36 -37
- data/src/rails_admin/filtering-select.js +3 -6
- data/src/rails_admin/i18n.js +0 -3
- data/src/rails_admin/nested-form-hooks.js +16 -8
- data/src/rails_admin/remote-form.js +18 -15
- data/src/rails_admin/styles/base/theming.scss +80 -155
- data/src/rails_admin/styles/base/variables.scss +2 -0
- data/src/rails_admin/styles/base.scss +8 -45
- data/src/rails_admin/styles/filtering-multiselect.scss +2 -2
- data/src/rails_admin/styles/filtering-select.scss +1 -1
- data/src/rails_admin/styles/widgets.scss +1 -10
- data/src/rails_admin/ui.js +19 -57
- data/src/rails_admin/widgets.js +38 -48
- data/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
- data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +10683 -0
- data/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +64 -110
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +162 -176
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +31 -26
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -538
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +18 -69
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +127 -84
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +26 -22
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +218 -542
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +46 -70
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +100 -178
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +97 -77
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +54 -254
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +628 -55
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1572 -781
- data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +38 -35
- data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +72 -12
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +113 -30
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +5 -18
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +130 -70
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +27 -38
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +127 -98
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +6 -24
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +13 -20
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +24 -16
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +1 -1
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/{_text-overflow.scss → _text-truncate.scss} +2 -2
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
- data/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
- metadata +88 -94
- data/app/assets/stylesheets/rails_admin.scss.erb +0 -76
- data/lib/generators/rails_admin/templates/environment.js +0 -6
- data/src/rails_admin/styles/themes/cerulean/mixins.scss +0 -0
- data/src/rails_admin/styles/themes/cerulean/theming.scss +0 -135
- data/src/rails_admin/styles/themes/cerulean/variables.scss +0 -830
- data/src/rails_admin/styles/themes/default/mixins.scss +0 -8
- data/src/rails_admin/styles/themes/default/theming.scss +0 -11
- data/src/rails_admin/styles/themes/default/variables.scss +0 -12
- data/src/rails_admin/vendor/jquery.pjax.js +0 -899
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -164
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -95
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -125
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -246
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -212
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -165
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -358
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -123
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -172
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -155
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -677
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -59
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -1782
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -13
- data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +0 -2611
- data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +0 -898
- data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +0 -18085
- data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +0 -343
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -68
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -57
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -26
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -240
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -68
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -35
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -215
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -237
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -166
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -48
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -66
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -56
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -150
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -242
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -425
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -55
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -243
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -133
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -101
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -105
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -34
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -174
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -150
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -258
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -38
- data/vendor/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -29
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -14
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -11
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -7
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -81
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -21
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -12
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -10
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -9
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -8
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -24
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -10
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -8
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -21
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -10
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -9
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -28
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -11
- data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -219
- data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +0 -16
@@ -12,7 +12,8 @@ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
|
|
12
12
|
fields << field
|
13
13
|
children_fields = []
|
14
14
|
columns.each do |children_column_name|
|
15
|
-
|
15
|
+
child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
|
16
|
+
next unless child_properties
|
16
17
|
|
17
18
|
children_field = fields.detect { |f| f.name == children_column_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_properties, fields)
|
18
19
|
children_field.hide unless field == children_field
|
@@ -12,7 +12,8 @@ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
|
|
12
12
|
properties = parent.abstract_model.properties.detect { |p| ext == p.name }
|
13
13
|
next unless properties
|
14
14
|
|
15
|
-
|
15
|
+
field = fields.detect { |f| f.name == ext }
|
16
|
+
unless field
|
16
17
|
RailsAdmin::Config::Fields.default_factory.call(parent, properties, fields)
|
17
18
|
field = fields.last
|
18
19
|
end
|
@@ -9,7 +9,8 @@ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
|
|
9
9
|
children_fields = []
|
10
10
|
extensions.each do |ext|
|
11
11
|
children_column_name = "#{attachment_name}_#{ext}".to_sym
|
12
|
-
|
12
|
+
child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
|
13
|
+
next unless child_properties
|
13
14
|
|
14
15
|
children_field = fields.detect { |f| f.name == children_column_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_properties, fields)
|
15
16
|
children_field.hide
|
@@ -10,7 +10,8 @@ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
|
|
10
10
|
children_fields = []
|
11
11
|
extensions.each do |ext|
|
12
12
|
children_column_name = "#{attachment_name}_#{ext}".to_sym
|
13
|
-
|
13
|
+
child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
|
14
|
+
next unless child_properties
|
14
15
|
|
15
16
|
children_field = fields.detect { |f| f.name == children_column_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_properties, fields)
|
16
17
|
children_field.hide
|
@@ -30,14 +30,15 @@ module RailsAdmin
|
|
30
30
|
'%B %d, %Y %H:%M'
|
31
31
|
end
|
32
32
|
|
33
|
-
register_instance_option :
|
34
|
-
RailsAdmin::Support::Datetime.
|
33
|
+
register_instance_option :flatpickr_format do
|
34
|
+
RailsAdmin::Support::Datetime.to_flatpickr_format(strftime_format)
|
35
35
|
end
|
36
36
|
|
37
37
|
register_instance_option :datepicker_options do
|
38
38
|
{
|
39
|
-
|
40
|
-
|
39
|
+
allowInput: true,
|
40
|
+
enableTime: true,
|
41
|
+
altFormat: flatpickr_format,
|
41
42
|
}
|
42
43
|
end
|
43
44
|
|
@@ -57,7 +58,8 @@ module RailsAdmin
|
|
57
58
|
end
|
58
59
|
|
59
60
|
register_instance_option :formatted_value do
|
60
|
-
|
61
|
+
time = (value || default_value)
|
62
|
+
if time
|
61
63
|
::I18n.l(time, format: strftime_format)
|
62
64
|
else
|
63
65
|
''.html_safe
|
@@ -68,6 +70,10 @@ module RailsAdmin
|
|
68
70
|
:form_datetime
|
69
71
|
end
|
70
72
|
|
73
|
+
register_deprecated_instance_option :momentjs_format do
|
74
|
+
ActiveSupport::Deprecation.warn('The momentjs_format configuration option is deprecated, please use flatpickr_format with corresponding values here: https://flatpickr.js.org/formatting/')
|
75
|
+
end
|
76
|
+
|
71
77
|
def form_value
|
72
78
|
value&.in_time_zone&.strftime('%FT%T') || form_default_value
|
73
79
|
end
|
@@ -11,6 +11,15 @@ module RailsAdmin
|
|
11
11
|
abstract_model.model.type_for_attribute(name.to_s).serialize(super)&.change(year: 2000, month: 1, day: 1)
|
12
12
|
end
|
13
13
|
|
14
|
+
register_instance_option :datepicker_options do
|
15
|
+
{
|
16
|
+
allowInput: true,
|
17
|
+
altFormat: flatpickr_format,
|
18
|
+
enableTime: true,
|
19
|
+
noCalendar: true,
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
14
23
|
register_instance_option :strftime_format do
|
15
24
|
'%H:%M'
|
16
25
|
end
|
@@ -98,6 +98,14 @@ module RailsAdmin
|
|
98
98
|
nil
|
99
99
|
end
|
100
100
|
|
101
|
+
register_instance_option :scope do
|
102
|
+
abstract_model.scoped
|
103
|
+
end
|
104
|
+
|
105
|
+
register_instance_option :last_created_at do
|
106
|
+
abstract_model.model.last.try(:created_at) if abstract_model.properties.detect { |c| c.name == :created_at }
|
107
|
+
end
|
108
|
+
|
101
109
|
# Act as a proxy for the base section configuration that actually
|
102
110
|
# store the configurations.
|
103
111
|
def method_missing(method_name, *args, &block)
|
@@ -32,10 +32,6 @@ module RailsAdmin
|
|
32
32
|
parent.abstract_model.primary_key
|
33
33
|
end
|
34
34
|
|
35
|
-
register_instance_option :sort_reverse? do
|
36
|
-
true # By default show latest first
|
37
|
-
end
|
38
|
-
|
39
35
|
register_instance_option :scopes do
|
40
36
|
[]
|
41
37
|
end
|
@@ -51,6 +47,10 @@ module RailsAdmin
|
|
51
47
|
def fields_for_table
|
52
48
|
visible_fields.partition(&:sticky?).flatten
|
53
49
|
end
|
50
|
+
|
51
|
+
register_deprecated_instance_option :sort_reverse do
|
52
|
+
ActiveSupport::Deprecation.warn('The sort_reverse configuration option is deprecated and has no effect.')
|
53
|
+
end
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
data/lib/rails_admin/config.rb
CHANGED
@@ -39,7 +39,7 @@ module RailsAdmin
|
|
39
39
|
attr_accessor :included_models
|
40
40
|
|
41
41
|
# Fields to be hidden in show, create and update views
|
42
|
-
|
42
|
+
attr_reader :default_hidden_fields
|
43
43
|
|
44
44
|
# Default items per page value used if a model level option has not
|
45
45
|
# been configured
|
@@ -81,7 +81,7 @@ module RailsAdmin
|
|
81
81
|
attr_accessor :navigation_static_label
|
82
82
|
|
83
83
|
# Set where RailsAdmin fetches JS/CSS from, defaults to :sprockets
|
84
|
-
|
84
|
+
attr_writer :asset_source
|
85
85
|
|
86
86
|
# Finish initialization by executing deferred configuration blocks
|
87
87
|
def initialize!
|
@@ -257,6 +257,17 @@ module RailsAdmin
|
|
257
257
|
@registry[key]
|
258
258
|
end
|
259
259
|
|
260
|
+
def asset_source
|
261
|
+
@asset_source ||=
|
262
|
+
begin
|
263
|
+
warn <<-MSG.gsub(/^ +/, '').freeze
|
264
|
+
[Warning] After upgrading RailsAdmin to 3.x you haven't set asset_source yet, using :sprockets as the default.
|
265
|
+
To suppress this message, run 'rails rails_admin:install' to setup the asset delivery method suitable to you.
|
266
|
+
MSG
|
267
|
+
:sprockets
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
260
271
|
def default_hidden_fields=(fields)
|
261
272
|
if fields.is_a?(Array)
|
262
273
|
@default_hidden_fields = {}
|
@@ -269,9 +280,12 @@ module RailsAdmin
|
|
269
280
|
|
270
281
|
def parent_controller=(name)
|
271
282
|
@parent_controller = name
|
272
|
-
|
283
|
+
|
284
|
+
if defined?(RailsAdmin::ApplicationController) || defined?(RailsAdmin::MainController)
|
273
285
|
RailsAdmin.send(:remove_const, :ApplicationController)
|
286
|
+
RailsAdmin.send(:remove_const, :MainController)
|
274
287
|
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/application_controller.rb')
|
288
|
+
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/main_controller.rb')
|
275
289
|
end
|
276
290
|
end
|
277
291
|
|
@@ -323,7 +337,7 @@ module RailsAdmin
|
|
323
337
|
@show_gravatar = true
|
324
338
|
@navigation_static_links = {}
|
325
339
|
@navigation_static_label = nil
|
326
|
-
@asset_source =
|
340
|
+
@asset_source = nil
|
327
341
|
@parent_controller = '::ActionController::Base'
|
328
342
|
@forgery_protection_settings = {with: :exception}
|
329
343
|
RailsAdmin::Config::Actions.reset
|
data/lib/rails_admin/engine.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'kaminari'
|
2
2
|
require 'nested_form'
|
3
|
-
require 'rack-pjax'
|
4
3
|
require 'rails'
|
5
4
|
require 'rails_admin'
|
5
|
+
require 'turbo-rails'
|
6
6
|
|
7
7
|
module RailsAdmin
|
8
8
|
class Engine < Rails::Engine
|
@@ -13,8 +13,8 @@ module RailsAdmin
|
|
13
13
|
initializer 'RailsAdmin precompile hook', group: :all do |app|
|
14
14
|
if app.config.respond_to?(:assets)
|
15
15
|
app.config.assets.precompile += %w[
|
16
|
-
rails_admin.js
|
17
|
-
rails_admin.css
|
16
|
+
rails_admin/application.js
|
17
|
+
rails_admin/application.css
|
18
18
|
]
|
19
19
|
app.config.assets.paths << RailsAdmin::Engine.root.join('src')
|
20
20
|
require 'rails_admin/support/esmodule_preprocessor'
|
@@ -22,10 +22,6 @@ module RailsAdmin
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
initializer 'RailsAdmin setup middlewares' do |app|
|
26
|
-
app.config.middleware.use Rack::Pjax
|
27
|
-
end
|
28
|
-
|
29
25
|
initializer 'RailsAdmin reload config in development' do |app|
|
30
26
|
config.initializer_path = app.root.join('config/initializers/rails_admin.rb')
|
31
27
|
|
@@ -46,14 +42,11 @@ module RailsAdmin
|
|
46
42
|
end
|
47
43
|
end
|
48
44
|
|
49
|
-
rake_tasks do
|
50
|
-
Dir[File.join(File.dirname(__FILE__), '../tasks/*.rake')].each { |f| load f }
|
51
|
-
end
|
52
|
-
|
53
45
|
# Check for required middlewares, users may forget to use them in Rails API mode
|
54
46
|
config.after_initialize do |app|
|
55
47
|
has_session_store = app.config.middleware.to_a.any? do |m|
|
56
48
|
m.klass.try(:<=, ActionDispatch::Session::AbstractStore) ||
|
49
|
+
m.klass.try(:<=, ActionDispatch::Session::AbstractSecureStore) ||
|
57
50
|
m.klass.name =~ /^ActionDispatch::Session::/
|
58
51
|
end
|
59
52
|
loaded = app.config.middleware.to_a.map(&:name)
|
@@ -62,14 +55,14 @@ module RailsAdmin
|
|
62
55
|
unless missing.empty? && has_session_store
|
63
56
|
configs = missing.map { |m| "config.middleware.use #{m}" }
|
64
57
|
configs << "config.middleware.use #{app.config.session_store.try(:name) || 'ActionDispatch::Session::CookieStore'}, #{app.config.session_options}" unless has_session_store
|
65
|
-
raise <<~
|
58
|
+
raise <<~ERROR
|
66
59
|
Required middlewares for RailsAdmin are not added
|
67
60
|
To fix this, add
|
68
61
|
|
69
62
|
#{configs.join("\n ")}
|
70
63
|
|
71
64
|
to config/application.rb.
|
72
|
-
|
65
|
+
ERROR
|
73
66
|
end
|
74
67
|
|
75
68
|
RailsAdmin::Config.initialize!
|
@@ -49,7 +49,7 @@ module RailsAdmin
|
|
49
49
|
created_at: :created_at,
|
50
50
|
message: :event,
|
51
51
|
}.freeze
|
52
|
-
E_VERSION_MODEL_NOT_SET = <<-
|
52
|
+
E_VERSION_MODEL_NOT_SET = <<-ERROR.strip_heredoc.freeze
|
53
53
|
Please set up PaperTrail's version model explicitly.
|
54
54
|
|
55
55
|
config.audit_with :paper_trail, 'User', 'PaperTrail::Version'
|
@@ -58,7 +58,7 @@ module RailsAdmin
|
|
58
58
|
(https://github.com/paper-trail-gem/paper_trail#6a-custom-version-classes)
|
59
59
|
that configuration will take precedence over what you specify in
|
60
60
|
`audit_with`.
|
61
|
-
|
61
|
+
ERROR
|
62
62
|
|
63
63
|
def self.setup
|
64
64
|
raise 'PaperTrail not found' unless defined?(::PaperTrail)
|
@@ -1,63 +1,60 @@
|
|
1
1
|
module RailsAdmin
|
2
2
|
module Support
|
3
3
|
class Datetime
|
4
|
-
# Ruby format options as a key and
|
5
|
-
|
6
|
-
'%A' => '
|
7
|
-
'%a' => '
|
8
|
-
'%B' => '
|
9
|
-
'%b' => '
|
10
|
-
'%D' => '
|
11
|
-
'%d' => '
|
12
|
-
'%-d' => '
|
13
|
-
'%
|
14
|
-
'%
|
15
|
-
'%
|
16
|
-
'
|
17
|
-
'
|
18
|
-
'%
|
19
|
-
'
|
20
|
-
'
|
21
|
-
'%
|
22
|
-
'%
|
23
|
-
'
|
24
|
-
'
|
25
|
-
'
|
26
|
-
'
|
27
|
-
'%
|
28
|
-
'%
|
29
|
-
'%
|
30
|
-
'%
|
31
|
-
'
|
32
|
-
'%
|
33
|
-
'%
|
34
|
-
'%
|
35
|
-
'%
|
36
|
-
'%
|
37
|
-
'
|
38
|
-
'%
|
39
|
-
'%
|
40
|
-
'%U' => 'ww', # Week number of the year. The week starts with Sunday. (00..53)
|
41
|
-
'%u' => 'E', # Day of the week (Monday is 1, 1..7)
|
42
|
-
'%W' => 'WW', # Week number of the year. The week starts with Monday. (00..53)
|
43
|
-
'%w' => 'e', # Day of the week (Sunday is 0, 0..6)
|
44
|
-
'%X' => 'HH:mm:ss', # Same as %T
|
45
|
-
'%x' => 'MM/DD/YY', # Same as %D
|
46
|
-
'%Y' => 'YYYY', # Year with century
|
47
|
-
'%y' => 'YY', # Year without a century (00..99)
|
48
|
-
'%Z' => 'Z', # Equivalent to %:z (e.g. +09:00)
|
49
|
-
'%z' => 'ZZ', # Time zone as hour and minute offset from UTC (e.g. +0900)
|
50
|
-
'%:z' => 'Z', # Time zone as hour and minute offset from UTC with a colon (e.g. +09:00),
|
4
|
+
# Ruby format options as a key and flatpickr format options as a value
|
5
|
+
FLATPICKR_TRANSLATIONS = {
|
6
|
+
'%A' => 'l', # The full weekday name ("Sunday")
|
7
|
+
'%a' => 'D', # The abbreviated weekday name ("Sun")
|
8
|
+
'%B' => 'F', # The full month name ("January")
|
9
|
+
'%b' => 'M', # The abbreviated month name ("Jan")
|
10
|
+
'%D' => 'm/d/y', # American date format mm/dd/yy
|
11
|
+
'%d' => 'd', # Day of the month (01..31)
|
12
|
+
'%-d' => 'j', # Day of the month (1..31)
|
13
|
+
'%e' => 'j', # Day of the month (1..31)
|
14
|
+
'%F' => 'Y-m-d', # ISO 8601 date format
|
15
|
+
'%H' => 'H', # Hour of the day, 24-hour clock (00..23)
|
16
|
+
'%-H' => 'H', # Hour of the day, 24-hour clock (0..23)
|
17
|
+
'%h' => 'M', # Same as %b
|
18
|
+
'%I' => 'G', # Hour of the day, 12-hour clock (01..12)
|
19
|
+
'%-I' => 'h', # Hour of the day, 12-hour clock (1..12)
|
20
|
+
'%k' => 'H', # Hour of the day, 24-hour clock (0..23)
|
21
|
+
'%l' => 'h', # Hour of the day, 12-hour clock (1..12)
|
22
|
+
'%M' => 'i', # Minute of the hour (00..59)
|
23
|
+
'%-M' => 'i', # Minute of the hour (00..59)
|
24
|
+
'%m' => 'm', # Month of the year (01..12)
|
25
|
+
'%-m' => 'n', # Month of the year (1..12)
|
26
|
+
'%P' => 'K', # Meridian indicator ('am' or 'pm')
|
27
|
+
'%p' => 'K', # Meridian indicator ('AM' or 'PM')
|
28
|
+
'%R' => 'H:i', # 24-hour time (%H:%M)
|
29
|
+
'%r' => 'G:i:S K', # 12-hour time (%I:%M:%S %p)
|
30
|
+
'%S' => 'S', # Second of the minute (00..60)
|
31
|
+
'%-S' => 's', # Second of the minute (0..60)
|
32
|
+
'%s' => 'U', # Number of seconds since 1970-01-01 00:00:00 UTC.
|
33
|
+
'%T' => 'H:i:S', # 24-hour time (%H:%M:%S)
|
34
|
+
'%U' => 'W', # Week number of the year. The week starts with Sunday. (00..53)
|
35
|
+
'%w' => 'w', # Day of the week (Sunday is 0, 0..6)
|
36
|
+
'%X' => 'H:i:S', # Same as %T
|
37
|
+
'%x' => 'm/d/y', # Same as %D
|
38
|
+
'%Y' => 'Y', # Year with century
|
39
|
+
'%y' => 'y', # Year without a century (00..99)
|
51
40
|
'%%' => '%',
|
52
41
|
}.freeze
|
53
42
|
|
54
43
|
class << self
|
55
|
-
def
|
56
|
-
strftime_format.gsub(/(?<!%)(?<![-0-9:])\w
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
44
|
+
def to_flatpickr_format(strftime_format)
|
45
|
+
strftime_format.gsub(/(?<!%)(?<![-0-9:])\w/, '\\\\\0').gsub(/%([-0-9:]?\w)/) do |match|
|
46
|
+
# Timezone can't be handled by frontend, the server's one is always used
|
47
|
+
case match
|
48
|
+
when '%Z', '%:z' # Time zone as hour and minute offset from UTC with a colon (e.g. +09:00)
|
49
|
+
Time.zone.formatted_offset
|
50
|
+
when '%z' # Time zone as hour and minute offset from UTC (e.g. +0900)
|
51
|
+
Time.zone.formatted_offset(false)
|
52
|
+
else
|
53
|
+
FLATPICKR_TRANSLATIONS[match] or raise <<-MSG.gsub(/^\s{16}/, '')
|
54
|
+
Unsupported strftime directive '#{match}' was found. Please consider explicitly setting flatpickr_format instance option for the field.
|
55
|
+
field(:name_of_field) { flatpickr_format '...' }
|
56
|
+
MSG
|
57
|
+
end
|
61
58
|
end
|
62
59
|
end
|
63
60
|
end
|
@@ -13,7 +13,6 @@ module RailsAdmin
|
|
13
13
|
def call(input)
|
14
14
|
data = input[:data]
|
15
15
|
|
16
|
-
# only process files under rails_admin/src
|
17
16
|
if input[:filename].start_with? RailsAdmin::Engine.root.join('src').to_s
|
18
17
|
data.gsub!(/^(import .+)$/) { "// #{Regexp.last_match(1)}" }
|
19
18
|
data.gsub!(/^(export +default +{)$/) do
|
@@ -24,6 +23,8 @@ module RailsAdmin
|
|
24
23
|
raise "Unable to preprocess file: #{input[:filename]}"
|
25
24
|
end
|
26
25
|
end
|
26
|
+
elsif input[:filename] =~ %r{turbo-rails.+/turbo\.js$}
|
27
|
+
data.gsub!(/^(export .+)$/) { "// #{Regexp.last_match(1)}" }
|
27
28
|
end
|
28
29
|
|
29
30
|
{data: data}
|
data/lib/rails_admin/version.rb
CHANGED
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "rails_admin",
|
3
|
-
"version": "3.0.0-
|
3
|
+
"version": "3.0.0-rc3",
|
4
4
|
"description": "RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.",
|
5
5
|
"homepage": "https://github.com/railsadminteam/rails_admin",
|
6
6
|
"license": "MIT",
|
@@ -14,13 +14,15 @@
|
|
14
14
|
"format": "prettier -w ."
|
15
15
|
},
|
16
16
|
"dependencies": {
|
17
|
+
"@babel/runtime": "^7.16.7",
|
17
18
|
"@fortawesome/fontawesome-free": "^5.15.4",
|
19
|
+
"@hotwired/turbo-rails": "^7.1.0",
|
20
|
+
"@popperjs/core": "^2.11.0",
|
18
21
|
"@rails/ujs": "^6.1.4-1",
|
19
|
-
"bootstrap
|
20
|
-
"
|
22
|
+
"bootstrap": "^5.1.3",
|
23
|
+
"flatpickr": "^4.6.9",
|
21
24
|
"jquery": "^3.6.0",
|
22
|
-
"jquery-ui": "^1.12.1"
|
23
|
-
"moment": "^2.29.1"
|
25
|
+
"jquery-ui": "^1.12.1"
|
24
26
|
},
|
25
27
|
"devDependencies": {
|
26
28
|
"prettier": "^2.4.1"
|
data/src/rails_admin/base.js
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
import Rails from "@rails/ujs";
|
2
|
+
import "@hotwired/turbo-rails";
|
2
3
|
import jQuery from "jquery";
|
3
|
-
import moment from "moment";
|
4
|
-
import "./vendor/jquery.pjax";
|
5
4
|
import "./vendor/jquery_nested_form";
|
6
|
-
import "bootstrap
|
7
|
-
import "
|
8
|
-
import "eonasdan-bootstrap-datetimepicker";
|
5
|
+
import "bootstrap";
|
6
|
+
import "flatpickr/dist/flatpickr";
|
9
7
|
|
10
8
|
import "./filter-box";
|
11
9
|
import "./filtering-multiselect";
|
@@ -18,4 +16,3 @@ import "./widgets";
|
|
18
16
|
|
19
17
|
Rails.start();
|
20
18
|
window.$ = window.jQuery = jQuery;
|
21
|
-
window.moment = moment;
|