rails_admin 3.0.0.beta2 → 3.0.0.rc3
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.
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;
|