activeadmin 2.6.1 → 3.2.3
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +438 -9
- data/CONTRIBUTING.md +12 -36
- data/README.md +8 -8
- data/app/assets/javascripts/active_admin/base.js +27 -25
- data/app/assets/stylesheets/active_admin/_base.scss +53 -37
- data/app/assets/stylesheets/active_admin/_forms.scss +2 -13
- data/app/assets/stylesheets/active_admin/_header.scss +37 -3
- data/app/assets/stylesheets/active_admin/_normalize.scss +25 -123
- data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +7 -5
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +5 -2
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +9 -6
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +10 -7
- data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +2 -2
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +12 -0
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +1 -1
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +6 -4
- data/app/javascript/active_admin/initializers/has-many.js +4 -1
- data/app/javascript/active_admin/initializers/per-page.js +1 -1
- data/app/javascript/active_admin/lib/checkbox-toggler.js +3 -3
- data/app/javascript/active_admin/lib/dropdown-menu.js +1 -1
- data/app/javascript/active_admin/lib/modal-dialog.js +7 -7
- data/app/javascript/active_admin/lib/per-page.js +1 -1
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +1 -1
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
- data/app/views/active_admin/devise/shared/_links.erb +1 -1
- data/app/views/active_admin/page/index.html.arb +1 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.html.arb +1 -0
- data/app/views/active_admin/resource/new.html.arb +1 -0
- data/app/views/active_admin/resource/show.html.arb +1 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +18 -7
- data/config/locales/ar.yml +6 -13
- data/config/locales/az.yml +0 -7
- data/config/locales/bg.yml +0 -7
- data/config/locales/bs.yml +0 -7
- data/config/locales/ca.yml +0 -7
- data/config/locales/cs.yml +0 -7
- data/config/locales/da.yml +0 -7
- data/config/locales/de-CH.yml +0 -7
- data/config/locales/de.yml +0 -8
- data/config/locales/el.yml +0 -7
- data/config/locales/en-CA.yml +0 -7
- data/config/locales/en-GB.yml +0 -7
- data/config/locales/en.yml +0 -8
- data/config/locales/eo.yml +0 -8
- data/config/locales/es-MX.yml +2 -8
- data/config/locales/es.yml +2 -10
- data/config/locales/fa.yml +0 -7
- data/config/locales/fi.yml +0 -7
- data/config/locales/fr.yml +3 -11
- data/config/locales/he.yml +0 -9
- data/config/locales/hr.yml +0 -7
- data/config/locales/hu.yml +0 -8
- data/config/locales/id.yml +0 -7
- data/config/locales/it.yml +18 -8
- data/config/locales/ja.yml +2 -10
- data/config/locales/ko.yml +1 -8
- data/config/locales/lt.yml +0 -8
- data/config/locales/lv.yml +0 -7
- data/config/locales/mk.yml +0 -8
- data/config/locales/nb.yml +0 -8
- data/config/locales/nl.yml +1 -9
- data/config/locales/pl.yml +0 -8
- data/config/locales/pt-BR.yml +0 -8
- data/config/locales/pt-PT.yml +0 -7
- data/config/locales/ro.yml +3 -9
- data/config/locales/ru.yml +0 -6
- data/config/locales/sk.yml +0 -8
- data/config/locales/sv-SE.yml +58 -39
- data/config/locales/tr.yml +0 -11
- data/config/locales/uk.yml +0 -6
- data/config/locales/vi.yml +38 -19
- data/config/locales/zh-CN.yml +34 -23
- data/config/locales/zh-TW.yml +0 -7
- data/lib/active_admin/abstract_view_factory.rb +1 -0
- data/lib/active_admin/application.rb +19 -19
- data/lib/active_admin/application_settings.rb +4 -3
- data/lib/active_admin/asset_registration.rb +4 -3
- data/lib/active_admin/authorization_adapter.rb +6 -3
- data/lib/active_admin/base_controller/authorization.rb +15 -13
- data/lib/active_admin/base_controller/menu.rb +1 -0
- data/lib/active_admin/base_controller.rb +6 -5
- data/lib/active_admin/batch_actions/controller.rb +4 -3
- data/lib/active_admin/batch_actions/resource_extension.rb +10 -8
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
- data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
- data/lib/active_admin/batch_actions.rb +1 -0
- data/lib/active_admin/callbacks.rb +1 -0
- data/lib/active_admin/cancan_adapter.rb +2 -1
- data/lib/active_admin/collection_decorator.rb +32 -0
- data/lib/active_admin/component.rb +1 -0
- data/lib/active_admin/controller_action.rb +1 -0
- data/lib/active_admin/csv_builder.rb +25 -17
- data/lib/active_admin/dependency.rb +12 -15
- data/lib/active_admin/devise.rb +16 -5
- data/lib/active_admin/dsl.rb +2 -1
- data/lib/active_admin/dynamic_setting.rb +1 -0
- data/lib/active_admin/dynamic_settings_node.rb +3 -2
- data/lib/active_admin/engine.rb +17 -9
- data/lib/active_admin/error.rb +1 -2
- data/lib/active_admin/filters/active.rb +2 -1
- data/lib/active_admin/filters/active_filter.rb +6 -6
- data/lib/active_admin/filters/active_sidebar.rb +4 -30
- data/lib/active_admin/filters/dsl.rb +1 -0
- data/lib/active_admin/filters/forms.rb +9 -8
- data/lib/active_admin/filters/formtastic_addons.rb +3 -7
- data/lib/active_admin/filters/resource_extension.rb +6 -5
- data/lib/active_admin/filters.rb +8 -7
- data/lib/active_admin/form_builder.rb +25 -20
- data/lib/active_admin/generators/boilerplate.rb +2 -1
- data/lib/active_admin/helpers/collection.rb +2 -0
- data/lib/active_admin/helpers/i18n.rb +1 -0
- data/lib/active_admin/helpers/optional_display.rb +3 -2
- data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +2 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
- data/lib/active_admin/inputs/filters/base.rb +2 -1
- data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
- data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +3 -2
- data/lib/active_admin/inputs/filters/numeric_input.rb +2 -1
- data/lib/active_admin/inputs/filters/select_input.rb +5 -2
- data/lib/active_admin/inputs/filters/string_input.rb +2 -1
- data/lib/active_admin/inputs/filters/text_input.rb +1 -0
- data/lib/active_admin/inputs.rb +1 -0
- data/lib/active_admin/localizers/resource_localizer.rb +4 -3
- data/lib/active_admin/localizers.rb +2 -1
- data/lib/active_admin/menu.rb +8 -3
- data/lib/active_admin/menu_collection.rb +1 -0
- data/lib/active_admin/menu_item.rb +8 -7
- data/lib/active_admin/namespace.rb +16 -15
- data/lib/active_admin/namespace_settings.rb +9 -5
- data/lib/active_admin/order_clause.rb +2 -1
- data/lib/active_admin/orm/active_record/comments/comment.rb +12 -3
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +21 -20
- data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
- data/lib/active_admin/orm/active_record/comments.rb +28 -27
- data/lib/active_admin/orm/active_record.rb +2 -1
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/page.rb +2 -1
- data/lib/active_admin/page_controller.rb +1 -0
- data/lib/active_admin/page_dsl.rb +1 -0
- data/lib/active_admin/page_presenter.rb +1 -0
- data/lib/active_admin/pundit_adapter.rb +58 -16
- data/lib/active_admin/resource/action_items.rb +6 -5
- data/lib/active_admin/resource/attributes.rb +9 -1
- data/lib/active_admin/resource/belongs_to.rb +3 -2
- data/lib/active_admin/resource/controllers.rb +2 -1
- data/lib/active_admin/resource/includes.rb +1 -0
- data/lib/active_admin/resource/menu.rb +5 -4
- data/lib/active_admin/resource/model.rb +1 -0
- data/lib/active_admin/resource/naming.rb +5 -4
- data/lib/active_admin/resource/ordering.rb +1 -0
- data/lib/active_admin/resource/page_presenters.rb +1 -0
- data/lib/active_admin/resource/pagination.rb +1 -0
- data/lib/active_admin/resource/routes.rb +6 -7
- data/lib/active_admin/resource/scope_to.rb +8 -7
- data/lib/active_admin/resource/scopes.rb +1 -0
- data/lib/active_admin/resource/sidebars.rb +2 -1
- data/lib/active_admin/resource.rb +20 -19
- data/lib/active_admin/resource_collection.rb +1 -0
- data/lib/active_admin/resource_controller/action_builder.rb +1 -0
- data/lib/active_admin/resource_controller/data_access.rb +31 -5
- data/lib/active_admin/resource_controller/decorators.rb +7 -28
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +1 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +1 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -0
- data/lib/active_admin/resource_controller/sidebars.rb +1 -0
- data/lib/active_admin/resource_controller/streaming.rb +9 -7
- data/lib/active_admin/resource_controller.rb +13 -11
- data/lib/active_admin/resource_dsl.rb +11 -25
- data/lib/active_admin/router.rb +1 -0
- data/lib/active_admin/scope.rb +7 -6
- data/lib/active_admin/settings_node.rb +1 -0
- data/lib/active_admin/sidebar_section.rb +1 -0
- data/lib/active_admin/version.rb +2 -1
- data/lib/active_admin/view_factory.rb +18 -17
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
- data/lib/active_admin/view_helpers/display_helper.rb +23 -8
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
- data/lib/active_admin/view_helpers/fields_for.rb +3 -2
- data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
- data/lib/active_admin/view_helpers/form_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -0
- data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
- data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
- data/lib/active_admin/view_helpers/title_helper.rb +1 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
- data/lib/active_admin/view_helpers.rb +2 -1
- data/lib/active_admin/views/action_items.rb +1 -0
- data/lib/active_admin/views/components/active_admin_form.rb +8 -11
- data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
- data/lib/active_admin/views/components/attributes_table.rb +6 -5
- data/lib/active_admin/views/components/blank_slate.rb +2 -1
- data/lib/active_admin/views/components/columns.rb +1 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
- data/lib/active_admin/views/components/index_list.rb +4 -3
- data/lib/active_admin/views/components/menu.rb +2 -1
- data/lib/active_admin/views/components/menu_item.rb +5 -4
- data/lib/active_admin/views/components/paginated_collection.rb +19 -18
- data/lib/active_admin/views/components/panel.rb +2 -1
- data/lib/active_admin/views/components/scopes.rb +8 -5
- data/lib/active_admin/views/components/sidebar.rb +1 -0
- data/lib/active_admin/views/components/sidebar_section.rb +1 -0
- data/lib/active_admin/views/components/site_title.rb +2 -1
- data/lib/active_admin/views/components/status_tag.rb +12 -11
- data/lib/active_admin/views/components/table_for.rb +18 -17
- data/lib/active_admin/views/components/tabs.rb +4 -3
- data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
- data/lib/active_admin/views/footer.rb +3 -1
- data/lib/active_admin/views/header.rb +3 -2
- data/lib/active_admin/views/index_as_block.rb +1 -0
- data/lib/active_admin/views/index_as_blog.rb +2 -1
- data/lib/active_admin/views/index_as_grid.rb +2 -1
- data/lib/active_admin/views/index_as_table.rb +16 -19
- data/lib/active_admin/views/pages/base.rb +17 -11
- data/lib/active_admin/views/pages/form.rb +1 -0
- data/lib/active_admin/views/pages/index.rb +15 -13
- data/lib/active_admin/views/pages/layout.rb +1 -0
- data/lib/active_admin/views/pages/page.rb +1 -0
- data/lib/active_admin/views/pages/show.rb +2 -7
- data/lib/active_admin/views/tabbed_navigation.rb +3 -2
- data/lib/active_admin/views/title_bar.rb +2 -1
- data/lib/active_admin/views.rb +2 -1
- data/lib/active_admin.rb +63 -61
- data/lib/activeadmin.rb +2 -1
- data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
- data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
- data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
- data/lib/generators/active_admin/install/install_generator.rb +15 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +27 -3
- data/lib/generators/active_admin/install/templates/dashboard.rb +1 -0
- data/lib/generators/active_admin/page/page_generator.rb +2 -1
- data/lib/generators/active_admin/page/templates/page.rb +1 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
- data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
- data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
- data/vendor/assets/javascripts/jquery-ui/data.js +12 -8
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +10 -7
- data/vendor/assets/javascripts/jquery-ui/focusable.js +12 -9
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +60 -57
- data/vendor/assets/javascripts/jquery-ui/form.js +15 -12
- data/vendor/assets/javascripts/jquery-ui/ie.js +5 -2
- data/vendor/assets/javascripts/jquery-ui/keycode.js +11 -7
- data/vendor/assets/javascripts/jquery-ui/labels.js +46 -40
- data/vendor/assets/javascripts/jquery-ui/plugin.js +5 -2
- data/vendor/assets/javascripts/jquery-ui/position.js +30 -17
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +6 -2
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +6 -2
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +10 -7
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +11 -8
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +10 -7
- data/vendor/assets/javascripts/jquery-ui/version.js +6 -3
- data/vendor/assets/javascripts/jquery-ui/widget.js +53 -30
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +87 -24
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +276 -273
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +15 -11
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +182 -62
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +53 -36
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +28 -19
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +22 -11
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +47 -26
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +186 -125
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +20 -20
- metadata +48 -114
- data/docs/.gitignore +0 -1
- data/docs/0-installation.md +0 -118
- data/docs/1-general-configuration.md +0 -224
- data/docs/10-custom-pages.md +0 -150
- data/docs/11-decorators.md +0 -59
- data/docs/12-arbre-components.md +0 -214
- data/docs/13-authorization-adapter.md +0 -285
- data/docs/14-gotchas.md +0 -138
- data/docs/2-resource-customization.md +0 -466
- data/docs/3-index-pages/custom-index.md +0 -35
- data/docs/3-index-pages/index-as-block.md +0 -19
- data/docs/3-index-pages/index-as-blog.md +0 -69
- data/docs/3-index-pages/index-as-grid.md +0 -27
- data/docs/3-index-pages/index-as-table.md +0 -234
- data/docs/3-index-pages.md +0 -328
- data/docs/4-csv-format.md +0 -74
- data/docs/5-forms.md +0 -232
- data/docs/6-show-pages.md +0 -81
- data/docs/7-sidebars.md +0 -75
- data/docs/8-custom-actions.md +0 -177
- data/docs/9-batch-actions.md +0 -237
- data/docs/CNAME +0 -1
- data/docs/Gemfile +0 -3
- data/docs/Gemfile.lock +0 -248
- data/docs/README.md +0 -24
- data/docs/_config.yml +0 -4
- data/docs/_includes/footer.html +0 -8
- data/docs/_includes/google-analytics.html +0 -16
- data/docs/_includes/head.html +0 -7
- data/docs/_includes/toc.html +0 -98
- data/docs/_includes/top-menu.html +0 -17
- data/docs/_layouts/default.html +0 -21
- data/docs/documentation.md +0 -60
- data/docs/images/activeadmin.png +0 -0
- data/docs/images/code-header.png +0 -0
- data/docs/images/divider.png +0 -0
- data/docs/images/features.png +0 -0
- data/docs/images/tidelift.svg +0 -14
- data/docs/index.html +0 -226
- data/docs/stylesheets/main.css +0 -1205
- data/lib/active_admin/deprecation.rb +0 -10
- data/lib/ransack_ext.rb +0 -20
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
- /data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
|
|
@@ -35,30 +36,27 @@ module ActiveAdmin
|
|
|
35
36
|
super(options)
|
|
36
37
|
end
|
|
37
38
|
|
|
38
|
-
def item(*args)
|
|
39
|
+
def item(*args, **kwargs)
|
|
39
40
|
within @menu do
|
|
40
|
-
li link_to(*args)
|
|
41
|
+
li link_to(*args, **kwargs)
|
|
41
42
|
end
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
private
|
|
45
46
|
|
|
46
47
|
def build_button(name, button_options)
|
|
47
|
-
button_options[:class]
|
|
48
|
-
button_options[:
|
|
49
|
-
|
|
50
|
-
button_options[:href] = '#'
|
|
48
|
+
button_options[:class] = "#{button_options[:class]} dropdown_menu_button"
|
|
49
|
+
button_options[:href] = "#"
|
|
51
50
|
|
|
52
51
|
a name, button_options
|
|
53
52
|
end
|
|
54
53
|
|
|
55
54
|
def build_menu(options)
|
|
56
|
-
options[:class]
|
|
57
|
-
options[:class] << ' dropdown_menu_list'
|
|
55
|
+
options[:class] = "#{options[:class]} dropdown_menu_list"
|
|
58
56
|
|
|
59
57
|
menu_list = nil
|
|
60
58
|
|
|
61
|
-
div class:
|
|
59
|
+
div class: "dropdown_menu_list_wrapper" do
|
|
62
60
|
menu_list = ul(options)
|
|
63
61
|
end
|
|
64
62
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require "active_admin/helpers/collection"
|
|
2
3
|
|
|
3
4
|
module ActiveAdmin
|
|
4
5
|
module Views
|
|
@@ -15,7 +16,7 @@ module ActiveAdmin
|
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
def tag_name
|
|
18
|
-
|
|
19
|
+
"ul"
|
|
19
20
|
end
|
|
20
21
|
|
|
21
22
|
# Builds the links for presenting different index views to the user
|
|
@@ -37,7 +38,7 @@ module ActiveAdmin
|
|
|
37
38
|
def build_index_list(index_class)
|
|
38
39
|
li class: classes_for_index(index_class) do
|
|
39
40
|
params = request.query_parameters.except :page, :commit, :format
|
|
40
|
-
url_with_params = url_for(params.merge(as: index_class.index_name.to_sym))
|
|
41
|
+
url_with_params = url_for(**params.merge(as: index_class.index_name.to_sym).symbolize_keys)
|
|
41
42
|
|
|
42
43
|
a href: url_with_params, class: "table_tools_button" do
|
|
43
44
|
name = index_class.index_name
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
|
|
@@ -18,7 +19,7 @@ module ActiveAdmin
|
|
|
18
19
|
add_class "current" if item.current? assigns[:current_tab]
|
|
19
20
|
|
|
20
21
|
if url
|
|
21
|
-
text_node link_to label, url, item.html_options
|
|
22
|
+
text_node link_to label, url, **item.html_options
|
|
22
23
|
else
|
|
23
24
|
span label, item.html_options
|
|
24
25
|
end
|
|
@@ -30,7 +31,7 @@ module ActiveAdmin
|
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
def tag_name
|
|
33
|
-
|
|
34
|
+
"li"
|
|
34
35
|
end
|
|
35
36
|
|
|
36
37
|
# Sorts by priority first, then alphabetically by label if needed.
|
|
@@ -44,14 +45,14 @@ module ActiveAdmin
|
|
|
44
45
|
end
|
|
45
46
|
|
|
46
47
|
def to_s
|
|
47
|
-
visible? ? super :
|
|
48
|
+
visible? ? super : ""
|
|
48
49
|
end
|
|
49
50
|
|
|
50
51
|
private
|
|
51
52
|
|
|
52
53
|
# URL is not nil, empty, or '#'
|
|
53
54
|
def real_url?
|
|
54
|
-
url && url.present? && url !=
|
|
55
|
+
url && url.present? && url != "#"
|
|
55
56
|
end
|
|
56
57
|
end
|
|
57
58
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
require
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require "active_admin/helpers/collection"
|
|
3
|
+
require "active_admin/view_helpers/download_format_links_helper"
|
|
3
4
|
|
|
4
5
|
module ActiveAdmin
|
|
5
6
|
module Views
|
|
@@ -38,12 +39,12 @@ module ActiveAdmin
|
|
|
38
39
|
# download_links => Download links override (false or [:csv, :pdf])
|
|
39
40
|
#
|
|
40
41
|
def build(collection, options = {})
|
|
41
|
-
@collection
|
|
42
|
-
@params
|
|
43
|
-
@param_name
|
|
42
|
+
@collection = collection
|
|
43
|
+
@params = options.delete(:params)
|
|
44
|
+
@param_name = options.delete(:param_name)
|
|
44
45
|
@download_links = options.delete(:download_links)
|
|
45
|
-
@display_total
|
|
46
|
-
@per_page
|
|
46
|
+
@display_total = options.delete(:pagination_total) { true }
|
|
47
|
+
@per_page = options.delete(:per_page)
|
|
47
48
|
|
|
48
49
|
unless collection.respond_to?(:total_pages)
|
|
49
50
|
raise(StandardError, "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection.")
|
|
@@ -92,8 +93,8 @@ module ActiveAdmin
|
|
|
92
93
|
end
|
|
93
94
|
|
|
94
95
|
def build_pagination
|
|
95
|
-
options = { theme: @display_total ?
|
|
96
|
-
options[:params]
|
|
96
|
+
options = { theme: @display_total ? "active_admin" : "active_admin_countless" }
|
|
97
|
+
options[:params] = @params if @params
|
|
97
98
|
options[:param_name] = @param_name if @param_name
|
|
98
99
|
|
|
99
100
|
if !@display_total
|
|
@@ -107,7 +108,7 @@ module ActiveAdmin
|
|
|
107
108
|
options[:right] = 0
|
|
108
109
|
end
|
|
109
110
|
|
|
110
|
-
text_node paginate collection, options
|
|
111
|
+
text_node paginate collection, **options
|
|
111
112
|
end
|
|
112
113
|
|
|
113
114
|
include ::ActiveAdmin::Helpers::Collection
|
|
@@ -116,28 +117,28 @@ module ActiveAdmin
|
|
|
116
117
|
# modified from will_paginate
|
|
117
118
|
def page_entries_info(options = {})
|
|
118
119
|
if options[:entry_name]
|
|
119
|
-
entry_name
|
|
120
|
+
entry_name = options[:entry_name]
|
|
120
121
|
entries_name = options[:entries_name] || entry_name.pluralize
|
|
121
122
|
elsif collection_is_empty?
|
|
122
|
-
entry_name
|
|
123
|
-
entries_name = I18n.t "active_admin.pagination.entry", count: 2, default:
|
|
123
|
+
entry_name = I18n.t "active_admin.pagination.entry", count: 1, default: "entry"
|
|
124
|
+
entries_name = I18n.t "active_admin.pagination.entry", count: 2, default: "entries"
|
|
124
125
|
else
|
|
125
126
|
key = "activerecord.models." + collection.first.class.model_name.i18n_key.to_s
|
|
126
127
|
|
|
127
|
-
entry_name
|
|
128
|
+
entry_name = I18n.translate key, count: 1, default: collection.first.class.name.underscore.sub("_", " ")
|
|
128
129
|
entries_name = I18n.translate key, count: collection.size, default: entry_name.pluralize
|
|
129
130
|
end
|
|
130
131
|
|
|
131
132
|
if @display_total
|
|
132
133
|
if collection.total_pages < 2
|
|
133
134
|
case collection_size
|
|
134
|
-
when 0; I18n.t("active_admin.pagination.empty",
|
|
135
|
-
when 1; I18n.t("active_admin.pagination.one",
|
|
136
|
-
else;
|
|
135
|
+
when 0; I18n.t("active_admin.pagination.empty", model: entries_name)
|
|
136
|
+
when 1; I18n.t("active_admin.pagination.one", model: entry_name)
|
|
137
|
+
else; I18n.t("active_admin.pagination.one_page", model: entries_name, n: collection.total_count)
|
|
137
138
|
end
|
|
138
139
|
else
|
|
139
140
|
offset = (collection.current_page - 1) * collection.limit_value
|
|
140
|
-
total
|
|
141
|
+
total = collection.total_count
|
|
141
142
|
I18n.t "active_admin.pagination.multiple",
|
|
142
143
|
model: entries_name,
|
|
143
144
|
total: total,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
|
|
@@ -29,7 +30,7 @@ module ActiveAdmin
|
|
|
29
30
|
def header_action(*args)
|
|
30
31
|
action = args[0]
|
|
31
32
|
|
|
32
|
-
@title << div(class:
|
|
33
|
+
@title << div(class: "header_action") do
|
|
33
34
|
action
|
|
34
35
|
end
|
|
35
36
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
require
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require "active_admin/helpers/collection"
|
|
3
|
+
require "active_admin/view_helpers/method_or_proc_helper"
|
|
3
4
|
|
|
4
5
|
module ActiveAdmin
|
|
5
6
|
module Views
|
|
@@ -17,7 +18,7 @@ module ActiveAdmin
|
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
def tag_name
|
|
20
|
-
|
|
21
|
+
"div"
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
def build(scopes, options = {})
|
|
@@ -26,6 +27,8 @@ module ActiveAdmin
|
|
|
26
27
|
group_scopes.each do |scope|
|
|
27
28
|
build_scope(scope, options) if call_method_or_exec_proc(scope.display_if_block)
|
|
28
29
|
end
|
|
30
|
+
|
|
31
|
+
nil
|
|
29
32
|
end
|
|
30
33
|
end
|
|
31
34
|
end
|
|
@@ -36,9 +39,9 @@ module ActiveAdmin
|
|
|
36
39
|
li class: classes_for_scope(scope) do
|
|
37
40
|
params = request.query_parameters.except :page, :scope, :commit, :format
|
|
38
41
|
|
|
39
|
-
a href: url_for(scope: scope.id, params: params), class:
|
|
42
|
+
a href: url_for(scope: scope.id, params: params), class: "table_tools_button" do
|
|
40
43
|
text_node scope_name(scope)
|
|
41
|
-
span class:
|
|
44
|
+
span class: "count" do
|
|
42
45
|
"(#{get_scope_count(scope)})"
|
|
43
46
|
end if options[:scope_count] && scope.show_count
|
|
44
47
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
# Build a StatusTag
|
|
@@ -5,11 +6,11 @@ module ActiveAdmin
|
|
|
5
6
|
builder_method :status_tag
|
|
6
7
|
|
|
7
8
|
def tag_name
|
|
8
|
-
|
|
9
|
+
"span"
|
|
9
10
|
end
|
|
10
11
|
|
|
11
12
|
def default_class_name
|
|
12
|
-
|
|
13
|
+
"status_tag"
|
|
13
14
|
end
|
|
14
15
|
|
|
15
16
|
# @overload status_tag(status, options = {})
|
|
@@ -49,12 +50,12 @@ module ActiveAdmin
|
|
|
49
50
|
|
|
50
51
|
def convert_to_boolean_status(status)
|
|
51
52
|
case status
|
|
52
|
-
when true,
|
|
53
|
-
|
|
54
|
-
when false,
|
|
55
|
-
|
|
53
|
+
when true, "true"
|
|
54
|
+
"Yes"
|
|
55
|
+
when false, "false"
|
|
56
|
+
"No"
|
|
56
57
|
when nil
|
|
57
|
-
|
|
58
|
+
"Unset"
|
|
58
59
|
else
|
|
59
60
|
status
|
|
60
61
|
end
|
|
@@ -62,12 +63,12 @@ module ActiveAdmin
|
|
|
62
63
|
|
|
63
64
|
def status_to_class(status)
|
|
64
65
|
case status
|
|
65
|
-
when
|
|
66
|
-
|
|
66
|
+
when "Unset"
|
|
67
|
+
"unset no"
|
|
67
68
|
when String, Symbol
|
|
68
|
-
status.to_s.titleize.gsub(/\s/,
|
|
69
|
+
status.to_s.titleize.gsub(/\s/, "").underscore
|
|
69
70
|
else
|
|
70
|
-
|
|
71
|
+
""
|
|
71
72
|
end
|
|
72
73
|
end
|
|
73
74
|
end
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
class TableFor < Arbre::HTML::Table
|
|
4
5
|
builder_method :table_for
|
|
5
6
|
|
|
6
7
|
def tag_name
|
|
7
|
-
|
|
8
|
+
"table"
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
def build(obj, *attrs)
|
|
11
|
-
options
|
|
12
|
-
@sortable
|
|
13
|
-
@collection
|
|
12
|
+
options = attrs.extract_options!
|
|
13
|
+
@sortable = options.delete(:sortable)
|
|
14
|
+
@collection = obj.respond_to?(:each) && !obj.is_a?(Hash) ? obj : [obj]
|
|
14
15
|
@resource_class = options.delete(:i18n)
|
|
15
16
|
@resource_class ||= @collection.klass if @collection.respond_to? :klass
|
|
16
17
|
|
|
17
|
-
@columns
|
|
18
|
-
@row_class
|
|
18
|
+
@columns = []
|
|
19
|
+
@row_class = options.delete(:row_class)
|
|
19
20
|
|
|
20
21
|
build_table
|
|
21
22
|
super(options)
|
|
@@ -29,7 +30,7 @@ module ActiveAdmin
|
|
|
29
30
|
def column(*args, &block)
|
|
30
31
|
options = default_options.merge(args.extract_options!)
|
|
31
32
|
title = args[0]
|
|
32
|
-
data
|
|
33
|
+
data = args[1] || args[0]
|
|
33
34
|
|
|
34
35
|
col = Column.new(title, data, @resource_class, options, &block)
|
|
35
36
|
@columns << col
|
|
@@ -65,12 +66,12 @@ module ActiveAdmin
|
|
|
65
66
|
end
|
|
66
67
|
|
|
67
68
|
def build_table_header(col)
|
|
68
|
-
classes
|
|
69
|
+
classes = Arbre::HTML::ClassList.new
|
|
69
70
|
sort_key = sortable? && col.sortable? && col.sort_key
|
|
70
|
-
params
|
|
71
|
+
params = request.query_parameters.except :page, :order, :commit, :format
|
|
71
72
|
|
|
72
|
-
classes <<
|
|
73
|
-
classes << "sorted-#{current_sort[1]}"
|
|
73
|
+
classes << "sortable" if sort_key
|
|
74
|
+
classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
|
|
74
75
|
classes << col.html_class
|
|
75
76
|
|
|
76
77
|
if sort_key
|
|
@@ -86,13 +87,13 @@ module ActiveAdmin
|
|
|
86
87
|
@tbody = tbody do
|
|
87
88
|
# Build enough rows for our collection
|
|
88
89
|
@collection.each do |elem|
|
|
89
|
-
classes = [helpers.cycle(
|
|
90
|
+
classes = [helpers.cycle("odd", "even")]
|
|
90
91
|
|
|
91
92
|
if @row_class
|
|
92
93
|
classes << @row_class.call(elem)
|
|
93
94
|
end
|
|
94
95
|
|
|
95
|
-
tr(class: classes.flatten.join(
|
|
96
|
+
tr(class: classes.flatten.join(" "), id: dom_id_for(elem))
|
|
96
97
|
end
|
|
97
98
|
end
|
|
98
99
|
end
|
|
@@ -126,8 +127,8 @@ module ActiveAdmin
|
|
|
126
127
|
# 'desc' it will return 'asc'
|
|
127
128
|
def order_for_sort_key(sort_key)
|
|
128
129
|
current_key, current_order = current_sort
|
|
129
|
-
return
|
|
130
|
-
current_order ==
|
|
130
|
+
return "desc" unless current_key == sort_key
|
|
131
|
+
current_order == "desc" ? "asc" : "desc"
|
|
131
132
|
end
|
|
132
133
|
|
|
133
134
|
def default_options
|
|
@@ -138,7 +139,7 @@ module ActiveAdmin
|
|
|
138
139
|
|
|
139
140
|
class Column
|
|
140
141
|
|
|
141
|
-
attr_accessor :title, :data
|
|
142
|
+
attr_accessor :title, :data, :html_class
|
|
142
143
|
|
|
143
144
|
def initialize(*args, &block)
|
|
144
145
|
@options = args.extract_options!
|
|
@@ -150,7 +151,7 @@ module ActiveAdmin
|
|
|
150
151
|
elsif @title.present?
|
|
151
152
|
html_classes << "col-#{@title.to_s.parameterize(separator: "_")}"
|
|
152
153
|
end
|
|
153
|
-
@html_class = html_classes.join(
|
|
154
|
+
@html_class = html_classes.join(" ")
|
|
154
155
|
@data = args[1] || args[0]
|
|
155
156
|
@data = block if block
|
|
156
157
|
@resource_class = args[2]
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
class Tabs < ActiveAdmin::Component
|
|
@@ -10,8 +11,8 @@ module ActiveAdmin
|
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
def build(&block)
|
|
13
|
-
@menu = ul(class:
|
|
14
|
-
@tabs_content = div(class:
|
|
14
|
+
@menu = ul(class: "nav nav-tabs", role: "tablist")
|
|
15
|
+
@tabs_content = div(class: "tab-content")
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
def build_menu_item(title, options, &block)
|
|
@@ -32,7 +33,7 @@ module ActiveAdmin
|
|
|
32
33
|
|
|
33
34
|
def fragmentize(string)
|
|
34
35
|
result = string.parameterize
|
|
35
|
-
result =
|
|
36
|
+
result = CGI.escape(string) if result.blank?
|
|
36
37
|
result
|
|
37
38
|
end
|
|
38
39
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
class Footer < Component
|
|
@@ -20,7 +21,8 @@ module ActiveAdmin
|
|
|
20
21
|
end
|
|
21
22
|
|
|
22
23
|
def powered_by_message
|
|
23
|
-
I18n.t(
|
|
24
|
+
I18n.t(
|
|
25
|
+
"active_admin.powered_by",
|
|
24
26
|
active_admin: link_to("Active Admin", "https://activeadmin.info"),
|
|
25
27
|
version: ActiveAdmin::VERSION).html_safe
|
|
26
28
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
class Header < Component
|
|
@@ -10,8 +11,8 @@ module ActiveAdmin
|
|
|
10
11
|
@utility_menu = @namespace.fetch_menu(:utility_navigation)
|
|
11
12
|
|
|
12
13
|
site_title @namespace
|
|
13
|
-
global_navigation @menu, class:
|
|
14
|
-
utility_navigation @utility_menu, id: "utility_nav", class:
|
|
14
|
+
global_navigation @menu, class: "header-item tabs"
|
|
15
|
+
utility_navigation @utility_menu, id: "utility_nav", class: "header-item tabs"
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
|
|
@@ -135,7 +136,7 @@ module ActiveAdmin
|
|
|
135
136
|
|
|
136
137
|
def build_body(post)
|
|
137
138
|
if @body
|
|
138
|
-
div class:
|
|
139
|
+
div class: "content" do
|
|
139
140
|
render_method_on_post_or_call_proc post, @body
|
|
140
141
|
end
|
|
141
142
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Views
|
|
3
4
|
|
|
@@ -278,13 +279,13 @@ module ActiveAdmin
|
|
|
278
279
|
# Display a column for checkbox
|
|
279
280
|
def selectable_column
|
|
280
281
|
return unless active_admin_config.batch_actions.any?
|
|
281
|
-
column resource_selection_toggle_cell, class:
|
|
282
|
+
column resource_selection_toggle_cell, class: "col-selectable", sortable: false do |resource|
|
|
282
283
|
resource_selection_cell resource
|
|
283
284
|
end
|
|
284
285
|
end
|
|
285
286
|
|
|
286
287
|
def index_column(start_value = 1)
|
|
287
|
-
column
|
|
288
|
+
column "#", class: "col-index", sortable: false do |resource|
|
|
288
289
|
@collection.offset_value + @collection.index(resource) + start_value
|
|
289
290
|
end
|
|
290
291
|
end
|
|
@@ -293,9 +294,9 @@ module ActiveAdmin
|
|
|
293
294
|
def id_column
|
|
294
295
|
raise "#{resource_class.name} has no primary_key!" unless resource_class.primary_key
|
|
295
296
|
column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource|
|
|
296
|
-
if controller.action_methods.include?(
|
|
297
|
+
if controller.action_methods.include?("show")
|
|
297
298
|
link_to resource.id, resource_path(resource), class: "resource_id_link"
|
|
298
|
-
elsif controller.action_methods.include?(
|
|
299
|
+
elsif controller.action_methods.include?("edit")
|
|
299
300
|
link_to resource.id, edit_resource_path(resource), class: "resource_id_link"
|
|
300
301
|
else
|
|
301
302
|
resource.id
|
|
@@ -303,10 +304,6 @@ module ActiveAdmin
|
|
|
303
304
|
end
|
|
304
305
|
end
|
|
305
306
|
|
|
306
|
-
def default_actions
|
|
307
|
-
raise '`default_actions` is no longer provided in ActiveAdmin 1.x. Use `actions` instead.'
|
|
308
|
-
end
|
|
309
|
-
|
|
310
307
|
# Add links to perform actions.
|
|
311
308
|
#
|
|
312
309
|
# ```ruby
|
|
@@ -344,12 +341,12 @@ module ActiveAdmin
|
|
|
344
341
|
#
|
|
345
342
|
# ```
|
|
346
343
|
def actions(options = {}, &block)
|
|
347
|
-
name
|
|
348
|
-
defaults
|
|
349
|
-
dropdown
|
|
350
|
-
dropdown_name = options.delete(:dropdown_name) { I18n.t
|
|
344
|
+
name = options.delete(:name) { "" }
|
|
345
|
+
defaults = options.delete(:defaults) { true }
|
|
346
|
+
dropdown = options.delete(:dropdown) { false }
|
|
347
|
+
dropdown_name = options.delete(:dropdown_name) { I18n.t "active_admin.dropdown_actions.button_label", default: "Actions" }
|
|
351
348
|
|
|
352
|
-
options[:class] ||=
|
|
349
|
+
options[:class] ||= "col-actions"
|
|
353
350
|
|
|
354
351
|
column name, options do |resource|
|
|
355
352
|
if dropdown
|
|
@@ -373,23 +370,23 @@ module ActiveAdmin
|
|
|
373
370
|
|
|
374
371
|
def defaults(resource, options = {})
|
|
375
372
|
localizer = ActiveAdmin::Localizers.resource(active_admin_config)
|
|
376
|
-
if controller.action_methods.include?(
|
|
373
|
+
if controller.action_methods.include?("show") && authorized?(ActiveAdmin::Auth::READ, resource)
|
|
377
374
|
item localizer.t(:view), resource_path(resource), class: "view_link #{options[:css_class]}", title: localizer.t(:view)
|
|
378
375
|
end
|
|
379
|
-
if controller.action_methods.include?(
|
|
376
|
+
if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::EDIT, resource)
|
|
380
377
|
item localizer.t(:edit), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: localizer.t(:edit)
|
|
381
378
|
end
|
|
382
|
-
if controller.action_methods.include?(
|
|
379
|
+
if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
|
|
383
380
|
item localizer.t(:delete), resource_path(resource), class: "delete_link #{options[:css_class]}", title: localizer.t(:delete),
|
|
384
|
-
|
|
381
|
+
method: :delete, data: { confirm: localizer.t(:delete_confirmation) }
|
|
385
382
|
end
|
|
386
383
|
end
|
|
387
384
|
|
|
388
385
|
class TableActions < ActiveAdmin::Component
|
|
389
386
|
builder_method :table_actions
|
|
390
387
|
|
|
391
|
-
def item *args
|
|
392
|
-
text_node link_to
|
|
388
|
+
def item *args, **kwargs
|
|
389
|
+
text_node link_to(*args, **kwargs)
|
|
393
390
|
end
|
|
394
391
|
end
|
|
395
392
|
end # IndexTableFor
|