rails_admin 3.0.0.beta2 → 3.0.0.rc
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 +1 -2
- data/Rakefile +11 -0
- data/app/assets/javascripts/rails_admin.js +4 -4
- data/app/assets/stylesheets/rails_admin.scss +31 -0
- data/app/controllers/rails_admin/application_controller.rb +1 -1
- data/app/controllers/rails_admin/main_controller.rb +10 -18
- data/app/helpers/rails_admin/application_helper.rb +12 -13
- 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/_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 +38 -35
- 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 +0 -1
- data/lib/generators/rails_admin/templates/webpack.config.js +0 -3
- 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 +7 -3
- data/lib/rails_admin/adapters/mongoid/property.rb +3 -3
- data/lib/rails_admin/adapters/mongoid.rb +2 -2
- 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/new.rb +5 -0
- 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 +1 -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 +9 -4
- 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 +4 -1
- data/lib/rails_admin/engine.rb +2 -5
- 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 +4 -54
- 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 +80 -91
- 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
@@ -1,6 +1,6 @@
|
|
1
1
|
<%
|
2
2
|
query = params[:query]
|
3
|
-
params = request.params.except(:authenticity_token, :action, :controller, :utf8, :bulk_export
|
3
|
+
params = request.params.except(:authenticity_token, :action, :controller, :utf8, :bulk_export)
|
4
4
|
params.delete(:query) if params[:query].blank?
|
5
5
|
params.delete(:sort_reverse) unless params[:sort_reverse] == 'true'
|
6
6
|
sort_reverse = params[:sort_reverse]
|
@@ -18,16 +18,13 @@
|
|
18
18
|
%>
|
19
19
|
|
20
20
|
<% content_for :contextual_tabs do %>
|
21
|
-
<% if checkboxes %>
|
22
|
-
<%= bulk_menu %>
|
23
|
-
<% end %>
|
24
21
|
<% if filterable_fields.present? %>
|
25
|
-
<li class="dropdown"
|
26
|
-
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
22
|
+
<li class="nav-item dropdown">
|
23
|
+
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#">
|
27
24
|
<%= t('admin.misc.add_filter') %>
|
28
25
|
<b class="caret"></b>
|
29
26
|
</a>
|
30
|
-
<ul class="dropdown-menu" id="filters"
|
27
|
+
<ul class="dropdown-menu dropdown-menu-end" id="filters">
|
31
28
|
<% filterable_fields.each do |field| %>
|
32
29
|
<%
|
33
30
|
field_options = case field.type
|
@@ -40,6 +37,7 @@
|
|
40
37
|
<li>
|
41
38
|
<a
|
42
39
|
href="#"
|
40
|
+
class="dropdown-item"
|
43
41
|
data-field-label="<%= field.label %>"
|
44
42
|
data-field-name="<%= field.name %>"
|
45
43
|
data-field-operator="<%= field.default_filter_operator %>"
|
@@ -47,7 +45,7 @@
|
|
47
45
|
data-field-required="<%= field.required.to_s %>"
|
48
46
|
data-field-type="<%= field.type %>"
|
49
47
|
data-field-value=""
|
50
|
-
data-field-datetimepicker-
|
48
|
+
data-field-datetimepicker-options="<%= field.try(:datepicker_options).try(:to_json) %>"
|
51
49
|
>
|
52
50
|
<%= field.label %>
|
53
51
|
</a>
|
@@ -56,6 +54,9 @@
|
|
56
54
|
</ul>
|
57
55
|
</li>
|
58
56
|
<% end %>
|
57
|
+
<% if checkboxes %>
|
58
|
+
<%= bulk_menu %>
|
59
|
+
<% end %>
|
59
60
|
<% end %>
|
60
61
|
|
61
62
|
<style>
|
@@ -66,27 +67,29 @@
|
|
66
67
|
</style>
|
67
68
|
|
68
69
|
<div id="list">
|
69
|
-
<%= form_tag(index_path(params.except(*%w[page f query])), method: :get
|
70
|
-
<div class="
|
71
|
-
<
|
70
|
+
<%= form_tag(index_path(params.except(*%w[page f query])), method: :get) do %>
|
71
|
+
<div class="card mb-3 p-3 bg-light">
|
72
|
+
<div class="row" data-options="<%= ordered_filter_options.to_json %>" id="filters_box"></div>
|
72
73
|
<hr class="filters_box" style="display:<%= ordered_filters.empty? ? 'none' : 'block' %>"/>
|
73
|
-
<div class="
|
74
|
-
<
|
75
|
-
|
76
|
-
|
77
|
-
<i class="fas fa-sync"></i>
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
<
|
82
|
-
|
83
|
-
|
74
|
+
<div class="row">
|
75
|
+
<div class="col-sm-6">
|
76
|
+
<div class="input-group">
|
77
|
+
<input class="form-control" name="query" placeholder="<%= t("admin.misc.filter") %>" type="search" value="<%= query %>" />
|
78
|
+
<button class="btn btn-primary" data-disable-with="<%= '<i class="fas fa-sync"></i>' + t('admin.misc.refresh') %>" type="submit">
|
79
|
+
<i class="fas fa-sync"></i>
|
80
|
+
<%= t('admin.misc.refresh') %>
|
81
|
+
</button>
|
82
|
+
<button class="btn btn-info" id="remove_filter" title="<%= t('admin.misc.reset_filters') %>">
|
83
|
+
<i class="fas fa-times"></i>
|
84
|
+
</button>
|
85
|
+
</div>
|
86
|
+
</div>
|
87
|
+
<div class="col-sm-6 text-end">
|
88
|
+
<% if export_action %>
|
89
|
+
<%= link_to wording_for(:link, export_action), export_path(params.except('page')), class: 'btn btn-info' %>
|
90
|
+
<% end %>
|
91
|
+
</div>
|
84
92
|
</div>
|
85
|
-
<% if export_action %>
|
86
|
-
<span style="float:right">
|
87
|
-
<%= link_to wording_for(:link, export_action), export_path(params.except('page')), class: 'btn btn-info' %>
|
88
|
-
</span>
|
89
|
-
<% end %>
|
90
93
|
</div>
|
91
94
|
<% end %>
|
92
95
|
<% unless @model_config.list.scopes.empty? %>
|
@@ -94,14 +97,14 @@
|
|
94
97
|
<% @model_config.list.scopes.each_with_index do |scope, index| %>
|
95
98
|
<% scope = '_all' if scope.nil? %>
|
96
99
|
<li class="<%= 'active' if scope.to_s == params[:scope] || (params[:scope].blank? && index == 0) %>">
|
97
|
-
<a
|
100
|
+
<a href="<%= index_path(params.merge(scope: scope, page: nil)) %>">
|
98
101
|
<%= I18n.t("admin.scopes.#{@abstract_model.to_param}.#{scope}", default: I18n.t("admin.scopes.#{scope}", default: scope.to_s.titleize)) %>
|
99
102
|
</a>
|
100
103
|
</li>
|
101
104
|
<% end %>
|
102
105
|
</ul>
|
103
106
|
<% end %>
|
104
|
-
<%= form_tag bulk_action_path(model_name: @abstract_model.to_param), method: :post, id: "bulk_form", class: ["form"] do %>
|
107
|
+
<%= form_tag bulk_action_path(model_name: @abstract_model.to_param), method: :post, id: "bulk_form", class: ["form", "mb-3"] do %>
|
105
108
|
<%= hidden_field_tag :bulk_action %>
|
106
109
|
<% if description.present? %>
|
107
110
|
<p>
|
@@ -116,7 +119,7 @@
|
|
116
119
|
<tr>
|
117
120
|
<% if checkboxes %>
|
118
121
|
<th class="shrink sticky">
|
119
|
-
<input class="toggle" type="checkbox"
|
122
|
+
<input class="toggle" type="checkbox" />
|
120
123
|
</th>
|
121
124
|
<% end %>
|
122
125
|
<% properties.each do |property| %>
|
@@ -125,7 +128,7 @@
|
|
125
128
|
<% sort_location = index_path params.except('sort_reverse').except('page').merge(sort: property.name).merge(selected && sort_reverse != "true" ? {sort_reverse: "true"} : {}) %>
|
126
129
|
<% sort_direction = (sort_reverse == 'true' ? "headerSortUp" : "headerSortDown" if selected) %>
|
127
130
|
<% end %>
|
128
|
-
<th class="<%= [property.sortable && "header
|
131
|
+
<th class="<%= [property.sortable && "header", property.sortable && sort_direction, property.sticky? && 'sticky', property.css_class, property.type_css_class].select(&:present?).join(' ') %>" data-href="<%= property.sortable && sort_location %>" rel="tooltip" title="<%= property.hint %>">
|
129
132
|
<%= property.label %>
|
130
133
|
</th>
|
131
134
|
<% end %>
|
@@ -142,7 +145,7 @@
|
|
142
145
|
<% end %>
|
143
146
|
<% properties.map{ |property| property.bind(:object, object) }.each do |property| %>
|
144
147
|
<% value = property.pretty_value %>
|
145
|
-
<td class="<%= [property.sticky? && 'sticky', property.css_class, property.type_css_class].
|
148
|
+
<td class="<%= [property.sticky? && 'sticky', property.css_class, property.type_css_class].select(&:present?).join(' ') %>" title="<%= strip_tags(value.to_s) %>">
|
146
149
|
<%= value %>
|
147
150
|
</td>
|
148
151
|
<% end %>
|
@@ -166,19 +169,19 @@
|
|
166
169
|
<% if @model_config.list.limited_pagination %>
|
167
170
|
<div class="row">
|
168
171
|
<div class="col-md-6">
|
169
|
-
<%= paginate(@objects, theme: 'ra-twitter-bootstrap/without_count', total_pages: Float::INFINITY
|
172
|
+
<%= paginate(@objects, theme: 'ra-twitter-bootstrap/without_count', total_pages: Float::INFINITY) %>
|
170
173
|
</div>
|
171
174
|
</div>
|
172
175
|
<% elsif @objects.respond_to?(:total_count) %>
|
173
176
|
<% total_count = @objects.total_count.to_i %>
|
174
177
|
<div class="row">
|
175
178
|
<div class="col-md-6">
|
176
|
-
<%= paginate(@objects, theme: 'ra-twitter-bootstrap'
|
179
|
+
<%= paginate(@objects, theme: 'ra-twitter-bootstrap') %>
|
177
180
|
</div>
|
178
181
|
</div>
|
179
182
|
<div class="row">
|
180
183
|
<div class="col-md-6">
|
181
|
-
<%= link_to(t("admin.misc.show_all"), index_path(params.merge(all: true)), class: "show-all btn btn-
|
184
|
+
<%= link_to(t("admin.misc.show_all"), index_path(params.merge(all: true)), class: "show-all btn btn-light clearfix") unless total_count > 100 || total_count <= @objects.to_a.size %>
|
182
185
|
</div>
|
183
186
|
</div>
|
184
187
|
<div class="clearfix total-count">
|
@@ -1,3 +1,3 @@
|
|
1
|
-
<%= rails_admin_form_for @object, url: new_path(model_name: @abstract_model.to_param), as: @abstract_model.param_key, html: { multipart: true, class: "
|
1
|
+
<%= rails_admin_form_for @object, url: new_path(model_name: @abstract_model.to_param), as: @abstract_model.param_key, html: { multipart: true, class: "main", data: { title: @page_name } } do |form| %>
|
2
2
|
<%= form.generate action: :create %>
|
3
3
|
<% end %>
|
@@ -53,7 +53,6 @@ module RailsAdmin
|
|
53
53
|
@scss_relative_dir = '../stylesheets/'
|
54
54
|
template 'rails_admin.js.erb', 'app/javascript/packs/rails_admin.js'
|
55
55
|
template 'rails_admin.scss', 'app/javascript/stylesheets/rails_admin.scss'
|
56
|
-
template 'environment.js', 'config/webpack/environment.js'
|
57
56
|
end
|
58
57
|
|
59
58
|
def configure_for_webpack
|
@@ -12,8 +12,8 @@ module RailsAdmin
|
|
12
12
|
model.new(params).extend(ObjectExtension)
|
13
13
|
end
|
14
14
|
|
15
|
-
def get(id)
|
16
|
-
return unless object =
|
15
|
+
def get(id, scope = scoped)
|
16
|
+
return unless object = scope.where(primary_key => id).first
|
17
17
|
|
18
18
|
object.extend(ObjectExtension)
|
19
19
|
end
|
@@ -80,7 +80,11 @@ module RailsAdmin
|
|
80
80
|
when 'postgresql'
|
81
81
|
::ActiveRecord::Base.connection.select_one("SELECT ''::text AS str;").values.first.encoding
|
82
82
|
when 'mysql2'
|
83
|
-
|
83
|
+
if RUBY_ENGINE == 'jruby'
|
84
|
+
::ActiveRecord::Base.connection.select_one("SELECT '' AS str;").values.first.encoding
|
85
|
+
else
|
86
|
+
::ActiveRecord::Base.connection.raw_connection.encoding
|
87
|
+
end
|
84
88
|
when 'oracle_enhanced'
|
85
89
|
::ActiveRecord::Base.connection.select_one('SELECT dummy FROM DUAL').values.first.encoding
|
86
90
|
else
|
@@ -11,11 +11,11 @@ module RailsAdmin
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def name
|
14
|
-
property.name.to_sym
|
14
|
+
(property.options[:as] || property.name).to_sym
|
15
15
|
end
|
16
16
|
|
17
17
|
def pretty_name
|
18
|
-
property.name.to_s.tr('_', ' ').capitalize
|
18
|
+
(property.options[:as] || property.name).to_s.tr('_', ' ').capitalize
|
19
19
|
end
|
20
20
|
|
21
21
|
def type
|
@@ -64,7 +64,7 @@ module RailsAdmin
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def read_only?
|
67
|
-
|
67
|
+
model.readonly_attributes.include? property.name.to_s
|
68
68
|
end
|
69
69
|
|
70
70
|
private
|
@@ -49,7 +49,7 @@ module RailsAdmin
|
|
49
49
|
(only.nil? || [only].flatten.collect(&:to_s).include?(bindings[:abstract_model].to_s)) &&
|
50
50
|
![except].flatten.collect(&:to_s).include?(bindings[:abstract_model].to_s) &&
|
51
51
|
!bindings[:abstract_model].config.excluded?
|
52
|
-
)
|
52
|
+
) && (!respond_to?(:writable?) || writable?)
|
53
53
|
end
|
54
54
|
|
55
55
|
register_instance_option :authorized? do
|
@@ -73,11 +73,6 @@ module RailsAdmin
|
|
73
73
|
false
|
74
74
|
end
|
75
75
|
|
76
|
-
# Render via pjax?
|
77
|
-
register_instance_option :pjax? do
|
78
|
-
link_target.blank?
|
79
|
-
end
|
80
|
-
|
81
76
|
# Target window [_self, _blank]
|
82
77
|
register_instance_option :link_target do
|
83
78
|
nil
|
@@ -18,21 +18,21 @@ module RailsAdmin
|
|
18
18
|
|
19
19
|
register_instance_option :controller do
|
20
20
|
proc do
|
21
|
-
@history = @auditing_adapter&.latest(@action.auditing_versions_limit)
|
21
|
+
@history = @auditing_adapter&.latest(@action.auditing_versions_limit) if @action.history?
|
22
22
|
if @action.statistics?
|
23
|
-
|
23
|
+
model_configs = RailsAdmin::Config.visible_models(controller: self)
|
24
24
|
|
25
|
+
@abstract_models = model_configs.map(&:abstract_model)
|
25
26
|
@most_recent_created = {}
|
26
27
|
@count = {}
|
27
28
|
@max = 0
|
28
|
-
|
29
|
-
scope = @authorization_adapter&.query(:index,
|
30
|
-
current_count =
|
29
|
+
model_configs.each do |config|
|
30
|
+
scope = @authorization_adapter&.query(:index, config.abstract_model)
|
31
|
+
current_count = config.abstract_model.count({}, scope)
|
31
32
|
@max = current_count > @max ? current_count : @max
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
@most_recent_created[t.model.name] = t.model.last.try(:created_at)
|
33
|
+
name = config.abstract_model.model.name
|
34
|
+
@count[name] = current_count
|
35
|
+
@most_recent_created[name] = config.last_created_at
|
36
36
|
end
|
37
37
|
end
|
38
38
|
render @action.template_name, status: @status_code || :ok
|
@@ -50,6 +50,10 @@ module RailsAdmin
|
|
50
50
|
register_instance_option :statistics? do
|
51
51
|
true
|
52
52
|
end
|
53
|
+
|
54
|
+
register_instance_option :history? do
|
55
|
+
true
|
56
|
+
end
|
53
57
|
end
|
54
58
|
end
|
55
59
|
end
|
@@ -17,6 +17,7 @@ module RailsAdmin
|
|
17
17
|
if request.get? # NEW
|
18
18
|
|
19
19
|
@object = @abstract_model.new
|
20
|
+
@action = @action.with(@action.bindings.merge(object: @object))
|
20
21
|
@authorization_adapter&.attributes_for(:new, @abstract_model)&.each do |name, value|
|
21
22
|
@object.send("#{name}=", value)
|
22
23
|
end
|
@@ -55,6 +56,10 @@ module RailsAdmin
|
|
55
56
|
register_instance_option :link_icon do
|
56
57
|
'fas fa-plus'
|
57
58
|
end
|
59
|
+
|
60
|
+
register_instance_option :writable? do
|
61
|
+
!(bindings[:object] && bindings[:object].readonly?)
|
62
|
+
end
|
58
63
|
end
|
59
64
|
end
|
60
65
|
end
|
@@ -21,7 +21,7 @@ module RailsAdmin
|
|
21
21
|
am = amc.abstract_model
|
22
22
|
wording = associated.send(amc.object_label_method)
|
23
23
|
can_see = !am.embedded? && (show_action = v.action(:show, am, associated))
|
24
|
-
can_see ? v.link_to(wording, v.url_for(action: show_action.action_name, model_name: am.to_param, id: associated.id)
|
24
|
+
can_see ? v.link_to(wording, v.url_for(action: show_action.action_name, model_name: am.to_param, id: associated.id)) : ERB::Util.html_escape(wording)
|
25
25
|
end.to_sentence.html_safe.presence || '-'
|
26
26
|
end
|
27
27
|
|
@@ -89,6 +89,11 @@ module RailsAdmin
|
|
89
89
|
association.primary_key
|
90
90
|
end
|
91
91
|
|
92
|
+
# Returns params which are to be set in modals
|
93
|
+
def associated_prepopulate_params
|
94
|
+
{}
|
95
|
+
end
|
96
|
+
|
92
97
|
# Reader whether this is a polymorphic association
|
93
98
|
def polymorphic?
|
94
99
|
association.polymorphic?
|
@@ -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
|
|
@@ -68,6 +69,10 @@ module RailsAdmin
|
|
68
69
|
:form_datetime
|
69
70
|
end
|
70
71
|
|
72
|
+
register_deprecated_instance_option :momentjs_format do
|
73
|
+
ActiveSupport::Deprecation.warn('The momentjs_format configuration option is deprecated, please use flatpickr_format with corresponding values here: https://flatpickr.js.org/formatting/')
|
74
|
+
end
|
75
|
+
|
71
76
|
def form_value
|
72
77
|
value&.in_time_zone&.strftime('%FT%T') || form_default_value
|
73
78
|
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
@@ -269,9 +269,12 @@ module RailsAdmin
|
|
269
269
|
|
270
270
|
def parent_controller=(name)
|
271
271
|
@parent_controller = name
|
272
|
-
|
272
|
+
|
273
|
+
if defined?(RailsAdmin::ApplicationController) || defined?(RailsAdmin::MainController)
|
273
274
|
RailsAdmin.send(:remove_const, :ApplicationController)
|
275
|
+
RailsAdmin.send(:remove_const, :MainController)
|
274
276
|
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/application_controller.rb')
|
277
|
+
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/main_controller.rb')
|
275
278
|
end
|
276
279
|
end
|
277
280
|
|
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
|
@@ -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
|
|
@@ -54,6 +50,7 @@ module RailsAdmin
|
|
54
50
|
config.after_initialize do |app|
|
55
51
|
has_session_store = app.config.middleware.to_a.any? do |m|
|
56
52
|
m.klass.try(:<=, ActionDispatch::Session::AbstractStore) ||
|
53
|
+
m.klass.try(:<=, ActionDispatch::Session::AbstractSecureStore) ||
|
57
54
|
m.klass.name =~ /^ActionDispatch::Session::/
|
58
55
|
end
|
59
56
|
loaded = app.config.middleware.to_a.map(&:name)
|